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

Neil Booth neil at daikokuya.co.uk
Sat Dec 13 16:40:25 PST 2008


Eli Friedman wrote:-

> 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...

Do you intend to represent these control flow requirements explicitly
in the AST, or have AST clients have to understand the semantics?
Like implicit casts being made explicit, I'm in favour of the former.

Neil.



More information about the cfe-commits mailing list