Fix (and add test for) function-like macro invocation with newlines.
authorCarl Worth <cworth@cworth.org>
Mon, 17 May 2010 20:19:04 +0000 (13:19 -0700)
committerCarl Worth <cworth@cworth.org>
Mon, 17 May 2010 20:21:13 +0000 (13:21 -0700)
commit1a29500e72ac338c1fb243742aff1c167e1059db
tree0ee7e546ab5d2ba21b4c86be0450f47ac9830b24
parent796e1f0eadcfbbc6e4d79778b2378975204bb97c
Fix (and add test for) function-like macro invocation with newlines.

The test has a newline before the left parenthesis, and newlines to
separate the parentheses from the argument.

The fix involves more state in the lexer to only return a NEWLINE
token when termniating a directive. This is very similar to our
previous fix with extra lexer state to only return the SPACE token
when it would be significant for the parser.

With this change, the exact number and positioning of newlines in the
output is now different compared to "gcc -E" so we add a -B option to
diff when testing to ignore that.
glcpp-lex.l
glcpp-parse.y
tests/026-define-func-extra-newlines.c [new file with mode: 0644]
tests/glcpp-test