blob: 8ab9acaf002f6483cd9b59b1f82c024dcb950108 [file] [log] [blame]
/* PR rtl-optimization/102627 */
/* { dg-do run } */
/* { dg-options "-O1" } */
int a, f, l, m, q, c, d, g;
long b, e;
struct g {
signed h;
signed i;
unsigned j;
unsigned k;
};
unsigned n;
char o;
int *p = &m;
long r(int s) { return s && b ?: b; }
long __attribute__((noipa)) v() {
l = 0 || r(n & o);
return q;
}
void w(int, unsigned, struct g x) {
c ?: a;
for (; d < 2; d++)
*p = x.k;
}
struct g __attribute__((noipa)) y() {
struct g h = {3, 908, 1, 20};
for (; g; g++)
;
return h;
}
int main() {
long t;
struct g u = y();
t = e << f;
w(0, t, u);
v(0, 4, 4, 4);
if (m != 20)
__builtin_abort ();
return 0;
}