[clang] 40fdf5e - Thread Safety Analysis: Add more complex cleanup attribute test (#179049)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Jan 31 09:17:00 PST 2026
Author: Marco Elver
Date: 2026-01-31T18:16:55+01:00
New Revision: 40fdf5e33a8db328bee9fd73f03ad8ec8394a922
URL: https://github.com/llvm/llvm-project/commit/40fdf5e33a8db328bee9fd73f03ad8ec8394a922
DIFF: https://github.com/llvm/llvm-project/commit/40fdf5e33a8db328bee9fd73f03ad8ec8394a922.diff
LOG: Thread Safety Analysis: Add more complex cleanup attribute test (#179049)
Test that cleanup attribute is handled correctly in the presence of a
unary operator before scope end.
NFC.
Added:
Modified:
clang/test/Sema/warn-thread-safety-analysis.c
Removed:
################################################################################
diff --git a/clang/test/Sema/warn-thread-safety-analysis.c b/clang/test/Sema/warn-thread-safety-analysis.c
index 53594609e902d..69ec109e1523c 100644
--- a/clang/test/Sema/warn-thread-safety-analysis.c
+++ b/clang/test/Sema/warn-thread-safety-analysis.c
@@ -192,6 +192,12 @@ int main(void) {
struct Mutex* const __attribute__((unused, cleanup(unlock_scope))) scope = &mu1;
mutex_exclusive_lock(&mu1); // With basic alias analysis lock through mu1 also works.
}
+ {
+ int i = 0;
+ mutex_exclusive_lock(&mu1);
+ struct Mutex* const __attribute__((unused, cleanup(unlock_scope))) scope = &mu1;
+ i++;
+ }
// Cleanup through cast alias pointer in a for-loop; a variant of this pattern
// appears in the Linux kernel for generic scoped guard macros.
for (int i = (mutex_exclusive_lock(foo_.mu_), 0),
More information about the cfe-commits
mailing list