------- Additional Comments From law at redhat dot com 2005-02-14 19:56 ------- FWIW, I just verified that the updated jump thread selection code handles this correctly. In fact, this is precisely the kind of case it was designed to handle :-)
However, your statement about turning foo into bar is incorrect because foo is written incorrectly. First "foo" needs to be fixed to return a value. foo calls f0 twice while bar calls f0 and f1. "tem" is not initialized in the call to g0 and the list goes on and on and on. Regardless, the new jump thread selection code will thread the jumps appropriately and block merging will collapse things in the expected way. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15221