diff options
author | Clement Courbet <courbet@google.com> | 2023-09-29 13:11:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-29 13:11:04 +0200 |
commit | 6dd96d6e80e9b3679a6161c590c60e0e99549b89 (patch) | |
tree | 40a04ccb40854e149c2d5763be0c36bd9a3d9ced /llvm/lib/Transforms/Utils/CloneFunction.cpp | |
parent | 336b7a256bf886055c3040d09480900a9bdfb68a (diff) | |
download | llvm-6dd96d6e80e9b3679a6161c590c60e0e99549b89.zip llvm-6dd96d6e80e9b3679a6161c590c60e0e99549b89.tar.gz llvm-6dd96d6e80e9b3679a6161c590c60e0e99549b89.tar.bz2 |
[clang analysis][thread-safety] Handle return-by-reference... (#67776)
...of guarded variables, when the function is not marked as requiring
locks:
```
class Return {
Mutex mu;
Foo foo GUARDED_BY(mu);
Foo &returns_ref_locked() {
MutexLock lock(&mu);
return foo; // BAD
}
Foo &returns_ref_locks_required() SHARED_LOCKS_REQUIRED(mu) {
return foo; // OK
}
};
```
Review on Phabricator: https://reviews.llvm.org/D153131
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneFunction.cpp')
0 files changed, 0 insertions, 0 deletions