1/* { dg-do run } */ 2/* Based on PR target/27386 testcase by Joerg Wunsch. */ 3 4extern void abort (void); 5extern void exit (int); 6 7#if __INT_MAX__ >= 9223372036854775807LL 8typedef unsigned int uint64_t; 9#elif __LONG_MAX__ >= 9223372036854775807LL 10typedef unsigned long int uint64_t; 11#elif __LONG_LONG_MAX__ >= 9223372036854775807LL 12typedef unsigned long long int uint64_t; 13#else 14int 15main (void) 16{ 17 exit (0); 18} 19#endif 20 21uint64_t a, b, c; 22 23int 24foo (uint64_t x, uint64_t y, uint64_t z, int i) 25{ 26 a = x; 27 b = y; 28 c = z; 29 return 2 * i; 30} 31 32int 33main (void) 34{ 35 if (foo (1234512345123ull, 3456734567345ull, 7897897897897ull, 42) != 84) 36 abort (); 37 if (a != 1234512345123ull) 38 abort (); 39 if (b != 3456734567345ull) 40 abort (); 41 if (c != 7897897897897ull) 42 abort (); 43 exit (0); 44} 45