mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-19 20:40:42 +08:00
loop.c (move_movables): Handle combination of m->consec...
ChangeLog: * loop.c (move_movables): Handle combination of m->consec, m->move_insn_first, and m->insert_temp all nonzero correctly. testsuite/ChangeLog: * gcc.dg/20031216-1.c: New test. From-SVN: r74778
This commit is contained in:
parent
51287c1498
commit
cebf212fa5
@ -1,3 +1,8 @@
|
||||
2003-12-18 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* loop.c (move_movables): Handle combination of m->consec,
|
||||
m->move_insn_first, and m->insert_temp all nonzero correctly.
|
||||
|
||||
2003-12-18 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* calls.c (load_register_parameters): Don't use
|
||||
|
@ -2113,7 +2113,8 @@ move_movables (struct loop *loop, struct loop_movables *movables,
|
||||
/* The SET_SRC might not be invariant, so we must
|
||||
use the REG_EQUAL note. */
|
||||
start_sequence ();
|
||||
emit_move_insn (m->set_dest, m->set_src);
|
||||
emit_move_insn (m->insert_temp ? newreg : m->set_dest,
|
||||
m->set_src);
|
||||
seq = get_insns ();
|
||||
end_sequence ();
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2003-12-18 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* gcc.dg/20031216-1.c: New test.
|
||||
|
||||
2003-12-18 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
||||
|
||||
PR c++/9154
|
||||
|
37
gcc/testsuite/gcc.dg/20031216-1.c
Normal file
37
gcc/testsuite/gcc.dg/20031216-1.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* This used to abort due to a loop bug on s390*. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-options "-O2 -fPIC" { target s390*-*-* } } */
|
||||
|
||||
int count = 0;
|
||||
char *str;
|
||||
|
||||
void test (int flag)
|
||||
{
|
||||
char *p;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (count > 5)
|
||||
return;
|
||||
|
||||
p = "test";
|
||||
|
||||
if (flag)
|
||||
count++;
|
||||
|
||||
str = p;
|
||||
}
|
||||
}
|
||||
|
||||
int main (void)
|
||||
{
|
||||
test (1);
|
||||
|
||||
if (str[0] != 't')
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user