diff options
author | Carl Worth <[email protected]> | 2010-07-20 14:13:32 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2010-07-20 17:01:11 -0700 |
commit | 1d7e03e48e87328ce0081021dde133921b78b406 (patch) | |
tree | 6bd7be0087307fe520cd2ab672b73e48a65f145c /src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c | |
parent | 17f9beb6c313b41ca08984add7b76ecb84a7339e (diff) |
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.
Diffstat (limited to 'src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c')
-rw-r--r-- | src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c b/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c new file mode 100644 index 00000000000..f46cce4e60a --- /dev/null +++ b/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c @@ -0,0 +1,40 @@ +#define D1 +#define D2 + +#define result success + +#ifdef U1 +#ifdef U2 +#undef result +#define result failure +#endif +#endif +result + +#ifndef D1 +#ifndef D2 +#undef result +#define result failure +#endif +#endif +result + +#undef result +#define result failure +#ifdef D1 +#ifdef D2 +#undef result +#define result success +#endif +#endif +result + +#undef result +#define result failure +#ifndef U1 +#ifndef U2 +#undef result +#define result success +#endif +#endif +result |