diff options
author | Richard Trieu <rtrieu@google.com> | 2018-03-28 04:16:13 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2018-03-28 04:16:13 +0000 |
commit | b402580616617a5c2d80f3d1c343b8f74bd7c3b5 (patch) | |
tree | d360a3d9382d397d8da2c23771a4e3a6f56bbe55 /clang/lib/Sema/AnalysisBasedWarnings.cpp | |
parent | a95b0df5eddbe7fa1e9f8fe0b1ff62427e1c0318 (diff) | |
download | bcm5719-llvm-b402580616617a5c2d80f3d1c343b8f74bd7c3b5.tar.gz bcm5719-llvm-b402580616617a5c2d80f3d1c343b8f74bd7c3b5.zip |
Fix some handling of AST nodes with diagnostics.
The diagnostic system for Clang can already handle many AST nodes. Instead
of converting them to strings first, just hand the AST node directly to
the diagnostic system and let it handle the output. Minor changes in some
diagnostic output.
llvm-svn: 328688
Diffstat (limited to 'clang/lib/Sema/AnalysisBasedWarnings.cpp')
-rw-r--r-- | clang/lib/Sema/AnalysisBasedWarnings.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index 8397a1f936b..2903f5399a8 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -1601,7 +1601,7 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { if (Verbose && CurrentFunction) { PartialDiagnosticAt FNote(CurrentFunction->getBody()->getLocStart(), S.PDiag(diag::note_thread_warning_in_fun) - << CurrentFunction->getNameAsString()); + << CurrentFunction); return OptionalNotes(1, FNote); } return OptionalNotes(); @@ -1612,7 +1612,7 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { if (Verbose && CurrentFunction) { PartialDiagnosticAt FNote(CurrentFunction->getBody()->getLocStart(), S.PDiag(diag::note_thread_warning_in_fun) - << CurrentFunction->getNameAsString()); + << CurrentFunction); ONS.push_back(std::move(FNote)); } return ONS; @@ -1626,7 +1626,7 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { if (Verbose && CurrentFunction) { PartialDiagnosticAt FNote(CurrentFunction->getBody()->getLocStart(), S.PDiag(diag::note_thread_warning_in_fun) - << CurrentFunction->getNameAsString()); + << CurrentFunction); ONS.push_back(std::move(FNote)); } return ONS; @@ -1742,7 +1742,7 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { diag::warn_variable_requires_any_lock: diag::warn_var_deref_requires_any_lock; PartialDiagnosticAt Warning(Loc, S.PDiag(DiagID) - << D->getNameAsString() << getLockKindFromAccessKind(AK)); + << D << getLockKindFromAccessKind(AK)); Warnings.emplace_back(std::move(Warning), getNotes()); } @@ -1770,7 +1770,7 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { break; } PartialDiagnosticAt Warning(Loc, S.PDiag(DiagID) << Kind - << D->getNameAsString() + << D << LockName << LK); PartialDiagnosticAt Note(Loc, S.PDiag(diag::note_found_mutex_near_match) << *PossibleMatch); @@ -1800,12 +1800,11 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { break; } PartialDiagnosticAt Warning(Loc, S.PDiag(DiagID) << Kind - << D->getNameAsString() + << D << LockName << LK); if (Verbose && POK == POK_VarAccess) { PartialDiagnosticAt Note(D->getLocation(), - S.PDiag(diag::note_guarded_by_declared_here) - << D->getNameAsString()); + S.PDiag(diag::note_guarded_by_declared_here)); Warnings.emplace_back(std::move(Warning), getNotes(Note)); } else Warnings.emplace_back(std::move(Warning), getNotes()); |