From de8f47fa9c0dfc85cb7086443b6b032ee8b88c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Mon, 1 Nov 2021 18:09:21 +0000 Subject: [PATCH] Add support for evaluating macro variables. --- cc_macro.c | 8 +++++++- test/test.answers | 12 ++++++------ test/test1000/proof.answer | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/cc_macro.c b/cc_macro.c index 20c7161..37626b2 100644 --- a/cc_macro.c +++ b/cc_macro.c @@ -145,8 +145,14 @@ struct macro_list* lookup_macro(struct token_list* token) int macro_expression(); int macro_variable() { + int value = 0; + struct macro_list* hold = lookup_macro(macro_token); + if (NULL != hold) + { + value = strtoint(hold->expansion->s); + } eat_current_token(); - return 0; + return value; } int macro_number() { diff --git a/test/test.answers b/test/test.answers index a2688be..857cf93 100644 --- a/test/test.answers +++ b/test/test.answers @@ -212,9 +212,9 @@ eb1f6aab09a1a4966f9f49a518d8aa03ca97aa7c46e443871d758a306671a85e test/results/t a2cbfd5f76d3be8049c6737e3fa02f191caf29b6885db006fa23f86e6eacc186 test/results/test0106-knight-posix-binary d75e450e2fcdf19df63f9d6a3fe5e032933e57b33f6f06b39a8ed2f3dc759f17 test/results/test0106-riscv64-binary 473cc504d6cba9eaf648abcf15c83a317ff3f4a7f08f5e8936e3b35b2cc4fbc6 test/results/test0106-x86-binary -297a5c3bc4954277ed4d76abc9fa992f8915a3d563a413a7e5a9e99a1eadd342 test/results/test1000-aarch64-binary -12fdd86a4700c86286143ffce86f4ebfcda8f503c67d3dffcc3e456529331e75 test/results/test1000-amd64-binary -8b232893d1527ecd0c025e3901a58759593722711529a4ef683a021bb8d307c5 test/results/test1000-armv7l-binary -88ffc3bbda28dca344ad79a13b2207db966a60b8d8143844f54bac4943bfe4eb test/results/test1000-knight-posix-binary -8c600229104e32e1158bf8eafa6aa23cc7d43e6f162124915499fab8e1f3f7b5 test/results/test1000-riscv64-binary -8845773d2b25015808748a39c275442313230d4f8986116e80b071e3550583db test/results/test1000-x86-binary +c45658bd9fce2b9ac426f8c6db89b2a959540db39eb650769bb996bf9f6259fc test/results/test1000-aarch64-binary +6cd43d4bab9d7edffcc72c19ab74906eca2735883368006cd87eda130d25f3dd test/results/test1000-amd64-binary +843c311f4bea408b6ab5d8821aefdb23b640af4595cfca095a247de33a8525f1 test/results/test1000-armv7l-binary +d86d219122c3b2ee8ca0419170a4b32c17f608eee33fdc0ce313d31e2d18808b test/results/test1000-knight-posix-binary +5ed9826f6b52aaba9e04ab1c730eea76e0c4ee6cbb47a13ddd2d2bb4510c171d test/results/test1000-riscv64-binary +60d7e640f52e6763a8ab03c54eac05b55be57aa431f57b6313385815551a9c3c test/results/test1000-x86-binary diff --git a/test/test1000/proof.answer b/test/test1000/proof.answer index 0db2d60..55c64d1 100644 --- a/test/test1000/proof.answer +++ b/test/test1000/proof.answer @@ -1 +1 @@ -f23cb1ecd1ba2e695c3624a8f6ee9fd723247055169c9e50acdc67652a0c2c47 test/test1000/proof +d5e949a19604b256bf3a0797a1cf1549f79790ba560db0cf8937795151645762 test/test1000/proof