diff options
author | Carl Worth <cworth@cworth.org> | 2010-05-26 15:57:10 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-05-26 16:04:31 -0700 |
commit | 95951ea7bb8728cf54ae4136cb59d0af9e8a06bd (patch) | |
tree | 4855fd796f5404727cf5d7f3a378f0269a3e44de /tests | |
parent | 0324cad796b7a68634a729719f08fcbb5bbd04cc (diff) |
Treat newlines as space when invoking a function-like macro invocation.
This adds three new pieces of state to the parser, (is_control_line,
newline_as_space, and paren_count), and a large amount of messy
code. I'd definitely like to see a cleaner solution for this.
With this fix, the "define-func-extra-newlines" now passes so we put
it back to test #26 where it was originally (lately it has been known
as test #55).
Also, we tweak test 25 slightly. Previously this test was ending a
file function-like macro name that was not actually a macro (not
followed by a left parenthesis). As is, this fix was making that test
fail because the text_line production expects to see a terminating
NEWLINE, but that NEWLINE is now getting turned into a SPACE here.
This seems unlikely to be a problem in the wild, (function macros
being used in a non-macro sense seems rare enough---but more than
likely they won't happen at the end of a file). Still, we document
this shortcoming in the README.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/025-func-macro-as-non-macro.c | 2 | ||||
-rw-r--r-- | tests/026-define-func-extra-newlines.c (renamed from tests/055-define-func-extra-newlines.c) | 0 |
2 files changed, 1 insertions, 1 deletions
diff --git a/tests/025-func-macro-as-non-macro.c b/tests/025-func-macro-as-non-macro.c index 3dbe026d9d..b433671d1b 100644 --- a/tests/025-func-macro-as-non-macro.c +++ b/tests/025-func-macro-as-non-macro.c @@ -1,2 +1,2 @@ #define foo(bar) bar -foo +foo bar diff --git a/tests/055-define-func-extra-newlines.c b/tests/026-define-func-extra-newlines.c index 0d83740530..0d83740530 100644 --- a/tests/055-define-func-extra-newlines.c +++ b/tests/026-define-func-extra-newlines.c |