https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128163
yuki.tanaka at defaultcase dot de changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|INVALID |FIXED
--- Comment #4 from yuki.tanaka at defaultcase dot de ---
(In reply to Drea Pinski from comment #3)
> unsequenced also needs to be independent. That is a unsequenced function
> can be reordered with respect to loads. That is what is happening here.
a is also independent: it only accesses v, and only through its pointer
parameter x. An unsequenced call may be reordered, but not past a later read of
an object it modifies through a pointer argument, and v is such an object. So
the load of v cannot move before the call.