Enable or disable a warning.
.TP
.B -Wall
-Enable all warnings. Overrides preceding -W parameters.
+Enable almost all warnings. Overrides preceding -W parameters.
+.sp
+The following warnings will \fBnot\fR be anbled:
+.in +4
+.nf
+-Wuninitialized-global
+.fi
+.in
.TP
.BR -Werror ", " -Wno-error
Controls whether or not all warnings should be treated as errors.
.sp
.BR -std=gmqcc " includes:"
.in +4
+.nf
-fadjust-vector-fields
+-fcorrect-logic
+-ftrue-empty-strings
+-floop-labels
+-finitialized-nonconstants
+-ftranslatable-strings
+-f\fIno-\fRfalse-empty-strings
+-Winvalid-parameter-count
+-Wmissing-returnvalues
+-fcorrect-ternary (cannot be turned off)
+.fi
.in
+.sp
.BR -std=qcc " includes:"
.in +4
.nf
-f\fIno-\fRadjust-vector-fields
.fi
.in
+.sp
.BR -std=fteqcc " includes:"
.in +4
.nf
Functions which aren't of type \fIvoid\fR will warn if it possible to
reach the end without returning an actual value.
.TP
-.B -Wtoo-few-parameters
-Warn about a function call with fewer parameters than the function
-expects.
+.B -Winvalid-parameter-count
+Warn about a function call with an invalid number of parameters.
.TP
.B -Wlocal-shadows
Warn when a locally declared variable shadows variable.
Warn on an unknown attribute. The warning will inlclude only the first
token inside the enclosing attribute-brackets. This may change when
the actual attribute syntax is better defined.
+.TP
+.B -Wreserved-names
+Warn when using reserved names such as 'nil'.
+.TP
+.B -Wuninitialized-constant
+Warn about global constants (using the 'const' keyword) with no
+assigned value.
+.TP
+.B -Wuninitialized-global
+Warn about global variables with no initializing value. This is off by
+default, and is added mostly to help find null-values which are
+supposed to be replaced by the untyped 'nil' constant.
+.TP
+.B -Wdifferent-qualifiers
+Warn when a variables is redeclared with a different qualifier. For
+example when redeclaring a variable as \'var\' which was previously
+marked \'const\'.
+.TP
+.B -Wdifferent-attributes
+Similar to the above but for attributes like "[[noreturn]]".
+.TP
+.B -Wdeprecated
+Warn when a function is marked with the attribute
+"[[deprecated]]". This flag enables a warning on calls to functions
+marked as such.
+.TP
+.B -Wparenthesis
+Warn about possible mistakes caused by missing or wrong parenthesis,
+like an assignment in an 'if' condition when there's no additional set
+of parens around the assignment.
.SH COMPILE FLAGS
.TP
.B -fdarkplaces-string-table-bug
__COUNTER_LAST__
__RANDOM__
__RANDOM_LAST__
+__DATE__
+__TIME__
.fi
.in
-Note that fteqcc also defines __FUNC__, __TIME__, __DATE__ and
-__NULL__, which are not yet implemented.
+Note that fteqcc also defines __NULL__ which is not implemented yet.
+(See -funtyped-nil about gmqcc's alternative to __NULL__).
.TP
.B -frelaxed-switch
Allow switch cases to use non constant variables.
\-fno-bail-on-werror, compilation will continue until the end, but no
output is generated. Instead the first such error message's context is
shown.
+.TP
+.B -floop-labels
+Allow loops to be labeled, and allow 'break' and 'continue' to take an
+optional label to decide which loop to actually jump out of or
+continue.
+.sp
+.in +4
+.nf
+for :outer (i = 0; i < n; ++i) {
+ while (inner) {
+ ...;
+ if (something)
+ continue outer;
+ }
+}
+.fi
+.in
+.TP
+.B -funtyped-nil
+Adds a global named 'nil' which is of no type and can be assigned to
+anything. No typechecking will be performed on assignments. Assigning
+to it is forbidden, using it in any other kind of expression is also
+not allowed.
+.sp
+Note that this is different from fteqcc's __NULL__ in that gmqcc
+generates an actual empty global, rather than using the global at
+offset 0 because it would overlap with the global RETURN variable when
+dealing with vectors, which starts at offset 1. Setting a vector to
+__NULL__ in fteqcc causes only the vector's x component to be 0.
+However, its y and z components will contain the previous x and y
+components of the global OFS_RETURN.
+.TP
+.B -fpermissive
+Various effects, usually to weaken some conditions.
+.RS
+.IP "with -funtyped-nil"
+Allow local variables named 'nil'. (This will not allow declaring a
+global of that name.)
.SH OPTIMIZATIONS
.TP
.B -Opeephole
disassemble switch uses it to know when the function ends.). This
optimization replaces that last RETURN with DONE rather than adding
the DONE additionally.
+.TP
+.B -Ovector-components
+Because traditional QC code doesn't allow you to access individual
+vector components of a computed vector without storing it in a local
+first, sometimes people multiply it by a constant like '0 1 0' to get,
+in this case, the y component of a vector. This optimization will turn
+such a multiplication into a direct component access. If the factor is
+anything other than 1, a float-multiplication will be added, which is
+still faster than a vector multiplication.
.SH CONFIG
The configuration file is similar to regular .ini files. Comments
start with hashtags or semicolons, sections are written in square