diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-12-10 18:13:52 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-12-10 18:13:52 +0000 |
commit | 5b747a169e16e284af8310e4541a1c222f7484c9 (patch) | |
tree | 047d466514ac6840444747ad4e26a49f4c1a5133 /clang/test/SemaCXX/exception-spec.cpp | |
parent | b5b60ea4f9b4f281d1cae41cfc6b0ea4ec2f643b (diff) | |
download | bcm5719-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.cpp | 17 |
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&); + }; +}; |