Drew T
6eea1ac6a4
fix(phase-30 S48-0b): _carry_typedefs' already-carried test was line-oriented
...
The test was `^\s*typedef\b[^\n]*\bNAME\b` — the name must sit on the SAME LINE
as the keyword. True of `typedef unsigned char u8;`, never true of the
multi-line form the preamble backscan actually carries:
typedef struct Foo { … } Foo;
so every multi-line typedef already in the unit was carried a SECOND time and
the unit reached the gate with two definitions of one tag. canon_sig_reconcile
uniquifies draft tags, so the duplicate is exact: `redefinition of struct
Foo_8013C0F8`.
- Extract the block capture as `_typedef_blocks(lines)` and derive the
already-carried set from it (R33: one parser, two callers), so the
multi-line form is recognised exactly as the single-line form always was.
Measured on the 0b population: func_8013C0F8 (3 slots) carried Foo+Bar twice;
func_8013B83C dropped a redundant file-scope copy of a typedef its body
declares at block scope. 6 other families byte-identical output.
2026-08-11 16:00:02 -06:00
..
2026-06-14 03:56:07 -06:00
2026-06-14 03:19:23 -06:00
2026-06-15 17:15:31 -06:00
2026-06-13 19:47:42 -06:00
2026-06-14 03:56:07 -06:00
2026-08-06 13:34:50 -06:00
2026-06-14 03:56:07 -06:00
2026-06-14 03:56:07 -06:00
2026-07-28 14:53:47 -06:00
2026-07-02 23:32:38 -06:00
2026-07-26 23:37:35 -06:00
2026-06-29 12:52:39 -06:00
2026-07-01 21:03:08 -06:00
2026-08-06 10:55:38 -06:00
2026-08-04 21:48:57 -06:00
2026-08-06 10:57:17 -06:00
2026-07-29 00:42:40 -06:00
2026-07-31 14:18:11 -06:00
2026-06-19 10:05:58 -06:00
2026-06-21 13:12:04 -06:00
2026-06-18 23:15:31 -06:00
2026-06-21 13:06:34 -06:00
2026-07-28 19:34:00 -06:00
2026-08-06 10:57:17 -06:00
2026-07-14 21:25:19 -06:00
2026-07-26 23:08:07 -06:00
2026-07-24 14:11:58 -06:00
2026-07-23 19:54:19 -06:00
2026-07-14 09:22:31 -06:00
2026-07-23 11:43:28 -06:00
2026-08-07 18:57:10 -06:00
2026-07-22 15:24:59 -06:00
2026-06-17 00:30:45 -06:00
2026-06-20 17:12:00 -06:00
2026-07-14 19:59:56 -06:00
2026-08-05 11:05:35 -06:00
2026-08-06 13:34:50 -06:00
2026-08-07 20:36:04 -06:00
2026-08-10 16:01:49 -06:00
2026-07-31 01:12:02 -06:00
2026-08-07 14:03:51 -06:00
2026-06-14 14:47:01 -06:00
2026-08-10 10:43:44 -06:00
2026-07-14 02:50:28 -06:00
2026-08-07 23:14:15 -06:00
2026-07-24 14:25:28 -06:00
2026-07-16 12:07:37 -06:00
2026-07-15 18:20:55 -06:00
2026-08-06 09:51:39 -06:00
2026-08-07 15:07:55 -06:00
2026-06-29 16:49:11 -06:00
2026-07-15 18:20:55 -06:00
2026-06-30 01:46:54 -06:00
2026-08-11 13:42:40 -06:00
2026-07-14 09:40:38 -06:00
2026-08-11 16:00:02 -06:00
2026-08-10 22:39:13 -06:00
2026-08-07 22:09:05 -06:00
2026-08-07 18:57:10 -06:00
2026-07-23 12:42:43 -06:00
2026-06-30 01:46:54 -06:00
2026-08-10 16:35:57 -06:00
2026-06-19 10:05:58 -06:00
2026-07-14 00:08:59 -06:00
2026-06-15 20:55:28 -06:00
2026-06-15 23:25:00 -06:00
2026-06-14 03:19:23 -06:00
2026-06-14 03:19:23 -06:00
2026-06-14 02:04:28 -06:00
2026-06-14 02:04:28 -06:00
2026-07-02 16:56:56 -06:00
2026-07-01 21:03:08 -06:00
2026-07-31 12:26:03 -06:00
2026-08-10 21:28:00 -06:00
2026-07-01 23:13:29 -06:00
2026-06-25 13:09:02 -06:00
2026-08-07 22:09:05 -06:00
2026-06-30 11:15:11 -06:00
2026-08-11 15:31:57 -06:00
2026-07-12 22:06:17 -06:00
2026-08-11 15:31:57 -06:00
2026-08-04 19:31:33 -06:00
2026-07-18 02:03:48 -06:00
2026-07-12 21:51:27 -06:00
2026-07-23 19:54:19 -06:00
2026-08-05 00:37:59 -06:00
2026-06-30 15:32:56 -06:00
2026-08-10 16:01:49 -06:00
2026-06-15 20:55:28 -06:00
2026-06-15 13:44:32 -06:00
2026-06-15 20:55:28 -06:00
2026-08-11 12:05:24 -06:00
2026-07-02 23:10:54 -06:00
2026-07-21 11:03:59 -06:00
2026-06-14 03:19:23 -06:00
2026-08-06 12:36:49 -06:00
2026-08-06 10:59:03 -06:00
2026-07-18 20:30:43 -06:00
2026-07-31 08:41:54 -06:00
2026-06-22 21:22:35 -06:00
2026-08-11 15:58:25 -06:00
2026-06-18 23:40:17 -06:00
2026-06-18 23:15:31 -06:00
2026-08-05 15:59:27 -06:00
2026-07-07 20:20:43 -06:00
2026-07-21 15:05:56 -06:00
2026-08-06 10:57:17 -06:00
2026-08-07 15:07:55 -06:00
2026-06-14 21:24:10 -06:00
2026-06-15 21:00:36 -06:00
2026-06-15 21:00:36 -06:00
2026-06-14 21:24:10 -06:00
2026-06-15 21:00:36 -06:00
2026-06-15 21:00:36 -06:00
2026-06-15 21:00:36 -06:00
2026-06-19 13:03:14 -06:00
2026-08-04 21:48:57 -06:00
2026-06-26 03:06:54 -06:00
2026-07-24 15:33:25 -06:00
2026-07-27 00:06:01 -06:00
2026-07-28 19:34:00 -06:00
2026-07-30 17:05:50 -06:00
2026-07-30 16:32:37 -06:00
2026-08-10 22:39:13 -06:00
2026-07-28 20:15:11 -06:00
2026-06-30 01:46:54 -06:00
2026-08-07 18:57:10 -06:00
2026-07-08 01:02:58 -06:00
2026-07-14 15:39:07 -06:00
2026-06-15 20:55:28 -06:00
2026-07-28 13:20:27 -06:00
2026-07-26 23:10:06 -06:00
2026-07-24 21:30:08 -06:00
2026-07-10 00:02:55 -06:00
2026-08-07 18:50:29 -06:00
2026-07-21 15:05:56 -06:00
2026-06-29 20:07:48 -06:00
2026-07-30 22:00:32 -06:00
2026-07-23 20:51:42 -06:00
2026-08-10 14:16:19 -06:00
2026-07-28 13:20:27 -06:00
2026-08-07 19:06:15 -06:00
2026-06-19 12:13:38 -06:00
2026-08-10 14:16:19 -06:00
2026-07-14 09:22:31 -06:00
2026-07-16 02:01:15 -06:00