https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91292
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2019-07-30
Ever confirmed|0 |1
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jorg Brown from comment #0)
> See https://godbolt.org/z/qIYbgQ for a repro using gcc 9.1.
Please include the code here, not just an external URL (as
https://gcc.gnu.org/bugs/ requests). The code is:
#include <type_traits>
template<typename T>
typename std::enable_if<(int)sizeof(T) >= -(1), int>::type size1(T *t);
template<typename T>
typename std::enable_if<(int)sizeof(T) >= -1, int>::type size2(T *t);
template<typename T>
typename std::enable_if<(int)sizeof(T) >= -(1.), int>::type size3(T *t);
template<typename T>
typename std::enable_if<(int)sizeof(T) >= -1., int>::type size4(T *t);
int x(int *iptr) {
return size1(iptr) + size2(iptr) + size3(iptr) + size4(iptr);
}
G++ produces:
_Z5size1IiENSt9enable_ifIXgecvistT_ngLi1EEiE4typeEPS1_
_Z5size2IiENSt9enable_ifIXgecvistT_Lin1EEiE4typeEPS1_
_Z5size3IiENSt9enable_ifIXgecvistT_ngLd3ff0000000000000EEiE4typeEPS1_
_Z5size4IiENSt9enable_ifIXgecvistT_Ldffffffff00000000EEiE4typeEPS1_
Clang++ produces:
_Z5size1IiEN9enable_ifIXgecvistT_ngLi1EEiE4typeEPS1_
_Z5size2IiEN9enable_ifIXgecvistT_ngLi1EEiE4typeEPS1_
_Z5size3IiEN9enable_ifIXgecvistT_ngLd3ff0000000000000EEiE4typeEPS1_
_Z5size4IiEN9enable_ifIXgecvistT_ngLd3ff0000000000000EEiE4typeEPS1_