diff options
author | Aaron Puchert <aaronpuchert@alice-dsl.net> | 2021-03-27 22:50:22 +0100 |
---|---|---|
committer | Aaron Puchert <aaronpuchert@alice-dsl.net> | 2021-03-27 23:08:43 +0100 |
commit | c61ae6e6d597984e6ff7d012dce4dfd59c05d792 (patch) | |
tree | 94afc998cd5a92a9f6c965c31a2c57afbe5b4a22 /clang/lib/Analysis/ThreadSafety.cpp | |
parent | d2855eba814f6da9a33646ee1076d6f73289c7a4 (diff) | |
download | llvm-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.cpp | 12 |
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); } } |