]> de.git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - doc/gmqcc.1
manpage: -futf8
[xonotic/gmqcc.git] / doc / gmqcc.1
index 057362f14f3ebdfca862410ffcad3d17481432d4..66225e482fe5a0df717549b832dce1be0d279eb0 100644 (file)
@@ -38,7 +38,7 @@ Default optimization level
 .IP 1
 Minimal optimization level
 .IP 0
 .IP 1
 Minimal optimization level
 .IP 0
-Disable optimization entierly
+Disable optimization entirely
 .RE
 .TP
 .BI "-O" name "\fR, " "" -Ono- name
 .RE
 .TP
 .BI "-O" name "\fR, " "" -Ono- name
@@ -56,6 +56,12 @@ Enable or disable a warning.
 .B -Wall
 Enable all warnings. Overrides preceding -W parameters.
 .TP
 .B -Wall
 Enable all warnings. Overrides preceding -W parameters.
 .TP
+.BR -Werror ", " -Wno-error
+Controls whether or not all warnings should be treated as errors.
+.TP
+.BI -Werror- warning "\fR, " "" -Wno-error- warning
+Controls whether a specific warning should be an error.
+.TP
 .B -Whelp
 List all possible warn flags.
 .TP
 .B -Whelp
 List all possible warn flags.
 .TP
@@ -110,7 +116,7 @@ them.
 -f\fIno-\fRcorrect-ternary
 .fi
 .in
 -f\fIno-\fRcorrect-ternary
 .fi
 .in
-.SH Warnings
+.SH COMPILE WARNINGS
 .TP
 .B -Wunused-variable
 Generate a warning about variables which are declared but never used.
 .TP
 .B -Wunused-variable
 Generate a warning about variables which are declared but never used.
@@ -190,7 +196,12 @@ function to an entity's .think function pointer.
 .TP
 .B -Wpreprocessor
 Enable warnings coming from the preprocessor. Like duplicate macro
 .TP
 .B -Wpreprocessor
 Enable warnings coming from the preprocessor. Like duplicate macro
-declarations.
+declarations. This warning triggers when there's a problem with the
+way the preprocessor has been used, it will \fBnot\fR affect warnings
+generated with the '#warning' directive. See -Wcpp.
+.TP
+.B -Wcpp
+Show warnings created using the preprocessor's '#warning' directive.
 .TP
 .B -Wmultifile-if
 Warn if there's a preprocessor \fI#if\fR spanning across several
 .TP
 .B -Wmultifile-if
 Warn if there's a preprocessor \fI#if\fR spanning across several
@@ -220,10 +231,18 @@ actually want. We recommend the \fI-fcorrect-ternary\fR option.
 .B -Wunknown-pragmas
 Warn when encountering an unrecognized \fI#pragma\fR line.
 .TP
 .B -Wunknown-pragmas
 Warn when encountering an unrecognized \fI#pragma\fR line.
 .TP
+.B -Wunreachable-code
+Warn about unreachable code. That is: code after a return statement,
+or code after a call to a function marked as 'noreturn'.
+.TP
 .B -Wdebug
 Enable some warnings added in order to help debugging in the compiler.
 You won't need this.
 .B -Wdebug
 Enable some warnings added in order to help debugging in the compiler.
 You won't need this.
-.SH Compile Flags
+.B -Wunknown-attribute
+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.
+.SH COMPILE FLAGS
 .TP
 .B -foverlap-locals
 Allow local variables to overlap with each other if they don't
 .TP
 .B -foverlap-locals
 Allow local variables to overlap with each other if they don't
@@ -287,6 +306,36 @@ soption.
 Normally vectors generate 4 defs, once for the vector, and once for
 its components with _x, _y, _z suffixes. This option
 prevents components from being listed.
 Normally vectors generate 4 defs, once for the vector, and once for
 its components with _x, _y, _z suffixes. This option
 prevents components from being listed.
+.TP
+.B -fcorrect-logic
+Most QC compilers translate if(a_vector) directly as an IF on the
+vector, which means only the x-component is checked. This causes
+vectors to be cast to actual booleans via a NOT_V and, if necessary, a
+NOT_F chained to it.
+.in +4
+.nf
+if (a_vector) // becomes
+if not(!a_vector)
+// likewise
+a = a_vector && a_float // becomes
+a = !!a_vector && a_float
+.fi
+.in
+.TP
+.B -ftrue-empty-strings
+An empty string is considered to be true everywhere. The NOT_S
+instruction usually considers an empty string to be false, this option
+effectively causes the unary not in strings to use NOT_F instead.
+.TP
+.B -ffalse-empty-strings
+An empty string is considered to be false everywhere. This means loops
+and if statements which depend on a string will perform a NOT_S
+instruction on the string before using it.
+.TP
+.B -futf8
+Enable utf8 characters. This allows utf-8 encoded character constants,
+and escape sequence codepoints in the valid utf-8 range. Effectively
+enabling escape sequences like '\\{x2211}'.
 .SH CONFIG
 The configuration file is similar to regular .ini files. Comments
 start with hashtags or semicolons, sections are written in square
 .SH CONFIG
 The configuration file is similar to regular .ini files. Comments
 start with hashtags or semicolons, sections are written in square
@@ -321,6 +370,10 @@ Here's an example:
 .SH BUGS
 Please report bugs on <http://github.com/graphitemaster/gmqcc/issues>,
 or see <http://graphitemaster.github.com/gmqcc> on how to contact us.
 .SH BUGS
 Please report bugs on <http://github.com/graphitemaster/gmqcc/issues>,
 or see <http://graphitemaster.github.com/gmqcc> on how to contact us.
+.SH FILES
+.TP 20
+.B gmqcc.ini.example
+A documented example for a gmqcc.ini file.
 .SH SEE ALSO
 .IR qcvm (1)
 .SH AUTHOR
 .SH SEE ALSO
 .IR qcvm (1)
 .SH AUTHOR