[Bug c++/82899] *this in constructors could not alias with reference input parameters of the same type

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 8 13:31:00 GMT 2017


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-11-08
          Component|middle-end                  |c++
     Ever confirmed|0                           |1

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Antony Polukhin from comment #2)
> Looks like [class.ctor] paragraph 14 covers this case:
> 
> "During the construction of an object, if the value of the object or any of
> its subobjects is accessed through
> a glvalue that is not obtained, directly or indirectly, from the
> constructor’s this pointer, the value of the
> object or subobject thus obtained is unspecified."

Yeah, sounds like covering this case.  Thus we can make 'this' restrict in
constructors (and possibly assignment operators if self-assignment is
forbidden).

It would be "restrict" in the GCC middle-end sense, not the C specification
sense though, barring some extra clarification on "not obtained, directly or
indirectly, from the constructor's this pointer".  We conservatively propagate
what can point to a restrict parameters object.

Thus, C++ FE issue.


More information about the Gcc-bugs mailing list