diff options
| author | Reid Kleckner <reid@kleckner.net> | 2014-07-11 00:16:51 +0000 |
|---|---|---|
| committer | Reid Kleckner <reid@kleckner.net> | 2014-07-11 00:16:51 +0000 |
| commit | 675d438e236f8a79453351512c305363b9dcceda (patch) | |
| tree | d07137fb086ad0243f7f3a2adff804f0ebe8378d | |
| parent | 0ab4b48992cec1101c32e60a33d2d3c2503058f8 (diff) | |
| download | bcm5719-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.cpp | 13 |
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); } } |

