Possible gcc bug in strict type aliasing

Vincent Lefevre vincent+gcc@vinc17.org
Tue Sep 27 13:09:00 GMT 2016


On 2016-09-26 17:28:38 +0300, Alexander Monakov wrote:
> I concede the original example may invoke UB if the first write to
> malloc'ed region determines its type until free().

No, the effective type is determined by the last write, not the
first one. The C standard says (6.5#6): "[...] the type of the
lvalue becomes the effective type of the object for that access
and for subsequent accesses that do not modify the stored value."
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

So, the effective type of an object is allowed to change.

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



More information about the Gcc-help mailing list