diff --git a/clang/test/CXX/class/class.init/class.copy.elision/p3.cpp b/clang/test/CXX/class/class.init/class.copy.elision/p3.cpp --- a/clang/test/CXX/class/class.init/class.copy.elision/p3.cpp +++ b/clang/test/CXX/class/class.init/class.copy.elision/p3.cpp @@ -125,6 +125,17 @@ } catch (...) { throw a; // expected-error {{call to deleted constructor of 'test_throw_parameter::A1'}} } + +#if __cplusplus >= 201103L +void test4(A1 a) { + void f(decltype((throw a, 0))); + // expected-warning@-1 {{has no effect}} + + void g(int = decltype(throw a, 0){}); + // expected-warning@-1 {{has no effect}} +} +#endif + } // namespace test_throw_parameter // During the first overload resolution, the selected function no