Regenerate the manpage in mdoc(7) format using pod2mdoc
Now mandoc can render the manpage properly
This commit is contained in:
parent
4cf0a674c0
commit
b156563c0c
@ -1,542 +1,389 @@
|
||||
.\" $FreeBSD$
|
||||
.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
|
||||
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
|
||||
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
|
||||
.\" nothing in troff, for use with C<>.
|
||||
.tr \(*W-
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
. ds C`
|
||||
. ds C'
|
||||
'br\}
|
||||
.\"
|
||||
.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.\"
|
||||
.\" Avoid warning from groff about undefined register 'F'.
|
||||
.de IX
|
||||
..
|
||||
.nr rF 0
|
||||
.if \n(.g .if rF .nr rF 1
|
||||
.if (\n(rF:(\n(.g==0)) \{
|
||||
. if \nF \{
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. if !\nF==2 \{
|
||||
. nr % 0
|
||||
. nr F 2
|
||||
. \}
|
||||
. \}
|
||||
.\}
|
||||
.rr rF
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "CLANG 1"
|
||||
.TH CLANG 1 "2014-01-01" "clang 3.4" "Clang Tools Documentation"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.if n .ad l
|
||||
.nh
|
||||
.SH "NAME"
|
||||
clang \- the Clang C, C++, and Objective\-C compiler
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
\&\fBclang\fR [\fB\-c\fR|\fB\-S\fR|\fB\-E\fR] \fB\-std=\fR\fIstandard\fR \fB\-g\fR
|
||||
[\fB\-O0\fR|\fB\-O1\fR|\fB\-O2\fR|\fB\-O3\fR|\fB\-Ofast\fR|\fB\-Os\fR|\fB\-Oz\fR|\fB\-O\fR|\fB\-O4\fR]
|
||||
\fB\-W\fR\fIwarnings...\fR \fB\-pedantic\fR
|
||||
\fB\-I\fR\fIdir...\fR \fB\-L\fR\fIdir...\fR
|
||||
\fB\-D\fR\fImacro[=defn]\fR
|
||||
\fB\-f\fR\fIfeature-option...\fR
|
||||
\fB\-m\fR\fImachine-option...\fR
|
||||
\fB\-o\fR \fIoutput-file\fR
|
||||
\fB\-stdlib=\fR\fIlibrary\fR
|
||||
\fIinput-filenames\fR
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBclang\fR is a C, \*(C+, and Objective-C compiler which encompasses preprocessing,
|
||||
.Dd November 18, 2013
|
||||
.Dt CLANG 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm clang
|
||||
.Nd the Clang C, C++, and Objective-C compiler
|
||||
.Sh SYNOPSIS
|
||||
.Nm clang
|
||||
.Oo
|
||||
.Fl c Ns | Ns Fl S Ns | Ns Fl E Ns
|
||||
.Oc
|
||||
.Ar std= Ns Em standard
|
||||
.Fl g
|
||||
.br
|
||||
.Oo
|
||||
.Fl O0 Ns | Ns Fl O1 Ns | Ns Fl O2 Ns | Ns Fl O3 Ns | Ns Fl Ofast Ns | Ns Fl Os Ns | Ns Fl Oz Ns | Ns Fl O Ns | Ns Fl O4 Ns
|
||||
.Oc
|
||||
.br
|
||||
.Fl W Ns Em warnings...
|
||||
.Fl pedantic
|
||||
.br
|
||||
.Fl I Ns Em dir...
|
||||
.Fl L Ns Em dir...
|
||||
.br
|
||||
.Fl D Ns Em macro[=defn]
|
||||
.br
|
||||
.Fl f Ns Em feature-option...
|
||||
.br
|
||||
.Fl m Ns Em machine-option...
|
||||
.br
|
||||
.Fl o
|
||||
.Em output-file
|
||||
.br
|
||||
.Ar stdlib= Ns Em library
|
||||
.br
|
||||
.Em input-filenames
|
||||
.Sh DESCRIPTION
|
||||
.Sy clang
|
||||
is a C, C++, and Objective-C compiler which encompasses preprocessing,
|
||||
parsing, optimization, code generation, assembly, and linking. Depending on
|
||||
which high-level mode setting is passed, Clang will stop before doing a full
|
||||
link. While Clang is highly integrated, it is important to understand the
|
||||
stages of compilation, to understand how to invoke it. These stages are:
|
||||
.IP "\fBDriver\fR" 4
|
||||
.IX Item "Driver"
|
||||
The \fBclang\fR executable is actually a small driver which controls the overall
|
||||
.Bl -tag -width Ds
|
||||
.It Sy Driver
|
||||
The
|
||||
.Sy clang
|
||||
executable is actually a small driver which controls the overall
|
||||
execution of other tools such as the compiler, assembler and linker. Typically
|
||||
you do not need to interact with the driver, but you transparently use it to run
|
||||
the other tools.
|
||||
.IP "\fBPreprocessing\fR" 4
|
||||
.IX Item "Preprocessing"
|
||||
.It Sy Preprocessing
|
||||
This stage handles tokenization of the input source file, macro expansion,
|
||||
#include expansion and handling of other preprocessor directives. The output of
|
||||
this stage is typically called a \*(L".i\*(R" (for C), \*(L".ii\*(R" (for \*(C+), \*(L".mi\*(R" (for
|
||||
Objective-C) , or \*(L".mii\*(R" (for Objective\-\*(C+) file.
|
||||
.IP "\fBParsing and Semantic Analysis\fR" 4
|
||||
.IX Item "Parsing and Semantic Analysis"
|
||||
this stage is typically called a ".i" (for C), ".ii" (for C++), ".mi" (for
|
||||
Objective-C) , or ".mii" (for Objective-C++) file.
|
||||
.It Sy Parsing and Semantic Analysis
|
||||
This stage parses the input file, translating preprocessor tokens into a parse
|
||||
tree. Once in the form of a parser tree, it applies semantic analysis to compute
|
||||
types for expressions as well and determine whether the code is well formed. This
|
||||
stage is responsible for generating most of the compiler warnings as well as
|
||||
parse errors. The output of this stage is an \*(L"Abstract Syntax Tree\*(R" (\s-1AST\s0).
|
||||
.IP "\fBCode Generation and Optimization\fR" 4
|
||||
.IX Item "Code Generation and Optimization"
|
||||
This stage translates an \s-1AST\s0 into low-level intermediate code (known as \*(L"\s-1LLVM
|
||||
IR\*(R"\s0) and ultimately to machine code. This phase is responsible for optimizing
|
||||
parse errors. The output of this stage is an "Abstract Syntax Tree" (AST).
|
||||
.It Sy Code Generation and Optimization
|
||||
This stage translates an AST into low-level intermediate code (known as "LLVM
|
||||
IR") and ultimately to machine code. This phase is responsible for optimizing
|
||||
the generated code and handling target-specific code generation. The output of
|
||||
this stage is typically called a \*(L".s\*(R" file or \*(L"assembly\*(R" file.
|
||||
.Sp
|
||||
this stage is typically called a ".s" file or "assembly" file.
|
||||
.Pp
|
||||
Clang also supports the use of an integrated assembler, in which the code
|
||||
generator produces object files directly. This avoids the overhead of generating
|
||||
the \*(L".s\*(R" file and of calling the target assembler.
|
||||
.IP "\fBAssembler\fR" 4
|
||||
.IX Item "Assembler"
|
||||
the ".s" file and of calling the target assembler.
|
||||
.It Sy Assembler
|
||||
This stage runs the target assembler to translate the output of the compiler
|
||||
into a target object file. The output of this stage is typically called a \*(L".o\*(R"
|
||||
file or \*(L"object\*(R" file.
|
||||
.IP "\fBLinker\fR" 4
|
||||
.IX Item "Linker"
|
||||
into a target object file. The output of this stage is typically called a ".o"
|
||||
file or "object" file.
|
||||
.It Sy Linker
|
||||
This stage runs the target linker to merge multiple object files into an
|
||||
executable or dynamic library. The output of this stage is typically called an
|
||||
\&\*(L"a.out\*(R", \*(L".dylib\*(R" or \*(L".so\*(R" file.
|
||||
.PP
|
||||
"a.out", ".dylib" or ".so" file.
|
||||
.El
|
||||
.Pp
|
||||
The Clang compiler supports a large number of options to control each of these
|
||||
stages. In addition to compilation of code, Clang also supports other tools:
|
||||
.PP
|
||||
\&\fBClang Static Analyzer\fR
|
||||
.PP
|
||||
.Pp
|
||||
.Sy Clang Static Analyzer
|
||||
.Pp
|
||||
The Clang Static Analyzer is a tool that scans source code to try to find bugs
|
||||
through code analysis. This tool uses many parts of Clang and is built into the
|
||||
same driver. Please see <http://clang\-analyzer.llvm.org> for more details
|
||||
same driver. Please see
|
||||
.Lk http://clang-analyzer.llvm.org
|
||||
for more details
|
||||
on how to use the static analyzer.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.SS "Stage Selection Options"
|
||||
.IX Subsection "Stage Selection Options"
|
||||
.IP "\fB\-E\fR" 4
|
||||
.IX Item "-E"
|
||||
.Sh OPTIONS
|
||||
.Ss Stage Selection Options
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -E
|
||||
Run the preprocessor stage.
|
||||
.IP "\fB\-fsyntax\-only\fR" 4
|
||||
.IX Item "-fsyntax-only"
|
||||
.It Sy -fsyntax-only
|
||||
Run the preprocessor, parser and type checking stages.
|
||||
.IP "\fB\-S\fR" 4
|
||||
.IX Item "-S"
|
||||
Run the previous stages as well as \s-1LLVM\s0 generation and optimization stages and
|
||||
.It Sy -S
|
||||
Run the previous stages as well as LLVM generation and optimization stages and
|
||||
target-specific code generation, producing an assembly file.
|
||||
.IP "\fB\-c\fR" 4
|
||||
.IX Item "-c"
|
||||
Run all of the above, plus the assembler, generating a target \*(L".o\*(R" object file.
|
||||
.IP "\fBno stage selection option\fR" 4
|
||||
.IX Item "no stage selection option"
|
||||
.It Sy -c
|
||||
Run all of the above, plus the assembler, generating a target ".o" object file.
|
||||
.It Sy no stage selection option
|
||||
If no stage selection option is specified, all stages above are run, and the
|
||||
linker is run to combine the results into an executable or shared library.
|
||||
.SS "Language Selection and Mode Options"
|
||||
.IX Subsection "Language Selection and Mode Options"
|
||||
.IP "\fB\-x\fR \fIlanguage\fR" 4
|
||||
.IX Item "-x language"
|
||||
Treat subsequent input files as having type \fIlanguage\fR.
|
||||
.IP "\fB\-std\fR=\fIlanguage\fR" 4
|
||||
.IX Item "-std=language"
|
||||
.El
|
||||
.Ss Language Selection and Mode Options
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -x Em language
|
||||
Treat subsequent input files as having type
|
||||
.Em language .
|
||||
.It Sy -std Ns = Ns Em language
|
||||
Specify the language standard to compile for.
|
||||
.IP "\fB\-stdlib\fR=\fIlibrary\fR" 4
|
||||
.IX Item "-stdlib=library"
|
||||
Specify the \*(C+ standard library to use; supported options are libstdc++ and
|
||||
.It Sy -stdlib Ns = Ns Em library
|
||||
Specify the C++ standard library to use; supported options are libstdc++ and
|
||||
libc++.
|
||||
.IP "\fB\-ansi\fR" 4
|
||||
.IX Item "-ansi"
|
||||
Same as \fB\-std=c89\fR.
|
||||
.IP "\fB\-ObjC++\fR" 4
|
||||
.IX Item "-ObjC++"
|
||||
Treat source input files as Objective\-\*(C+ inputs.
|
||||
.IP "\fB\-ObjC\fR" 4
|
||||
.IX Item "-ObjC"
|
||||
.It Sy -ansi
|
||||
Same as
|
||||
.Sy -std=c89 .
|
||||
.It Sy -ObjC++
|
||||
Treat source input files as Objective-C++ inputs.
|
||||
.It Sy -ObjC
|
||||
Treat source input files as Objective-C inputs.
|
||||
.IP "\fB\-trigraphs\fR" 4
|
||||
.IX Item "-trigraphs"
|
||||
.It Sy -trigraphs
|
||||
Enable trigraphs.
|
||||
.IP "\fB\-ffreestanding\fR" 4
|
||||
.IX Item "-ffreestanding"
|
||||
.It Sy -ffreestanding
|
||||
Indicate that the file should be compiled for a freestanding, not a hosted,
|
||||
environment.
|
||||
.IP "\fB\-fno\-builtin\fR" 4
|
||||
.IX Item "-fno-builtin"
|
||||
.It Sy -fno-builtin
|
||||
Disable special handling and optimizations of builtin functions like strlen and
|
||||
malloc.
|
||||
.IP "\fB\-fmath\-errno\fR" 4
|
||||
.IX Item "-fmath-errno"
|
||||
.It Sy -fmath-errno
|
||||
Indicate that math functions should be treated as updating errno.
|
||||
.IP "\fB\-fpascal\-strings\fR" 4
|
||||
.IX Item "-fpascal-strings"
|
||||
Enable support for Pascal-style strings with \*(L"\epfoo\*(R".
|
||||
.IP "\fB\-fms\-extensions\fR" 4
|
||||
.IX Item "-fms-extensions"
|
||||
.It Sy -fpascal-strings
|
||||
Enable support for Pascal-style strings with "\epfoo".
|
||||
.It Sy -fms-extensions
|
||||
Enable support for Microsoft extensions.
|
||||
.IP "\fB\-fmsc\-version=\fR" 4
|
||||
.IX Item "-fmsc-version="
|
||||
.It Sy -fmsc-version=
|
||||
Set _MSC_VER. Defaults to 1300 on Windows. Not set otherwise.
|
||||
.IP "\fB\-fborland\-extensions\fR" 4
|
||||
.IX Item "-fborland-extensions"
|
||||
.It Sy -fborland-extensions
|
||||
Enable support for Borland extensions.
|
||||
.IP "\fB\-fwritable\-strings\fR" 4
|
||||
.IX Item "-fwritable-strings"
|
||||
.It Sy -fwritable-strings
|
||||
Make all string literals default to writable. This disables uniquing of
|
||||
strings and other optimizations.
|
||||
.IP "\fB\-flax\-vector\-conversions\fR" 4
|
||||
.IX Item "-flax-vector-conversions"
|
||||
.It Sy -flax-vector-conversions
|
||||
Allow loose type checking rules for implicit vector conversions.
|
||||
.IP "\fB\-fblocks\fR" 4
|
||||
.IX Item "-fblocks"
|
||||
Enable the \*(L"Blocks\*(R" language feature.
|
||||
.IP "\fB\-fobjc\-gc\-only\fR" 4
|
||||
.IX Item "-fobjc-gc-only"
|
||||
.It Sy -fblocks
|
||||
Enable the "Blocks" language feature.
|
||||
.It Sy -fobjc-gc-only
|
||||
Indicate that Objective-C code should be compiled in GC-only mode, which only
|
||||
works when Objective-C Garbage Collection is enabled.
|
||||
.IP "\fB\-fobjc\-gc\fR" 4
|
||||
.IX Item "-fobjc-gc"
|
||||
.It Sy -fobjc-gc
|
||||
Indicate that Objective-C code should be compiled in hybrid-GC mode, which works
|
||||
with both \s-1GC\s0 and non-GC mode.
|
||||
.IP "\fB\-fobjc\-abi\-version\fR=\fIversion\fR" 4
|
||||
.IX Item "-fobjc-abi-version=version"
|
||||
Select the Objective-C \s-1ABI\s0 version to use. Available versions are 1 (legacy
|
||||
\&\*(L"fragile\*(R" \s-1ABI\s0), 2 (non-fragile \s-1ABI 1\s0), and 3 (non-fragile \s-1ABI 2\s0).
|
||||
.IP "\fB\-fobjc\-nonfragile\-abi\-version\fR=\fIversion\fR" 4
|
||||
.IX Item "-fobjc-nonfragile-abi-version=version"
|
||||
Select the Objective-C non-fragile \s-1ABI\s0 version to use by default. This will only
|
||||
be used as the Objective-C \s-1ABI\s0 when the non-fragile \s-1ABI\s0 is enabled (either via
|
||||
\&\-fobjc\-nonfragile\-abi, or because it is the platform default).
|
||||
.IP "\fB\-fobjc\-nonfragile\-abi\fR" 4
|
||||
.IX Item "-fobjc-nonfragile-abi"
|
||||
Enable use of the Objective-C non-fragile \s-1ABI.\s0 On platforms for which this is
|
||||
the default \s-1ABI,\s0 it can be disabled with \fB\-fno\-objc\-nonfragile\-abi\fR.
|
||||
.SS "Target Selection Options"
|
||||
.IX Subsection "Target Selection Options"
|
||||
with both GC and non-GC mode.
|
||||
.It Sy -fobjc-abi-version Ns = Ns Em version
|
||||
Select the Objective-C ABI version to use. Available versions are 1 (legacy
|
||||
"fragile" ABI), 2 (non-fragile ABI 1), and 3 (non-fragile ABI 2).
|
||||
.It Sy -fobjc-nonfragile-abi-version Ns = Ns Em version
|
||||
Select the Objective-C non-fragile ABI version to use by default. This will only
|
||||
be used as the Objective-C ABI when the non-fragile ABI is enabled (either via
|
||||
-fobjc-nonfragile-abi, or because it is the platform default).
|
||||
.It Sy -fobjc-nonfragile-abi
|
||||
Enable use of the Objective-C non-fragile ABI. On platforms for which this is
|
||||
the default ABI, it can be disabled with
|
||||
.Sy -fno-objc-nonfragile-abi .
|
||||
.El
|
||||
.Ss Target Selection Options
|
||||
Clang fully supports cross compilation as an inherent part of its design.
|
||||
Depending on how your version of Clang is configured, it may have support for
|
||||
a number of cross compilers, or may only support a native target.
|
||||
.IP "\fB\-arch\fR \fIarchitecture\fR" 4
|
||||
.IX Item "-arch architecture"
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -arch Em architecture
|
||||
Specify the architecture to build for.
|
||||
.IP "\fB\-mmacosx\-version\-min\fR=\fIversion\fR" 4
|
||||
.IX Item "-mmacosx-version-min=version"
|
||||
When building for Mac \s-1OS/X,\s0 specify the minimum version supported by your
|
||||
.It Sy -mmacosx-version-min Ns = Ns Em version
|
||||
When building for Mac OS/X, specify the minimum version supported by your
|
||||
application.
|
||||
.IP "\fB\-miphoneos\-version\-min\fR" 4
|
||||
.IX Item "-miphoneos-version-min"
|
||||
When building for iPhone \s-1OS,\s0 specify the minimum version supported by your
|
||||
.It Sy -miphoneos-version-min
|
||||
When building for iPhone OS, specify the minimum version supported by your
|
||||
application.
|
||||
.IP "\fB\-march\fR=\fIcpu\fR" 4
|
||||
.IX Item "-march=cpu"
|
||||
.It Sy -march Ns = Ns Em cpu
|
||||
Specify that Clang should generate code for a specific processor family member
|
||||
and later. For example, if you specify \-march=i486, the compiler is allowed to
|
||||
and later. For example, if you specify -march=i486, the compiler is allowed to
|
||||
generate instructions that are valid on i486 and later processors, but which
|
||||
may not exist on earlier ones.
|
||||
.SS "Code Generation Options"
|
||||
.IX Subsection "Code Generation Options"
|
||||
.IP "\fB\-O0\fR \fB\-O1\fR \fB\-O2\fR \fB\-O3\fR \fB\-Ofast\fR \fB\-Os\fR \fB\-Oz\fR \fB\-O\fR \fB\-O4\fR" 4
|
||||
.IX Item "-O0 -O1 -O2 -O3 -Ofast -Os -Oz -O -O4"
|
||||
.El
|
||||
.Ss Code Generation Options
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -O0 Sy -O1 Sy -O2 Sy -O3 Sy -Ofast Sy -\&Os Sy -\&Oz Sy -O Sy -O4
|
||||
Specify which optimization level to use:
|
||||
.RS 4
|
||||
.IP "\fB\-O0\fR" 4
|
||||
.IX Item "-O0"
|
||||
Means \*(L"no optimization\*(R": this level compiles the fastest and
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -O0
|
||||
Means "no optimization": this level compiles the fastest and
|
||||
generates the most debuggable code.
|
||||
.IP "\fB\-O1\fR" 4
|
||||
.IX Item "-O1"
|
||||
Somewhere between \fB\-O0\fR and \fB\-O2\fR.
|
||||
.IP "\fB\-O2\fR" 4
|
||||
.IX Item "-O2"
|
||||
.It Sy -O1
|
||||
Somewhere between
|
||||
.Sy -O0
|
||||
and
|
||||
.Sy -O2 .
|
||||
.It Sy -O2
|
||||
Moderate level of optimization which enables most optimizations.
|
||||
.IP "\fB\-O3\fR" 4
|
||||
.IX Item "-O3"
|
||||
Like \fB\-O2\fR, except that it enables optimizations that take longer to perform
|
||||
.It Sy -O3
|
||||
Like
|
||||
.Sy -O2 ,
|
||||
except that it enables optimizations that take longer to perform
|
||||
or that may generate larger code (in an attempt to make the program run faster).
|
||||
.IP "\fB\-Ofast\fR" 4
|
||||
.IX Item "-Ofast"
|
||||
Enables all the optimizations from \fB\-O3\fR along with other aggressive
|
||||
.It Sy -Ofast
|
||||
Enables all the optimizations from
|
||||
.Sy -O3
|
||||
along with other aggressive
|
||||
optimizations that may violate strict compliance with language standards.
|
||||
.IP "\fB\-Os\fR" 4
|
||||
.IX Item "-Os"
|
||||
Like \fB\-O2\fR with extra optimizations to reduce code size.
|
||||
.IP "\fB\-Oz\fR" 4
|
||||
.IX Item "-Oz"
|
||||
Like \fB\-Os\fR (and thus \fB\-O2\fR), but reduces code size further.
|
||||
.IP "\fB\-O\fR" 4
|
||||
.IX Item "-O"
|
||||
Equivalent to \fB\-O2\fR.
|
||||
.IP "\fB\-O4\fR and higher" 4
|
||||
.IX Item "-O4 and higher"
|
||||
Currently equivalent to \fB\-O3\fR
|
||||
.RE
|
||||
.RS 4
|
||||
.RE
|
||||
.IP "\fB\-g\fR" 4
|
||||
.IX Item "-g"
|
||||
.It Sy -\&Os
|
||||
Like
|
||||
.Sy -O2
|
||||
with extra optimizations to reduce code size.
|
||||
.It Sy -\&Oz
|
||||
Like
|
||||
.Sy -\&Os
|
||||
(and thus
|
||||
.Sy -O2 Ns ), but reduces code size further.
|
||||
.It Sy -O
|
||||
Equivalent to
|
||||
.Sy -O2 .
|
||||
.It Sy -O4 No and higher
|
||||
Currently equivalent to
|
||||
.Sy -O3
|
||||
.El
|
||||
.It Sy -g
|
||||
Generate debug information. Note that Clang debug information works best at
|
||||
\&\fB\-O0\fR. At higher optimization levels, only line number information is
|
||||
.Sy -O0 .
|
||||
At higher optimization levels, only line number information is
|
||||
currently available.
|
||||
.IP "\fB\-fexceptions\fR" 4
|
||||
.IX Item "-fexceptions"
|
||||
.It Sy -fexceptions
|
||||
Enable generation of unwind information, this allows exceptions to be thrown
|
||||
through Clang compiled stack frames. This is on by default in x86\-64.
|
||||
.IP "\fB\-ftrapv\fR" 4
|
||||
.IX Item "-ftrapv"
|
||||
through Clang compiled stack frames. This is on by default in x86-64.
|
||||
.It Sy -ftrapv
|
||||
Generate code to catch integer overflow errors. Signed integer overflow is
|
||||
undefined in C, with this flag, extra code is generated to detect this and abort
|
||||
when it happens.
|
||||
.IP "\fB\-fvisibility\fR" 4
|
||||
.IX Item "-fvisibility"
|
||||
.It Sy -fvisibility
|
||||
This flag sets the default visibility level.
|
||||
.IP "\fB\-fcommon\fR" 4
|
||||
.IX Item "-fcommon"
|
||||
.It Sy -fcommon
|
||||
This flag specifies that variables without initializers get common linkage. It
|
||||
can be disabled with \fB\-fno\-common\fR.
|
||||
.IP "\fB\-ftls\-model\fR" 4
|
||||
.IX Item "-ftls-model"
|
||||
Set the default thread-local storage (\s-1TLS\s0) model to use for thread-local
|
||||
variables. Valid values are: \*(L"global-dynamic\*(R", \*(L"local-dynamic\*(R", \*(L"initial-exec\*(R"
|
||||
and \*(L"local-exec\*(R". The default is \*(L"global-dynamic\*(R". The default model can be
|
||||
can be disabled with
|
||||
.Sy -fno-common .
|
||||
.It Sy -ftls-model
|
||||
Set the default thread-local storage (TLS) model to use for thread-local
|
||||
variables. Valid values are: "global-dynamic", "local-dynamic", "initial-exec"
|
||||
and "local-exec". The default is "global-dynamic". The default model can be
|
||||
overridden with the tls_model attribute. The compiler will try to choose a more
|
||||
efficient model if possible.
|
||||
.IP "\fB\-flto\fR \fB\-emit\-llvm\fR" 4
|
||||
.IX Item "-flto -emit-llvm"
|
||||
Generate output files in \s-1LLVM\s0 formats, suitable for link time optimization. When
|
||||
used with \fB\-S\fR this generates \s-1LLVM\s0 intermediate language assembly files,
|
||||
otherwise this generates \s-1LLVM\s0 bitcode format object files (which may be passed
|
||||
.It Sy -flto Sy -emit-llvm
|
||||
Generate output files in LLVM formats, suitable for link time optimization. When
|
||||
used with
|
||||
.Sy -S
|
||||
this generates LLVM intermediate language assembly files,
|
||||
otherwise this generates LLVM bitcode format object files (which may be passed
|
||||
to the linker depending on the stage selection options).
|
||||
.SS "Driver Options"
|
||||
.IX Subsection "Driver Options"
|
||||
.IP "\fB\-###\fR" 4
|
||||
.IX Item "-###"
|
||||
.El
|
||||
.Ss Driver Options
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -###
|
||||
Print the commands to run for this compilation.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
.It Sy --help
|
||||
Display available options.
|
||||
.IP "\fB\-Qunused\-arguments\fR" 4
|
||||
.IX Item "-Qunused-arguments"
|
||||
.It Sy -Qunused-arguments
|
||||
Don't emit warning for unused driver arguments.
|
||||
.IP "\fB\-Wa,\fR\fIargs\fR" 4
|
||||
.IX Item "-Wa,args"
|
||||
Pass the comma separated arguments in \fIargs\fR to the assembler.
|
||||
.IP "\fB\-Wl,\fR\fIargs\fR" 4
|
||||
.IX Item "-Wl,args"
|
||||
Pass the comma separated arguments in \fIargs\fR to the linker.
|
||||
.IP "\fB\-Wp,\fR\fIargs\fR" 4
|
||||
.IX Item "-Wp,args"
|
||||
Pass the comma separated arguments in \fIargs\fR to the preprocessor.
|
||||
.IP "\fB\-Xanalyzer\fR \fIarg\fR" 4
|
||||
.IX Item "-Xanalyzer arg"
|
||||
Pass \fIarg\fR to the static analyzer.
|
||||
.IP "\fB\-Xassembler\fR \fIarg\fR" 4
|
||||
.IX Item "-Xassembler arg"
|
||||
Pass \fIarg\fR to the assembler.
|
||||
.IP "\fB\-Xlinker\fR \fIarg\fR" 4
|
||||
.IX Item "-Xlinker arg"
|
||||
Pass \fIarg\fR to the linker.
|
||||
.IP "\fB\-Xpreprocessor\fR \fIarg\fR" 4
|
||||
.IX Item "-Xpreprocessor arg"
|
||||
Pass \fIarg\fR to the preprocessor.
|
||||
.IP "\fB\-o\fR \fIfile\fR" 4
|
||||
.IX Item "-o file"
|
||||
Write output to \fIfile\fR.
|
||||
.IP "\fB\-print\-file\-name\fR=\fIfile\fR" 4
|
||||
.IX Item "-print-file-name=file"
|
||||
Print the full library path of \fIfile\fR.
|
||||
.IP "\fB\-print\-libgcc\-file\-name\fR" 4
|
||||
.IX Item "-print-libgcc-file-name"
|
||||
Print the library path for \*(L"libgcc.a\*(R".
|
||||
.IP "\fB\-print\-prog\-name\fR=\fIname\fR" 4
|
||||
.IX Item "-print-prog-name=name"
|
||||
Print the full program path of \fIname\fR.
|
||||
.IP "\fB\-print\-search\-dirs\fR" 4
|
||||
.IX Item "-print-search-dirs"
|
||||
.It Sy -Wa, Ns Em args
|
||||
Pass the comma separated arguments in
|
||||
.Em args
|
||||
to the assembler.
|
||||
.It Sy -Wl, Ns Em args
|
||||
Pass the comma separated arguments in
|
||||
.Em args
|
||||
to the linker.
|
||||
.It Sy -Wp, Ns Em args
|
||||
Pass the comma separated arguments in
|
||||
.Em args
|
||||
to the preprocessor.
|
||||
.It Sy -Xanalyzer Em arg
|
||||
Pass
|
||||
.Em arg
|
||||
to the static analyzer.
|
||||
.It Sy -Xassembler Em arg
|
||||
Pass
|
||||
.Em arg
|
||||
to the assembler.
|
||||
.It Sy -Xlinker Em arg
|
||||
Pass
|
||||
.Em arg
|
||||
to the linker.
|
||||
.It Sy -Xpreprocessor Em arg
|
||||
Pass
|
||||
.Em arg
|
||||
to the preprocessor.
|
||||
.It Sy -o Em file
|
||||
Write output to
|
||||
.Em file .
|
||||
.It Sy -print-file-name Ns = Ns Em file
|
||||
Print the full library path of
|
||||
.Em file .
|
||||
.It Sy -print-libgcc-file-name
|
||||
Print the library path for "libgcc.a".
|
||||
.It Sy -print-prog-name Ns = Ns Em name
|
||||
Print the full program path of
|
||||
.Em name .
|
||||
.It Sy -print-search-dirs
|
||||
Print the paths used for finding libraries and programs.
|
||||
.IP "\fB\-save\-temps\fR" 4
|
||||
.IX Item "-save-temps"
|
||||
.It Sy -save-temps
|
||||
Save intermediate compilation results.
|
||||
.IP "\fB\-integrated\-as\fR \fB\-no\-integrated\-as\fR" 4
|
||||
.IX Item "-integrated-as -no-integrated-as"
|
||||
.It Sy -integrated-as Sy -no-integrated-as
|
||||
Used to enable and disable, respectively, the use of the integrated
|
||||
assembler. Whether the integrated assembler is on by default is target
|
||||
dependent.
|
||||
.IP "\fB\-time\fR" 4
|
||||
.IX Item "-time"
|
||||
.It Sy -time
|
||||
Time individual commands.
|
||||
.IP "\fB\-ftime\-report\fR" 4
|
||||
.IX Item "-ftime-report"
|
||||
.It Sy -ftime-report
|
||||
Print timing summary of each stage of compilation.
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.It Sy -v
|
||||
Show commands to run and use verbose output.
|
||||
.SS "Diagnostics Options"
|
||||
.IX Subsection "Diagnostics Options"
|
||||
.IP "\fB\-fshow\-column\fR \fB\-fshow\-source\-location\fR \fB\-fcaret\-diagnostics\fR \fB\-fdiagnostics\-fixit\-info\fR \fB\-fdiagnostics\-parseable\-fixits\fR \fB\-fdiagnostics\-print\-source\-range\-info\fR \fB\-fprint\-source\-range\-info\fR \fB\-fdiagnostics\-show\-option\fR \fB\-fmessage\-length\fR" 4
|
||||
.IX Item "-fshow-column -fshow-source-location -fcaret-diagnostics -fdiagnostics-fixit-info -fdiagnostics-parseable-fixits -fdiagnostics-print-source-range-info -fprint-source-range-info -fdiagnostics-show-option -fmessage-length"
|
||||
.El
|
||||
.Ss Diagnostics Options
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -fshow-column Sy -fshow-source-location Sy -fcaret-diagnostics Sy -fdiagnostics-fixit-info Sy -fdiagnostics-parseable-fixits Sy -fdiagnostics-print-source-range-info Sy -fprint-source-range-info Sy -fdiagnostics-show-option Sy -fmessage-length
|
||||
These options control how Clang prints out information about diagnostics (errors
|
||||
and warnings). Please see the Clang User's Manual for more information.
|
||||
.SS "Preprocessor Options"
|
||||
.IX Subsection "Preprocessor Options"
|
||||
.IP "\fB\-D\fR\fImacroname=value\fR" 4
|
||||
.IX Item "-Dmacroname=value"
|
||||
.El
|
||||
.Ss Preprocessor Options
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -D Ns Em macroname=value
|
||||
Adds an implicit #define into the predefines buffer which is read before the
|
||||
source file is preprocessed.
|
||||
.IP "\fB\-U\fR\fImacroname\fR" 4
|
||||
.IX Item "-Umacroname"
|
||||
.It Sy -U Ns Em macroname
|
||||
Adds an implicit #undef into the predefines buffer which is read before the
|
||||
source file is preprocessed.
|
||||
.IP "\fB\-include\fR \fIfilename\fR" 4
|
||||
.IX Item "-include filename"
|
||||
.It Sy -include Em filename
|
||||
Adds an implicit #include into the predefines buffer which is read before the
|
||||
source file is preprocessed.
|
||||
.IP "\fB\-I\fR\fIdirectory\fR" 4
|
||||
.IX Item "-Idirectory"
|
||||
.It Sy -I Ns Em directory
|
||||
Add the specified directory to the search path for include files.
|
||||
.IP "\fB\-F\fR\fIdirectory\fR" 4
|
||||
.IX Item "-Fdirectory"
|
||||
.It Sy -F Ns Em directory
|
||||
Add the specified directory to the search path for framework include files.
|
||||
.IP "\fB\-nostdinc\fR" 4
|
||||
.IX Item "-nostdinc"
|
||||
.It Sy -nostdinc
|
||||
Do not search the standard system directories or compiler builtin directories
|
||||
for include files.
|
||||
.IP "\fB\-nostdlibinc\fR" 4
|
||||
.IX Item "-nostdlibinc"
|
||||
.It Sy -nostdlibinc
|
||||
Do not search the standard system directories for include files, but do search
|
||||
compiler builtin include directories.
|
||||
.IP "\fB\-nobuiltininc\fR" 4
|
||||
.IX Item "-nobuiltininc"
|
||||
.It Sy -nobuiltininc
|
||||
Do not search clang's builtin directory for include files.
|
||||
.SH "ENVIRONMENT"
|
||||
.IX Header "ENVIRONMENT"
|
||||
.IP "\fB\s-1TMPDIR\s0\fR, \fB\s-1TEMP\s0\fR, \fB\s-1TMP\s0\fR" 4
|
||||
.IX Item "TMPDIR, TEMP, TMP"
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
.Bl -tag -width Ds
|
||||
.It Sy TMPDIR Ns , Sy TEMP Ns , Sy TMP
|
||||
These environment variables are checked, in order, for the location to
|
||||
write temporary files used during the compilation process.
|
||||
.IP "\fB\s-1CPATH\s0\fR" 4
|
||||
.IX Item "CPATH"
|
||||
.It Sy CPATH
|
||||
If this environment variable is present, it is treated as a delimited
|
||||
list of paths to be added to the default system include path list. The
|
||||
delimiter is the platform dependent delimiter, as used in the \fI\s-1PATH\s0\fR
|
||||
delimiter is the platform dependent delimitor, as used in the
|
||||
.Em PATH
|
||||
environment variable.
|
||||
.Sp
|
||||
.Pp
|
||||
Empty components in the environment variable are ignored.
|
||||
.IP "\fBC_INCLUDE_PATH\fR, \fB\s-1OBJC_INCLUDE_PATH\s0\fR, \fB\s-1CPLUS_INCLUDE_PATH\s0\fR, \fB\s-1OBJCPLUS_INCLUDE_PATH\s0\fR" 4
|
||||
.IX Item "C_INCLUDE_PATH, OBJC_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJCPLUS_INCLUDE_PATH"
|
||||
These environment variables specify additional paths, as for \s-1CPATH,\s0
|
||||
.It Sy C_INCLUDE_PATH Ns , Sy OBJC_INCLUDE_PATH Ns , Sy CPLUS_INCLUDE_PATH Ns , Sy OBJCPLUS_INCLUDE_PATH
|
||||
These environment variables specify additional paths, as for CPATH,
|
||||
which are only used when processing the appropriate language.
|
||||
.IP "\fB\s-1MACOSX_DEPLOYMENT_TARGET\s0\fR" 4
|
||||
.IX Item "MACOSX_DEPLOYMENT_TARGET"
|
||||
If \-mmacosx\-version\-min is unspecified, the default deployment target
|
||||
.It Sy MACOSX_DEPLOYMENT_TARGET
|
||||
If -mmacosx-version-min is unspecified, the default deployment target
|
||||
is read from this environment variable. This option only affects darwin
|
||||
targets.
|
||||
.SH "BUGS"
|
||||
.IX Header "BUGS"
|
||||
To report bugs, please visit <http://llvm.org/bugs/>. Most bug reports should
|
||||
include preprocessed source files (use the \fB\-E\fR option) and the full output of
|
||||
.El
|
||||
.Sh BUGS
|
||||
To report bugs, please visit
|
||||
.Lk http://llvm.org/bugs/ .
|
||||
Most bug reports should
|
||||
include preprocessed source files (use the
|
||||
.Sy -E
|
||||
option) and the full output of
|
||||
the compiler, along with information to reproduce.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
.Vb 1
|
||||
\& as(1), ld(1)
|
||||
.Ve
|
||||
.SH "AUTHOR"
|
||||
.IX Header "AUTHOR"
|
||||
Maintained by the Clang / \s-1LLVM\s0 Team (<http://clang.llvm.org>).
|
||||
.Sh SEE ALSO
|
||||
.Bd -literal
|
||||
as(1), ld(1)
|
||||
.Ed
|
||||
.Sh AUTHOR
|
||||
Maintained by the Clang / LLVM Team
|
||||
.Pf ( Lk http://clang.llvm.org Ns ).
|
||||
|
Loading…
Reference in New Issue
Block a user