- 無參數
clang -S test2.c -o test2.s - i386
clang -arch i386 -S test2.c -o test2.s - arm
clang -arch arm -S test2.c -o test2.s - arm64
clang -arch arm64 -S test2.c -o test2.s - armv7
clang -arch armv7 -S test2.c -o test2.s
== HELP ==
OVERVIEW: clang LLVM compiler USAGE: clang [options] OPTIONS: -### Print the commands to run for this compilation --analyze Run the static analyzer -arcmt-migrate-emit-errors Emit ARC errors even if the migrator can fix them -arcmt-migrate-report-output Output path for the plist report -cl-kernel-arg-info OpenCL only. This option allows the compiler to store information about the arguments of a kernel(s) -cxx-isystem Add directory to the C++ SYSTEM include search path -c Only run preprocess, compile, and assemble steps -dD Print macro definitions in -E mode in addition to normal output -dependency-dot Filename to write DOT-formatted header dependencies to -dependency-file Filename (or -) to write dependency output to -dM Print macro definitions in -E mode instead of normal output -emit-ast Emit Clang AST files for source inputs -emit-llvm Use the LLVM representation for assembler and object files -E Only run the preprocessor -faltivec Enable AltiVec vector initializer syntax -fansi-escape-codes Use ANSI escape codes for diagnostics -fapple-kext Use Apple's kernel extensions ABI -fapple-pragma-pack Enable Apple gcc-compatible #pragma pack handling -fblocks Enable the 'blocks' language feature -fborland-extensions Accept non-standard constructs supported by the Borland compiler -fbounds-checking Enable run-time bounds checks -fcolor-diagnostics Use colors in diagnostics -fcomment-block-commands= Treat each comma separated argument in as a documentation comment block command -fcxx-exceptions Enable C++ exceptions -fdata-sections Place each data in its own section (ELF Only) -fdebug-types-section Place debug types in their own section (ELF Only) -fdelayed-template-parsing Parse templated function definitions at the end of the translation unit -fdiagnostics-parseable-fixits Print fix-its in machine parseable form -fdiagnostics-print-source-range-info Print source range spans in numeric form -fdiagnostics-show-name Print diagnostic name -fdiagnostics-show-note-include-stack Display include stacks for diagnostic notes -fdiagnostics-show-option Print option name with mappable diagnostics -fdiagnostics-show-template-tree Print a template comparison tree for differing templates -fdollars-in-identifiers Allow '$' in identifiers -femit-all-decls Emit all declarations, even if unused -fexceptions Enable support for exception handling -ffast-math Enable the *frontend*'s 'fast-math' mode. This has no effect on optimizations, but provides a preprocessor macro __FAST_MATH__ the same as GCC's -ffast-math flag -ffixed-r9 Reserve the r9 register (ARM only) -ffp-contract= Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma, default) | off (never fuse) -ffreestanding Assert that the compilation takes place in a freestanding environment -ffunction-sections Place each function in its own section (ELF Only) -fgnu-keywords Allow GNU-extension keywords regardless of language standard -fgnu-runtime Generate output compatible with the standard GNU Objective-C runtime -fgnu89-inline Use the gnu89 inline semantics -finstrument-functions Generate calls to instrument function entry and exit -fmath-errno Require math functions to indicate errors by setting errno -fmodule-map-file= Load this module map file -fmodule-maps Read module maps to understand the structure of library headers -fmodule-name= Specify the name of the module to build -fmodules-cache-path= Specify the module cache path -fmodules-decluse Require declaration of modules used within a module -fmodules-ignore-macro= Ignore the definition of the given macro when building and loading modules -fmodules-prune-after= Specify the interval (in seconds) after which a module file will be considered unused -fmodules-prune-interval= Specify the interval (in seconds) between attempts to prune the module cache -fmodules Enable the 'modules' language feature -fms-compatibility Enable Microsoft compatibility mode -fms-extensions Accept some non-standard constructs supported by the Microsoft compiler -fmsc-version= Version of the Microsoft C/C++ compiler to report in _MSC_VER (0 = don't define it (default)) -fno-access-control Disable C++ access control -fno-assume-sane-operator-new Don't assume that C++'s global operator new can't alias any pointer -fno-autolink Disable generation of linker directives for automatic library linking -fno-builtin- Disable implicit builtin knowledge of a specific function -fno-builtin Disable implicit builtin knowledge of functions -fno-common Compile common globals like normal definitions -fno-constant-cfstrings Disable creation of CodeFoundation-type constant strings -fno-diagnostics-fixit-info Do not include fixit information in diagnostics -fno-dollars-in-identifiers Disallow '$' in identifiers -fno-elide-constructors Disable C++ copy constructor elision -fno-elide-type Do not elide types when printing diagnostics -fno-lax-vector-conversions Disallow implicit conversions between vectors with a different number of elements or different element types -fno-math-builtin Disable implicit builtin knowledge of math functions -fno-merge-all-constants Disallow merging of constants -fno-objc-infer-related-result-type do not infer Objective-C related result type based on method family -fno-operator-names Do not treat C++ operator name keywords as synonyms for operators -fno-rtti Disable generation of rtti information -fno-sanitize-blacklist Don't use blacklist file for sanitizers -fno-sanitize-recover Disable sanitizer check recovery -fno-show-column Do not include column number on diagnostics -fno-show-source-location Do not include source location information with diagnostics -fno-signed-char Char is unsigned -fno-spell-checking Disable spell-checking -fno-standalone-debug Limit debug information produced to reduce size of debug binary -fno-threadsafe-statics Do not emit code to make initialization of local statics thread safe -fno-unroll-loops Turn off loop unroller -fno-use-cxa-atexit Don't use __cxa_atexit for calling destructors -fno-use-init-array Don't use .init_array instead of .ctors -fobjc-arc-exceptions Use EH-safe code when synthesizing retains and releases in -fobjc-arc -fobjc-arc Synthesize retain and release calls for Objective-C pointers -fobjc-exceptions Enable Objective-C exceptions -fobjc-gc-only Use GC exclusively for Objective-C related memory management -fobjc-gc Enable Objective-C garbage collection -fobjc-runtime= Specify the target Objective-C runtime kind and version -fpack-struct= Specify the default maximum struct packing alignment -fpascal-strings Recognize and construct Pascal-style string literals -fpcc-struct-return Override the default ABI to return all structs on the stack -fprofile-instr-generate Generate instrumented code to collect execution counts -fprofile-instr-use= Use instrumentation data for profile-guided optimization -freg-struct-return Override the default ABI to return small structs in registers -fsanitize-address-zero-base-shadow Make AddressSanitizer map shadow memory at zero offset -fsanitize-blacklist= Path to blacklist file for sanitizers -fsanitize-memory-track-origins Enable origins tracking in MemorySanitizer -fsanitize= Enable runtime instrumentation for bug detection: undefined (miscellaneous undefined behavior) -fshort-enums Allocate to an enum type only as many bytes as it needs for the declared range of possible values -fshort-wchar Force wchar_t to be a short unsigned int -fshow-overloads= Which overload candidates to show when overload resolution fails: best|all; defaults to all -fslp-vectorize-aggressive Enable the BB vectorization passes -fslp-vectorize Enable the superword-level parallelism vectorization passes -fstandalone-debug Emit full debug info for all types used by the program -fstrict-enums Enable optimizations based on the strict definition of an enum's value range -ftrap-function= Issue call to specified function rather than a trap instruction -ftrapv-handler= Specify the function to be called on overflow -ftrapv Trap on integer overflow -funroll-loops Turn on loop unroller -fuse-init-array Use .init_array instead of .ctors -fvectorize Enable the loop vectorization passes -fvisibility-inlines-hidden Give inline C++ member functions default visibility by default -fvisibility-ms-compat Give global types 'default' visibility and global functions and variables 'hidden' visibility by default -fvisibility= Set the default symbol visibility for all global declarations -fwrapv Treat signed integer overflow as two's complement -fwritable-strings Store string literals as writable data -F Add directory to framework include search path --gcc-toolchain= Use the gcc toolchain at the given directory -gdwarf-2 Generate source level debug information with dwarf version 2 -gdwarf-3 Generate source level debug information with dwarf version 3 -gdwarf-4 Generate source level debug information with dwarf version 4 -gline-tables-only Emit debug line number tables only -g Generate source level debug information -help Display available options -H Show header includes and nesting depth -idirafter Add directory to AFTER include search path -iframework Add directory to SYSTEM framework search path -imacros Include macros from file before parsing -include-pch Include precompiled header file -include Include file before parsing -index-header-map Make the next included directory (-I or -F) an indexer header map -iprefixSet the -iwithprefix/-iwithprefixbefore prefix -iquote Add directory to QUOTE include search path -isysroot Set the system root directory (usually /) -isystem Add directory to SYSTEM include search path -iwithprefixbefore Set directory to include search path with prefix -iwithprefix Set directory to SYSTEM include search path with prefix -iwithsysroot Add directory to SYSTEM include search path, absolute paths are relative to -isysroot -I Add directory to include search path -mcrc Allow use of CRC instructions (ARM only) -mfp32 Use 32-bit floating point registers (MIPS only) -mfp64 Use 64-bit floating point registers (MIPS only) -MG Add missing headers to dependency list --migrate-xct Apply modifications and produces temporary files to migrate to XCTest framework --migrate Run the migrator -mllvm Additional arguments to forward to LLVM's option processing -mms-bitfields Set the default structure layout to be compatible with the Microsoft compiler standard -mmsa Enable MSA ASE (MIPS only) -mno-global-merge Disable merging of globals -mno-implicit-float Don't generate implicit floating point instructions -mno-msa Disable MSA ASE (MIPS only) -mno-unaligned-access Force all memory accesses to be aligned (ARM only) -mnocrc Disallow use of CRC instructions (ARM only) -momit-leaf-frame-pointer Omit frame pointer setup for leaf functions -MP Create phony target for each dependency (other than main file) -mqdsp6-compat Enable hexagon-qdsp6 backward compatibility -MQ Specify target to quote for dependency -mrelax-all (integrated-as) Relax all machine instructions -mrtd Make StdCall calling convention the default -msoft-float Use software floating point -mstack-alignment= Set the stack alignment -mstackrealign Force realign the stack at entry to every function -MT Specify target for dependency -munaligned-access Allow memory accesses to be unaligned (ARM only) -nobuiltininc Disable builtin #include directories -nostdinc++ Disable standard #include directories for the C++ standard library -ObjC++ Treat source input files as Objective-C++ inputs -objcmt-atomic-property Make migration to 'atomic' properties -objcmt-migrate-all Enable migration to modern ObjC -objcmt-migrate-annotation Enable migration to property and method annotations -objcmt-migrate-designated-init Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods -objcmt-migrate-instancetype Enable migration to infer instancetype for method result type -objcmt-migrate-literals Enable migration to modern ObjC literals -objcmt-migrate-ns-macros Enable migration to NS_ENUM/NS_OPTIONS macros -objcmt-migrate-property Enable migration to modern ObjC property -objcmt-migrate-protocol-conformance Enable migration to add protocol conformance on classes -objcmt-migrate-readonly-property Enable migration to modern ObjC readonly property -objcmt-migrate-readwrite-property Enable migration to modern ObjC readwrite property -objcmt-migrate-subscripting Enable migration to modern ObjC subscripting -objcmt-ns-nonatomic-iosonly Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute -objcmt-returns-innerpointer-property Enable migration to annotate property with NS_RETURNS_INNER_POINTER -objcmt-whitelist-dir-path= Only modify files with a filename contained in the provided directory path -ObjC Treat source input files as Objective-C inputs -o Write output to -pg Enable mcount instrumentation -pipe Use pipes between commands, when possible -print-file-name= Print the full library path of -print-ivar-layout Enable Objective-C Ivar layout bitmap print trace -print-libgcc-file-name Print the library path for "libgcc.a" -print-prog-name= Print the full program path of -print-search-dirs Print the paths used for finding libraries and programs -pthread Support POSIX threads in generated code -P Disable linemarker output in -E mode -Qunused-arguments Don't emit warning for unused driver arguments -relocatable-pch Whether to build a relocatable precompiled header -rewrite-legacy-objc Rewrite Legacy Objective-C source to C++ -rewrite-objc Rewrite Objective-C source to C++ -save-temps Save intermediate compilation results -serialize-diagnostics Serialize compiler diagnostics to a file -std= Language standard to compile for -stdlib= C++ standard library to use -S Only run preprocess and compilation steps --target= Generate code for the given target -time Time individual commands -traditional-cpp Enable some traditional CPP emulation -trigraphs Process trigraph sequences -undef undef all system defines -verify Verify output using a verifier -v Show commands to run and use verbose output -Wa, Pass the comma separated arguments in to the assembler -Wl, Pass the comma separated arguments in to the linker -working-directory Resolve file paths relative to the specified directory -Wp, Pass the comma separated arguments in to the preprocessor -W Enable the specified warning -w Suppress all warnings -Xanalyzer Pass to the static analyzer -Xassembler Pass to the assembler -Xclang Pass to the clang compiler -Xlinker Pass to the linker -Xpreprocessor Pass to the preprocessor -x Treat subsequent input files as having type