return inside scope with VLA

My next issue is the error in the subject of this email. Is anyone working on this? If not, I will try to spend some time on it over the next week. My understanding of the problem is that the following sequence needs to happen:

1) The return RValue needs to be written to an alloca created in the function entry point.
2) The stack saved values need to be popped off one after the other (or can we just pop the top-level one?)
3) The finally block needs to be called if there is one.
4) Emit a jump to the return block.

Am I missing anything? It seems like the best way of doing this would be to put most of the new code inside EmitBranch(), since this is called from a number of other methods that aren't fully implemented yet for similar reasons.

David

5 feb 2009 kl. 06.17 skrev David Chisnall:

My next issue is the error in the subject of this email. Is anyone
working on this? If not, I will try to spend some time on it over the
next week. My understanding of the problem is that the following
sequence needs to happen:

1) The return RValue needs to be written to an alloca created in the
function entry point.
2) The stack saved values need to be popped off one after the other
(or can we just pop the top-level one?)
3) The finally block needs to be called if there is one.
4) Emit a jump to the return block.

Am I missing anything? It seems like the best way of doing this would
be to put most of the new code inside EmitBranch(), since this is
called from a number of other methods that aren't fully implemented
yet for similar reasons.

David

Hi David,

I've been working on this for the last couple of days and I am pretty close to having something landable.

Anders