/* { dg-do run } */ /* { dg-skip-if "Stack alignment is too small" { hppa*-*-hpux* } "*" "" } */ #include "check.h" #ifndef ALIGNMENT #define ALIGNMENT 64 #endif extern void abort(); typedef struct my_struct { char str[31]; } stype ; stype g_s; stype __attribute__((noinline)) foo (char arg1, char arg2, char arg3) { stype __attribute__((aligned(ALIGNMENT))) s; s.str[0] = arg1; s.str[1] = arg2; s.str[30] = arg3; check(&s, ALIGNMENT); return s; } int main() { g_s = foo(1,2,3); if (g_s.str[0] != 1 || g_s.str[1] != 2 || g_s.str[30] !=3) abort(); return 0; }