[Bug c++/56428] [C++11] "is not a constant expression" when comparing non-type template argument to nullptr

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Mar 1 03:04:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56428

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-03-01
                 CC|                            |jason at gcc dot gnu.org
     Ever Confirmed|0                           |1

--- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> 2013-03-01 03:04:25 UTC ---
Confirmed: "if only one is null, they compare unequal."

The internal issue here is that as a language extension, weak references mean
that the address of a weak declaration might resolve to null if the symbol
isn't defined at link time.  But we need that not to affect normal template
instantiations.

Note that nullptr isn't necessary to reproduce this bug, f<&f<&g> > and
comparing against 0 shows the same issue.



More information about the Gcc-bugs mailing list