Author: baldrick Date: Mon Aug 27 14:58:09 2007 New Revision: 41509 URL: http://llvm.org/viewvc/llvm-project?rev=41509&view=rev Log: After further thought and testing, it seems that it is foreach_reachable_handler that should be modified to agree with can_throw_external_1, and not the other way round.
Modified: llvm-gcc-4.2/trunk/gcc/except.c Modified: llvm-gcc-4.2/trunk/gcc/except.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/except.c?rev=41509&r1=41508&r2=41509&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/except.c (original) +++ llvm-gcc-4.2/trunk/gcc/except.c Mon Aug 27 14:58:09 2007 @@ -2663,9 +2663,13 @@ processing any more of them. Each cleanup will have an edge to the next outer cleanup region, so the flow graph will be accurate. */ +/* LLVM local */ +#ifndef ENABLE_LLVM if (region->type == ERT_CLEANUP) region = region->u.cleanup.prev_try; else +/* LLVM local */ +#endif region = region->outer; } } @@ -2800,21 +2804,9 @@ /* If the exception is caught or blocked by any containing region, then it is not seen by any calling function. */ - /* LLVM local begin */ - while (region) - { - if (reachable_next_level (region, type_thrown, NULL) >= RNL_CAUGHT) - return false; - /* If we have processed one cleanup, there is no point in - processing any more of them. Each cleanup will have an edge - to the next outer cleanup region, so the flow graph will be - accurate. */ - if (region->type == ERT_CLEANUP) - region = region->u.cleanup.prev_try; - else - region = region->outer; - } - /* LLVM local end */ + for (; region ; region = region->outer) + if (reachable_next_level (region, type_thrown, NULL) >= RNL_CAUGHT) + return false; return true; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits