re PR rtl-optimization/23478 (Miscompilation due to reloading of a var that is also...
authorJakub Jelinek <jakub@redhat.com>
Mon, 22 Aug 2005 16:58:50 +0000 (18:58 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 22 Aug 2005 16:58:50 +0000 (18:58 +0200)
commit27004606de459d624247190ca0f752a9a9a7b76f
treea84c1cb04ef05b13f2b4cd991e221d8edbf8e2ec
parentad685e8112bbaf64ff9ee993cb189feaa869e741
re PR rtl-optimization/23478 (Miscompilation due to reloading of a var that is also used in EH pad)

PR rtl-optimization/23478
* regs.h (reg_info): Add throw_calls_crossed.
(REG_N_THROWING_CALLS_CROSSED): Define.
* flow.c (allocate_reg_life_data): Initialize
REG_N_THROWING_CALLS_CROSSED.
(propagate_one_insn, attempt_auto_inc): Update
REG_N_THROWING_CALLS_CROSSED.
* global.c (global_alloc): Don't allocate pseudos across
calls that may throw.

* g++.dg/opt/pr23478.C: New test.

From-SVN: r103348
gcc/ChangeLog
gcc/flow.c
gcc/global.c
gcc/regs.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/pr23478.C [new file with mode: 0644]