diff options
author | Erik Pilkington <erik.pilkington@gmail.com> | 2019-01-14 19:17:31 +0000 |
---|---|---|
committer | Erik Pilkington <erik.pilkington@gmail.com> | 2019-01-14 19:17:31 +0000 |
commit | 0535b0f387317cc3a7c0ad75a04774efb8fce3be (patch) | |
tree | 40cc109916403ca29dcd18b9a0ad8e38e1b3712a /clang/lib/Sema/SemaDeclAttr.cpp | |
parent | 0e0ccaf7d5df6884df0317715d56b3486483f74a (diff) | |
download | bcm5719-llvm-0535b0f387317cc3a7c0ad75a04774efb8fce3be.tar.gz bcm5719-llvm-0535b0f387317cc3a7c0ad75a04774efb8fce3be.zip |
Improve a -Wunguarded-availability note
Mention the deployment target, and don't say "partial" which doesn't
really mean anything to users.
rdar://problem/33601513
Differential revision: https://reviews.llvm.org/D56523
llvm-svn: 351108
Diffstat (limited to 'clang/lib/Sema/SemaDeclAttr.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclAttr.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index bb4bb7da2fb..0e10804a2ec 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -7584,14 +7584,16 @@ static void DoEmitAvailabilityWarning(Sema &S, AvailabilityResult K, unsigned Warning = UseNewWarning ? diag::warn_unguarded_availability_new : diag::warn_unguarded_availability; - S.Diag(Loc, Warning) - << OffendingDecl - << AvailabilityAttr::getPrettyPlatformName( - S.getASTContext().getTargetInfo().getPlatformName()) - << Introduced.getAsString(); + std::string PlatformName = AvailabilityAttr::getPrettyPlatformName( + S.getASTContext().getTargetInfo().getPlatformName()); - S.Diag(OffendingDecl->getLocation(), diag::note_availability_specified_here) - << OffendingDecl << /* partial */ 3; + S.Diag(Loc, Warning) << OffendingDecl << PlatformName + << Introduced.getAsString(); + + S.Diag(OffendingDecl->getLocation(), + diag::note_partial_availability_specified_here) + << OffendingDecl << PlatformName << Introduced.getAsString() + << S.Context.getTargetInfo().getPlatformMinVersion().getAsString(); if (const auto *Enclosing = findEnclosingDeclToAnnotate(Ctx)) { if (const auto *TD = dyn_cast<TagDecl>(Enclosing)) @@ -8045,15 +8047,18 @@ void DiagnoseUnguardedAvailability::DiagnoseDeclAvailability( ? diag::warn_unguarded_availability_new : diag::warn_unguarded_availability; + std::string PlatformName = AvailabilityAttr::getPrettyPlatformName( + SemaRef.getASTContext().getTargetInfo().getPlatformName()); + SemaRef.Diag(Range.getBegin(), DiagKind) - << Range << D - << AvailabilityAttr::getPrettyPlatformName( - SemaRef.getASTContext().getTargetInfo().getPlatformName()) - << Introduced.getAsString(); + << Range << D << PlatformName << Introduced.getAsString(); SemaRef.Diag(OffendingDecl->getLocation(), - diag::note_availability_specified_here) - << OffendingDecl << /* partial */ 3; + diag::note_partial_availability_specified_here) + << OffendingDecl << PlatformName << Introduced.getAsString() + << SemaRef.Context.getTargetInfo() + .getPlatformMinVersion() + .getAsString(); auto FixitDiag = SemaRef.Diag(Range.getBegin(), diag::note_unguarded_available_silence) |