X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=opts.def;h=2dc4fb77cd9d8a38d3fa15422ce74b38bde3e7e2;hp=dc6869e89288e2511458698c18e7b5a5fee51cee;hb=b14a02e735f8b7bed773d397a35b6fda1e2a368d;hpb=3c8ce7c86655787a7fee1efac64979d4c2bcd5ab diff --git a/opts.def b/opts.def index dc6869e..2dc4fb7 100644 --- a/opts.def +++ b/opts.def @@ -1,28 +1,5 @@ -/* - * Copyright (C) 2012, 2013 - * Wolfgang Bumiller - * Dale Weiler - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is furnished to do - * so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ #ifndef GMQCC_DEFINE_FLAG -# define GMQCC_DEFINE_FLAG(x) +# error "bad opts.def usage" #endif /* codegen flags */ @@ -31,6 +8,8 @@ GMQCC_DEFINE_FLAG(ADJUST_VECTOR_FIELDS) GMQCC_DEFINE_FLAG(FTEPP) GMQCC_DEFINE_FLAG(FTEPP_PREDEFS) + GMQCC_DEFINE_FLAG(FTEPP_MATHDEFS) + GMQCC_DEFINE_FLAG(FTEPP_INDIRECT_EXPANSION) GMQCC_DEFINE_FLAG(RELAXED_SWITCH) GMQCC_DEFINE_FLAG(SHORT_LOGIC) GMQCC_DEFINE_FLAG(PERL_LOGIC) @@ -50,6 +29,14 @@ GMQCC_DEFINE_FLAG(PERMISSIVE) GMQCC_DEFINE_FLAG(VARIADIC_ARGS) GMQCC_DEFINE_FLAG(LEGACY_VECTOR_MATHS) + GMQCC_DEFINE_FLAG(EXPRESSIONS_FOR_BUILTINS) + GMQCC_DEFINE_FLAG(RETURN_ASSIGNMENTS) + GMQCC_DEFINE_FLAG(UNSAFE_VARARGS) + GMQCC_DEFINE_FLAG(TYPELESS_STORES) + GMQCC_DEFINE_FLAG(SORT_OPERANDS) + GMQCC_DEFINE_FLAG(EMULATE_STATE) + GMQCC_DEFINE_FLAG(ARITHMETIC_EXCEPTIONS) + GMQCC_DEFINE_FLAG(SPLIT_VECTOR_PARAMETERS) #endif /* warning flags */ @@ -57,6 +44,7 @@ GMQCC_DEFINE_FLAG(UNINITIALIZED_GLOBAL) GMQCC_DEFINE_FLAG(DEBUG) GMQCC_DEFINE_FLAG(UNUSED_VARIABLE) + GMQCC_DEFINE_FLAG(UNUSED_COMPONENT) GMQCC_DEFINE_FLAG(USED_UNINITIALIZED) GMQCC_DEFINE_FLAG(UNKNOWN_CONTROL_SEQUENCE) GMQCC_DEFINE_FLAG(EXTENSIONS) @@ -72,7 +60,7 @@ GMQCC_DEFINE_FLAG(EFFECTLESS_STATEMENT) GMQCC_DEFINE_FLAG(END_SYS_FIELDS) GMQCC_DEFINE_FLAG(ASSIGN_FUNCTION_TYPES) - GMQCC_DEFINE_FLAG(PREPROCESSOR) + GMQCC_DEFINE_FLAG(CPP) GMQCC_DEFINE_FLAG(MULTIFILE_IF) GMQCC_DEFINE_FLAG(DOUBLE_DECLARATION) GMQCC_DEFINE_FLAG(CONST_VAR) @@ -80,7 +68,6 @@ GMQCC_DEFINE_FLAG(TERNARY_PRECEDENCE) GMQCC_DEFINE_FLAG(UNKNOWN_PRAGMAS) GMQCC_DEFINE_FLAG(UNREACHABLE_CODE) - GMQCC_DEFINE_FLAG(CPP) GMQCC_DEFINE_FLAG(UNKNOWN_ATTRIBUTE) GMQCC_DEFINE_FLAG(RESERVED_NAMES) GMQCC_DEFINE_FLAG(UNINITIALIZED_CONSTANT) @@ -88,24 +75,51 @@ GMQCC_DEFINE_FLAG(DIFFERENT_ATTRIBUTES) GMQCC_DEFINE_FLAG(DEPRECATED) GMQCC_DEFINE_FLAG(PARENTHESIS) + GMQCC_DEFINE_FLAG(UNSAFE_TYPES) + GMQCC_DEFINE_FLAG(BREAKDEF) + GMQCC_DEFINE_FLAG(CONST_OVERWRITE) + GMQCC_DEFINE_FLAG(DIRECTIVE_INMACRO) + GMQCC_DEFINE_FLAG(BUILTINS) + GMQCC_DEFINE_FLAG(INEXACT_COMPARES) #endif #ifdef GMQCC_TYPE_OPTIMIZATIONS GMQCC_DEFINE_FLAG(PEEPHOLE, 1) - GMQCC_DEFINE_FLAG(LOCAL_TEMPS, 3) - GMQCC_DEFINE_FLAG(GLOBAL_TEMPS, 3) GMQCC_DEFINE_FLAG(TAIL_RECURSION, 1) - GMQCC_DEFINE_FLAG(TAIL_CALLS, 2) GMQCC_DEFINE_FLAG(OVERLAP_LOCALS, 3) + GMQCC_DEFINE_FLAG(LOCAL_TEMPS, 3) + GMQCC_DEFINE_FLAG(GLOBAL_TEMPS, 3) GMQCC_DEFINE_FLAG(STRIP_CONSTANT_NAMES, 1) GMQCC_DEFINE_FLAG(OVERLAP_STRINGS, 2) - GMQCC_DEFINE_FLAG(CALL_STORES, 4) + GMQCC_DEFINE_FLAG(CALL_STORES, 3) GMQCC_DEFINE_FLAG(VOID_RETURN, 1) GMQCC_DEFINE_FLAG(VECTOR_COMPONENTS, 1) + GMQCC_DEFINE_FLAG(CONST_FOLD_DCE, 2) + GMQCC_DEFINE_FLAG(CONST_FOLD, 0) /* cannot be turned off */ +#endif + +#ifdef GMQCC_TYPE_OPTIONS + GMQCC_DEFINE_FLAG(O) + GMQCC_DEFINE_FLAG(OUTPUT) + GMQCC_DEFINE_FLAG(QUIET) + GMQCC_DEFINE_FLAG(G) + GMQCC_DEFINE_FLAG(STANDARD) + GMQCC_DEFINE_FLAG(DEBUG) + GMQCC_DEFINE_FLAG(DUMPFIN) + GMQCC_DEFINE_FLAG(DUMP) + GMQCC_DEFINE_FLAG(FORCECRC) + GMQCC_DEFINE_FLAG(FORCED_CRC) + GMQCC_DEFINE_FLAG(PP_ONLY) + GMQCC_DEFINE_FLAG(MAX_ARRAY_SIZE) + GMQCC_DEFINE_FLAG(ADD_INFO) + GMQCC_DEFINE_FLAG(PROGSRC) + GMQCC_DEFINE_FLAG(COVERAGE) + GMQCC_DEFINE_FLAG(STATE_FPS) #endif /* some cleanup so we don't have to */ #undef GMQCC_TYPE_FLAGS #undef GMQCC_TYPE_WARNS +#undef GMQCC_TYPE_OPTIONS #undef GMQCC_TYPE_OPTIMIZATIONS #undef GMQCC_DEFINE_FLAG