From 7c27186a83cefd7845d4840ef25bd08c8b65cd3b Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 23 Apr 2015 23:26:46 +0200 Subject: 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. --- tccpp.c | 32 -------------------------------- 1 file changed, 32 deletions(-) (limited to 'tccpp.c') 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, "", 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 { -- cgit v1.3.1