summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-05-26 11:15:21 -0700
committerCarl Worth <cworth@cworth.org>2010-05-26 11:15:21 -0700
commit8e82fcb070d5fae0ec2c763cee4cea225b459664 (patch)
tree091bdde44189b37af31a65a30987ebc430ea7a39 /tests
parent16c1e980e2e3c8852ce9bea85afe094c24e420fa (diff)
Implement (and test) support for macro expansion within conditional expressions.
To do this we have split the existing "HASH_IF expression" into two productions: First is HASH_IF pp_tokens which simply constructs a list of tokens. Then, with that resulting token list, we first evaluate all DEFINED operator tokens, then expand all macros, and finally start lexing from the resulting token list. This brings us to the second production, IF_EXPANDED expression This final production works just like our previous "HASH_IF expression", evaluating a constant integer expression. The new test (54) added for this case now passes.
Diffstat (limited to 'tests')
-rw-r--r--tests/054-if-with-macros.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/054-if-with-macros.c b/tests/054-if-with-macros.c
new file mode 100644
index 0000000000..3da79a0d96
--- /dev/null
+++ b/tests/054-if-with-macros.c
@@ -0,0 +1,34 @@
+#define one 1
+#define two 2
+#define three 3
+#define five 5
+#if five < two
+failure_1
+#else
+success_1
+#endif
+#if three >= two
+success_2
+#else
+failure_2
+#endif
+#if two + three <= five
+success_3
+#else
+failure_3
+#endif
+#if five - two == three
+success_4
+#else
+failure_4
+#endif
+#if one > three
+failure_5
+#else
+success_5
+#endif
+#if one != five
+success_6
+#else
+failure_6
+#endif