diff options
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/20001101.c')
-rw-r--r-- | SingleSource/Regression/C/gcc-c-torture/execute/20001101.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/20001101.c b/SingleSource/Regression/C/gcc-c-torture/execute/20001101.c new file mode 100644 index 00000000..7b20a0c8 --- /dev/null +++ b/SingleSource/Regression/C/gcc-c-torture/execute/20001101.c @@ -0,0 +1,41 @@ +/* { dg-require-effective-target untyped_assembly } */ +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; +} |