r202063 - Objective-C. Remove an assertion which asserts

Fariborz Jahanian fjahanian at apple.com
Mon Feb 24 11:10:38 PST 2014


Author: fjahanian
Date: Mon Feb 24 13:10:37 2014
New Revision: 202063

URL: http://llvm.org/viewvc/llvm-project?rev=202063&view=rev
Log:
Objective-C. Remove an assertion which asserts
on correctly handled block layout IRGen. 
// rdar://16111839

Modified:
    cfe/trunk/lib/CodeGen/CGObjCMac.cpp
    cfe/trunk/test/CodeGenObjC/block-var-layout.m

Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=202063&r1=202062&r2=202063&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Mon Feb 24 13:10:37 2014
@@ -2123,9 +2123,6 @@ void CGObjCCommonMac::BuildRCRecordLayou
         ElCount *= CArray->getSize().getZExtValue();
         FQT = CArray->getElementType();
       }
-      
-      assert(!FQT->isUnionType() &&
-             "layout for array of unions not supported");
       if (FQT->isRecordType() && ElCount) {
         int OldIndex = RunSkipBlockVars.size() - 1;
         const RecordType *RT = FQT->getAs<RecordType>();
@@ -4594,9 +4591,6 @@ void CGObjCCommonMac::BuildAggrIvarLayou
         ElCount *= CArray->getSize().getZExtValue();
         FQT = CArray->getElementType();
       }
-
-      assert(!FQT->isUnionType() &&
-             "layout for array of unions not supported");
       if (FQT->isRecordType() && ElCount) {
         int OldIndex = IvarsInfo.size() - 1;
         int OldSkIndex = SkipIvars.size() -1;

Modified: cfe/trunk/test/CodeGenObjC/block-var-layout.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/block-var-layout.m?rev=202063&r1=202062&r2=202063&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenObjC/block-var-layout.m (original)
+++ cfe/trunk/test/CodeGenObjC/block-var-layout.m Mon Feb 24 13:10:37 2014
@@ -164,3 +164,11 @@ void test_empty_block() {
   };
  wrapperBlock();
 }
+
+// rdar://16111839
+typedef union { char ch[8];  } SS;
+typedef struct { SS s[4]; } CS;
+void test_union_in_layout() {
+  CS cs;
+  ^{ cs; };
+}





More information about the cfe-commits mailing list