From 21d2b71b5c1ad1c51866ff8d7a1376f132b1cafa Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Mon, 17 Oct 2016 05:20:20 +0200 Subject: [PATCH] Free defines before gen_inline_functions gen_inline_functions uses the macro facilities of the preprocessor, which would interact when macros would still be defined in a different pre-processor implementation I'm working on. So always free defines before generating inline functions, they are all macro expanded already. --- libtcc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libtcc.c b/libtcc.c index e92a0359..23e4e765 100644 --- a/libtcc.c +++ b/libtcc.c @@ -670,13 +670,13 @@ static int tcc_compile(TCCState *s1) decl(VT_CONST); if (tok != TOK_EOF) expect("declaration"); + /* reset define stack, but keep -D and built-ins */ + free_defines(define_start); tccgen_end(s1); } s1->error_set_jmp_enabled = 0; free_inline_functions(s1); - /* reset define stack, but keep -D and built-ins */ - free_defines(define_start); sym_pop(&global_stack, NULL); sym_pop(&local_stack, NULL); return s1->nb_errors != 0 ? -1 : 0;