diff options
| author | seyko <seyko2@gmail.com> | 2015-03-03 14:31:47 +0300 |
|---|---|---|
| committer | seyko <seyko2@gmail.com> | 2015-03-03 14:31:47 +0300 |
| commit | 252a151fc6b701b23745d1d076e10a6fa465ed84 (patch) | |
| tree | e09c247cb2f37c73447c3932e8ab1e0fe7544b7e | |
| parent | b7b9f9f51170bd1616ee56acfef9c6bf20b9cf3f (diff) | |
| download | tinycc-252a151fc6b701b23745d1d076e10a6fa465ed84.tar.gz tinycc-252a151fc6b701b23745d1d076e10a6fa465ed84.tar.bz2 | |
pp-many-files: don't drop a preprocessor defines when tcc going to preprocess a next file
in the same pass like
tcc -E one.c two.c three.c -o combined.i
This will allow to speed up a compilation process by using a commamd like
tcc -E *.c | tcc -o program.exe -xc -
It looks that multi-times initialization don't affect anything.
Only call to the free_defines(define_start) in tcc_preprocess()
is removed in assumption that free_defines(NULL) in
tcc_cleanup() will free all defines.
| -rw-r--r-- | tccpp.c | 4 |
1 files changed, 0 insertions, 4 deletions
@@ -3203,14 +3203,11 @@ static void line_macro_output(BufferedFile *f, const char *s, TCCState *s1) /* Preprocess the current file */ ST_FUNC int tcc_preprocess(TCCState *s1) { - Sym *define_start; - BufferedFile *file_ref, **iptr, **iptr_new; int token_seen, d; const char *s; preprocess_init(s1); - define_start = define_stack; ch = file->buf_ptr[0]; tok_flags = TOK_FLAG_BOL | TOK_FLAG_BOF; parse_flags = PARSE_FLAG_ASM_COMMENTS | PARSE_FLAG_PREPROCESS | @@ -3258,6 +3255,5 @@ print_line: } fputs(get_tok_str(tok, &tokc), s1->ppfp); } - free_defines(define_start); return 0; } |
