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_

Reply via email to