111
|
1 /* Copyright (C) 2001 Free Software Foundation, Inc. */
|
|
2
|
|
3 /* { dg-do preprocess } */
|
|
4
|
|
5 /* Source: Neil Booth, 23 Sep 2001.
|
|
6
|
|
7 A tricky, pathological corner case we used to get wrong. Expansion
|
|
8 should go as follows. The asterisk indicates the token has "blue
|
|
9 paint" can no longer be macro expanded. We used to lose that
|
|
10 information when parsing arguments and dropping to the lexer to get
|
|
11 the ')'.
|
|
12
|
|
13 foo )
|
|
14 bar foo* )
|
|
15 func (foo* )
|
|
16 foo*
|
|
17
|
|
18 If we try and expand the final foo, we get an "unterminated
|
|
19 argument list invoking macro <func>" error. If we do the right
|
|
20 thing and leave it as is, no diagnostics are emitted. */
|
|
21
|
|
22 #define func(x) x
|
|
23 #define bar func(
|
|
24 #define foo bar foo
|
|
25 foo )
|