diff options
Diffstat (limited to 'test/CXX/except/except.spec')
| -rw-r--r-- | test/CXX/except/except.spec/canonical.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p1.cpp | 14 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p11.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p14.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p15.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p2-places.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p3.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p5-pointers.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p5-virtual.cpp | 2 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p9-dynamic.cpp | 5 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/p9-noexcept.cpp | 5 | ||||
| -rw-r--r-- | test/CXX/except/except.spec/template.cpp | 2 |
12 files changed, 26 insertions, 16 deletions
diff --git a/test/CXX/except/except.spec/canonical.cpp b/test/CXX/except/except.spec/canonical.cpp index 9bc26de144407..81ca2ae0a20ed 100644 --- a/test/CXX/except/except.spec/canonical.cpp +++ b/test/CXX/except/except.spec/canonical.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s // PR10087: Make sure that we don't conflate exception specifications // from different functions in the canonical type system. diff --git a/test/CXX/except/except.spec/p1.cpp b/test/CXX/except/except.spec/p1.cpp index 86924bb49d750..a6e7850247788 100644 --- a/test/CXX/except/except.spec/p1.cpp +++ b/test/CXX/except/except.spec/p1.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // Simple parser tests, dynamic specification. @@ -60,14 +60,22 @@ namespace noex { } namespace noexcept_unevaluated { - template<typename T> void f(T) { + template<typename T> bool f(T) { T* x = 1; } template<typename T> - void g(T x) noexcept((f(x), sizeof(T) == 4)) { } + void g(T x) noexcept((sizeof(T) == sizeof(int)) || f(x)) { } void h() { g(1); } } + +namespace PR11084 { + template<int X> struct A { + static int f() noexcept(1/X) { return 10; } // expected-error{{argument to noexcept specifier must be a constant expression}} + }; + + void g() { A<0>::f(); } // expected-note{{in instantiation of template class 'PR11084::A<0>' requested here}} +} diff --git a/test/CXX/except/except.spec/p11.cpp b/test/CXX/except/except.spec/p11.cpp index 268b53ad79d04..0e4fad53e350d 100644 --- a/test/CXX/except/except.spec/p11.cpp +++ b/test/CXX/except/except.spec/p11.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // This is the "let the user shoot himself in the foot" clause. void f() noexcept { diff --git a/test/CXX/except/except.spec/p14.cpp b/test/CXX/except/except.spec/p14.cpp index f42fbe907ffec..8763a70281953 100644 --- a/test/CXX/except/except.spec/p14.cpp +++ b/test/CXX/except/except.spec/p14.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -verify -std=c++0x %s +// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -verify -std=c++11 %s struct A { }; struct B { }; struct C { }; diff --git a/test/CXX/except/except.spec/p15.cpp b/test/CXX/except/except.spec/p15.cpp index 2dae9623e0ccf..110ec3fa0300e 100644 --- a/test/CXX/except/except.spec/p15.cpp +++ b/test/CXX/except/except.spec/p15.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // Deallocation functions are implicitly noexcept. // Thus, explicit specs aren't allowed to conflict. diff --git a/test/CXX/except/except.spec/p2-places.cpp b/test/CXX/except/except.spec/p2-places.cpp index db1ee77463fb3..67647fb043a98 100644 --- a/test/CXX/except/except.spec/p2-places.cpp +++ b/test/CXX/except/except.spec/p2-places.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // Tests where specs are allowed and where they aren't. diff --git a/test/CXX/except/except.spec/p3.cpp b/test/CXX/except/except.spec/p3.cpp index 5df5f26a8f8f7..d77aea40602c9 100644 --- a/test/CXX/except/except.spec/p3.cpp +++ b/test/CXX/except/except.spec/p3.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // Exception specification compatibility. // We test function pointers, because functions have an extra rule in p4. diff --git a/test/CXX/except/except.spec/p5-pointers.cpp b/test/CXX/except/except.spec/p5-pointers.cpp index 171afff22b5b9..dd3c0600ce92a 100644 --- a/test/CXX/except/except.spec/p5-pointers.cpp +++ b/test/CXX/except/except.spec/p5-pointers.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // Assignment of function pointers. diff --git a/test/CXX/except/except.spec/p5-virtual.cpp b/test/CXX/except/except.spec/p5-virtual.cpp index ceea9f8f2500c..69daec6ee5334 100644 --- a/test/CXX/except/except.spec/p5-virtual.cpp +++ b/test/CXX/except/except.spec/p5-virtual.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // Compatibility of virtual functions. diff --git a/test/CXX/except/except.spec/p9-dynamic.cpp b/test/CXX/except/except.spec/p9-dynamic.cpp index 3f496f25c9ba2..4559e0d467b10 100644 --- a/test/CXX/except/except.spec/p9-dynamic.cpp +++ b/test/CXX/except/except.spec/p9-dynamic.cpp @@ -7,5 +7,6 @@ void target() throw(int) // CHECK: invoke void @_Z8externalv() external(); } -// CHECK: call i32 (i8*, i8*, ...)* @llvm.eh.selector({{.*}} i8* bitcast (i8** @_ZTIi to i8*)) nounwind -// CHECK: call void @__cxa_call_unexpected +// CHECK: landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) +// CHECK-NEXT: filter [1 x i8*] [i8* bitcast (i8** @_ZTIi to i8*)] +// CHECK: call void @__cxa_call_unexpected diff --git a/test/CXX/except/except.spec/p9-noexcept.cpp b/test/CXX/except/except.spec/p9-noexcept.cpp index 76ac66c841b9e..7c8d0ef1fb447 100644 --- a/test/CXX/except/except.spec/p9-noexcept.cpp +++ b/test/CXX/except/except.spec/p9-noexcept.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -std=c++0x -triple=x86_64-apple-darwin10 -emit-llvm -o - -fcxx-exceptions -fexceptions | FileCheck %s +// RUN: %clang_cc1 %s -std=c++11 -triple=x86_64-apple-darwin10 -emit-llvm -o - -fcxx-exceptions -fexceptions | FileCheck %s void external(); @@ -7,7 +7,8 @@ void target() noexcept // CHECK: invoke void @_Z8externalv() external(); } -// CHECK: call i32 (i8*, i8*, ...)* @llvm.eh.selector({{.*}} i8* null) nounwind +// CHECK: landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) +// CHECK-NEXT: catch i8* null // CHECK-NEXT: call void @_ZSt9terminatev() noreturn nounwind // CHECK-NEXT: unreachable diff --git a/test/CXX/except/except.spec/template.cpp b/test/CXX/except/except.spec/template.cpp index f8b7270344a76..805a604db5882 100644 --- a/test/CXX/except/except.spec/template.cpp +++ b/test/CXX/except/except.spec/template.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fexceptions -fcxx-exceptions -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s // We use pointer assignment compatibility to test instantiation. |
