theraven updated this revision to Diff 550295.
theraven added a comment.

Update test.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157962/new/

https://reviews.llvm.org/D157962

Files:
  clang/lib/CodeGen/CGObjCGNU.cpp
  clang/test/CodeGenObjC/gnu-init.m


Index: clang/test/CodeGenObjC/gnu-init.m
===================================================================
--- clang/test/CodeGenObjC/gnu-init.m
+++ clang/test/CodeGenObjC/gnu-init.m
@@ -52,7 +52,8 @@
 // CHECK-NEW: @.objc_null_class_alias = linkonce_odr hidden global { ptr, ptr 
} zeroinitializer, section "__objc_class_aliases", comdat, align 8
 // CHECK-NEW: @.objc_null_constant_string = linkonce_odr hidden global { ptr, 
i32, i32, i32, i32, ptr } zeroinitializer, section "__objc_constant_string", 
comdat, align 8
 // Make sure that the null symbols are not going to be removed, even by 
linking.
-// CHECK-NEW: @llvm.used = appending global [8 x ptr] [ptr 
@._OBJC_INIT_CLASS_X, ptr @.objc_ctor, ptr @.objc_null_selector, ptr 
@.objc_null_category, ptr @.objc_null_protocol, ptr @.objc_null_protocol_ref, 
ptr @.objc_null_class_alias, ptr @.objc_null_constant_string], section 
"llvm.metadata"
+// CHECK-NEW: @llvm.used = appending global [10 x ptr] [ptr 
@._OBJC_INIT_CLASS_X, ptr @.objc_ctor, ptr @.objc_null_selector, ptr 
@.objc_null_category, ptr @.objc_null_cls_init_ref, ptr @.objc_null_class_ref, 
ptr @.objc_null_protocol, ptr @.objc_null_protocol_ref, ptr 
@.objc_null_class_alias, ptr @.objc_null_constant_string], section 
"llvm.metadata"
+
 // Make sure that the load function and the reference to it are marked as used.
 // CHECK-NEW: @llvm.compiler.used = appending global [1 x ptr] [ptr 
@.objcv2_load_function], section "llvm.metadata"
 
Index: clang/lib/CodeGen/CGObjCGNU.cpp
===================================================================
--- clang/lib/CodeGen/CGObjCGNU.cpp
+++ clang/lib/CodeGen/CGObjCGNU.cpp
@@ -1614,32 +1614,24 @@
     if (!CGM.getTriple().isOSBinFormatCOFF()) {
       createNullGlobal(".objc_null_selector", {NULLPtr, NULLPtr},
           sectionName<SelectorSection>());
-      if (Categories.empty())
-        createNullGlobal(".objc_null_category", {NULLPtr, NULLPtr,
-                      NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr},
-            sectionName<CategorySection>());
-      if (!EmittedClass) {
-        createNullGlobal(".objc_null_cls_init_ref", NULLPtr,
-            sectionName<ClassSection>());
-        createNullGlobal(".objc_null_class_ref", { NULLPtr, NULLPtr },
-            sectionName<ClassReferenceSection>());
-      }
-      if (!EmittedProtocol)
-        createNullGlobal(".objc_null_protocol", {NULLPtr, NULLPtr, NULLPtr,
-            NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr,
-            NULLPtr}, sectionName<ProtocolSection>());
-      if (!EmittedProtocolRef)
-        createNullGlobal(".objc_null_protocol_ref", {NULLPtr},
-            sectionName<ProtocolReferenceSection>());
-      if (ClassAliases.empty())
-        createNullGlobal(".objc_null_class_alias", { NULLPtr, NULLPtr },
-            sectionName<ClassAliasSection>());
-      if (ConstantStrings.empty()) {
-        auto i32Zero = llvm::ConstantInt::get(Int32Ty, 0);
-        createNullGlobal(".objc_null_constant_string", { NULLPtr, i32Zero,
-            i32Zero, i32Zero, i32Zero, NULLPtr },
-            sectionName<ConstantStringSection>());
-      }
+      createNullGlobal(".objc_null_category", {NULLPtr, NULLPtr,
+                    NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr},
+          sectionName<CategorySection>());
+      createNullGlobal(".objc_null_cls_init_ref", NULLPtr,
+          sectionName<ClassSection>());
+      createNullGlobal(".objc_null_class_ref", { NULLPtr, NULLPtr },
+          sectionName<ClassReferenceSection>());
+      createNullGlobal(".objc_null_protocol", {NULLPtr, NULLPtr, NULLPtr,
+          NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr,
+          NULLPtr}, sectionName<ProtocolSection>());
+      createNullGlobal(".objc_null_protocol_ref", {NULLPtr},
+          sectionName<ProtocolReferenceSection>());
+      createNullGlobal(".objc_null_class_alias", { NULLPtr, NULLPtr },
+          sectionName<ClassAliasSection>());
+      auto i32Zero = llvm::ConstantInt::get(Int32Ty, 0);
+      createNullGlobal(".objc_null_constant_string", { NULLPtr, i32Zero,
+          i32Zero, i32Zero, i32Zero, NULLPtr },
+          sectionName<ConstantStringSection>());
     }
     ConstantStrings.clear();
     Categories.clear();


