/* PR middle-end/110027 */ /* { dg-do run } */ /* { dg-additional-options "-fstack-protector-strong" { target fstack_protector } } */ /* { dg-set-target-env-var ASAN_OPTIONS "detect_stack_use_after_return=1" } */ struct __attribute__((aligned (128))) S { char s[128]; }; struct __attribute__((aligned (64))) T { char s[192]; }; struct __attribute__((aligned (32))) U { char s[256]; }; struct __attribute__((aligned (64))) V { char s[320]; }; struct __attribute__((aligned (128))) W { char s[512]; }; __attribute__((noipa)) void foo (void *p, void *q, void *r, void *s) { if (((__UINTPTR_TYPE__) p & 31) != 0 || ((__UINTPTR_TYPE__) q & 127) != 0 || ((__UINTPTR_TYPE__) r & 63) != 0) __builtin_abort (); (void *) s; } __attribute__((noipa)) int bar (void) { struct U u; struct S s; struct T t; char p[4]; foo (&u, &s, &t, &p); return 42; } __attribute__((noipa)) int baz (void) { struct W w; struct U u; struct V v; char p[4]; foo (&u, &w, &v, &p); return 42; } int main () { bar (); baz (); return 0; }