[PATCH] D24620: Fix autoupgrade logic for Objective-C class properties module flag

Mehdi AMINI via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 15 17:46:55 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL281685: Fix autoupgrade logic for Objective-C class properties module flag (authored by mehdi_amini).

Changed prior to commit:
  https://reviews.llvm.org/D24620?vs=71538&id=71580#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D24620

Files:
  llvm/trunk/lib/IR/AutoUpgrade.cpp
  llvm/trunk/test/Bitcode/upgrade-module-flag.ll
  llvm/trunk/test/Linker/Inputs/objectivec-class-property-flag-mismatch.ll
  llvm/trunk/test/Linker/objectivec-class-property-flag-mismatch.ll

Index: llvm/trunk/test/Linker/Inputs/objectivec-class-property-flag-mismatch.ll
===================================================================
--- llvm/trunk/test/Linker/Inputs/objectivec-class-property-flag-mismatch.ll
+++ llvm/trunk/test/Linker/Inputs/objectivec-class-property-flag-mismatch.ll
@@ -0,0 +1,5 @@
+
+!llvm.module.flags = !{!0, !1}
+
+!0 = !{i32 1, !"Objective-C Image Info Version", i32 0}
+!1 = !{i32 1, !"Objective-C Class Properties", i32 64}
Index: llvm/trunk/test/Linker/objectivec-class-property-flag-mismatch.ll
===================================================================
--- llvm/trunk/test/Linker/objectivec-class-property-flag-mismatch.ll
+++ llvm/trunk/test/Linker/objectivec-class-property-flag-mismatch.ll
@@ -0,0 +1,16 @@
+; RUN: llvm-as < %s -o %t1.bc
+; RUN: llvm-as < %p/Inputs/objectivec-class-property-flag-mismatch.ll -o %t2.bc
+
+
+; RUN: llvm-link %t1.bc %t2.bc -S | FileCheck %s
+; RUN: llvm-link %t2.bc %t1.bc -S | FileCheck %s
+
+
+; CHECK: !0 = !{i32 1, !"Objective-C Image Info Version", i32 0}
+; CHECK: !1 = !{i32 4, !"Objective-C Class Properties", i32 0}
+
+
+
+!llvm.module.flags = !{!0}
+
+!0 = !{i32 1, !"Objective-C Image Info Version", i32 0}
Index: llvm/trunk/test/Bitcode/upgrade-module-flag.ll
===================================================================
--- llvm/trunk/test/Bitcode/upgrade-module-flag.ll
+++ llvm/trunk/test/Bitcode/upgrade-module-flag.ll
@@ -6,4 +6,4 @@
 !0 = !{i32 1, !"Objective-C Image Info Version", i32 0}
 
 ; CHECK: !0 = !{i32 1, !"Objective-C Image Info Version", i32 0}
-; CHECK: !1 = !{i32 1, !"Objective-C Class Properties", i32 0}
+; CHECK: !1 = !{i32 4, !"Objective-C Class Properties", i32 0}
Index: llvm/trunk/lib/IR/AutoUpgrade.cpp
===================================================================
--- llvm/trunk/lib/IR/AutoUpgrade.cpp
+++ llvm/trunk/lib/IR/AutoUpgrade.cpp
@@ -1587,11 +1587,11 @@
   }
   // "Objective-C Class Properties" is recently added for Objective-C. We
   // upgrade ObjC bitcodes to contain a "Objective-C Class Properties" module
-  // flag of value 0, so we can correclty report error when trying to link
-  // an ObjC bitcode without this module flag with an ObjC bitcode with this
-  // module flag.
+  // flag of value 0, so we can correclty downgrade this flag when trying to
+  // link an ObjC bitcode without this module flag with an ObjC bitcode with
+  // this module flag.
   if (HasObjCFlag && !HasClassProperties) {
-    M.addModuleFlag(llvm::Module::Error, "Objective-C Class Properties",
+    M.addModuleFlag(llvm::Module::Override, "Objective-C Class Properties",
                     (uint32_t)0);
     return true;
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24620.71580.patch
Type: text/x-patch
Size: 2676 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160916/41565829/attachment.bin>


More information about the llvm-commits mailing list