Handle pass.timing event. */
| 124 | |
| 125 | /* Handle pass.timing event. */ |
| 126 | static void on_pass_timing(const char *line) { |
| 127 | char val[CBM_SZ_64] = {0}; |
| 128 | const char *pass = extract_kv(line, "pass", val, (int)sizeof(val)); |
| 129 | if (!pass) { |
| 130 | return; |
| 131 | } |
| 132 | flush_carriage(); |
| 133 | for (int i = 0; i < PHASE_COUNT; i++) { |
| 134 | if (strcmp(pass, phases[i].pass) == 0) { |
| 135 | (void)fprintf(s_out, "%s\n", phases[i].label); |
| 136 | (void)fflush(s_out); |
| 137 | return; |
| 138 | } |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | /* Handle gbuf.dump event — capture node/edge counts. */ |
| 143 | static void on_gbuf_dump(const char *line) { |
nothing calls this directly
no test coverage detected