2 /* { dg-do run { target lp64 } } */
3 /* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */
5 /* This test uses __builtin_trap () instead of e.g. abort,
6 because due to -mpreferred-stack-boundary=3 it should not call
7 any library function from within main (). */
11 __attribute__((noinline
, noclone
))
13 bar (int x
, int y
, int z
, int w
, const char *fmt
, va_list ap
)
15 if (x
!= 1 || y
!= 2 || z
!= 3 || w
!= 4)
17 if (fmt
[0] != 'f' || fmt
[1] != 'o' || fmt
[2] != 'o' || fmt
[3])
19 if (va_arg (ap
, int) != 5 || va_arg (ap
, int) != 6
20 || va_arg (ap
, long long) != 7LL)
25 __attribute__((noinline
, noclone
, optimize ("Os")))
27 foo (const char *fmt
, ...)
31 int r
= bar (1, 2, 3, 4, fmt
, ap
);
39 if (foo ("foo", 5, 6, 7LL) != 9)