sequence point across assignment
Anthony Shipman
als@iinet.net.au
Thu Nov 12 00:33:00 GMT 2015
I had some code:
states_[ix].next_ = compileStep(vec);
The compileStep() function pushed something onto states_
which caused its internal memory to be reallocated. As a result
the returned value was copied to the wrong place. It appears
that the left hand side is reduced to an address before the
call is made.
The compiler is g++ (SUSE Linux) 4.8.3 with options
g++ -g -O0 -Wall -m64 -std=gnu++11 -fpic
Have I strayed into undefined behaviour or is the compiler
being silly? (Might this a consequence of the return value
optimisation)?
More information about the Libstdc++
mailing list