summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorDeLesley Hutchins <delesley@google.com>2014-08-04 22:13:06 +0000
committerDeLesley Hutchins <delesley@google.com>2014-08-04 22:13:06 +0000
commit3efd0495a0813896e1559e532c5d9e581dd48c0e (patch)
treedb83f7025f70edd741cc9ff85947befeaaee3a05 /clang/lib/Sema
parent53533e885a1b82d7eb88e7e0840012c52524af7e (diff)
downloadbcm5719-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.cpp9
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)
OpenPOWER on IntegriCloud