https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86584

--- Comment #3 from Futaura <oliver at futaura dot co.uk> ---
Can you explain why you think that?

There is nothing ambiguous or undefined about this code. Each function
argument is evaluated before calling func() and it doesn't even matter which
order the arguments are evaluated in this case. We're talking about a pointer
for the first argument, and that address is going to remain constant no matter
what is assigned to s.f before or after.

Only if the code looked more like the following, not involving a pointer, would
the warning then be understandable:

void func(int, int);
func(s.f, (s.f = 1));

Reply via email to