------- Additional Comments From tromey at gcc dot gnu dot org 2005-02-19 00:19 ------- I investigated this some more.
The code generator for "return" looks at the finally stack to decide whether to call any finally handlers. But, the code generator for "try" has a special case when the finally clause cannot complete normally. This confuses the "return" handler. One fix would be to turn off this optimization. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19810