Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/cpp/macro3.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-std=c99" } */ /* First two tests sourced from a bug report of Thomas Pornin. Varargs test source Jamie Lokier. All adapted for the testsuite by Neil Booth, Oct 2000. */ /* Tests various macro abuse is correctly expanded. */ static int d = 4; #define c(x) d #define d(x) c(2) #if 0 /* This macro chain above sucks up the whole file once it starts, so I've commented it out. The example is left for idle amusement :-) */ #define a(x) b( #define b(x) a( #endif #define apply(...) apply2 (__VA_ARGS__) #define half(x) ((x) / 2) #define apply2(f,x) f (x) extern void abort (void); extern void exit (int); int main() { /* Expands to c(2) then d. */ if (c(c)(c) != 4) abort (); if (apply (half, 200) != 100) abort (); exit (0); }