aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-12-02 19:20:19 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-12-02 19:20:19 +0000
commit545937e1be2eb318dc3c8db284ab27a64c51c773 (patch)
tree2094a515cd4d327c4154dddf013798d1b7737209 /test/SemaCXX
parent17c7957f023f02fc2c88f51f8908c19b52609275 (diff)
downloadsrc-545937e1be2eb318dc3c8db284ab27a64c51c773.tar.gz
src-545937e1be2eb318dc3c8db284ab27a64c51c773.zip
Notes
Notes: svn path=/vendor/clang/dist/; revision=309429 svn path=/vendor/clang/clang-release_39-r288513/dist/; revision=309814; tag=vendor/clang/clang-release_39-r288847
Diffstat (limited to 'test/SemaCXX')
-rw-r--r--test/SemaCXX/cxx11-crashes.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/SemaCXX/cxx11-crashes.cpp b/test/SemaCXX/cxx11-crashes.cpp
index 97c959454c35..7c455eecd5fa 100644
--- a/test/SemaCXX/cxx11-crashes.cpp
+++ b/test/SemaCXX/cxx11-crashes.cpp
@@ -91,3 +91,15 @@ void test(int some_number) { // expected-note {{'some_number' declared here}}
Foo(lambda);
}
}
+
+namespace pr29091 {
+ struct X{ X(const X &x); };
+ struct Y: X { using X::X; };
+ bool foo() { return __has_nothrow_constructor(Y); }
+ bool bar() { return __has_nothrow_copy(Y); }
+
+ struct A { template <typename T> A(); };
+ struct B : A { using A::A; };
+ bool baz() { return __has_nothrow_constructor(B); }
+ bool qux() { return __has_nothrow_copy(B); }
+}