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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #1)
> When the comparison happens inside std::less<>::operator() it's not being
> compared with a literal 0, it's an lvalue of type int by that point. That
> isn't required to work.

In fact, it isn't just not required to work, it's explicitly undefined. The
rest of p3 is:

"In this context, the behavior of a program that supplies an argument other
than a literal 0 is undefined."

Reply via email to