aboutsummaryrefslogtreecommitdiff
path: root/tccpp.c
diff options
context:
space:
mode:
authorgrischka <grischka>2015-04-23 23:26:46 +0200
committergrischka <grischka>2015-04-23 23:26:46 +0200
commit7c27186a83cefd7845d4840ef25bd08c8b65cd3b (patch)
tree9c293340f7da276587508ccfe72bf6225ea77484 /tccpp.c
parent059aea5d35dd2a132b4c0016c7ceddbfa5bb9104 (diff)
downloadtinycc-7c27186a83cefd7845d4840ef25bd08c8b65cd3b.tar.gz
tinycc-7c27186a83cefd7845d4840ef25bd08c8b65cd3b.tar.bz2
Revert "* and #pragma pop_macro("macro_name")"
- pop_macro incorrect with initially undefined macro - horrible implementation (tcc_open_bf) - crashes eventually (abuse of Sym->prev_tok) - the (unrelated) asm_label part is the opposite of a fix (Despite of its name this variable has nothing to do with the built-in assembler) This reverts commit 0c8447db7970813292a8be74ee50e49091be5d15.
Diffstat (limited to 'tccpp.c')
-rw-r--r--tccpp.c32
1 files changed, 0 insertions, 32 deletions
diff --git a/tccpp.c b/tccpp.c
index b26dbee..77d40d5 100644
--- a/tccpp.c
+++ b/tccpp.c
@@ -222,7 +222,6 @@ static TokenSym *tok_alloc_new(TokenSym **pts, const char *str, int len)
table_ident[i] = ts;
ts->tok = tok_ident++;
ts->sym_define = NULL;
- ts->sym_define_stack = NULL;
ts->sym_label = NULL;
ts->sym_struct = NULL;
ts->sym_identifier = NULL;
@@ -1447,37 +1446,6 @@ static void pragma_parse(TCCState *s1)
} else {
tcc_warning("#pragma comment(lib) is ignored");
}
- } else if ((tok == TOK_push_macro) || (tok == TOK_pop_macro)) {
- int push_macro = (tok == TOK_push_macro);
- next();
- skip('(');
- if (tok != TOK_STR) {
- expect("\"");
- } else {
- int len = strlen((char *)tokc.cstr->data);
- tcc_open_bf(s1, "<push_pop_macro>", len);
- memcpy(file->buffer, tokc.cstr->data, len);
- ch = file->buf_ptr[0];
- next_nomacro();
- if (tok >= TOK_IDENT) {
- Sym *s = table_ident[tok - TOK_IDENT]->sym_define;
- Sym *ss = table_ident[tok - TOK_IDENT]->sym_define_stack;
- if (push_macro) {
- if (s) {
- s->prev_tok = ss;
- table_ident[tok - TOK_IDENT]->sym_define_stack = s;
- }
- } else {
- if (ss) {
- table_ident[tok - TOK_IDENT]->sym_define = ss;
- table_ident[tok - TOK_IDENT]->sym_define_stack = ss->prev_tok;
- }
- }
- }
- tcc_close();
- }
- next();
- skip(')');
} else if (tok == TOK_once) {
add_cached_include(s1, file->filename, TOK_once);
} else {