Viewing file: va_arg-7.c (1.17 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Test AAPCS64 layout and __builtin_va_arg.
This test covers complex types. Complex floating-point types are treated as homogeneous floating-point aggregates, while complex integral types are treated as general composite types. */
/* { dg-do run { target aarch64*-*-* } } */
#ifndef IN_FRAMEWORK #define AAPCS64_TEST_STDARG #define TESTFILE "va_arg-7.c" #include "type-def.h"
_Complex __int128 complex_qword = 567890 + 678901i;
#include "abitest.h" #else ARG (int, 1, W0, LAST_NAMED_ARG_ID) DOTS /* Complex floating-point types are passed in fp/simd registers. */ ANON (_Complex float , 12.3f + 23.4fi , S0, 0) ANON (_Complex double , 34.56 + 45.67i , D2, 1) ANON (_Complex long double, 56789.01234L + 67890.12345Li, Q4, 2)
/* Complex integral types are passed in general registers or via reference. */ ANON (_Complex short , (_Complex short) (12345 + 23456i), X1, 10) ANON (_Complex int , 34567 + 45678i , X2, 11) PTR_ANON (_Complex __int128 , complex_qword , X3, 12)
LAST_ANON(int , 1 , W4, 20) #endif
|