On Jun 6, 2012, at 5:03 PM, Eli Friedman wrote: > On Wed, Jun 6, 2012 at 4:09 PM, Eli Friedman <[email protected]> wrote: >> 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. > > Err, not the InitListExpr; the CompoundLiteralExpr, like John said.
Thanks for 2nd'ing John's. This is where it will go. - fariborz > > -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
