summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-07-11 00:16:51 +0000
committerReid Kleckner <reid@kleckner.net>2014-07-11 00:16:51 +0000
commit675d438e236f8a79453351512c305363b9dcceda (patch)
treed07137fb086ad0243f7f3a2adff804f0ebe8378d
parent0ab4b48992cec1101c32e60a33d2d3c2503058f8 (diff)
downloadbcm5719-llvm-675d438e236f8a79453351512c305363b9dcceda.tar.gz
bcm5719-llvm-675d438e236f8a79453351512c305363b9dcceda.zip
Return a FixItHint instead of taking a diagnostic builder
Addressing review comments from r212784. llvm-svn: 212786
-rw-r--r--clang/lib/Sema/SemaDecl.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 51967627b0c..253ec39a844 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -10727,9 +10727,8 @@ bool Sema::isAcceptableTagRedeclaration(const TagDecl *Previous,
/// struct Y { friend struct /*N::*/ X; };
/// }
/// }
-static void addFriendTagNNSFixIt(Sema &SemaRef, Sema::SemaDiagnosticBuilder &D,
- NamedDecl *ND, Scope *S,
- SourceLocation NameLoc) {
+static FixItHint createFriendTagNNSFixIt(Sema &SemaRef, NamedDecl *ND, Scope *S,
+ SourceLocation NameLoc) {
// While the decl is in a namespace, do repeated lookup of that name and see
// if we get the same namespace back. If we do not, continue until
// translation unit scope, at which point we have a fully qualified NNS.
@@ -10740,7 +10739,7 @@ static void addFriendTagNNSFixIt(Sema &SemaRef, Sema::SemaDiagnosticBuilder &D,
// other namespaces. Bail if there's an anonymous namespace in the chain.
NamespaceDecl *Namespace = dyn_cast<NamespaceDecl>(DC);
if (!Namespace || Namespace->isAnonymousNamespace())
- return;
+ return FixItHint();
IdentifierInfo *II = Namespace->getIdentifier();
Namespaces.push_back(II);
NamedDecl *Lookup = SemaRef.LookupSingleName(
@@ -10759,7 +10758,7 @@ static void addFriendTagNNSFixIt(Sema &SemaRef, Sema::SemaDiagnosticBuilder &D,
for (auto *II : Namespaces)
OS << II->getName() << "::";
OS.flush();
- D << FixItHint::CreateInsertion(NameLoc, Insertion);
+ return FixItHint::CreateInsertion(NameLoc, Insertion);
}
/// ActOnTag - This is invoked when we see 'struct foo' or 'struct {'. In the
@@ -10982,8 +10981,8 @@ Decl *Sema::ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
// unambiguously found something outside the enclosing namespace.
if (Previous.isSingleResult() && FriendSawTagOutsideEnclosingNamespace) {
NamedDecl *ND = Previous.getFoundDecl();
- auto D = Diag(NameLoc, diag::ext_friend_tag_redecl_outside_namespace);
- addFriendTagNNSFixIt(*this, D, ND, S, NameLoc);
+ Diag(NameLoc, diag::ext_friend_tag_redecl_outside_namespace)
+ << createFriendTagNNSFixIt(*this, ND, S, NameLoc);
}
}
OpenPOWER on IntegriCloud