diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | awk.h | 12 | ||||
-rw-r--r-- | debug.c | 2 | ||||
-rw-r--r-- | profile.c | 8 |
4 files changed, 24 insertions, 6 deletions
@@ -1,3 +1,11 @@ +2021-07-23 Arnold D. Robbins <arnold@skeeve.com> + + * awk.h (exec_count_t): Add typedef for Vax VMS C and everyone else. + (EXEC_COUNT_FMT, EXEC_COUNT_PROFILE_FMT): Corresponding format + strings for printf. + * debug.c (print_instruction): Use EXEC_COUNT_FMT. + * profile.c (indent): Ditto and use EXEC_COUNT_PROFILE_FMT. + 2021-07-07 Arnold D. Robbins <arnold@skeeve.com> * array.c (asort_actual): Add a lint warning for passing the @@ -755,6 +755,16 @@ enum redirval { struct break_point; +#if __DECC && __VAX +typedef unsigned long exec_count_t; // for exec_count +#define EXEC_COUNT_FMT "%lu" +#define EXEC_COUNT_PROFILE_FMT "%6lu" +#else +typedef unsigned long long exec_count_t; // for exec_count +#define EXEC_COUNT_FMT "%llu" +#define EXEC_COUNT_PROFILE_FMT "%6llu" +#endif + typedef struct exp_instruction { struct exp_instruction *nexti; union { @@ -765,7 +775,7 @@ typedef struct exp_instruction { awk_value_t *result, struct awk_ext_func *finfo); long dl; - unsigned long long ldl; // for exec_count + exec_count_t ldl; // for exec_count char *name; } d; @@ -4085,7 +4085,7 @@ print_instruction(INSTRUCTION *pc, Func_print print_func, FILE *fp, int in_dump) break; case Op_exec_count: - print_func(fp, "[exec_count = %llu]\n", pc->exec_count); + print_func(fp, "[exec_count = " EXEC_COUNT_FMT "]\n", pc->exec_count); break; case Op_store_var: @@ -135,7 +135,7 @@ init_profiling_signals() /* indent --- print out enough tabs */ static void -indent(unsigned long long count) +indent(exec_count_t count) { int i; @@ -143,7 +143,7 @@ indent(unsigned long long count) if (count == 0) fprintf(prof_fp, "\t"); else - fprintf(prof_fp, "%6llu ", count); + fprintf(prof_fp, EXEC_COUNT_PROFILE_FMT " ", count); } assert(indent_level >= 0); @@ -297,7 +297,7 @@ pprint(INSTRUCTION *startp, INSTRUCTION *endp, int flags) ip2 = (pc + 1)->lasti; if (do_profile && ip1->exec_count > 0) - fprintf(prof_fp, " # %llu", ip1->exec_count); + fprintf(prof_fp, " # " EXEC_COUNT_FMT, ip1->exec_count); end_line(ip1); skip_comment = true; @@ -1044,7 +1044,7 @@ cleanup: ip1 = pc->branch_if; if (ip1->exec_count > 0) - fprintf(prof_fp, " # %llu", ip1->exec_count); + fprintf(prof_fp, " # " EXEC_COUNT_FMT, ip1->exec_count); ip1 = end_line(ip1); indent_in(); if (pc->comment != NULL) |