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

            Bug ID: 67625
           Summary: some constexpr expressions rejected as enumerator
                    value
           Product: gcc
           Version: 5.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: matthijsvanduin at gmail dot com
  Target Milestone: ---

GCC 5.2.1 rejects the following code (with -std=gnu++11 or later):

    constexpr uint16_t bswap16( uint16_t x ) {
        return __builtin_bswap16( x );
    }
    constexpr int foo_1 = bswap16(1);
    enum { foo_2 = foo_1 };
    enum { foo_3 = __builtin_bswap16(1) };
    enum { foo_4 = bswap16(1) };

with the error message "enumerator value for ‘foo_4’ is not an integer
constant", while the other three definitions of the same constant are accepted.


This is a regression w.r.t. 4.9.3

Reply via email to