cpp: Newlines in Arguments
1
1 3.10.7 Newlines in Arguments
1 ----------------------------
1
1 The invocation of a function-like macro can extend over many logical
1 lines. However, in the present implementation, the entire expansion
1 comes out on one line. Thus line numbers emitted by the compiler or
1 debugger refer to the line the invocation started on, which might be
1 different to the line containing the argument causing the problem.
1
1 Here is an example illustrating this:
1
1 #define ignore_second_arg(a,b,c) a; c
1
1 ignore_second_arg (foo (),
1 ignored (),
1 syntax error);
1
1 The syntax error triggered by the tokens 'syntax error' results in an
1 error message citing line three--the line of ignore_second_arg-- even
1 though the problematic code comes from line five.
1
1 We consider this a bug, and intend to fix it in the near future.
1