214ced303fac6018acf19c3bc5262f819e26188f
cgassign had dedicated N_DOT-store arms for a local-ptr base, a global value-struct, and chained bases, but none for a global-pointer scalar field. That case fell through to the generic cgplaceaddr/dotchainaddr route, which folds the field offset (ADDQ $foff,BX) then stores to (BX). cstage emits a single displacement store (MOVQ AX,foff(BX)) via its via_ptr global scalar arm, so the two stages diverged on asm shape (rule 10). Both forms are runtime-correct here -- BX is a fresh throwaway in the generic route -- so this was a byte-id divergence, not a miscompile. Add the missing displacement-store arm, predicate-mirroring cstage's via_ptr global scalar arm exactly: plain assignment only, scalar field only; non-scalar field types stay on the generic path (their global-ptr deref is a separate deferred item). glob_ptr_field_test.ww gains an off-8 row as the regression pin -- offset-0 cannot catch it because ADDQ $0 is suppressed. Surfaced by the fold-2 Fam-5 migration.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%