[compiler-rt] 2f91751 - [scudo] Avoid deprecated-volatile warning in HybridMutex::delayLoop (#67135)

via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 22 10:11:21 PDT 2023


Author: Fabio D'Urso
Date: 2023-09-22T19:11:17+02:00
New Revision: 2f91751daef168ff1959ad1df2d64d7bea6b3152

URL: https://github.com/llvm/llvm-project/commit/2f91751daef168ff1959ad1df2d64d7bea6b3152
DIFF: https://github.com/llvm/llvm-project/commit/2f91751daef168ff1959ad1df2d64d7bea6b3152.diff

LOG: [scudo] Avoid deprecated-volatile warning in HybridMutex::delayLoop (#67135)

That can prevent compilation with -Werror and -std=c++20:
mutex.h:63:7: error: increment of object of volatile-qualified type 'volatile u32' (aka 'volatile unsigned int') is deprecated [-Werror,-Wdeprecated-volatile]

Added: 
    

Modified: 
    compiler-rt/lib/scudo/standalone/mutex.h

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/scudo/standalone/mutex.h b/compiler-rt/lib/scudo/standalone/mutex.h
index 38108397b1654bb..4caa945219b5233 100644
--- a/compiler-rt/lib/scudo/standalone/mutex.h
+++ b/compiler-rt/lib/scudo/standalone/mutex.h
@@ -59,8 +59,10 @@ class CAPABILITY("mutex") HybridMutex {
     // fast operations.
     constexpr u32 SpinTimes = 16;
     volatile u32 V = 0;
-    for (u32 I = 0; I < SpinTimes; ++I)
-      ++V;
+    for (u32 I = 0; I < SpinTimes; ++I) {
+      u32 Tmp = V + 1;
+      V = Tmp;
+    }
   }
 
   void assertHeldImpl();


        


More information about the llvm-commits mailing list