diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-01-12 01:01:06 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-01-12 01:01:06 +0000 |
| commit | d60589ad39a73f8de2f9f0a4e5b78ef7b1a8f8f9 (patch) | |
| tree | c56537a658f3a7a71cc8e9da573b02ec658ca80e /clang/test/SemaCXX/linkage2.cpp | |
| parent | 3309d881989abe5fb630631ccd7333daa3c1707a (diff) | |
| download | bcm5719-llvm-d60589ad39a73f8de2f9f0a4e5b78ef7b1a8f8f9.tar.gz bcm5719-llvm-d60589ad39a73f8de2f9f0a4e5b78ef7b1a8f8f9.zip | |
Add a test from pr14898.
llvm-svn: 172283
Diffstat (limited to 'clang/test/SemaCXX/linkage2.cpp')
| -rw-r--r-- | clang/test/SemaCXX/linkage2.cpp | 23 |
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&>(); + } +} |

