Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/20050121-2.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* PR middle-end/19551 */ /* { dg-options "-O2" } */ /* { dg-do link } */ extern void abort (); #define T(type, name) \ extern __attribute__((pure)) _Complex type \ foo_c##name (int x); \ \ void \ bar_c##name (type *x) \ { \ type f = __real foo_c##name (5); \ if (0) *x = f; \ } \ \ void \ baz_c##name (type *x) \ { \ type f = __imag foo_c##name (5); \ if (0) *x = f; \ } \ \ extern __attribute__((pure)) type \ foo_##name (int x); \ \ void \ bar_##name (type *x) \ { \ type f = foo_##name (5); \ if (0) *x = f; \ } typedef long double ldouble_t; typedef long long llong; T (float, float) T (double, double) T (long double, ldouble_t) T (char, char) T (short, short) T (int, int) T (long, long) T (long long, llong) #undef T int main (void) { #define T(type, name) \ { \ type var = 0; \ bar_c##name (&var); \ baz_c##name (&var); \ bar_##name (&var); \ } T (float, float) T (double, double) T (long double, ldouble_t) T (char, char) T (short, short) T (int, int) T (long, long) T (long long, llong) return 0; }