[clang] Fix some static initialization race-conditions (PR #181367)

Richard Dzenis via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 13 07:05:57 PST 2026


================
@@ -70,16 +70,12 @@ enum FoundationClass {
 
 static FoundationClass findKnownClass(const ObjCInterfaceDecl *ID,
                                       bool IncludeSuperclasses = true) {
-  static llvm::StringMap<FoundationClass> Classes;
-  if (Classes.empty()) {
-    Classes["NSArray"] = FC_NSArray;
-    Classes["NSDictionary"] = FC_NSDictionary;
-    Classes["NSEnumerator"] = FC_NSEnumerator;
-    Classes["NSNull"] = FC_NSNull;
-    Classes["NSOrderedSet"] = FC_NSOrderedSet;
-    Classes["NSSet"] = FC_NSSet;
-    Classes["NSString"] = FC_NSString;
-  }
+  static llvm::StringMap<FoundationClass> Classes{
----------------
RIscRIpt wrote:

Thanks, done.

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


More information about the cfe-commits mailing list