[Bug libstdc++/78420] [5/6/7 Regression] std::less<T*> is not a total order with -O2 enabled
ville.voutilainen at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Jan 22 22:12:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78420
--- Comment #11 from Ville Voutilainen <ville.voutilainen at gmail dot com> ---
Ah, the plot thickens. Jens Maurer wrote:
"Regarding the std::less<T*> issue, it seems a bug in the standard
to require that it be constexpr and deliver a total order. After
all, the addresses of global objects are defined by the linker,
so it doesn't seem plausible to get a compile-time answer for
std::less<T*> that is the same as a later run-time answer."
So I could theoretically just drop the constexpr from the pointer
specializations and be done with this bugfix. On the other hand,
I expect the plot to thicken further, as library wrappers that contain
pointers don't establish a total order, but in that regard we have
no conformance bugs; the standard doesn't specify that they would.
More information about the Gcc-bugs
mailing list