https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90869
--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Another testcase. Here we should disambiguate both cases while we do only second struct a {int a1; int a2;}; struct b:a {}; struct b bvar,*bptr2; int test(void) { struct a *bptr = &bvar; bptr->a2=0; bptr2->a1=1; return bptr->a2; } int test2(void) { struct b *bptr = &bvar; bptr->a2=0; bptr2->a1=1; return bptr->a2; }