From 0a57c408c0190f9cc267d14cbff648cf7cbebc3c Mon Sep 17 00:00:00 2001 From: Dale Weiler Date: Mon, 24 Dec 2012 00:21:55 +0000 Subject: [PATCH] Added ftepp predefs flag (ability to turn on/off predefs) disabled by default (even with -ftepp), enabled with -E, to enable use -fftepp-predefs. --- ftepp.c | 18 ++++++++++-------- main.c | 1 + opts.c | 1 + opts.def | 11 ++++++----- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/ftepp.c b/ftepp.c index 577cd6f..e1ee582 100644 --- a/ftepp.c +++ b/ftepp.c @@ -1391,14 +1391,16 @@ static bool ftepp_preprocess(ftepp_t *ftepp) case TOKEN_IDENT: case TOKEN_TYPENAME: /* is it a predef? */ - for (i = 0; i < sizeof(ftepp_predefs) / sizeof (*ftepp_predefs); i++) { - if (!strcmp(ftepp_predefs[i].name, ftepp_tokval(ftepp))) { - expand = ftepp_predefs[i].func(ftepp->lex); - ftepp_out(ftepp, expand, false); - ftepp_next(ftepp); /* skip */ - - mem_d(expand); /* free memory */ - break; + if (OPTS_FLAG(FTEPP_PREDEFS)) { + for (i = 0; i < sizeof(ftepp_predefs) / sizeof (*ftepp_predefs); i++) { + if (!strcmp(ftepp_predefs[i].name, ftepp_tokval(ftepp))) { + expand = ftepp_predefs[i].func(ftepp->lex); + ftepp_out(ftepp, expand, false); + ftepp_next(ftepp); /* skip */ + + mem_d(expand); /* free memory */ + break; + } } } diff --git a/main.c b/main.c index 838a26d..aa1e3a0 100644 --- a/main.c +++ b/main.c @@ -261,6 +261,7 @@ static bool options_parse(int argc, char **argv) { case 'E': opts.pp_only = true; + opts_set(opts.flags, FTEPP_PREDEFS, true); /* predefs on for -E */ break; /* debug turns on -flno */ diff --git a/opts.c b/opts.c index 4d7d9a0..c1b0e63 100644 --- a/opts.c +++ b/opts.c @@ -57,6 +57,7 @@ static void opts_setdefault() { /* flags */ opts_set(opts.flags, ADJUST_VECTOR_FIELDS, true); opts_set(opts.flags, FTEPP, false); + opts_set(opts.flags, FTEPP_PREDEFS, false); opts_set(opts.flags, CORRECT_TERNARY, true); } diff --git a/opts.def b/opts.def index 2c68898..111700d 100644 --- a/opts.def +++ b/opts.def @@ -31,6 +31,7 @@ GMQCC_DEFINE_FLAG(DARKPLACES_STRING_TABLE_BUG) GMQCC_DEFINE_FLAG(ADJUST_VECTOR_FIELDS) GMQCC_DEFINE_FLAG(FTEPP) + GMQCC_DEFINE_FLAG(FTEPP_PREDEFS) GMQCC_DEFINE_FLAG(RELAXED_SWITCH) GMQCC_DEFINE_FLAG(SHORT_LOGIC) GMQCC_DEFINE_FLAG(PERL_LOGIC) @@ -78,11 +79,11 @@ #endif #ifdef GMQCC_TYPE_OPTIMIZATIONS - GMQCC_DEFINE_FLAG(PEEPHOLE, 1) - GMQCC_DEFINE_FLAG(LOCAL_TEMPS, 3) - GMQCC_DEFINE_FLAG(TAIL_RECURSION, 1) - GMQCC_DEFINE_FLAG(TAIL_CALLS, 2) - GMQCC_DEFINE_FLAG(OVERLAP_LOCALS, 3) + GMQCC_DEFINE_FLAG(PEEPHOLE, 1) + GMQCC_DEFINE_FLAG(LOCAL_TEMPS, 3) + GMQCC_DEFINE_FLAG(TAIL_RECURSION, 1) + GMQCC_DEFINE_FLAG(TAIL_CALLS, 2) + GMQCC_DEFINE_FLAG(OVERLAP_LOCALS, 3) GMQCC_DEFINE_FLAG(STRIP_CONSTANT_NAMES, 1) #endif -- 2.39.2