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

            Bug ID: 66026
           Summary: C++14] throw-expression is not a valid
                    constant-expression
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rhalbersma at gmail dot com
  Target Milestone: ---

g++ 5.1.0 and current trunk 20150505 won't compile the following code with
-std=c++1y:

constexpr auto fun(int n)
{
    switch(n) {
    case 0: return 0;
    default: return throw 42, 42;      
    }
}

int main()
{
    static_assert(fun(0) == 0, "");    
}

yielding the error: expression '<throw-expression>' is not a
constant-expression

The same code compiles with -std=c++14 with all recent Clang versions (3.4.0
through SVN trunk).

Reply via email to