Eric Botcazou writes: > For the Ada testcase: > > ;; s->i = 0 > (insn 7 6 0 p.adb:5 (set (mem/s/j:SI (reg/v/f:DI 59 [ s ]) [4 <variable>.i+0 > S4 A32]) > (const_int 0 [0x0])) -1 (nil)) > > ;; *p = 1 > (insn 8 7 0 p.adb:6 (set (mem:SI (reg/v/f:DI 60 [ p ]) [2 S4 A32]) > (const_int 1 [0x1])) -1 (nil)) > > ;; return s->i > (insn 9 8 10 p.adb:6 (set (reg:SI 62) > (mem/s/j:SI (reg/v/f:DI 59 [ s ]) [4 <variable>.i+0 S4 A32])) -1 > (nil)) > > i.e. s->i is accessed with the alias set of 'S'.
Thanks, that helped. I think you're right. Obviously we don't have this issue with bitfields in C. I am trying now to prototype a new approach along the lines of returning true in component_uses_parent_alias_set for SFT's with DECL_NONADDRESSABLE_P. Adam