comparison gcc/testsuite/g++.dg/cpp0x/constexpr-55708.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 // PR c++/55708
2 // { dg-do compile { target c++11 } }
3
4 template<int N,int NNN>
5 struct AA { static constexpr int val = N; };
6
7 template<typename A,typename B>
8 //constexpr unsigned long long mymax(A a,B b){ // <-- compiles
9 constexpr unsigned long long mymax(A && a,const B& b){
10 return a<b?b:a;
11 }
12
13 template<char... List>
14 constexpr long long operator"" _y() noexcept
15 {
16 return AA<1, mymax(1,2)>::val; // <-- crashes gcc
17 // return mymax(1,2); // <-- compiles
18 // return AA<1,2>::val; // <-- compiles
19 }
20
21 template<char... List>
22 constexpr unsigned long long do_y() noexcept
23 {
24 return AA<1, mymax(1,2)>::val; // <-- crashes gcc
25 }
26
27 int main()
28 {
29 return 1_y + do_y();
30 }