summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Decl.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-06-11 14:29:58 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-06-11 14:29:58 +0000
commita486f48e5b1e265885f5b197f2aa5e226efc30d2 (patch)
tree863b01061017e75dd94e6304b40dbe6f46202b1d /clang/lib/AST/Decl.cpp
parent1162fa0a978c9eb86b702341d9dd85cd5d830ddf (diff)
downloadbcm5719-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.cpp8
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)
OpenPOWER on IntegriCloud