Have Sema::CheckConstantInitList skip semantic analysis when the element type is a record (until we implement the FIXME). This removes a bogus error for the following code...
snarofflocal% cat bug.m
#import <Foundation/NSGeometry.h>
#define NUMHELICOPTERRECTS 5
static NSRect helicopterRects[NUMHELICOPTERRECTS] = {
{{27, 0}, {18, 11}}, // Bottom
{{0, 8}, {4, 11}}, // Tail
{{0, 16}, {50, 1}},
{{22, 5}, {18, 12}}, // Body
{{0, 10}, {42, 3}}
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44684 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 3d0add8..23a4e67 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -453,6 +453,9 @@
int maxElementsAtThisLevel = 0;
int nInitsAtLevel = 0;
+ if (ElementType->isRecordType()) // FIXME: until we support structures...
+ return;
+
if (const ConstantArrayType *CAT = DeclType->getAsConstantArrayType()) {
// We have a constant array type, compute maxElements *at this level*.
maxElementsAtThisLevel = CAT->getMaximumElements();