[clang-tools-extra] Extend bugprone-use-after-move check to handle std::optional::reset() and std::any::reset() (PR #114255)
Julian Schmidt via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 5 00:22:33 PST 2024
================
@@ -279,7 +281,7 @@ void UseAfterMoveFinder::getDeclRefs(
if (DeclRef && BlockMap->blockContainingStmt(DeclRef) == Block) {
// Ignore uses of a standard smart pointer that don't dereference the
// pointer.
- if (Operator || !isStandardSmartPointer(DeclRef->getDecl())) {
+ if (Operator || !isStandardResettableOwner(DeclRef->getDecl())) {
----------------
5chmidti wrote:
Yeah, nevermind. The ignored accesses need to be correctly specified. E.g.,
```c++
void sink(int);
void foo(std::optional<int> opt) {
auto other = std::move(opt);
sink(opt.value());
}
```
would otherwise be a false negative.
https://github.com/llvm/llvm-project/pull/114255
More information about the cfe-commits
mailing list