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 00000000000..930ee32c3ee --- /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; +}