summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/exception-spec.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-12-10 18:13:52 +0000
committerDouglas Gregor <dgregor@apple.com>2009-12-10 18:13:52 +0000
commit5b747a169e16e284af8310e4541a1c222f7484c9 (patch)
tree047d466514ac6840444747ad4e26a49f4c1a5133 /clang/test/SemaCXX/exception-spec.cpp
parentb5b60ea4f9b4f281d1cae41cfc6b0ea4ec2f643b (diff)
downloadbcm5719-llvm-5b747a169e16e284af8310e4541a1c222f7484c9.tar.gz
bcm5719-llvm-5b747a169e16e284af8310e4541a1c222f7484c9.zip
Implement C++ DR437, which involves exception-specifications that name
a type currently being defined, from Nicola Gigante! llvm-svn: 91052
Diffstat (limited to 'clang/test/SemaCXX/exception-spec.cpp')
-rw-r--r--clang/test/SemaCXX/exception-spec.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/exception-spec.cpp b/clang/test/SemaCXX/exception-spec.cpp
index 56cc435f7db..efc983322ae 100644
--- a/clang/test/SemaCXX/exception-spec.cpp
+++ b/clang/test/SemaCXX/exception-spec.cpp
@@ -186,5 +186,18 @@ template <typename T> struct TEx; // expected-note {{template is declared here}}
void tf() throw(TEx<int>); // expected-error {{implicit instantiation of undefined template}}
-// DR 437, class throws itself. FIXME: See Sema::CheckSpecifiedExceptionType.
-//struct DR437 { void f() throw(DR437); };
+// DR 437, class throws itself.
+struct DR437 {
+ void f() throw(DR437);
+ void g() throw(DR437*);
+ void h() throw(DR437&);
+};
+
+// DR 437 within a nested class
+struct DR437_out {
+ struct DR437_in {
+ void f() throw(DR437_out);
+ void g() throw(DR437_out*);
+ void h() throw(DR437_out&);
+ };
+};
OpenPOWER on IntegriCloud