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