aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiang <30155751@qq.com>2014-05-16 15:44:51 +0800
committerjiang <30155751@qq.com>2014-05-16 15:44:51 +0800
commit276553c6b2b4df0ac9593d15b8889d470edb27de (patch)
tree9bbb91babaf6e5281aaaea4c2ab3ae5b50223cd6
parent52891b6ff680a03c966776b530cf94de9f831b07 (diff)
downloadtinycc-276553c6b2b4df0ac9593d15b8889d470edb27de.tar.gz
tinycc-276553c6b2b4df0ac9593d15b8889d470edb27de.tar.bz2
add push_macro test again
-rw-r--r--tccpp.c2
-rw-r--r--tests/tcctest.c13
2 files changed, 14 insertions, 1 deletions
diff --git a/tccpp.c b/tccpp.c
index 91c2aee..4aa8b95 100644
--- a/tccpp.c
+++ b/tccpp.c
@@ -1741,7 +1741,7 @@ pack_error:
if(def->off >= def->size){
int size = def->size;
size *= 2;
- if (size >= MACRO_STACK_SIZE)
+ if (size > MACRO_STACK_SIZE)
tcc_error("stack full");
def->data = tcc_realloc(def->data, size*sizeof(Sym*));
def->size = size;
diff --git a/tests/tcctest.c b/tests/tcctest.c
index 3fc7b82..e0b307b 100644
--- a/tests/tcctest.c
+++ b/tests/tcctest.c
@@ -382,16 +382,29 @@ comment
/* macro_push and macro_pop test */
#define MACRO_TEST "macro_test1\n"
#pragma push_macro("MACRO_TEST")
+ printf(MACRO_TEST);
#undef MACRO_TEST
#define MACRO_TEST "macro_test2\n"
#pragma push_macro("MACRO_TEST")
+ printf(MACRO_TEST);
#undef MACRO_TEST
#define MACRO_TEST "macro_test3\n"
+ #pragma push_macro("MACRO_TEST")
+ printf(MACRO_TEST);
+ #undef MACRO_TEST
+
+ #define MACRO_TEST "macro_test4\n"
printf(MACRO_TEST);
+ #undef MACRO_TEST
+
+ #pragma pop_macro("MACRO_TEST")
+ printf(MACRO_TEST);
+
#pragma pop_macro("MACRO_TEST")
printf(MACRO_TEST);
+
#pragma pop_macro("MACRO_TEST")
printf(MACRO_TEST);
/* gcc does not support