demonstartes a bug in the tarval module
[libfirm] / ir / be / test / fehler056.c
1 typedef struct rtx_def
2 {
3         unsigned short code;
4         int mode : 8;
5         int rtint;
6 } *rtx;
7
8 struct rtx_def bla;
9
10 void t(int num_eliminable, int n_reloads) {
11         register rtx insn = &bla;
12         int did_elimination = 0;
13
14         if(num_eliminable)
15                 did_elimination = rand();
16
17         insn->mode = did_elimination ? 42 : insn->mode == 6 ? 6 : 0;
18 }
19
20 int main()
21 {
22         bla.rtint = 8;
23         bla.mode  = 6;
24         printf("Before: %d %d\n", bla.mode, bla.rtint);
25         t(0, 1);
26         printf("After: %d %d\n", bla.mode, bla.rtint);
27         return 0;
28 }