1.TH SCC-CC1 1 scc\-VERSION2.SH NAME3scc-cc1 \- C compiler frontend4.SH SYNOPSIS5.B cc16.RB [ \-Ewd ]7.RB [ \-M ]8.RB [ \-a9.IR architecture ]10.RB [ \-D11.IR def[=val] ] ...12.RB [ \-U13.IR def ] ...14.RB [ \-I15.IR dir ] ...16.RI [ input ]17.SH DESCRIPTION18.B cc119is the C compiler frontend of the scc toolchain.20It reads a C source file (or standard input if no21.I input22file is given), performs preprocessing, parsing, type checking,23and semantic analysis, and emits the scc intermediate representation (IR)24to standard output.25.PP26.B cc127is not normally invoked directly.28It is called by the compiler driver29.BR scc\-cc (1),30which pipes its output to31.BR cc2 ,32the code generation backend that produces assembly output.33.B cc134is installed as35.IR $prefix /libexec/scc/cc1.36.SH OPTIONS37.TP38.BI \-a " architecture"39Select the target architecture.40The following architectures are supported:41.RS42.TP43.B amd64-sysv4464-bit x86 with the System V ABI (default).45.TP46.B arm64-sysv4764-bit ARM with the System V ABI.48.TP49.B riscv64-sysv5064-bit RISC-V with the System V ABI.51.TP52.B i386-sysv5332-bit x86 with the System V ABI.54.TP55.B z80-scc56Zilog Z80 with the scc ABI.57.RE58.TP59.BI \-D " def[=val]"60Define the preprocessor macro61.I def62with an optional value63.IR val .64If65.I val66is omitted, the macro is defined with the value67.BR 1 .68This option may be repeated to define multiple macros.69.TP70.B \-E71Stop after preprocessing.72Emit the preprocessed C source to standard output instead of IR.73No compilation is performed.74.TP75.BI \-I " dir"76Prepend77.I dir78to the list of directories searched for header files.79This option may be repeated to add multiple directories.80User-specified directories are searched before any system include directories81added by82.BR scc\-cc (1).83.TP84.B \-M85Emit a86.BR make (1)87dependency rule describing the88.B #include89dependencies of the input file, then exit.90No compilation is performed.91.TP92.BI \-U " def"93Undefine the preprocessor macro94.IR def .95This option may be repeated.96.TP97.B \-d98Enable internal debug output.99.TP100.B \-w101Enable warning messages for dubious constructs.102.SH OUTPUT103.B cc1104writes the scc IR to standard output.105The IR is a line-oriented, tab-separated format.106Declarations begin in column 0; expressions are indented with a tab107and written in reverse Polish notation.108For a full description of the IR format, types, storage classes,109and statement encoding, see110.BR scc\-ir (7).111.PP112When only preprocessing is requested113.RB ( \-E114or115.BR \-M ),116the preprocessed source or dependency rule is written to standard output117instead.118.PP119If any compilation error occurs, the output stream is closed immediately120so that the backend121.B cc2122receives no output and can detect the failure.123.B cc1124exits with a non-zero status on error.125.SH SEE ALSO126.BR scc\-cc (1),127.BR scc\-cpp (1),128.BR scc (1),129.BR scc\-cc2 (1),130.BR scc\-ir (7)