https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96791
--- Comment #8 from acsawdey at gcc dot gnu.org ---
Another small test case, reduced from my compile failure of c/c-typeck.c and
modified to provoke truncation from POImode to various other modes:
typedef int *a;
struct b { a ba; };
enum c { c1=1 };
struct e {
union eu {
char f_char;
short f_short;
int f_int;
long f_long;
int *f_ptr;
long long f_ll;
} u;
c g;
a h;
b i;
};
a d(bool, bool, bool);
e j(int, e, bool, bool);
void k() {
int l;
for (;;) {
e expr;
l = sizeof(struct e);
expr = j(l, expr, true, false);
d(expr.u.f_char, false, __null);
d(expr.u.f_short, false, __null);
d(expr.u.f_int, false, __null);
d(expr.u.f_long, false, __null);
d(expr.u.f_ptr, false, __null);
d(expr.u.f_ll, false, __null);
}
}