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
25foo )
26