[cfe-commits] r90356 - /cfe/trunk/lib/CodeGen/CGDecl.cpp

Mike Stump mrs at apple.com
Wed Dec 2 17:03:22 PST 2009


On Dec 2, 2009, at 4:06 PM, Anders Carlsson wrote:
> Great catch! Is there a test case we can add for this?

Oh, without this, codegen is so fantastically broken that virtually nothing compiles.  :-)  Yeah, I have a testcase that I'm in the middle of implementing and refining.  When I turn on the code, I'll check it it.  For now, all the new code is still off.  I'm running the g++ testsuite on it, and am up for 62 passes for old-deja.exp=eh\*.C (44 unexpected failures), including my favorite, eh6.C.


On issue that I'm facing now is, what to do about exceptional edge cleanups.  I think the strategy, after talking with Dan about duplicating entire CFGs, was, I don't want to do that, so the plan forward was going to have the caller build up the normal cleanups and the exceptional cleanups separately.  The cleanup stack code then just knows for each cleanup, if the action is for the normal edge or the exceptional edge.

Scream now if that plan seems wrong.  The advantage is smaller code (excluding the exceptional code) down the road, and no indirect branches or condition branches in the normal control flow.



More information about the cfe-commits mailing list