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