URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [c-c++-common/] [int128-1.c] - Rev 716
Go to most recent revision | Compare with Previous | Blame | View Log
/* { dg-do run { target int128 } } */ /* { dg-options "-std=gnu99" { target c } } */ /* { dg-options "" { target c++ } } */ #include <stdarg.h> #ifndef __cplusplus extern void abort (void); #else extern "C" void abort (void); #endif #define MK_CONST128(A,B,C,D) \ ( (((unsigned __int128) (unsigned int) A) << 96) \ | (((unsigned __int128) (unsigned int) B) << 64) \ | (((unsigned __int128) (unsigned int) C) << 32) \ | ((unsigned __int128) (unsigned int) D) ) #define MK_CONST128_SIGNED(A,B,C,D) \ ((__int128) MK_CONST128(A, B, C, D)) void foo(int i, ...) { __int128 q; va_list va; va_start(va, i); q = va_arg(va, __int128); va_end(va); if (q != MK_CONST128_SIGNED (0xfeffffffU, 2U, 3U, 4U)) abort(); } int main(void) { __int128 q = MK_CONST128_SIGNED (0xfeffffffU, 2U, 3U, 4U); foo(1, q); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log