Hojun-Cho
c67f362bbd
cgen: load full 24B header on whole str/slice deref-by-value
...
`let s: str = *h` (a str/slice loaded by value through *str / *[]T)
fell through the N_UN deref arm to the scalar load, emitting a single
MOVQ that read only the 8B .ptr and left .len/.cap from stale registers,
so len(*p) returned garbage. Both stages emitted byte-identical wrong
code, so the self-compile byte-id gate was blind to it. Add a str/slice
arm that loads the full {ptr,len,cap} via cgslicehdr when the chased
pointee is TY_STR/TY_SLICE.
Surfaced by the codegen miscompile hunt (finding C1b). Pinned by
test/lang/deref_hdr_test.ww, which interposes a different-sized decoy
header so the test reddens when the arm is reverted.
2026-06-27 11:47:54 +09:00
..
2026-06-22 13:52:41 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-22 13:34:28 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-22 17:10:22 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 03:25:47 +09:00
2026-06-25 01:32:32 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 02:53:16 +09:00
2026-06-22 13:52:41 +09:00
2026-06-22 02:04:56 +09:00
2026-06-22 11:52:41 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 13:34:28 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 12:04:03 +09:00
2026-06-22 12:04:03 +09:00
2026-06-22 12:04:03 +09:00
2026-06-27 11:47:54 +09:00
2026-06-22 13:34:28 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 18:06:05 +09:00
2026-06-22 18:06:05 +09:00
2026-06-22 13:34:28 +09:00
2026-06-22 12:31:23 +09:00
2026-06-22 16:34:33 +09:00
2026-06-22 09:02:40 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 14:56:11 +09:00
2026-06-22 11:52:41 +09:00
2026-06-22 11:52:41 +09:00
2026-06-22 12:31:23 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 02:04:56 +09:00
2026-06-22 16:02:01 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 02:04:56 +09:00
2026-06-22 16:34:33 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 11:52:41 +09:00
2026-06-22 16:53:49 +09:00
2026-06-22 18:30:04 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 20:42:08 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 13:52:41 +09:00
2026-06-24 01:00:47 +09:00
2026-06-24 01:00:47 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 13:34:28 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 02:53:16 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 03:01:09 +09:00
2026-06-22 11:52:41 +09:00
2026-06-26 23:16:19 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 13:52:41 +09:00
2026-06-22 13:52:41 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:01:09 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 18:28:41 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 12:11:46 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 09:02:40 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 13:52:41 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 01:48:38 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 02:53:16 +09:00