diff options
author | Jakub Jelinek <jakub@redhat.com> | 2000-11-28 20:44:30 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2000-11-28 20:44:30 +0100 |
commit | 48c4d691bee7cfeb8cd9364b60bb2b899eba9ac0 (patch) | |
tree | 5ccb6f13437b4af2333d36bb5cc7583052561df2 /gcc/testsuite/gcc.c-torture/execute | |
parent | fb158467a90388f6abec96db67bcf2ec48688220 (diff) | |
download | gcc-48c4d691bee7cfeb8cd9364b60bb2b899eba9ac0.zip gcc-48c4d691bee7cfeb8cd9364b60bb2b899eba9ac0.tar.gz gcc-48c4d691bee7cfeb8cd9364b60bb2b899eba9ac0.tar.bz2 |
loop.c (load_mems): Avoid using next_label to find end_label.
* loop.c (load_mems): Avoid using next_label to find end_label. If
jumping outside of the loop (other than loop end), don't hoist MEMs
out of loop.
* gcc.c-torture/execute/loop-8.c: New test.
From-SVN: r37823
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/loop-8.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-8.c b/gcc/testsuite/gcc.c-torture/execute/loop-8.c new file mode 100644 index 0000000..e8d8cb5 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/loop-8.c @@ -0,0 +1,23 @@ +double a[3] = { 0.0, 1.0, 2.0 }; + +void bar (int x, double *y) +{ + if (x || *y != 1.0) + abort (); +} + +int main () +{ + double c; + int d; + for (d = 0; d < 3; d++) + { + c = a[d]; + if (c > 0.0) goto e; + } + bar(1, &c); + exit (1); +e: + bar(0, &c); + exit (0); +} |