On Wed, Jun 6, 2012 at 3:58 PM, Fariborz Jahanian <[email protected]> wrote: > Author: fjahanian > Date: Wed Jun 6 17:58:50 2012 > New Revision: 158117 > > URL: http://llvm.org/viewvc/llvm-project?rev=158117&view=rev > Log: > When doing arithmatic on vla pointer, make sure > to emit vla size to prevent an irgen crash. > // rdar://11485774 > > Modified: > cfe/trunk/lib/CodeGen/CGExprScalar.cpp > cfe/trunk/test/CodeGen/vla.c > > Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=158117&r1=158116&r2=158117&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Wed Jun 6 17:58:50 2012 > @@ -1970,6 +1970,9 @@ > QualType elementType = pointerType->getPointeeType(); > if (const VariableArrayType *vla > = CGF.getContext().getAsVariableArrayType(elementType)) { > + // arithmatic on VLA pointer - make sure to emit the VLA size. > + CGF.EmitVariablyModifiedType(elementType);
This call is in the wrong place; we should emit the type of an InitListExpr when we emit the expression itself, not when we use it. -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
