[clang] [Thread Analysis] Fix a bug in context update in alias-analysis (PR #178952)

Ziqing Luo via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 17 12:16:53 PST 2026


================
@@ -7493,7 +7493,32 @@ void testPointerAliasEscapeMultiple(Foo *F) {
     escapeAliasMultiple(&L, &L, &Fp);
     Fp->mu.Unlock(); // expected-warning{{releasing mutex 'Fp->mu' that was not held}}
 } // expected-warning{{mutex 'F->mu' is still held at the end of function}}
-  
+
+void unlockFooWithEscapablePointer(Foo **Fp) EXCLUSIVE_UNLOCK_FUNCTION((*Fp)->mu);
+void testEscapeInvalidationHappensRightAfterTheCall(Foo* F) {
+    Foo* L;
+    L = F;
+    L->mu.Lock();
+    // Release the lock held by 'L' before clearing its definition.
+    unlockFooWithEscapablePointer(&L);
----------------
ziqingluo-90 wrote:

Created https://github.com/llvm/llvm-project/pull/181896.  Will merge after tests pass.

https://github.com/llvm/llvm-project/pull/178952


More information about the cfe-commits mailing list