aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ThreadSafety.cpp
diff options
context:
space:
mode:
authorAaron Puchert <aaronpuchert@alice-dsl.net>2021-03-27 22:50:22 +0100
committerAaron Puchert <aaronpuchert@alice-dsl.net>2021-03-27 23:08:43 +0100
commitc61ae6e6d597984e6ff7d012dce4dfd59c05d792 (patch)
tree94afc998cd5a92a9f6c965c31a2c57afbe5b4a22 /clang/lib/Analysis/ThreadSafety.cpp
parentd2855eba814f6da9a33646ee1076d6f73289c7a4 (diff)
downloadllvm-c61ae6e6d597984e6ff7d012dce4dfd59c05d792.zip
llvm-c61ae6e6d597984e6ff7d012dce4dfd59c05d792.tar.gz
llvm-c61ae6e6d597984e6ff7d012dce4dfd59c05d792.tar.bz2
Deduplicate branches and adjust comment [NFC]
Currently we want to allow calling non-const methods even when only a shared lock is held, because -Wthread-safety-reference is already quite sensitive and not all code is const-correct. Even if it is, this might require users to add std::as_const around the implicit object argument. See D52395 for a discussion. Fixes PR46963.
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
-rw-r--r--clang/lib/Analysis/ThreadSafety.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp
index 21583e9..84e0e91 100644
--- a/clang/lib/Analysis/ThreadSafety.cpp
+++ b/clang/lib/Analysis/ThreadSafety.cpp
@@ -2051,15 +2051,11 @@ void BuildLockset::VisitCallExpr(const CallExpr *Exp) {
if (ME && MD) {
if (ME->isArrow()) {
- if (MD->isConst())
- checkPtAccess(CE->getImplicitObjectArgument(), AK_Read);
- else // FIXME -- should be AK_Written
- checkPtAccess(CE->getImplicitObjectArgument(), AK_Read);
+ // Should perhaps be AK_Written if !MD->isConst().
+ checkPtAccess(CE->getImplicitObjectArgument(), AK_Read);
} else {
- if (MD->isConst())
- checkAccess(CE->getImplicitObjectArgument(), AK_Read);
- else // FIXME -- should be AK_Written
- checkAccess(CE->getImplicitObjectArgument(), AK_Read);
+ // Should perhaps be AK_Written if !MD->isConst().
+ checkAccess(CE->getImplicitObjectArgument(), AK_Read);
}
}