scc-cc1.man (2851B)
1 .TH SCC-CC1 1 scc\-VERSION 2 .SH NAME 3 scc-cc1 \- C compiler frontend 4 .SH SYNOPSIS 5 .B cc1 6 .RB [ \-Ewd ] 7 .RB [ \-M ] 8 .RB [ \-a 9 .IR architecture ] 10 .RB [ \-D 11 .IR def[=val] ] ... 12 .RB [ \-U 13 .IR def ] ... 14 .RB [ \-I 15 .IR dir ] ... 16 .RI [ input ] 17 .SH DESCRIPTION 18 .B cc1 19 is the C compiler frontend of the scc toolchain. 20 It reads a C source file (or standard input if no 21 .I input 22 file is given), performs preprocessing, parsing, type checking, 23 and semantic analysis, and emits the scc intermediate representation (IR) 24 to standard output. 25 .PP 26 .B cc1 27 is not normally invoked directly. 28 It is called by the compiler driver 29 .BR scc\-cc (1), 30 which pipes its output to 31 .BR cc2 , 32 the code generation backend that produces assembly output. 33 .B cc1 34 is installed as 35 .IR $prefix /libexec/scc/cc1. 36 .SH OPTIONS 37 .TP 38 .BI \-a " architecture" 39 Select the target architecture. 40 The following architectures are supported: 41 .RS 42 .TP 43 .B amd64-sysv 44 64-bit x86 with the System V ABI (default). 45 .TP 46 .B arm64-sysv 47 64-bit ARM with the System V ABI. 48 .TP 49 .B riscv64-sysv 50 64-bit RISC-V with the System V ABI. 51 .TP 52 .B i386-sysv 53 32-bit x86 with the System V ABI. 54 .TP 55 .B z80-scc 56 Zilog Z80 with the scc ABI. 57 .RE 58 .TP 59 .BI \-D " def[=val]" 60 Define the preprocessor macro 61 .I def 62 with an optional value 63 .IR val . 64 If 65 .I val 66 is omitted, the macro is defined with the value 67 .BR 1 . 68 This option may be repeated to define multiple macros. 69 .TP 70 .B \-E 71 Stop after preprocessing. 72 Emit the preprocessed C source to standard output instead of IR. 73 No compilation is performed. 74 .TP 75 .BI \-I " dir" 76 Prepend 77 .I dir 78 to the list of directories searched for header files. 79 This option may be repeated to add multiple directories. 80 User-specified directories are searched before any system include directories 81 added by 82 .BR scc\-cc (1). 83 .TP 84 .B \-M 85 Emit a 86 .BR make (1) 87 dependency rule describing the 88 .B #include 89 dependencies of the input file, then exit. 90 No compilation is performed. 91 .TP 92 .BI \-U " def" 93 Undefine the preprocessor macro 94 .IR def . 95 This option may be repeated. 96 .TP 97 .B \-d 98 Enable internal debug output. 99 .TP 100 .B \-w 101 Enable warning messages for dubious constructs. 102 .SH OUTPUT 103 .B cc1 104 writes the scc IR to standard output. 105 The IR is a line-oriented, tab-separated format. 106 Declarations begin in column 0; expressions are indented with a tab 107 and written in reverse Polish notation. 108 For a full description of the IR format, types, storage classes, 109 and statement encoding, see 110 .BR scc\-ir (7). 111 .PP 112 When only preprocessing is requested 113 .RB ( \-E 114 or 115 .BR \-M ), 116 the preprocessed source or dependency rule is written to standard output 117 instead. 118 .PP 119 If any compilation error occurs, the output stream is closed immediately 120 so that the backend 121 .B cc2 122 receives no output and can detect the failure. 123 .B cc1 124 exits with a non-zero status on error. 125 .SH SEE ALSO 126 .BR scc\-cc (1), 127 .BR scc\-cpp (1), 128 .BR scc (1), 129 .BR scc\-cc2 (1), 130 .BR scc\-ir (7)