This is the mail archive of the
mailing list for the GCC project.
[tree-ssa] Another EH cfg cleanup PATCH
- From: Jason Merrill <jason at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 22 May 2003 17:43:47 -0400
- Subject: [tree-ssa] Another EH cfg cleanup PATCH
The remaining libstdc++ failures were due to us incorrectly discarding
cleanups because we didn't think they were reachable. This was happening
because we only made an edge from a call to the innermost cleanup, and we
don't yet make edges from one cleanup to the next.
The easy fix is to just make edges from a call to all reachable cleanups.
Long term, we should thread the cleanups together.
Booted and tested i686-pc-linux-gnu. This patch fixes all previously
broken libstdc++ tests and breaks ext/concept-checks.cc with an SSA
coalescing failure. I think this is an improvement over the current
situation, so I'm checking it in. Feel free to disagree.
2003-05-22 Jason Merrill <email@example.com>
* tree-cfg.c (compute_reachable_eh): Don't skip cleanups.
*** tree-cfg.c.~1~ 2003-05-22 14:37:40.000000000 -0400
--- tree-cfg.c 2003-05-22 16:12:08.000000000 -0400
*************** compute_reachable_eh (tree stmt)
*** 4251,4257 ****
--- 4255,4265 ----
reachable_handlers = tree_cons (void_type_node,
+ #if 0
+ /* Actually, we can't. At least not until we build edges from
+ one cleanup to the next. */
skip_cleanups = 1;