diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-10-10 22:37:41 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-10-10 22:37:41 +0000 |
| commit | 337f7c971654d127adde6ed7232bba5b2ad86ff2 (patch) | |
| tree | f313a7db260f633708074de7163b22a0ba63cc86 /clang/test/Modules/Inputs | |
| parent | a8dd73229ebde88a130ad7b5fd668bf3593a8c58 (diff) | |
| download | bcm5719-llvm-337f7c971654d127adde6ed7232bba5b2ad86ff2.tar.gz bcm5719-llvm-337f7c971654d127adde6ed7232bba5b2ad86ff2.zip | |
[modules] Delay loading the field declared with an anonymous tag declaration
until after we've had a chance to merge that tag.
llvm-svn: 219539
Diffstat (limited to 'clang/test/Modules/Inputs')
| -rw-r--r-- | clang/test/Modules/Inputs/cxx-templates-a.h | 8 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/cxx-templates-c.h | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/cxx-templates-a.h b/clang/test/Modules/Inputs/cxx-templates-a.h index c2ce74d195b..92333b377a1 100644 --- a/clang/test/Modules/Inputs/cxx-templates-a.h +++ b/clang/test/Modules/Inputs/cxx-templates-a.h @@ -89,3 +89,11 @@ typedef PartiallyInstantiatePartialSpec<int*> PartiallyInstantiatePartialSpecHel void InstantiateWithAliasTemplate(WithAliasTemplate<int>::X<char>); inline int InstantiateWithAnonymousDeclsA(WithAnonymousDecls<int> x) { return (x.k ? x.a : x.b) + (x.k ? x.s.c : x.s.d) + x.e; } inline int InstantiateWithAnonymousDeclsB2(WithAnonymousDecls<char> x); + + +template<typename T1 = int> +struct MergeAnonUnionMember { + MergeAnonUnionMember() { (void)values.t1; } + union { int t1; } values; +}; +inline MergeAnonUnionMember<> maum_a() { return {}; } diff --git a/clang/test/Modules/Inputs/cxx-templates-c.h b/clang/test/Modules/Inputs/cxx-templates-c.h index 6daffadc6ce..6b4c5066706 100644 --- a/clang/test/Modules/Inputs/cxx-templates-c.h +++ b/clang/test/Modules/Inputs/cxx-templates-c.h @@ -11,3 +11,10 @@ template<typename T> struct MergeTemplateDefinitions { static constexpr int g(); }; template<typename T> constexpr int MergeTemplateDefinitions<T>::g() { return 2; } + +template<typename T1 = int> +struct MergeAnonUnionMember { + MergeAnonUnionMember() { (void)values.t1; } + union { int t1; } values; +}; +inline MergeAnonUnionMember<> maum_c() { return {}; } |

