[cfe-commits] r60989 - in /cfe/trunk/lib/CodeGen: CGDecl.cpp CGExprScalar.cpp

Eli Friedman eli.friedman at gmail.com
Sat Dec 13 13:57:03 PST 2008


On Sat, Dec 13, 2008 at 10:58 AM, Chris Lattner <sabre at nondot.org> wrote:
> Author: lattner
> Date: Sat Dec 13 12:58:59 2008
> New Revision: 60989
>
> URL: http://llvm.org/viewvc/llvm-project?rev=60989&view=rev
> Log:
> disable Anders' recent VLA patch, this fixes PR3209.

I looked into this a bit... the crash is an issue with the
stacksave/stackrestore code.  Roughly, the block with the VLA has a
return statement in it; then, the stackrestore gets inserted into an
undefined location.  This can be worked around with a
EnsureInsertPoint(), but the issue remains: we need to ensure that
control flow passes through an appropriate stackrestore before it
exits the block.  And we simply don't have the infrastructure in place
to do that at the moment.

Has anyone thought about how to implement this?  It looks like
something similar is implemented for ObjC exception handling, but I'm
not sure how well the current approach will generalize...

-Eli



More information about the cfe-commits mailing list