1 // PR c++/88294 2 // { dg-do compile { target c++11 } } 3 foo(bool b)4constexpr int foo (bool b) { return b; } 5 6 template<typename> struct A 7 { fA8 constexpr int f () { return 0; } 9 bool b = true; gA10 void g () noexcept (f()) { } // { dg-error "use of parameter" } g2A11 void g2 () noexcept (this->f()) { } // { dg-error "use of parameter" } g3A12 void g3 () noexcept (b) { } // { dg-error "use of .this. in a constant expression|use of parameter" } g4A13 void g4 (int i) noexcept (i) { } // { dg-error "use of parameter" } g5A14 void g5 () noexcept (A::f()) { } // { dg-error "use of parameter" } g6A15 void g6 () noexcept (foo(b)) { } // { dg-error "use of .this. in a constant expression|use of parameter" } g7A16 void g7 () noexcept (int{f()}) { } // { dg-error "use of parameter" } 17 }; 18 main()19int main () 20 { 21 A<int> a; 22 a.g (); 23 a.g2 (); 24 a.g3 (); 25 a.g4 (1); 26 a.g5 (); 27 a.g6 (); 28 a.g7 (); 29 } 30