diff options
Diffstat (limited to 'clang/test/Modules')
| -rw-r--r-- | clang/test/Modules/Inputs/cxx-templates-a.h | 2 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/cxx-templates-b.h | 6 | ||||
| -rw-r--r-- | clang/test/Modules/cxx-templates.cpp | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/cxx-templates-a.h b/clang/test/Modules/Inputs/cxx-templates-a.h index aaafc1b1bdb..dbf12dacbae 100644 --- a/clang/test/Modules/Inputs/cxx-templates-a.h +++ b/clang/test/Modules/Inputs/cxx-templates-a.h @@ -22,3 +22,5 @@ template<typename T> void PerformDelayedLookup(T &t) { } template<typename T> void PerformDelayedLookupInDefaultArgument(T &t, int a = (FoundByADL(T()), 0)) {} + +template<typename T> struct RedeclaredAsFriend {}; diff --git a/clang/test/Modules/Inputs/cxx-templates-b.h b/clang/test/Modules/Inputs/cxx-templates-b.h index 36d7d78c130..9bc76d5bbae 100644 --- a/clang/test/Modules/Inputs/cxx-templates-b.h +++ b/clang/test/Modules/Inputs/cxx-templates-b.h @@ -29,6 +29,12 @@ template<typename T> void UseDefinedInBImpl() { extern DefinedInBImpl &defined_in_b_impl; +template<typename T> +struct RedeclareTemplateAsFriend { + template<typename U> + friend struct RedeclaredAsFriend; +}; + @import cxx_templates_a; template<typename T> void UseDefinedInBImplIndirectly(T &v) { PerformDelayedLookup(v); diff --git a/clang/test/Modules/cxx-templates.cpp b/clang/test/Modules/cxx-templates.cpp index 79052dd34bb..0949436b5d8 100644 --- a/clang/test/Modules/cxx-templates.cpp +++ b/clang/test/Modules/cxx-templates.cpp @@ -71,6 +71,10 @@ void g() { PerformDelayedLookup(defined_in_b_impl); // expected-note {{in instantiation of}} } +RedeclaredAsFriend<int> raf1; +RedeclareTemplateAsFriend<double> rtaf; +RedeclaredAsFriend<double> raf2; + @import cxx_templates_common; typedef SomeTemplate<int*> SomeTemplateIntPtr; |

