FreeBSD Manual Pages
kefir-cc1(1) General Commands Manual kefir-cc1(1) NAME kefir-cc1 -- C17/C23 language compiler SYNOPSIS kefir-cc1 [options] [file] DESCRIPTION kefir-cc1 is a C17/C23 language compiler (without a driver). If no in- put file is provided, stdin is used. OPTIONS --c17-standard Use C17 language language standard. --c23-standard Use C23 language language standard. --pp-timestamp timestamp Override preprocessor timestamp --json-errors Print errors in JSON format to stderr --tabular-errors Print errors in tabular format to stderr --target-profile profile Generate code for specified target (see "TARGET" subsection) --source-id identifier Force use provided source file identifier --extension-lib libpath Load extension library --quote-include-dir dir Add directory to include search path exclusively for quoted in- cludes --system-include-dir dir Add directory to include search path and mark it as a system include path (used for dependency output) --embed-dir directory Add directory to preprocessor embed search path --debug-info Include debug information into produced output --optimizer-max-inline-depth depth Maximum depth of function inlining (5 by default). --optimizer-max-inlines-per-func inlines Maximum number of inlined functions (10 by default). --enable-lowering Perform target-specific SSA lowering (mandatory for bit-precise integer support) [default] --disable-lowering Skip target-specific SSA lowering. --preprocessor-assembly-mode Enable assembly preprocessing mode (default for .S files). In this mode, leading '$' characters are not treated as identifier part. --preprocessor-normal-mode Disable assembly preprocessing mode (default). --dump-dependencies Output a make rule describing the dependencies of source file. --system-dependencies Include dependencies from system include directories into the make rule (used with --dump-dependencies flag) [default: on]. --no-system-dependencies Do not include dependencies from system include directories into the make rule (used with --dump-dependencies flag). --add-phony-targets Generate phony make targets for each dependency (used with --dump-dependencies flag) [default: off]. --no-add-phony-targets Do not generate phony make targets for each dependency (used with --dump-dependencies --dependency-target target Override default make rule target (used with --dump-dependencies flag). --dependency-output filename Output make rule into specified file (used with --dump-dependencies flag). --unsigned-char Let the type char be unsigned. By default, it is target-spe- cific. --signed-char Let the type char be signed. By default, it is target-specific. --codegen-tentative-common Place tentative definitions into common section (equivalent to common attribute applied to all variables). --codegen-tentative-no-common Do not place tentative definitions into common section [de- fault]. --codegen-visibility-default Keep default visibility for all symbols [default]. --codegen-visibility-hidden Make all symbols hidden unless an attribute specifies other- wise. --codegen-visibility-protected Make all symbols protected unless an attribute specifies other- wise. --codegen-visibility-internal Make all symbols internal unless an attribute specifies other- wise. --feature-[name] Enable compiler feature (see "FEATURES" subsection) --no-feature-[name] Disable compiler feature (see "FEATURES" subsection) --internal-[flag] Enable compiler internal flag (see "INTERNALS" subsection) --no-internal-[flag] Disable compiler internal flag (see "INTERNALS" subsection) --codegen-[option] Enable option for code generator (see "CODEGEN" subsection) --no-codegen-[option] Disable option for code generator (see "CODEGEN" subsection) --optimizer-pipeline spec Optimizer pipeline specification (see "OPTIMIZER" subsection) --precise-bitfield-load-store Load and store bitfields at byte boundaries [default: on]. Provides extra correctness for structures allocated close to a boundary with unmapped memory pages at the expense of less ef- ficient bitfield handling. Does not change bitfield layout. --no-precise-bitfield-load-store Load and store bitfields at machine word boundaries [default: off]. May cause failures for structures allocated close to boundaries with unmapped memory pages. Does not change bitfield layout. --declare-atomic-support Declare support of atomics (might require explicit linking of software atomic library such as libatomic or libcompiler_rt). --no-declare-atomic-support Declare the absence of atomic support via defining __STDC_NO_ATOMICS__ macro. --optimize-stack-frame Optimize stack frame layout by reusing space for variables for disjoint lifetimes. Might increase compilation time and memory use on very large functions. [default: on]. --no-optimize-stack-frame Do not optimize stack frame layout and allocate each variable separately. FEATURES Supported features (to be used with --feature-[feature-name] and --no-feature-[feature-name] flags) -- disabled by default: fail-on-attributes Fail if __attribute__((...)) is encountered missing-function-return-type Permit function definitions with missing return type designated-init-colons Permit "fieldname:" syntax in designated initializers labels-as-values Permit label-addressing with && operator non-strict-qualifiers Disable strict qualifier checks for pointers signed-enums Force all enums to have signed integral type implicit-function-decl Permit implicit funciton declarations at use-site empty-structs Permit empty structure/union definitions ext-pointer-arithmetics Permit pointer arithmetics with function and void pointers missing-braces-subobj Permit missing braces for subobject initialization with scalar statement-expressions Enable statement expressions omitted-conditional-operand Permit omission of the middle ternary expression operand int-to-pointer Permit any integral type conversion to pointer permissive-pointer-conv Permit conversions between any pointer types named-macro-vararg Permit named macro variable arguments include-next Permit include_next preprocessor directive fail-on-assembly Disable support of inline assembly va-args-comma-concat Enable special processing for ", ##__VA_ARGS" case in pre- processor switch-case-ranges Enable support for ranges in switch cases designator-subscript-ranges Enable support for ranges in designator subscripts CODEGEN Supported code geneator options (to be used with --codegen-[option] and --no-codegen-[option] flags): emulated-tls Use emulated TLS [disabled by default, enabled on openbsd plat- form] tls-common Generate common section for thread-local storage if respective attribute is on [enabled for linux and netbsd] pic Generate position-independent code omit-frame-pointer Omit frame pointer in leaf function that do not need it valgrind-compatible-x87 Replace x87 opcodes not supported by Valgrind by more expensive alternatives [default: on] syntax=SYNTAX Produce assembly output with specified syntax [x86_64-intel_no- prefix, x86_64-intel_prefix, x86_64-att (default)] details=DETAILS-SPEC Augment assembly output with internal code generator details in comments. DETAILS-SPEC can be: vasm (virtual assembly), vasm+regs (virtual assembly and register allocations), devasm (devirtualized assembly). pipeline=PIPELINE-SPEC Code generator transformation pipeline specification (not sup- ported for native-* targets) consists of comma separated names of pipeline passes: noop No-operation pass amd64-drop-virtual Non-functional virtual instruction elimination for amd64 targets amd64-peephole Peephole optimizations for amd64 targets OPTIMIZER Optimizer pipeline specification consists of comma separated names of optimization pipeline passes: noop No-operation pass phi-propagate Wherever possible, substitue phi nodes of SSA representation by actual references mem2reg Pull function local variables into registers op-simplify General code simplification constant-fold Folding constant expressions gvn Global value numering pass to eliminate redundant arithmetic and bitwise operations local-alloc-sink Moving local variable allocations closer to their actual uses (does not affect effective variable lifetimes). dead-code-elimination Eliminating dead code, blocks and phi links. block-merge Remove unnecessary jump instructions and merge respective blocks. dead-alloc Remove dead local variable allocations. inline-func Perform function inlining. tail-calls Perform tail call optimization. lowering Perform target-specific lowering of the SSA representation. Mandatory for bit-precise integer support. TARGET Supported compilation targets: amd64-sysv-gas Produce optimized GNU As-compatible assembly adhering System-V AMD64 ABI [default] EXIT STATUS Normally kefir-cc1 exits with 0 exit code. In case of any errors in any of compilation stages, all further compilation is aborted and non-zero exit code retruned. STANDARDS kefir-cc1 implements C17 language standard as specified in its final draft, and C23 language stadard (except _Decimal support) as specified in the first draft of C2Y. NOTES The kefir-cc1 compiler is licensed under the terms of GNU GPLv3 li- cense. kefir-cc1 is developed and maintained by Jevgenij Protopopov (legally: Jevgenijs Protopopovs) Please report bugs found in kefir-cc1 to jevgenij@protopopov.lv kefir-cc1 is available online at https://sr.ht/~jprotopopov/kefir/ with read-only mirrors at https://git.protopopov.lv/kefir and https://codeberg.org/jprotopopov/kefir FreeBSD ports 15.quarterly September 2025 kefir-cc1(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXIT STATUS | STANDARDS | NOTES
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kefir-cc1&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>
