[cfe-commits] r139368 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/AnalysisBasedWarnings.cpp test/SemaCXX/warn-thread-safety-analysis.cpp
Caitlin Sadowski
supertri at google.com
Fri Sep 9 09:07:55 PDT 2011
Author: supertri
Date: Fri Sep 9 11:07:55 2011
New Revision: 139368
URL: http://llvm.org/viewvc/llvm-project?rev=139368&view=rev
Log:
Thread safety: refactoring test cases
Modified:
cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp
cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp
Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=139368&r1=139367&r2=139368&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Fri Sep 9 11:07:55 2011
@@ -1414,16 +1414,10 @@
"%select{reading|writing}2 variable '%0' requires lock on '%1' to be "
"%select{held|held exclusively}2">,
InGroup<ThreadSafety>, DefaultIgnore;
-def warn_variable_requires_any_lock : Warning<
- "accessing variable '%0' requires some lock">,
- InGroup<ThreadSafety>, DefaultIgnore;
def warn_var_deref_requires_lock : Warning<
"%select{reading|writing}2 the value pointed to by '%0' requires lock on '%1'"
" to be %select{held|held exclusively}2">,
InGroup<ThreadSafety>, DefaultIgnore;
-def warn_var_deref_requires_any_lock : Warning<
- "accessing the value pointed to by '%0' requires some lock">,
- InGroup<ThreadSafety>, DefaultIgnore;
def warn_fun_requires_lock : Warning<
"calling function '%0' requires %select{shared|exclusive}2 lock on '%1'">,
InGroup<ThreadSafety>, DefaultIgnore;
Modified: cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp?rev=139368&r1=139367&r2=139368&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp (original)
+++ cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp Fri Sep 9 11:07:55 2011
@@ -732,20 +732,9 @@
void handleNoMutexHeld(const NamedDecl *D, ProtectedOperationKind POK,
AccessKind AK, SourceLocation Loc) {
- unsigned DiagID;
- switch (POK) {
- case POK_VarAccess:
- DiagID = diag::warn_variable_requires_any_lock;
- break;
- case POK_VarDereference:
- DiagID = diag::warn_var_deref_requires_any_lock;
- break;
- default:
- return;
- break;
- }
- PartialDiagnostic Warning = S.PDiag(DiagID) << D->getName();
- Warnings.push_back(DelayedDiag(Loc, Warning));
+ // FIXME: It would be nice if this case printed without single quotes around
+ // the phrase 'any mutex'
+ handleMutexNotHeld(D, POK, "any mutex", getLockKindFromAccessKind(AK), Loc);
}
void handleMutexNotHeld(const NamedDecl *D, ProtectedOperationKind POK,
Modified: cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp?rev=139368&r1=139367&r2=139368&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp (original)
+++ cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp Fri Sep 9 11:07:55 2011
@@ -345,12 +345,12 @@
void gb_bad_0() {
sls_guard_var = 1; // \
- // expected-warning{{accessing variable 'sls_guard_var' requires some lock}}
+ // expected-warning{{writing variable 'sls_guard_var' requires lock on 'any mutex' to be held exclusively}}
}
void gb_bad_1() {
int x = sls_guard_var; // \
- // expected-warning{{accessing variable 'sls_guard_var' requires some lock}}
+ // expected-warning{{reading variable 'sls_guard_var' requires lock on 'any mutex' to be held}}
}
void gb_bad_2() {
@@ -365,12 +365,12 @@
void gb_bad_4() {
*pgb_gvar = 1; // \
- // expected-warning {{accessing the value pointed to by 'pgb_gvar' requires some lock}}
+ // expected-warning {{writing the value pointed to by 'pgb_gvar' requires lock on 'any mutex' to be held exclusively}}
}
void gb_bad_5() {
int x = *pgb_gvar; // \
- // expected-warning {{accessing the value pointed to by 'pgb_gvar' requires some lock}}
+ // expected-warning {{reading the value pointed to by 'pgb_gvar' requires lock on 'any mutex' to be held}}
}
void gb_bad_6() {
@@ -391,13 +391,13 @@
void gb_bad_9() {
sls_guard_var++; // \
- // expected-warning{{accessing variable 'sls_guard_var' requires some lock}}
+ // expected-warning{{writing variable 'sls_guard_var' requires lock on 'any mutex' to be held exclusively}}
sls_guard_var--; // \
- // expected-warning{{accessing variable 'sls_guard_var' requires some lock}}
+ // expected-warning{{writing variable 'sls_guard_var' requires lock on 'any mutex' to be held exclusively}}
++sls_guard_var; // \
- // expected-warning{{accessing variable 'sls_guard_var' requires some lock}}
- --sls_guard_var; // \
- // expected-warning{{accessing variable 'sls_guard_var' requires some lock}}
+ // expected-warning{{writing variable 'sls_guard_var' requires lock on 'any mutex' to be held exclusively}}
+ --sls_guard_var;// \
+ // expected-warning{{writing variable 'sls_guard_var' requires lock on 'any mutex' to be held exclusively}}
}
//-----------------------------------------------//
More information about the cfe-commits
mailing list