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 | a486f48e5b1e265885f5b197f2aa5e226efc30d2 (patch) | |
tree | 863b01061017e75dd94e6304b40dbe6f46202b1d /clang/lib/AST/Decl.cpp | |
parent | 1162fa0a978c9eb86b702341d9dd85cd5d830ddf (diff) | |
download | bcm5719-llvm-a486f48e5b1e265885f5b197f2aa5e226efc30d2.tar.gz bcm5719-llvm-a486f48e5b1e265885f5b197f2aa5e226efc30d2.zip |
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.
llvm-svn: 158309
Diffstat (limited to 'clang/lib/AST/Decl.cpp')
-rw-r--r-- | clang/lib/AST/Decl.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 3a002918163..ab7ff116dd8 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/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) |