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

            Bug ID: 60333
           Summary: type_traits make_signed, make_unsigned missing support
                    for long long enumerations
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: harald at gigawatt dot nl

#include <type_traits>
enum E { e = 0x100000000 };
static_assert(sizeof(std::make_signed<E>::type) == sizeof(E), "");
static_assert(sizeof(std::make_unsigned<E>::type) == sizeof(E), "");

This fails on x86, because make_signed and make_unsigned never return a larger
type than (un)signed long.

Reply via email to