https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92394
--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Following testcase is mergeable: struct a {int a; int b;}; struct b {int c; short d;}; void * retadr1(struct a *a) { return &a->b; } void * retadr2(struct b *a) { return &a->d; }