From a9c878086036de36482cc21e35a33cabe9699b0a Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 29 Jan 2009 19:42:23 +0000 Subject: Make CodeGen produce an error if we come across a non-constant initializer list that involves the GNU array-range designator extension git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63327 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGExprAgg.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/CodeGen/CGExprAgg.cpp') diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index f985763b5c..bf80b94d21 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -307,6 +307,10 @@ void AggExprEmitter::EmitNonConstInit(InitListExpr *E) { cast(DestPtr->getType()); const llvm::Type *DestType = APType->getElementType(); + if (E->hadArrayRangeDesignator()) { + CGF.ErrorUnsupported(E, "GNU array range designator extension"); + } + if (const llvm::ArrayType *AType = dyn_cast(DestType)) { unsigned NumInitElements = E->getNumInits(); @@ -397,6 +401,10 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E) { return; } #endif + if (E->hadArrayRangeDesignator()) { + CGF.ErrorUnsupported(E, "GNU array range designator extension"); + } + // Handle initialization of an array. if (E->getType()->isArrayType()) { const llvm::PointerType *APType = -- cgit v1.2.3-70-g09d2