[clang] Thread Safety Analysis: Improved pointer handling (PR #127396)
Aaron Puchert via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 25 16:56:49 PST 2025
================
@@ -4944,6 +4949,14 @@ class Foo {
(*datap2_)[0] = 0; // expected-warning {{reading the value pointed to by 'datap2_' requires holding mutex 'mu_'}}
data_(); // expected-warning {{reading variable 'data_' requires holding mutex 'mu_'}}
+
+ // Calls operator&, and does not take the address.
+ (void)&data_ao_; // expected-warning {{reading variable 'data_ao_' requires holding mutex 'mu_'}}
+ (void)__builtin_addressof(data_ao_); // expected-warning {{passing variable 'data_ao_' by reference requires holding mutex 'mu_'}}
+ showData(&data_ao_); // expected-warning {{reading variable 'data_ao_' requires holding mutex 'mu_'}}
+ (void)&data_; // no warning
+ (void)datap2_; // no warning
+ showData(&data_); // expected-warning {{passing pointer to variable 'data_' requires holding mutex 'mu_'}}
----------------
aaronpuchert wrote:
This doesn't belong here, because we're not calling overloaded operators in these cases.
https://github.com/llvm/llvm-project/pull/127396
More information about the cfe-commits
mailing list