| /* PR 34808 */ | |
| /* { dg-do compile } | |
| /* { dg-options "-fno-tree-dominator-opts" } */ | |
| extern int flags; | |
| struct r { int code; int val;}; | |
| void bar (void); | |
| void baz (void); | |
| int | |
| foo (struct r *home) | |
| { | |
| int n = 0; | |
| int regno = -1; | |
| if (home->code == 0) | |
| regno = home->val; | |
| if (home->code == 1) | |
| bar (); | |
| else if (regno >= 0) | |
| n = (regno == 16 | |
| ? 16 | |
| : (regno - (unsigned long long) (flags != 0 ? 63 : 15) | |
| ? regno - 128 | |
| : -1)); | |
| baz (); | |
| return n; | |
| } |