Index: clang/test/CodeGenObjC/gnu-init.m
===================================================================
--- clang/test/CodeGenObjC/gnu-init.m
+++ clang/test/CodeGenObjC/gnu-init.m
@@ -52,7 +52,8 @@
 // CHECK-NEW: @.objc_null_class_alias = linkonce_odr hidden global { ptr, ptr } zeroinitializer, section "__objc_class_aliases", comdat, align 8
 // CHECK-NEW: @.objc_null_constant_string = linkonce_odr hidden global { ptr, i32, i32, i32, i32, ptr } zeroinitializer, section "__objc_constant_string", comdat, align 8
 // Make sure that the null symbols are not going to be removed, even by linking.
-// CHECK-NEW: @llvm.used = appending global [8 x ptr] [ptr @._OBJC_INIT_CLASS_X, ptr @.objc_ctor, ptr @.objc_null_selector, ptr @.objc_null_category, ptr @.objc_null_protocol, ptr @.objc_null_protocol_ref, ptr @.objc_null_class_alias, ptr @.objc_null_constant_string], section "llvm.metadata"
+// CHECK-NEW: @llvm.used = appending global [10 x ptr] [ptr @._OBJC_INIT_CLASS_X, ptr @.objc_ctor, ptr @.objc_null_selector, ptr @.objc_null_category, ptr @.objc_null_cls_init_ref, ptr @.objc_null_class_ref, ptr @.objc_null_protocol, ptr @.objc_null_protocol_ref, ptr @.objc_null_class_alias, ptr @.objc_null_constant_string], section "llvm.metadata"
+
 // Make sure that the load function and the reference to it are marked as used.
 // CHECK-NEW: @llvm.compiler.used = appending global [1 x ptr] [ptr @.objcv2_load_function], section "llvm.metadata"
 
Index: clang/lib/CodeGen/CGObjCGNU.cpp
===================================================================
--- clang/lib/CodeGen/CGObjCGNU.cpp
+++ clang/lib/CodeGen/CGObjCGNU.cpp
@@ -1614,32 +1614,24 @@
     if (!CGM.getTriple().isOSBinFormatCOFF()) {
       createNullGlobal(".objc_null_selector", {NULLPtr, NULLPtr},
           sectionName<SelectorSection>());
-      if (Categories.empty())
-        createNullGlobal(".objc_null_category", {NULLPtr, NULLPtr,
-                      NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr},
-            sectionName<CategorySection>());
-      if (!EmittedClass) {
-        createNullGlobal(".objc_null_cls_init_ref", NULLPtr,
-            sectionName<ClassSection>());
-        createNullGlobal(".objc_null_class_ref", { NULLPtr, NULLPtr },
-            sectionName<ClassReferenceSection>());
-      }
-      if (!EmittedProtocol)
-        createNullGlobal(".objc_null_protocol", {NULLPtr, NULLPtr, NULLPtr,
-            NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr,
-            NULLPtr}, sectionName<ProtocolSection>());
-      if (!EmittedProtocolRef)
-        createNullGlobal(".objc_null_protocol_ref", {NULLPtr},
-            sectionName<ProtocolReferenceSection>());
-      if (ClassAliases.empty())
-        createNullGlobal(".objc_null_class_alias", { NULLPtr, NULLPtr },
-            sectionName<ClassAliasSection>());
-      if (ConstantStrings.empty()) {
-        auto i32Zero = llvm::ConstantInt::get(Int32Ty, 0);
-        createNullGlobal(".objc_null_constant_string", { NULLPtr, i32Zero,
-            i32Zero, i32Zero, i32Zero, NULLPtr },
-            sectionName<ConstantStringSection>());
-      }
+      createNullGlobal(".objc_null_category", {NULLPtr, NULLPtr,
+                    NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr},
+          sectionName<CategorySection>());
+      createNullGlobal(".objc_null_cls_init_ref", NULLPtr,
+          sectionName<ClassSection>());
+      createNullGlobal(".objc_null_class_ref", { NULLPtr, NULLPtr },
+          sectionName<ClassReferenceSection>());
+      createNullGlobal(".objc_null_protocol", {NULLPtr, NULLPtr, NULLPtr,
+          NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr, NULLPtr,
+          NULLPtr}, sectionName<ProtocolSection>());
+      createNullGlobal(".objc_null_protocol_ref", {NULLPtr},
+          sectionName<ProtocolReferenceSection>());
+      createNullGlobal(".objc_null_class_alias", { NULLPtr, NULLPtr },
+          sectionName<ClassAliasSection>());
+      auto i32Zero = llvm::ConstantInt::get(Int32Ty, 0);
+      createNullGlobal(".objc_null_constant_string", { NULLPtr, i32Zero,
+          i32Zero, i32Zero, i32Zero, NULLPtr },
+          sectionName<ConstantStringSection>());
     }
     ConstantStrings.clear();
     Categories.clear();
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D157962: [GNU ObjC]... David Chisnall via Phabricator via cfe-commits
    • [PATCH] D157962: [GNU ... David Chisnall via Phabricator via cfe-commits

Reply via email to