30 lines
445 B
C
30 lines
445 B
C
/* PR 34808 */
|
|
/* { dg-do compile }
|
|
/* { dg-options "-fno-tree-dominator-opts" } */
|
|
|
|
extern int flags;
|
|
|
|
struct r { int code; int val;};
|
|
|
|
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;
|
|
}
|