Only in jalv24q5p1: bin Only in jalv24q5p1/src/jal: .dep Only in jalv24q5p1/src/jal: .obj diff -ur jalv24q5/src/jal/jal_build.h jalv24q5p1/src/jal/jal_build.h --- jalv24q5/src/jal/jal_build.h 2015-12-30 08:04:23.000000000 +0900 +++ jalv24q5p1/src/jal/jal_build.h 2025-01-25 11:49:43.616518969 +0900 @@ -1,2 +1,2 @@ -#define JAL_BUILD 20151229 +#define JAL_BUILD 20250125 #define JAL_VERSION_STR "jalv24q5" diff -ur jalv24q5/src/jal/jal_proc.c jalv24q5p1/src/jal/jal_proc.c --- jalv24q5/src/jal/jal_proc.c 2013-05-27 02:10:15.000000000 +0900 +++ jalv24q5p1/src/jal/jal_proc.c 2025-01-25 11:26:50.631113772 +0900 @@ -767,8 +767,8 @@ if (!param_ct) { param_ct = 1; } - parms = CALLOC(sizeof(*parms), param_ct); - put_parms = CALLOC(sizeof(*put_parms), param_ct); + parms = REVCALLOC(sizeof(*parms), param_ct); + put_parms = REVCALLOC(sizeof(*put_parms), param_ct); if (!parms || !put_parms) { pfile_log_syserr(pf, ENOMEM); } diff -ur jalv24q5/src/jal/jal_vdef.c jalv24q5p1/src/jal/jal_vdef.c --- jalv24q5/src/jal/jal_vdef.c 2014-09-02 01:09:26.000000000 +0900 +++ jalv24q5p1/src/jal/jal_vdef.c 2025-01-25 11:28:13.893698135 +0900 @@ -560,7 +560,7 @@ if (variable_def_flag_test(def, VARIABLE_DEF_FLAG_CONST) && !value_is_const(vals[vals_ct])) { pfile_log(pf, PFILE_LOG_ERR, "initializer %u must be constant", - vals_ct + 1); + (unsigned)(vals_ct + 1)); } vals_ct++; } else { @@ -704,7 +704,7 @@ if (variable_def_flag_test(def, VARIABLE_DEF_FLAG_CONST) && !value_is_const(vals[vals_ct])) { pfile_log(pf, PFILE_LOG_ERR, "initializer %u must be constant", - vals_ct + 1); + (unsigned)(vals_ct + 1)); } vals_ct++; } else { Only in jalv24q5p1/src/libcore: .dep Only in jalv24q5p1/src/libcore: .obj diff -ur jalv24q5/src/libcore/cmd_brch.c jalv24q5p1/src/libcore/cmd_brch.c --- jalv24q5/src/libcore/cmd_brch.c 2013-05-26 01:34:08.000000000 +0900 +++ jalv24q5p1/src/libcore/cmd_brch.c 2025-01-25 11:29:43.136291059 +0900 @@ -121,7 +121,7 @@ params = cmd_brproc_params_get(cmd); if (params) { - dup_params = CALLOC(sizeof(*dup_params), cmd_brproc_param_ct_get(cmd)); + dup_params = REVCALLOC(sizeof(*dup_params), cmd_brproc_param_ct_get(cmd)); if (dup_params) { size_t ii; Only in jalv24q5p1/src/libcore: libcore.a diff -ur jalv24q5/src/libcore/pf_cmd.c jalv24q5p1/src/libcore/pf_cmd.c --- jalv24q5/src/libcore/pf_cmd.c 2013-05-26 01:34:19.000000000 +0900 +++ jalv24q5p1/src/libcore/pf_cmd.c 2025-01-25 11:30:06.405082765 +0900 @@ -509,7 +509,7 @@ map.var_map.alloc = var_ct; map.var_map.used = 0; map.var_map.map = (var_ct) - ? CALLOC(sizeof(*map.var_map.map), var_ct) + ? REVCALLOC(sizeof(*map.var_map.map), var_ct) : 0; cmd = label_cmd_get(pfile_proc_label_get(proc)); Only in jalv24q5p1/src/libpic12: .dep Only in jalv24q5p1/src/libpic12: .obj Only in jalv24q5p1/src/libpic12: libpic12.a diff -ur jalv24q5/src/libpic12/pic.c jalv24q5p1/src/libpic12/pic.c --- jalv24q5/src/libpic12/pic.c 2015-12-30 06:29:50.000000000 +0900 +++ jalv24q5p1/src/libpic12/pic.c 2025-01-25 11:31:41.002276834 +0900 @@ -3523,6 +3523,9 @@ next = pic_code_label_find(pf, pic_code_brdst_get(code)); break; } + pic_code_mark_used(pf, + pic_code_label_find(pf, pic_code_brdst_get(code))); + break; /* a conditional goto will act like a call */ case PIC_OPCODE_CALL: pic_code_mark_used(pf, diff -ur jalv24q5/src/libpic12/picmovlpop.c jalv24q5p1/src/libpic12/picmovlpop.c --- jalv24q5/src/libpic12/picmovlpop.c 2014-01-16 02:19:43.000000000 +0900 +++ jalv24q5p1/src/libpic12/picmovlpop.c 2025-01-25 11:32:45.911797593 +0900 @@ -110,6 +110,11 @@ pic_code_pclath_set(code, &cpclath_state); break; } + if (pic_code_is_suspend(pf, code) + || (PIC_OPCODE_CALL == pic_code_op_get(code))) { + pclath = PIC_PCLATH_INDETERMINATE; + } + break; case PIC_CODE_GOP_WHICH_POST: if (pic_code_is_suspend(pf, code) || (PIC_OPCODE_CALL == pic_code_op_get(code))) { Only in jalv24q5p1/src/libutils: .dep Only in jalv24q5p1/src/libutils: .obj diff -ur jalv24q5/src/libutils/cod_file.c jalv24q5p1/src/libutils/cod_file.c --- jalv24q5/src/libutils/cod_file.c 2009-12-24 09:45:08.000000000 +0900 +++ jalv24q5p1/src/libutils/cod_file.c 2025-01-25 11:45:59.585985136 +0900 @@ -851,6 +851,13 @@ } } +int limit99 (int val) +{ + if (val <= 0) + return 0; + else + return val % 100; +} COD_directory_t *COD_directory_alloc(const uchar *compiler) { @@ -869,7 +876,7 @@ (void) time(&now); tm = *localtime(&now); sprintf((char *) date, "%02d%.3s%02d", - tm.tm_mday, months + 3 * tm.tm_mon, tm.tm_year % 100); + tm.tm_mday, months + 3 * tm.tm_mon, limit99(tm.tm_year)); dir->io = 0; dir->block_start = 0; Only in jalv24q5p1/src/libutils: libutils.a diff -ur jalv24q5/src/libutils/mem.h jalv24q5p1/src/libutils/mem.h --- jalv24q5/src/libutils/mem.h 2008-04-10 07:09:44.000000000 +0900 +++ jalv24q5p1/src/libutils/mem.h 2025-01-25 11:25:41.487846855 +0900 @@ -34,6 +34,7 @@ #define MALLOC(x) malloc(x) #define CALLOC(x,y) calloc(x, y) +#define REVCALLOC(x,y) calloc(y, x) #define REALLOC(x,y) realloc(x,y) #define FREE(x) do { if (x) free(x) ; } while (0)