DragonFly On-Line Manual Pages
CPARSER(1) DragonFly General Commands Manual CPARSER(1)
NAME
cparser - C compiler
SYNOPSIS
cparser [-c | -S | -E | --print-ast] [--print-implicit-cast]
[--print-parenthesis] [-ansi] [-std=standard] [--[no-]gcc]
[--[no-]ms] [-g] [-Olevel] [-W[no-][error=]warning] [-w] [-I dir]
[-L dir] [-Dmacro[=defn]] [-Umacro] [-f option]
[-finput-charset=encoding] [-b option] [-l library] [-o outfile]
[-x language] [-Wl,option] [-Wp,option] file ...
DESCRIPTION
cparser is a C compiler, which can parse C90 and C99 as well as many GCC
and some MSC extensions. It also provides many useful analyses for
warnings and generates concise messages in case of error. It uses
libFIRM for optimization and code generation. The compiler driver is
largely compatible with GCC.
OPTIONS
-c Compile the input files to object files. The default output
filename is the input filename with the extension replaced by .o.
-S Compile the input files to assembler. The default output
filename is the input filename with the extension replaced by .s.
-E Preprocess the input file only. By default the result is output
to stdout.
--print-ast
Output the abstract syntax tree of the parsed input file as C
again.
--print-implicit-cast
When using --print-ast, show casts, which are inserted by the
semantic checks.
--print-parenthesis
When using --print-ast, show all expressions fully parenthesized.
-ansi Same as -std=c90 (for C) or -std=c++98 (for C++).
-std=standard
Select the language standard. Supported values are:
c89
c90
iso9899:1990 ISO C90
gnu89 ISO C90 with GCC extensions
c99
iso9899:1999 ISO C99
gnu99 ISO C99 with GCC extensions
c11
iso9899:2011 ISO C11
gnu11 ISO C11 with GCC extensions
c++98 ISO C++ 1998. Not supported yet.
gnu++98 ISO C++ 1998 with GCC extensions. Not supported
yet.
--[no-]gcc
Disable/enable GCC extensions. This switch supersedes -std.
--[no-]ms
Disable/enable MSC extensions.
-g When compiling C files, add debug information in stabs format.
-Olevel
Select the optimization level. Sensible values are between 0 and
4, inclusive.
-Wwarning
Enable the specified warning.
-Wno-warning
Disable the specified warning.
-Werror=warning
Enable the specified warning and turn it into an error.
-Wno-error=warning
Force the specified warning to only be a warning, even in the
presence of -Werror. This neither enables nor disables the
warning itself.
-Waddress
Warn about suspicious use of addresses, like using the address of
a function or variable as boolean condition or comparing with the
address of a string literal.
-Waggregate-return
Warn about defining or calling a function, which returns a struct
or union by value.
-Wall Activate most warnings. In particular these are -Waddress,
-Wattribute, -Wchar-subscripts, -Wcomment, -Wempty-statement,
-Wformat, -Wimplicit-function-declaration, -Wimplicit-int,
-Winit-self, -Wmain, -Wnonnull, -Wparentheses, -Wpointer-arith,
-Wredundant-decls, -Wreturn-type, -Wshadow-local, -Wsign-compare,
-Wstrict-prototypes, -Wswitch-enum, -Wunknown-pragmas,
-Wunreachable-code, -Wunused-function, -Wunused-label,
-Wunused-parameter, -Wunused-value, -Wunused-variable.
-Wcast-qual
Warn whenever a pointer cast removes qualifiers from the pointed-
to type, e.g. casting a const char* to char*.
-Wchar-subscripts
Warn about using an expression of type char as array subscript,
e.g. char c; arr[c].
-Wdeclaration-after-statement
Warn about mixing declarations and statements, which is not
allowed prior to C99.
-Wdiv-by-zero
Warn about compile-time integer division by zero.
-Wempty-statement
Warn about empty statements, i.e. statements which only consist
of a single `;'. Use {} as replacement to avoid this warning.
-Werror
Treat warnings as errors, i.e. do not continue after parsing when
a warning is encountered.
-Wextra
(Alias -W) Activate some more warnings. In particular these are
-Wempty-statement, -Wshadow, -Wunused-parameter, -Wunused-value.
-Wfatal-errors
Immediately abort compilation when encountering an error.
-Wformat
Check format strings of char and wchar_t functions.
-Wimplicit
Activate -Wimplicit-function-declaration, -Wimplicit-int.
-Wimplicit-function-declaration
Warn about calling a function without a prior declaration.
-Wimplicit-int
Warn about declarations whose declaration specifiers do not
include a type specifier.
-Winit-self
Warn about uninitialized variables which are initialized with
themselves.
-Wlong-long
Warn if the type `long long' is used.
-Wmain Warn if the type of `main' is suspicious, i.e. if it is not a
non-static function declared as either int main(void),
int main(int, char**) or, as an extension,
int main(int, char**, char**).
-Wmissing-declarations
Warn if a non-static function or a global variable without a
storage class is defined without a prior declaration. This is
typically a sign of a missing #include or that the object should
be static.
-Wmissing-noreturn
Warn about functions, which are candidates for the attribute
`noreturn'.
-Wmissing-prototypes
Warn if a global function is defined without a previous prototype
declaration.
-Wmultichar
Warn if a multicharacter constant (`FOOF') is used.
-Wnested-externs
Warn if an `extern' declaration is encountered within a function.
-Wparentheses
Warn if parentheses are omitted in certain contexts. Warn if an
assignment is used as condition, e.g. if (x = 23). Warn if &&
without parentheses is used within ||, e.g. if (x || y && z).
Warn if it there may be confusion which `if'-statement an
`else'-branch belongs to, e.g. if (x) if (y) {} else {}. Warn if
cascaded comparisons appear which do not have their mathematical
meaning, e.g. if (23 <= x < 42). Warn if + or - is used as
operand of << or >>, e.g. x + y << z.
-Wredundant-decls
Warn about redundant declarations, i.e. multiple declarations of
the same object or static forward declarations which have no use
before their definition.
-Wshadow
Warn when a new declaration shadows another declaration with the
same name in an outer scope.
-Wshadow-local
Like -Wshadow, but only warn if the shadowed declaration is not
global, e.g. a local variable shadows a parameter or another
local variable.
-Wunreachable-code
Warn when the compiler determines that a statement (or in some
cases a part thereof) will never be executed.
-Wunused
Activate -Wunused-function, -Wunused-label, -Wunused-parameter,
-Wunused-value, -Wunused-variable.
-Wunused-parameter
Warn when a parameter is never used or only ever read to
calculate its own new value, e.g. x = x + 1.
-Wunused-variable
Warn when a variable is never used or only ever read to calculate
its own new value, e.g. x = x + 1.
-w Suppress all warnings.
-I dir Add the directory dir to the paths to be searched for include
files.
-L dir Add the directory dir to the paths to be searched for libraries.
-Dmacro
Define the preprocessor macro macro which will expand to 1.
-Dmacro=defn
Define the preprocessor macro macro and set its expanded value to
defn.
-Umacro
Undefine the preprocessor macro macro.
-f option
Set a frontend or optimizer option. Use -fhelp to get a list of
supported optimizer options.
-f[no-]diagnostics-show-option
Show the switch, which controls a warning, after each warning.
Default is on.
-finput-charset=encoding
Select the encoding of the input. Supported values are
ISO_8859-1:1987 (aliases CP819, IBM819, ISO-8859-1, ISO8859-1,
ISO_8859-1, csISOLatin1, iso-ir-100, l1 and latin1), ISO-8859-15
(aliases ISO8859-15, ISO_8859-15 and Latin-9), windows-1252
(alias cp1252) and UTF-8 (default). Case is ignored.
-f[no-]show-column
Show the column number in diagnostic messages.
-fsigned-char
Define `char' to have the same range, representation and
behaviour as `signed char'.
-funsigned-char
Define `char' to have the same range, representation and
behaviour as `unsigned char'.
-b option
Set a backend option. Use -bhelp to get a list of supported
options.
-l library
Link with the specified library.
-o outfile
Specify the output filename. This is only valid when using a
single input filename. - as filename uses stdout for output.
-x language
Overwrite the language auto-detection for the following filenames
by the specified language. Supported values are:
assembler Assembler file
assembler-with-cpp Assembler file, which needs to be
preprocessed
c
c-header C file
c++
c++-header C++ file
none Revert to auto-detection
-Wl,option
Pass option to the linker.
-Wp,option
Pass option to the preprocessor.
SEE ALSO
gcc(1), http://www.libfirm.org/
BUGS
Probably many - if you hit one, please report it.
cparser needs to support more switches for better GCC compatibility.
This manual page is incomplete.
AUTHORS
cparser was written by Matthias Braun <matze@braunis.de>, Christoph
Mallon <christoph.mallon@gmx.de> and Michael Beck.
July 9, 2012