a3f5601465086bfcda4e68c3c55a284dd84879c6 |
06-Nov-2012 |
Matt Turner <mattst88@gmail.com> |
glcpp: Reject garbage after #else and #endif tokens Previously we were accepting garbage after #else and #endif tokens when the previous preprocessor conditional evaluated to false (eg, #if 0). When the preprocessor hits a false conditional, it switches the lexer into the SKIP state, in which it ignores non-control tokens. The parser pops the SKIP state off the stack when it reaches the associated #elif, #else, or #endif. Unfortunately, that meant that it only left the SKIP state after the lexing the entire line containing the #token and thus would accept garbage after the #token. To fix this we use a mid-rule, which is executed immediately after the #token is parsed. NOTE: This is a candidate for the stable branch Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56442 Fixes: preprocess17_frag.test from oglconform Reviewed-by: Carl Worth <cworth@cworth.org> (glcpp-parse.y) Acked-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (cherry picked from commit 060e69679925f171cfcc2a5f84fab1d833a7e804)
02-garbage-after-endif.c
02-garbage-after-endif.c.expected
03-garbage-after-else.c
03-garbage-after-else.c.expected
|
d8e61f8f86bfb078a35222f95ad4b0b4e6283f53 |
10-Jun-2012 |
Carl Worth <cworth@cworth.org> |
glsl: glcpp: Extend testing of #line directives The most recent commit adds support for comments and macro expansion on #line directives. Add testing to verify the new features. Signed-off-by: Carl Worth <cworth@cworth.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
91-hash-line.c
91-hash-line.c.expected
|
aac78ce8234d96932c38b3f48b1d828077bc0027 |
10-Jun-2012 |
Carl Worth <cworth@cworth.org> |
glsl: glcpp: Move handling of #line directives from lexer to parser. The GLSL specification requires that #line directives be interpreted after macro expansion. Our existing implementation of #line macros in the lexer prevents conformance on this point. Moving the handling of #line from the lexer to the parser gives us the macro expansion we need. An additional benefit is that the preprocessor also now supports comments on the same line as #line directives. Finally, the preprocessor now emits the (fully-macro-expanded) #line directives into the output. This allows the full GLSL compiler to also see and interpret these directives so it can also generate correct line numbers in error messages. Signed-off-by: Carl Worth <cworth@cworth.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
91-hash-line.c.expected
|
c96b8302a398a6db27f1bb6070cdc088c7ee0fba |
09-Jun-2012 |
Carl Worth <cworth@cworth.org> |
glsl: glcpp: Allow "#if undefined-macro' to evaluate to false. A strict reading of the GLSL specification would have this be an error, but we've received reports from users who expect the preprocessor to interepret undefined macros as 0. This is the standard behavior of the rpeprocessor for C, and according to these user reports is also the behavior of other OpenGL implementations. So here's one of those cases where we can make our users happier by ignoring the specification. And it's hard to imagine users who really, really want to see an error for this case. The two affected tests cases are updated to reflect the new behavior. Signed-off-by: Carl Worth <cworth@cworth.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
70-undefined-macro-in-expression.c
70-undefined-macro-in-expression.c.expected
98-elif-undefined.c
98-elif-undefined.c.expected
|
64fd26a8a812f66f1291d897df7953b8ac9e2f1b |
02-Feb-2012 |
Carl Worth <cworth@cworth.org> |
glsl: Add glcpp tests for a macro used twice This test cases exposes a bug as described in this bug report: "ralloc.c:78: get_header: Assertion `info->canary == 0x5A1106' failed." when using a macro in GLSL https://bugs.freedesktop.org/show_bug.cgi?id=45082 Clearly, some memory is getting (incorrectly) freed on the first macro invocation, leading to problems with the second macro invocation. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
01-macros-used-twice.c
01-macros-used-twice.c.expected
|
e931b0e05b19259b0f5b53faf73b375013ab1cb3 |
21-Jan-2012 |
Carl Worth <cworth@cworth.org> |
glcpp: Add new test showing bug where a trailing ':' prevents macro expansion This demonstrates a bug that was recently triggered in piglit. Here is the original bug report (containing a test case almost identical to this one): https://bugs.freedesktop.org/show_bug.cgi?id=44764 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
00-macro-with-colon.c
00-macro-with-colon.c.expected
|
70dd17152dca228675f955da41bc9d285c6177d4 |
01-Feb-2012 |
Matt Turner <mattst88@gmail.com> |
Revert "src/glsl/glcpp: wire up glcpp-test to make check" This reverts commit 2bb9f9e1fda61fceb9284cbb4619d7e60e39f190.
lcpp-test
|
2bb9f9e1fda61fceb9284cbb4619d7e60e39f190 |
29-Jan-2012 |
Matt Turner <mattst88@gmail.com> |
src/glsl/glcpp: wire up glcpp-test to make check Reviewed-by: Eric Anholt <eric@anholt.net> Tested-by: Eric Anholt <eric@anholt.net> Signed-off-by: Matt Turner <mattst88@gmail.com>
lcpp-test
|
82060adcde88eb57cc0a3b71d23f003f5637986f |
29-Jan-2012 |
Matt Turner <mattst88@gmail.com> |
glcpp-test: don't return failure if valgrind tests aren't run Success was (tests-passed AND valgrind-tests-passed) but this meant that if the valgrind tests weren't run it would be considered a failure. The logic is now (tests-passed AND (!valgrind OR valgrind-tests-passed)) which lets us return success if the valgrind tests aren't run. Reviewed-by: Eric Anholt <eric@anholt.net> Tested-by: Eric Anholt <eric@anholt.net> Signed-off-by: Matt Turner <mattst88@gmail.com>
lcpp-test
|
201485bae0fcba4db61ceb1e9d9916778b5bba74 |
30-Sep-2011 |
Carl Worth <cworth@cworth.org> |
glcpp: Add a test for #elif with an undefined macro. As written, this test correctly raises an error for #elif being used with an undefined macro (and not as an argument to "defined"). If the preceding #if were '#if 1' then this diagnositc would correctly be hidden. That allows code such as the following to not raise an error: #ifndef MAYBE_UNDEFINED #elif MAYBE_UNDEFINED < 5 ... #endif So this test case is working as expected already. We add it here just to improve test coverage. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Carl Worth <cworth@cworth.org>
98-elif-undefined.c
98-elif-undefined.c.expected
|
c4aaf7943c2cdff0e2148b5c05813356dc99696d |
30-Sep-2011 |
Carl Worth <cworth@cworth.org> |
glcpp: Raise error if defining any macro containing two consecutive underscores The specification reserves any macro name containing two consecutive underscores, (anywhere within the name). Previously, we only raised this error for macro names that started with two underscores. Fix the implementation to check for two underscores anywhere, and also update the corresponding 086-reserved-macro-names test. This also fixes the following two piglit tests: spec/glsl-1.30/preprocessor/reserved/double-underscore-02.frag spec/glsl-1.30/preprocessor/reserved/double-underscore-03.frag Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Carl Worth <cworth@cworth.org>
86-reserved-macro-names.c
86-reserved-macro-names.c.expected
|
7bb3403e0172a440b8100bcf1db8462f50a254cc |
30-Sep-2011 |
Carl Worth <cworth@cworth.org> |
glcpp: Test a non-function-like macro using the token paste operator Apparently we never implemented this, (but we've got a GLSL 1.30 test in piglit that is exercising this case). Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Carl Worth <cworth@cworth.org>
97-paste-with-non-function-macro.c
97-paste-with-non-function-macro.c.expected
|
8e6b99e7b13da33547fcc8388fe867e851ee0bda |
30-Sep-2011 |
Carl Worth <cworth@cworth.org> |
glcpp: Add a test for a macro that implements token pasting twice. This is something that piglit is exercising that currently fails. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Carl Worth <cworth@cworth.org>
96-paste-twice.c
96-paste-twice.c.expected
|
3d78f83cde0286ef352fefa1b018563c11642ff1 |
15-Apr-2011 |
Carl Worth <cworth@cworth.org> |
Add expected file for 095-recursive-define test case. It's clear enough that the current segmentation fault isn't what we want. And it's also very easy to know what we do want here, (just check with any functional C preprocessor such as "gcc -E"). Add the desired output as an expected file so that the test suite gives useful output, (showing the omitted output and the segfault), rather than just reporting "No such file" for the expected file.
95-recursive-define.c.expected
|
0b80f2d4c9fd672d75d647104bf0b0fdafec9dda |
14-Apr-2011 |
Carl Worth <cworth@cworth.org> |
glcpp: Add --valgrind option to the glcpp-test utility The common case for this test suite is to quickly test that everything returns the correct results. In this case, the second run of the test suite under valgrind was just annoying, (and the user would often interrupt it). Now, do what is wanted in the common case by default (just run the test suite), and require a run with "glcpp-test --valgrind" in order to test with valgrind.
lcpp-test
|
6affa4806a74c0f81fefa0be0212ec8574a74f4d |
14-Apr-2011 |
Carl Worth <cworth@cworth.org> |
Add an expected file for 084-unbalanced-parentheses The expected file here captures the current behavior of glcpp (which is to generate an obscure "syntax error, unexpected $end" diagnostic for this case). It would certainly be better for glcpp to generate a nicer diagnostic, (such as "missing closing parenthesis in function-like macro definition" or so), but the current behavior is at least correct, and expected. So we can make the test suite more useful by marking the current behavior as expected.
84-unbalanced-parentheses.c.expected
|
d3c6ed382d8e02cd9f9e2cc77208b800abe17d54 |
14-Apr-2011 |
Carl Worth <cworth@cworth.org> |
Add an expected file for 094-divide-by-zero-short-circuit The expected file here captures the current behavior of glcpp (which is to generate a division-by-zero error) for this case. It's easy to argue that it should be short-circuiting the evaluation and not generating the diagnostic (which happens to be what gcc does). But it doesn't seem like we should force this behavior on our pre-processor, (and, as always, the GLSL specification of the pre-processor is too vague on this point).
94-divide-by-zero-short-circuit.c
94-divide-by-zero-short-circuit.c.expected
|
ea3b2560b1dd0585fcf82a5d3179826374ae03b2 |
14-Apr-2011 |
Carl Worth <cworth@cworth.org> |
Add an expected file for 093-divide-by-zero This test is behaving just fine already---it's generating an informative diagnostic, ("error: division by 0 in preprocessor directive"), so adding this in the expected file makes things pass.
93-divide-by-zero.c.expected
|
b56f30c2b23f6d7b5499f01fa2d3ee04f2ce546e |
03-Mar-2011 |
Kenneth Graunke <kenneth@whitecape.org> |
glcpp/tests: Update 063-comments.c.expected to match output. The expected result has been out of sync with what glcpp produces for some time; glcpp's actual result seems to be correct and is very close to GCC's cpp. Updating this will make it easier to catch regressions in upcoming commits.
63-comments.c.expected
|
2a18d1950c84c96d263cc8f15434502e03aeb1dc |
28-Jan-2011 |
Carl Worth <cworth@cworth.org> |
Revert "glcpp: Demote "macro redefined" from an error to a warning" This reverts commit d3df641f0aba99b0b65ecd4d9b06798bca090a29. The original commit had sat unpushed on my machine for months. By the time I found it again, I had forgotten that we had decided not to use this change after all, (the relevant test was removed long ago).
89-redefine-macro-error.c.expected
|
d3df641f0aba99b0b65ecd4d9b06798bca090a29 |
23-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Demote "macro redefined" from an error to a warning The GLSL specification is vague here, (just says "as is standard for C++"), though the C specifications seem quite clear that this should be an error. However, an existing piglit test (CorrectPreprocess11.frag) expects this to be a warning, not an error, so we change this, and document in README the deviation from the specification.
89-redefine-macro-error.c.expected
|
5a3f31575bf0657661c3e66a4c95c3298c78e441 |
05-Jan-2011 |
Vinson Lee <vlee@vmware.com> |
glcpp: Add test for recursive #define.
95-recursive-define.c
|
6530944b502a0f35b305ee35c1c6f1e32a887721 |
04-Jan-2011 |
Vinson Lee <vlee@vmware.com> |
glcpp: Add division by zero test cases.
93-divide-by-zero.c
94-divide-by-zero-short-circuit.c
|
f3319561a476bd806005551251dbc6a37f266e03 |
28-Dec-2010 |
Vinson Lee <vlee@vmware.com> |
glcpp: Add negative tests for redefintions with valueless macros.
92-redefine-macro-error-2.c
92-redefine-macro-error-2.c.expected
|
21560c40e8aa98624a225752b98babc7ae2938d5 |
23-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Fix test suite to avoid flagging failed tests as valgrind errors. We recently added several tests that intentionally trigger preprocessor errors. During valgrind-based testing, our test script was noticing the non-zero return value from the preprocessor and incorrectly flagging the valgrind-based test as failing. To fix this, we make valgrind return an error code that is otherwise unused by the preprocessor.
lcpp-test
|
2a9e791fdeb45080a98042d41c153ea19c17caae |
23-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Add new test for #line directive. This test exposes two current bugs: 1. The source number is not being correctly emitted in error messages (instead, it's always 0). 2. A directive of "#line 0" is resulting in the following parse error: preprocessor error: Invalid tokens after #
91-hash-line.c
91-hash-line.c.expected
|
0acd68c4050fea82797f80ad90212926df4cf001 |
23-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Add test for the #error directive. This directive is already implemented nicely, but wasn't previously tested. It will be convenient to use this directive in further tests that rely on error messages, (such as ensuring that #line correctly sets the line number in the error message).
90-hash-error.c
90-hash-error.c.expected
|
105e2137d67b98c24251be3586985fb61aeaf28a |
18-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Add two new tests for testing redefined macros. The specification says that redefining a macro is an error, unless the new definitions is identical to the old one, (identical replacement lists but ignoring differing amounts of whitespace).
88-redefine-macro-legitimate.c
88-redefine-macro-legitimate.c.expected
89-redefine-macro-error.c
89-redefine-macro-error.c.expected
|
ce5d0a296c984a9b746f0b248f4cb10ed78bc647 |
18-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Fix 064-version.c expected result to track recent change. In commit 6be3a8b70af4ba4fa4d037d54ecf6d5f055edbc9, the #version directive was fixed to stop generating a spurious newline. Here we simply update the expected result for the single test which includes a #version directive.
64-version.c.expected
|
ede67e307142000a408e40b637132700a4dc2808 |
18-Aug-2010 |
Eric Anholt <eric@anholt.net> |
glcpp: Add testcase for #if handling bug that breaks Savage2.
87-if-comments.c
87-if-comments.c.expected
|
da6b10a7eb26c8a13056cbae9015d5b84f134142 |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Fix "unterminated if" diagnostic. This was previously being appended to the output string *after* a copy of the supposedly final string was made and handed to the caller. So the diagnostic was never actually visible to the user. We fix this by moving the check for an unterminated #if from glcpp_parser_destroy to the calling function, preprocess. This fixes the test case 083-unterminated-if.c.
83-unterminated-if.c.expected
|
253cad3f424f71f6984431e5edbde1694ccfae3f |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Add an explicit diagnostic for #if with no expression. This is more clear than the previously-generated diagnostic which was something confusing like "enexpected newline". This change makse test 080-if-witout-expression.c now pass.
80-if-without-expression.c.expected
|
624dd585c72103e5bffbc600cdf7bdfba5305a15 |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Reword diagnostic for #elif with no expression Rather than telling the user what to fix, the standard convention is to describe what the detected problem is. With this change, test 081-elif-without-expression now passes.
81-elif-without-expression.c.expected
|
cb5ea0c79bd74ea6263d54302ed19c243ceb05de |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Add several tests for diagnostics. Which are proving to be useful since some of these tests are not yet acting as desired, (in particular, the unterminated if test is not generating any diagnostic).
70-undefined-macro-in-expression.c
70-undefined-macro-in-expression.c.expected
77-else-without-if.c
77-else-without-if.c.expected
78-elif-without-if.c
78-elif-without-if.c.expected
79-endif-without-if.c
79-endif-without-if.c.expected
80-if-without-expression.c
80-if-without-expression.c.expected
81-elif-without-expression.c
81-elif-without-expression.c.expected
82-invalid-paste.c
82-invalid-paste.c.expected
83-unterminated-if.c
84-unbalanced-parentheses.c
85-incorrect-argument-count.c
85-incorrect-argument-count.c.expected
86-reserved-macro-names.c
86-reserved-macro-names.c.expected
|
2bcff4c879acec31ef0b39ecf04e9df41c5cbfab |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp-test: Capture the stderr output of the preprocessor. This allows writing tests that verify diagnostics from the preprocessor.
lcpp-test
|
8485f4d9aa6d98304bb0197dc4f1f357d81d1daa |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Clean up intermediate file when test suite is interrupted. The glcpp-test script was leaving around bogus *.valgrind-errors files if a valgrind test was interrupted.
lcpp-test
|
48ba058e7a4b808271ca987b1553efd7e9792da9 |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Additional fixes for not evaluating skipped #if/#elif expressions. This adds a couple of test cases to expand our coverage of invalid #if and being skipped, (either by being nested inside an #if/#elif that evaluates to zero or by being after an #if/#elif that evaluates to non-zero).
75-elif-elif-undef.c
75-elif-elif-undef.c.expected
76-elif-undef-nested.c
76-elif-undef-nested.c.expected
|
298a6fcddef6a91084ae921fca0b8640eb2e2a16 |
11-Aug-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glcpp/tests: Commit forgotten file 074-elif-undef.c.expected.
74-elif-undef.c.expected
|
9b7fd2099f926b9cc187382ca75eb8dedf3d37ca |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Discard output of cmp when running the test suite. We're already using the return-value of cmp to print either PASS or FAIL and in the case of failure, we're subsequently running and showing the output of diff. So any warnings/errors from cmp itself are not actually needed, and can be quite confusing.
lcpp-test
|
4f9a64407c948a7a46d23e8d4f7caae6d0e83232 |
11-Aug-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Fix expected result for the 064-version.c test. Commit d4a04f315560704bf1103df0b93723e468725df7 caused this test case to produce an additional blank line, which is otherwise harmless, but does need to be reflected in the .expected file for the test to pass.
64-version.c.expected
|
d65135a7661c320c618151df0a94c852dc9bc621 |
05-Aug-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glcpp/tests: Add a corollary to testcase 073 for testing #elif.
74-elif-undef.c
|
c52b2be16689fbbe8a8ec190dbe9dc7e469956a0 |
05-Aug-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glcpp/tests: Fix 073-if-in-ifdef.c to use #ifdef, not #if. The original intention was to use #ifdef.
73-if-in-ifdef.c
|
93b10bd353e98670b627873e1da130c789646a4e |
01-Aug-2010 |
Eric Anholt <eric@anholt.net> |
glcpp: Add a testcase for the failure in compiling xonotic's shader. gcc and mesa master agree that this is OK.
73-if-in-ifdef.c
73-if-in-ifdef.c.expected
|
279cc22dbc297b32ddc7301ed1790336cd1038ae |
28-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Add expected output for a recently-added test. I simply forgot to add this file when adding the test case originally.
69-repeated-argument.c.expected
|
fbe4240626bfe102a9c4c889ee18cb9ea27bddec |
23-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Fix function-like macros with an argument used multiple times. It's really hard to believe that this case has been broken, but apparently no test previously exercised it. So this commit adds such a test and fixes it by making a copy of the argument token-list before expanding it. This fix causes the following glean tests to now pass: glsl1-Preprocessor test 6 (#if 0, #define macro) glsl1-Preprocessor test 7 (multi-line #define)
69-repeated-argument.c
|
e1acbfca322c4ac720707ec8d3fda08fab65a30b |
21-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Avoid accidental token pasting in preprocessed result. Consider this test case: #define EMPTY int foo = 1+EMPTY+4; The expression should compile as the sequence of tokens 1, PLUS, UNARY_POSITIVE, 4. But glcpp has been failing for this case since it results in the string "1++4" which a compiler correctly sees as a syntax error, (1, POST_INCREMENT, 4). We fix this by changing any macro with an empty definition to result in a single SPACE token rather than nothing. This then gives "1+ +4" which compiles correctly. This commit does touch up the two existing test cases which already have empty macros, (to add the space to the expected result). It also adds a new test case to exercise the above scenario.
08-define-empty.c.expected
11-define-func-empty.c.expected
68-accidental-pasting.c
68-accidental-pasting.c.expected
|
1d7e03e48e87328ce0081021dde133921b78b406 |
20-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Fix support for nested #ifdef and nested #ifndef Previously, if the outer #ifdef/#ifndef evaluated to false, the inner directive would not be parsed correctly, (the identifier as the subject of the #ifdef/#ifndef would inadvertently be skipped along with the other content correctly being skipped). We fix this by setting the lexing_if state in each case here. We also add a new test to the test suite to ensure that this case is tested.
67-nested-ifdef-ifndef.c
67-nested-ifdef-ifndef.c.expected
|
17f9beb6c313b41ca08984add7b76ecb84a7339e |
20-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Support #if(expression) with no intervening space. And add a test case to ensure that this works.
66-if-nospace-expression.c
66-if-nospace-expression.c.expected
|
d1500f8a195b7afe871cd768a5d33ecfecad5f31 |
20-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Make test suite test for valgrind cleanliness. As it turns out, 4 of our current tests are not valgrind clean, (use after free errors or so), so this will be helpful for investigating and fixing those.
lcpp-test
|
3a530b8ef68a40526b33de2af8de85f71ebdb30d |
20-Jul-2010 |
Carl Worth <cworth@cworth.org> |
glcpp: Make test suite report final count of passed/total tests. And report PASS or FAIL for each test along the way as well.
lcpp-test
|
29285882676388aacff123e8bdf025904abf8ea9 |
25-Jun-2010 |
Eric Anholt <eric@anholt.net> |
glsl2: Move the compiler to the subdirectory it will live in in Mesa.
00-content-with-spaces.c
00-content-with-spaces.c.expected
01-define.c
01-define.c.expected
02-define-chain.c
02-define-chain.c.expected
03-define-chain-reverse.c
03-define-chain-reverse.c.expected
04-define-recursive.c
04-define-recursive.c.expected
05-define-composite-chain.c
05-define-composite-chain.c.expected
06-define-composite-chain-reverse.c
06-define-composite-chain-reverse.c.expected
07-define-composite-recursive.c
07-define-composite-recursive.c.expected
08-define-empty.c
08-define-empty.c.expected
09-undef.c
09-undef.c.expected
10-undef-re-define.c
10-undef-re-define.c.expected
11-define-func-empty.c
11-define-func-empty.c.expected
12-define-func-no-args.c
12-define-func-no-args.c.expected
13-define-func-1-arg-unused.c
13-define-func-1-arg-unused.c.expected
14-define-func-2-arg-unused.c
14-define-func-2-arg-unused.c.expected
15-define-object-with-parens.c
15-define-object-with-parens.c.expected
16-define-func-1-arg.c
16-define-func-1-arg.c.expected
17-define-func-2-args.c
17-define-func-2-args.c.expected
18-define-func-macro-as-parameter.c
18-define-func-macro-as-parameter.c.expected
19-define-func-1-arg-multi.c
19-define-func-1-arg-multi.c.expected
20-define-func-2-arg-multi.c
20-define-func-2-arg-multi.c.expected
21-define-func-compose.c
21-define-func-compose.c.expected
22-define-func-arg-with-parens.c
22-define-func-arg-with-parens.c.expected
23-define-extra-whitespace.c
23-define-extra-whitespace.c.expected
24-define-chain-to-self-recursion.c
24-define-chain-to-self-recursion.c.expected
25-func-macro-as-non-macro.c
25-func-macro-as-non-macro.c.expected
26-define-func-extra-newlines.c
26-define-func-extra-newlines.c.expected
27-define-chain-obj-to-func.c
27-define-chain-obj-to-func.c.expected
28-define-chain-obj-to-non-func.c
28-define-chain-obj-to-non-func.c.expected
29-define-chain-obj-to-func-with-args.c
29-define-chain-obj-to-func-with-args.c.expected
30-define-chain-obj-to-func-compose.c
30-define-chain-obj-to-func-compose.c.expected
31-define-chain-func-to-func-compose.c
31-define-chain-func-to-func-compose.c.expected
32-define-func-self-recurse.c
32-define-func-self-recurse.c.expected
33-define-func-self-compose.c
33-define-func-self-compose.c.expected
34-define-func-self-compose-non-func.c
34-define-func-self-compose-non-func.c.expected
35-define-func-self-compose-non-func-multi-token-argument.c
35-define-func-self-compose-non-func-multi-token-argument.c.expected
36-define-func-non-macro-multi-token-argument.c
36-define-func-non-macro-multi-token-argument.c.expected
37-finalize-unexpanded-macro.c
37-finalize-unexpanded-macro.c.expected
38-func-arg-with-commas.c
38-func-arg-with-commas.c.expected
39-func-arg-obj-macro-with-comma.c
39-func-arg-obj-macro-with-comma.c.expected
40-token-pasting.c
40-token-pasting.c.expected
41-if-0.c
41-if-0.c.expected
42-if-1.c
42-if-1.c.expected
43-if-0-else.c
43-if-0-else.c.expected
44-if-1-else.c
44-if-1-else.c.expected
45-if-0-elif.c
45-if-0-elif.c.expected
46-if-1-elsif.c
46-if-1-elsif.c.expected
47-if-elif-else.c
47-if-elif-else.c.expected
48-if-nested.c
48-if-nested.c.expected
49-if-expression-precedence.c
49-if-expression-precedence.c.expected
50-if-defined.c
50-if-defined.c.expected
51-if-relational.c
51-if-relational.c.expected
52-if-bitwise.c
52-if-bitwise.c.expected
53-if-divide-and-shift.c
53-if-divide-and-shift.c.expected
54-if-with-macros.c
54-if-with-macros.c.expected
55-define-chain-obj-to-func-parens-in-text.c
55-define-chain-obj-to-func-parens-in-text.c.expected
56-macro-argument-with-comma.c
56-macro-argument-with-comma.c.expected
57-empty-arguments.c
57-empty-arguments.c.expected
58-token-pasting-empty-arguments.c
58-token-pasting-empty-arguments.c.expected
59-token-pasting-integer.c
59-token-pasting-integer.c.expected
60-left-paren-in-macro-right-paren-in-text.c
60-left-paren-in-macro-right-paren-in-text.c.expected
61-define-chain-obj-to-func-multi.c
61-define-chain-obj-to-func-multi.c.expected
62-if-0-skips-garbage.c
62-if-0-skips-garbage.c.expected
63-comments.c
63-comments.c.expected
64-version.c
64-version.c.expected
65-if-defined-parens.c
65-if-defined-parens.c.expected
71-punctuator.c
71-punctuator.c.expected
72-token-pasting-same-line.c
72-token-pasting-same-line.c.expected
99-c99-example.c
99-c99-example.c.expected
lcpp-test
|