diff options
| author | DeLesley Hutchins <delesley@google.com> | 2014-08-04 22:13:06 +0000 |
|---|---|---|
| committer | DeLesley Hutchins <delesley@google.com> | 2014-08-04 22:13:06 +0000 |
| commit | 3efd0495a0813896e1559e532c5d9e581dd48c0e (patch) | |
| tree | db83f7025f70edd741cc9ff85947befeaaee3a05 /clang/lib/Sema | |
| parent | 53533e885a1b82d7eb88e7e0840012c52524af7e (diff) | |
| download | bcm5719-llvm-3efd0495a0813896e1559e532c5d9e581dd48c0e.tar.gz bcm5719-llvm-3efd0495a0813896e1559e532c5d9e581dd48c0e.zip | |
Thread Safety Analysis: add a -Wthread-safety-negative flag that warns whenever
a mutex is acquired, but corresponding mutex is not provably not-held. This
is based on the earlier negative requirements patch.
llvm-svn: 214789
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/AnalysisBasedWarnings.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index d1d4c272e58..59d13de8309 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -1601,6 +1601,15 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { } } + virtual void handleNegativeNotHeld(StringRef Kind, Name LockName, Name Neg, + SourceLocation Loc) { + PartialDiagnosticAt Warning(Loc, + S.PDiag(diag::warn_acquire_requires_negative_cap) + << Kind << LockName << Neg); + Warnings.push_back(DelayedDiag(Warning, OptionalNotes())); + } + + void handleFunExcludesLock(StringRef Kind, Name FunName, Name LockName, SourceLocation Loc) override { PartialDiagnosticAt Warning(Loc, S.PDiag(diag::warn_fun_excludes_mutex) |

