/* { dg-do run } */ /* { dg-options "-O2 -std=c23" } */ typedef struct { int i1; } s1; typedef struct { int i1; } s2_alt; [[gnu::noinline,gnu::noipa]] int f2(s1 *s1p, s2_alt *s2p) { s1p->i1 = 2; s2p->i1 = 3; return s1p->i1 * 3; } int main() { s1 a; if (9 != f2(&a, (void*)&a)) __builtin_abort(); }