summaryrefslogtreecommitdiffstats
path: root/test/SemaCXX/attr-noreturn.cpp
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2012-12-02 13:20:44 +0000
committerdim <dim@FreeBSD.org>2012-12-02 13:20:44 +0000
commit056abd2059c65a3e908193aeae16fad98017437c (patch)
tree2732d02d7d51218d6eed98ac7fcfc5b8794896b5 /test/SemaCXX/attr-noreturn.cpp
parentcc73504950eb7b5dff2dded9bedd67bc36d64641 (diff)
downloadFreeBSD-src-056abd2059c65a3e908193aeae16fad98017437c.zip
FreeBSD-src-056abd2059c65a3e908193aeae16fad98017437c.tar.gz
Vendor import of clang release_32 branch r168974 (effectively, 3.2 RC2):
http://llvm.org/svn/llvm-project/cfe/branches/release_32@168974
Diffstat (limited to 'test/SemaCXX/attr-noreturn.cpp')
-rw-r--r--test/SemaCXX/attr-noreturn.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/SemaCXX/attr-noreturn.cpp b/test/SemaCXX/attr-noreturn.cpp
index eaf0d0c..f3d548b 100644
--- a/test/SemaCXX/attr-noreturn.cpp
+++ b/test/SemaCXX/attr-noreturn.cpp
@@ -54,3 +54,29 @@ class xpto {
int xpto::blah() {
return 3; // expected-warning {{function 'blah' declared 'noreturn' should not return}}
}
+
+// PR12948
+
+namespace PR12948 {
+ template<int>
+ void foo() __attribute__((__noreturn__));
+
+ template<int>
+ void foo() {
+ while (1) continue;
+ }
+
+ void bar() __attribute__((__noreturn__));
+
+ void bar() {
+ foo<0>();
+ }
+
+
+ void baz() __attribute__((__noreturn__));
+ typedef void voidfn();
+ voidfn baz;
+
+ template<typename> void wibble() __attribute__((__noreturn__));
+ template<typename> voidfn wibble;
+}
OpenPOWER on IntegriCloud