diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-06-11 14:29:58 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-06-11 14:29:58 +0000 |
commit | edb4b626130cc8268b1d7a3f9a9fdc7fb4c3a2bb (patch) | |
tree | a26267f1afdf5dd02f68990e18e6f5f4414f0b4c /lib/AST/Decl.cpp | |
parent | 74bb710e73229ce0ad3bb27c8689c0276e8ec131 (diff) |
We were computing the visibility and linkage of template parameters, but
only using the linkage.
Use and test both, documenting that considering the visibility and linkage
of template parameters is a difference from gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158309 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r-- | lib/AST/Decl.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 3a00291816..ab7ff116dd 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -381,7 +381,7 @@ static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, LinkageInfo ArgsLV = getLVForTemplateArgumentList(templateArgs, OnlyTemplate); if (shouldConsiderTemplateVis(Function, specInfo)) { - LV.merge(TempLV); + LV.mergeWithMin(TempLV); LV.mergeWithMin(ArgsLV); } else { LV.mergeLinkage(TempLV); @@ -412,7 +412,7 @@ static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, LinkageInfo ArgsLV = getLVForTemplateArgumentList(TemplateArgs, OnlyTemplate); if (shouldConsiderTemplateVis(spec)) { - LV.merge(TempLV); + LV.mergeWithMin(TempLV); LV.mergeWithMin(ArgsLV); } else { LV.mergeLinkage(TempLV); @@ -544,7 +544,7 @@ static LinkageInfo getLVForClassMember(const NamedDecl *D, bool OnlyTemplate) { if (shouldConsiderTemplateVis(MD, spec)) { LV.mergeWithMin(ArgsLV); if (!OnlyTemplate) - LV.merge(ParamsLV); + LV.mergeWithMin(ParamsLV); } else { LV.mergeLinkage(ArgsLV); if (!OnlyTemplate) @@ -569,7 +569,7 @@ static LinkageInfo getLVForClassMember(const NamedDecl *D, bool OnlyTemplate) { if (shouldConsiderTemplateVis(spec)) { LV.mergeWithMin(ArgsLV); if (!OnlyTemplate) - LV.merge(ParamsLV); + LV.mergeWithMin(ParamsLV); } else { LV.mergeLinkage(ArgsLV); if (!OnlyTemplate) |