diff options
author | Don Lindsay <dlindsay@gcc.gnu.org> | 2000-11-14 18:42:53 +0000 |
---|---|---|
committer | Don Lindsay <dlindsay@gcc.gnu.org> | 2000-11-14 18:42:53 +0000 |
commit | b3488a7ae7ac9e5eaea50c1d3eda4d99e0803c66 (patch) | |
tree | e1ff73947d1fb584cd16a2fa7ca879830ed2d84a | |
parent | 7f2f1a6633e44161efbfc2edbf2aaec9574f274d (diff) | |
download | gcc-b3488a7ae7ac9e5eaea50c1d3eda4d99e0803c66.zip gcc-b3488a7ae7ac9e5eaea50c1d3eda4d99e0803c66.tar.gz gcc-b3488a7ae7ac9e5eaea50c1d3eda4d99e0803c66.tar.bz2 |
Test which exposed a gcse bug at one time.
From-SVN: r37463
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20001101.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001101.c b/gcc/testsuite/gcc.c-torture/execute/20001101.c new file mode 100644 index 0000000..930ee32 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20001101.c @@ -0,0 +1,40 @@ +extern void abort(void); + +typedef struct +{ + unsigned int unchanging : 1; +} struc, *rtx; + +rtx dummy ( int *a, rtx *b) +{ + *a = 1; + *b = (rtx)7; + return (rtx)1; +} + +void bogus (insn, thread, delay_list) + rtx insn; + rtx thread; + rtx delay_list; +{ + rtx new_thread; + int must_annul; + + delay_list = dummy ( &must_annul, &new_thread); + if (delay_list == 0 && new_thread ) + { + thread = new_thread; + } + if (delay_list && must_annul) + insn->unchanging = 1; + if (new_thread != thread ) + abort(); +} + +int main() +{ + struc baz; + bogus (&baz, (rtx)7, 0); + exit(0); + return 0; +} |