OSDN Git Service

PR testsuite/33082
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / cpp / mac-dir-1.c
1 /* Copyright (C) 2002 Free Software Foundation, Inc.  */
2
3 /* { dg-do preprocess } */
4
5 /* Source: Neil Booth, 26 Feb 2002.
6
7    Test that we allow directives in macro arguments.  */
8
9 /* { dg-do run } */
10 /* { dg-options "" } */
11
12 #define f(x) x
13 extern void abort (void);
14
15 int main ()
16 {
17   if (f (
18 #if f(1)                        /* True.  */
19         0))                     /* False. */
20 #else
21         1))
22 #endif
23      abort ();
24
25      /* Outer f expands to original definition, f in argument expands
26         to new definition, so result is: if (1 != 2 - 1).  */
27      if (1 != f(2
28 #undef f
29 #define f - 1
30      f))
31      abort ();
32
33      return 0;
34 }