pub const USAGE: &str = "\
rucc, an optimizing C compiler
usage: rucc [options] file...
options:
-c compile and assemble, do not link
-S compile only, emit assembly
-E preprocess only
-o <file> write output to <file>, or to standard output for -
-D <name>[=<value>], -U <name> define a macro, or undefine one after every -D
-I <dir> add <dir> to the include search path
-iquote -isystem -idirafter <dir> the other chains, -nostdinc drops ours
--sysroot=<dir> look for the library's headers under <dir>, -isysroot too
-P, -dM with -E: leave out the markers, or dump the macros
-std=<dialect> c89 through c23, and the gnu spellings
-fgnuc-version=<v> the GCC release to claim, default 7.0.0
-x <lang> treat later inputs as <lang>, or none to stop
-O<level> optimize: 0, 1, 2, 3, s, z
-fsafety=<tier> check memory safety: off, detect, enforce, kernel
-f<pass> -fno-<pass> -fdump-ir=<what> -fopt-info[-<kind>][=FILE]
-fpass-fuel=<pass>=<n>, -fpass-fuel-global=<n> stop a pass, or all of them, after n
-fdisable-<pass>[=<funcs>], -fenable-<pass>[=<funcs>] run a pass on some functions only
-g -g0 -gdwarf-5, -fno-omit-frame-pointer, -mno-red-zone debug info, frame pointer, red zone
-l<name>, -L <dir>, -B <dir> link a library, where to look for one, where our own tools are
-static -shared -pie -no-pie -nostdlib -nostartfiles -nodefaultlibs -rdynamic -s how to link
-Wl,<arg>, -Xlinker <arg>, -fuse-ld=<name> hand an argument to the linker, or pick one
-Werror -pedantic -pedantic-errors -w how much to say, and whether it is fatal
-m64 -march= -mtune= -mcpu= -mabi= -mcmodel= what machine to generate for
-pthread build for more than one thread, and link the library for it
-dumpmachine -dumpversion -print-multiarch -print-search-dirs what this compiler is
-print-file-name=<name> -print-prog-name=<name> where a file or a program is
-j[n] compile n translation units at once, default all
-v, -### print each phase as it runs, or without running any
--target=<triple> generate code for <triple>
--emit=<kind> exe, obj, asm, preprocessed, tast, ir, mir-final,
safety-summary, type-granules
--print-config, --print-pipeline print the configuration or the pipeline, and exit
--version print the version and exit
-h, --help print this message and exit
See spec/04-driver-and-cli.md for the full flag reference.
";Expand description
Usage text.
Deliberately short. spec/04-driver-and-cli.md puts the full flag reference in the
manual page, because a --help nobody can read in one screen is a --help nobody reads.