diff options
author | Richard Sandiford <richard@codesourcery.com> | 2007-07-31 15:01:37 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-07-31 15:01:37 +0000 |
commit | 2bde7ae91a1edba5968c32ceb6f10b7b5ea98bfa (patch) | |
tree | a8997046d112f6cbfa6e8aa9caf9d79a4a494b61 | |
parent | 58d4783b08975a9517e4c11c6e8204dee41bd8a1 (diff) | |
download | gcc-2bde7ae91a1edba5968c32ceb6f10b7b5ea98bfa.zip gcc-2bde7ae91a1edba5968c32ceb6f10b7b5ea98bfa.tar.gz gcc-2bde7ae91a1edba5968c32ceb6f10b7b5ea98bfa.tar.bz2 |
mode-switching.c (create_pre_exit): Don't search past calls.
gcc/
* mode-switching.c (create_pre_exit): Don't search past calls.
From-SVN: r127092
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/mode-switching.c | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8323fae..1f03151 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-07-31 Richard Sandiford <richard@codesourcery.com> + + * mode-switching.c (create_pre_exit): Don't search past calls. + 2007-07-31 Sandra Loosemore <sandra@codesourcery.com> * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test. diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c index 9667d96..dc05208 100644 --- a/gcc/mode-switching.c +++ b/gcc/mode-switching.c @@ -245,6 +245,17 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes) if (INSN_P (return_copy)) { + /* When using SJLJ exceptions, the call to the + unregister function is inserted between the + clobber of the return value and the copy. + We do not want to split the block before this + or any other call; if we have not found the + copy yet, the copy must have been deleted. */ + if (CALL_P (return_copy)) + { + short_block = 1; + break; + } return_copy_pat = PATTERN (return_copy); switch (GET_CODE (return_copy_pat)) { |