summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-01-12 01:01:06 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-01-12 01:01:06 +0000
commitd60589ad39a73f8de2f9f0a4e5b78ef7b1a8f8f9 (patch)
treec56537a658f3a7a71cc8e9da573b02ec658ca80e /clang/test
parent3309d881989abe5fb630631ccd7333daa3c1707a (diff)
downloadbcm5719-llvm-d60589ad39a73f8de2f9f0a4e5b78ef7b1a8f8f9.tar.gz
bcm5719-llvm-d60589ad39a73f8de2f9f0a4e5b78ef7b1a8f8f9.zip
Add a test from pr14898.
llvm-svn: 172283
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/linkage2.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/linkage2.cpp b/clang/test/SemaCXX/linkage2.cpp
index 072dcd2413d..0adc7edca84 100644
--- a/clang/test/SemaCXX/linkage2.cpp
+++ b/clang/test/SemaCXX/linkage2.cpp
@@ -48,3 +48,26 @@ namespace test5 {
void g();
}
}
+
+// pr14898
+namespace test6 {
+ template <class _Rp>
+ class __attribute__ ((__visibility__("default"))) shared_future;
+ template <class _Rp>
+ class future {
+ template <class> friend class shared_future;
+ shared_future<_Rp> share();
+ };
+ template <class _Rp> future<_Rp>
+ get_future();
+ template <class _Rp>
+ struct shared_future<_Rp&> {
+ shared_future(future<_Rp&>&& __f); // expected-warning {{rvalue references are a C++11 extension}}
+ };
+ void f() {
+ typedef int T;
+ get_future<int>();
+ typedef int& U;
+ shared_future<int&> f1 = get_future<int&>();
+ }
+}
OpenPOWER on IntegriCloud