diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2014-02-24 19:10:37 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-02-24 19:10:37 +0000 |
commit | a7352db7b42f284a3df651b2450a734542e104ed (patch) | |
tree | 16621d40bc49c95e6aca8ac018f4931da9333ac4 | |
parent | 3c5d3339be0eb6a6b6b58033b24d613c46c4d4d3 (diff) | |
download | bcm5719-llvm-a7352db7b42f284a3df651b2450a734542e104ed.tar.gz bcm5719-llvm-a7352db7b42f284a3df651b2450a734542e104ed.zip |
Objective-C. Remove an assertion which asserts
on correctly handled block layout IRGen.
// rdar://16111839
llvm-svn: 202063
-rw-r--r-- | clang/lib/CodeGen/CGObjCMac.cpp | 6 | ||||
-rw-r--r-- | clang/test/CodeGenObjC/block-var-layout.m | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 7b7c1ef7466..99bd35f0fb7 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -2123,9 +2123,6 @@ void CGObjCCommonMac::BuildRCRecordLayout(const llvm::StructLayout *RecLayout, 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::BuildAggrIvarLayout(const ObjCImplementationDecl *OI, 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; diff --git a/clang/test/CodeGenObjC/block-var-layout.m b/clang/test/CodeGenObjC/block-var-layout.m index 0ad44daa0bd..171df7b2748 100644 --- a/clang/test/CodeGenObjC/block-var-layout.m +++ b/clang/test/CodeGenObjC/block-var-layout.m @@ -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; }; +} |