From: Dale Weiler Date: Sun, 1 Dec 2013 15:45:43 +0000 (-0500) Subject: Mask ftepp math constants with a compiler flag X-Git-Tag: xonotic-v0.8.0~39 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=6a44b72db35be162e247e1ec234d90f8914eb014;p=xonotic%2Fgmqcc.git Mask ftepp math constants with a compiler flag --- diff --git a/doc/gmqcc.1 b/doc/gmqcc.1 index 2a205bb..7ee54c0 100644 --- a/doc/gmqcc.1 +++ b/doc/gmqcc.1 @@ -397,6 +397,26 @@ only the first component will be 0, while the other two will become the first to of the global return value. This behavior is odd and relying on it should be discouraged, and thus is not supported by gmqcc. +.It Fl f Ns Cm ftepp-mathdefs +Enable math constant definitions. This only works in combination +with \'\-fftepp' and is currently not included by '\-std=fteqcc'. +The following macros will be added: +.Bd -literal -offset indent +M_E +M_LOG2E +M_LOG10E +M_LN2 +M_LN10 +M_PI +M_PI_2 +M_PI_4 +M_1_PI +M_2_PI +M_2_SQRTPI +M_SQRT2 +M_SQRT1_2 +M_TAU +.Ed .It Fl f Ns Cm relaxed-switch Allow switch cases to use non constant variables. .It Fl f Ns Cm short-logic diff --git a/ftepp.c b/ftepp.c index 82495b4..496a46a 100644 --- a/ftepp.c +++ b/ftepp.c @@ -1900,9 +1900,11 @@ ftepp_t *ftepp_create() ftepp_add_macro(ftepp, "__NULL__", "nil"); /* add all the math constants if they can be */ - for (i = 0; i < GMQCC_ARRAY_COUNT(ftepp_math_constants); i++) - if (!ftepp_macro_find(ftepp, ftepp_math_constants[i][0])) - ftepp_add_macro(ftepp, ftepp_math_constants[i][0], ftepp_math_constants[i][1]); + if (OPTS_FLAG(FTEPP_MATHDEFS)) { + for (i = 0; i < GMQCC_ARRAY_COUNT(ftepp_math_constants); i++) + if (!ftepp_macro_find(ftepp, ftepp_math_constants[i][0])) + ftepp_add_macro(ftepp, ftepp_math_constants[i][0], ftepp_math_constants[i][1]); + } return ftepp; } diff --git a/gmqcc.ini.example b/gmqcc.ini.example index 0a263df..20680d3 100644 --- a/gmqcc.ini.example +++ b/gmqcc.ini.example @@ -62,6 +62,28 @@ FTEPP_PREDEFS = false + #Enable math constant definitions. This only works in combination + #with '-fftepp' and is currently not included by '-std=fteqcc'. + #The following macros will be added: + # + # M_E + # M_LOG2E + # M_LOG10E + # M_LN2 + # M_LN10 + # M_PI + # M_PI_2 + # M_PI_4 + # M_1_PI + # M_2_PI + # M_2_SQRTPI + # M_SQRT2 + # M_SQRT1_2 + # M_TAU + + FTEPP_MATHDEFS = false + + #Allow switch cases to use non constant variables. RELAXED_SWITCH = true diff --git a/opts.def b/opts.def index b209988..4ccd409 100644 --- a/opts.def +++ b/opts.def @@ -31,6 +31,7 @@ GMQCC_DEFINE_FLAG(ADJUST_VECTOR_FIELDS) GMQCC_DEFINE_FLAG(FTEPP) GMQCC_DEFINE_FLAG(FTEPP_PREDEFS) + GMQCC_DEFINE_FLAG(FTEPP_MATHDEFS) GMQCC_DEFINE_FLAG(RELAXED_SWITCH) GMQCC_DEFINE_FLAG(SHORT_LOGIC) GMQCC_DEFINE_FLAG(PERL_LOGIC)