Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 1 | //===--- CC1Options.td - Options for clang -cc1 ---------------------------===// |
| 2 | // |
| 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | // |
| 10 | // This file defines the options accepted by clang -cc1. |
| 11 | // |
| 12 | //===----------------------------------------------------------------------===// |
| 13 | |
James Molloy | bfd7a52 | 2012-05-01 14:57:16 +0000 | [diff] [blame] | 14 | let Flags = [CC1Option] in { |
Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 15 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 16 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 17 | // Target Options |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 18 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 19 | |
Charles Davis | 98b7c5c | 2010-06-11 01:06:47 +0000 | [diff] [blame] | 20 | def cxx_abi : Separate<"-cxx-abi">, |
| 21 | HelpText<"Target a particular C++ ABI type">; |
Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 22 | def target_abi : Separate<"-target-abi">, |
| 23 | HelpText<"Target a particular ABI type">; |
Daniel Dunbar | 38b48af | 2009-12-18 06:30:12 +0000 | [diff] [blame] | 24 | def target_cpu : Separate<"-target-cpu">, |
| 25 | HelpText<"Target a specific cpu type">; |
Daniel Dunbar | 31db76c | 2009-11-20 01:46:44 +0000 | [diff] [blame] | 26 | def target_feature : Separate<"-target-feature">, |
Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 27 | HelpText<"Target specific attributes">; |
Daniel Dunbar | 39065a5 | 2010-08-11 23:07:42 +0000 | [diff] [blame] | 28 | def target_linker_version : Separate<"-target-linker-version">, |
| 29 | HelpText<"Target linker version">; |
Daniel Dunbar | 31db76c | 2009-11-20 01:46:44 +0000 | [diff] [blame] | 30 | def triple : Separate<"-triple">, |
Daniel Dunbar | 8adfcff | 2009-11-19 07:19:04 +0000 | [diff] [blame] | 31 | HelpText<"Specify target triple (e.g. i686-apple-darwin9)">; |
Daniel Dunbar | ce6bf1e | 2009-11-29 09:32:20 +0000 | [diff] [blame] | 32 | def triple_EQ : Joined<"-triple=">, Alias<triple>; |
Daniel Dunbar | 50a4487 | 2009-11-20 17:23:30 +0000 | [diff] [blame] | 33 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 34 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 35 | // Analyzer Options |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 36 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 37 | |
Ted Kremenek | 9b823e8 | 2010-08-03 00:09:51 +0000 | [diff] [blame] | 38 | def analysis_UnoptimizedCFG : Flag<"-unoptimized-cfg">, |
Ted Kremenek | c9c6b90 | 2010-08-20 05:53:47 +0000 | [diff] [blame] | 39 | HelpText<"Generate unoptimized CFGs for all analyses">; |
Marcin Swiderski | 9121ba2 | 2010-09-30 07:41:24 +0000 | [diff] [blame] | 40 | def analysis_CFGAddImplicitDtors : Flag<"-cfg-add-implicit-dtors">, |
| 41 | HelpText<"Add C++ implicit destructors to CFGs for all analyses">; |
| 42 | def analysis_CFGAddInitializers : Flag<"-cfg-add-initializers">, |
| 43 | HelpText<"Add C++ initializers to CFGs for all analyses">; |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 44 | |
| 45 | def analyzer_store : Separate<"-analyzer-store">, |
| 46 | HelpText<"Source Code Analysis - Abstract Memory Store Models">; |
| 47 | def analyzer_store_EQ : Joined<"-analyzer-store=">, Alias<analyzer_store>; |
| 48 | |
| 49 | def analyzer_constraints : Separate<"-analyzer-constraints">, |
| 50 | HelpText<"Source Code Analysis - Symbolic Constraint Engines">; |
| 51 | def analyzer_constraints_EQ : Joined<"-analyzer-constraints=">, |
| 52 | Alias<analyzer_constraints>; |
| 53 | |
| 54 | def analyzer_output : Separate<"-analyzer-output">, |
| 55 | HelpText<"Source Code Analysis - Output Options">; |
| 56 | def analyzer_output_EQ : Joined<"-analyzer-output=">, |
| 57 | Alias<analyzer_output>; |
| 58 | |
Anna Zaks | d309528 | 2011-09-30 02:03:00 +0000 | [diff] [blame] | 59 | def analyzer_purge : Separate<"-analyzer-purge">, |
| 60 | HelpText<"Source Code Analysis - Dead Symbol Removal Frequency">; |
| 61 | def analyzer_purge_EQ : Joined<"-analyzer-purge=">, Alias<analyzer_purge>; |
| 62 | |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 63 | def analyzer_opt_analyze_headers : Flag<"-analyzer-opt-analyze-headers">, |
| 64 | HelpText<"Force the static analyzer to analyze functions defined in header files">; |
Ted Kremenek | fc57651 | 2009-12-07 22:06:12 +0000 | [diff] [blame] | 65 | def analyzer_opt_analyze_nested_blocks : Flag<"-analyzer-opt-analyze-nested-blocks">, |
Michael J. Spencer | 20249a1 | 2010-10-21 03:16:25 +0000 | [diff] [blame] | 66 | HelpText<"Analyze the definitions of blocks in addition to functions">; |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 67 | def analyzer_display_progress : Flag<"-analyzer-display-progress">, |
| 68 | HelpText<"Emit verbose output about the analyzer's progress">; |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 69 | def analyze_function : Separate<"-analyze-function">, |
| 70 | HelpText<"Run analysis on specific function">; |
| 71 | def analyze_function_EQ : Joined<"-analyze-function=">, Alias<analyze_function>; |
| 72 | def analyzer_eagerly_assume : Flag<"-analyzer-eagerly-assume">, |
| 73 | HelpText<"Eagerly assume the truth/falseness of some symbolic constraints">; |
Ted Kremenek | d767d81 | 2011-02-09 01:27:33 +0000 | [diff] [blame] | 74 | def analyzer_no_eagerly_trim_egraph : Flag<"-analyzer-no-eagerly-trim-egraph">, |
| 75 | HelpText<"Don't eagerly remove uninteresting ExplodedNodes from the ExplodedGraph">; |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 76 | def trim_egraph : Flag<"-trim-egraph">, |
| 77 | HelpText<"Only show error-related paths in the analysis graph">; |
| 78 | def analyzer_viz_egraph_graphviz : Flag<"-analyzer-viz-egraph-graphviz">, |
| 79 | HelpText<"Display exploded graph using GraphViz">; |
| 80 | def analyzer_viz_egraph_ubigraph : Flag<"-analyzer-viz-egraph-ubigraph">, |
| 81 | HelpText<"Display exploded graph using Ubigraph">; |
Anna Zaks | 6625335 | 2012-03-08 23:16:35 +0000 | [diff] [blame] | 82 | |
Anna Zaks | 8235f9c | 2012-03-02 19:05:03 +0000 | [diff] [blame] | 83 | def analyzer_inline_max_stack_depth : Separate<"-analyzer-inline-max-stack-depth">, |
| 84 | HelpText<"Bound on stack depth while inlining (4 by default)">; |
Anna Zaks | 6625335 | 2012-03-08 23:16:35 +0000 | [diff] [blame] | 85 | def analyzer_inline_max_stack_depth_EQ : Joined<"-analyzer-inline-max-stack-depth=">, |
| 86 | Alias<analyzer_inline_max_stack_depth>; |
| 87 | |
Anna Zaks | 8235f9c | 2012-03-02 19:05:03 +0000 | [diff] [blame] | 88 | def analyzer_inline_max_function_size : Separate<"-analyzer-inline-max-function-size">, |
Anna Zaks | 8fbb4e6 | 2012-03-05 23:54:55 +0000 | [diff] [blame] | 89 | HelpText<"Bound on the number of basic blocks in an inlined function (200 by default)">; |
Anna Zaks | 6625335 | 2012-03-08 23:16:35 +0000 | [diff] [blame] | 90 | def analyzer_inline_max_function_size_EQ : Joined<"-analyzer-inline-max-function-size=">, |
| 91 | Alias<analyzer_inline_max_function_size>; |
| 92 | |
| 93 | def analyzer_ipa : Separate<"-analyzer-ipa">, |
| 94 | HelpText<"Specify the inter-procedural analysis mode">; |
| 95 | def analyzer_ipa_EQ : Joined<"-analyzer-ipa=">, Alias<analyzer_ipa>; |
| 96 | |
| 97 | def analyzer_inlining_mode : Separate<"-analyzer-inlining-mode">, |
| 98 | HelpText<"Specify the function selection heuristic used during inlining">; |
| 99 | def analyzer_inlining_mode_EQ : Joined<"-analyzer-inlining-mode=">, Alias<analyzer_inlining_mode>; |
Anna Zaks | 5903a37 | 2012-03-27 20:02:53 +0000 | [diff] [blame] | 100 | |
Anna Zaks | b47dbcb | 2012-03-28 19:59:16 +0000 | [diff] [blame] | 101 | def analyzer_disable_retry_exhausted : Flag<"-analyzer-disable-retry-exhausted">, |
| 102 | HelpText<"Do not re-analyze paths leading to exhausted nodes with a different strategy (may decrease code coverage)">; |
Anna Zaks | 6625335 | 2012-03-08 23:16:35 +0000 | [diff] [blame] | 103 | |
Zhongxing Xu | c09289d | 2010-04-13 06:44:31 +0000 | [diff] [blame] | 104 | def analyzer_max_nodes : Separate<"-analyzer-max-nodes">, |
Tom Care | cf9ce13 | 2010-09-29 23:48:13 +0000 | [diff] [blame] | 105 | HelpText<"The maximum number of nodes the analyzer can generate (150000 default, 0 = no limit)">; |
Zhongxing Xu | 6362b89 | 2010-05-18 00:28:37 +0000 | [diff] [blame] | 106 | def analyzer_max_loop : Separate<"-analyzer-max-loop">, |
| 107 | HelpText<"The maximum number of times the analyzer will go through a loop">; |
Anna Zaks | 81fb169 | 2012-02-27 21:33:16 +0000 | [diff] [blame] | 108 | def analyzer_stats : Flag<"-analyzer-stats">, |
| 109 | HelpText<"Print internal analyzer statistics.">; |
Daniel Dunbar | e2814d8 | 2009-11-22 22:08:20 +0000 | [diff] [blame] | 110 | |
Argyrios Kyrtzidis | 43dee22 | 2011-02-14 18:13:31 +0000 | [diff] [blame] | 111 | def analyzer_checker : Separate<"-analyzer-checker">, |
| 112 | HelpText<"Choose analyzer checkers to enable">; |
| 113 | def analyzer_checker_EQ : Joined<"-analyzer-checker=">, |
| 114 | Alias<analyzer_checker>; |
| 115 | |
| 116 | def analyzer_disable_checker : Separate<"-analyzer-disable-checker">, |
| 117 | HelpText<"Choose analyzer checkers to disable">; |
| 118 | def analyzer_disable_checker_EQ : Joined<"-analyzer-disable-checker=">, |
| 119 | Alias<analyzer_disable_checker>; |
| 120 | |
Argyrios Kyrtzidis | 116f364 | 2011-02-25 00:09:51 +0000 | [diff] [blame] | 121 | def analyzer_checker_help : Flag<"-analyzer-checker-help">, |
| 122 | HelpText<"Display the list of analyzer checkers that are available">; |
| 123 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 124 | //===----------------------------------------------------------------------===// |
Fariborz Jahanian | b5c6bab | 2012-01-25 00:20:29 +0000 | [diff] [blame] | 125 | // Migrator Options |
| 126 | //===----------------------------------------------------------------------===// |
| 127 | def migrator_no_nsalloc_error : Flag<"-no-ns-alloc-error">, |
| 128 | HelpText<"Do not error on use of NSAllocateCollectable/NSReallocateCollectable">; |
| 129 | |
Fariborz Jahanian | 26f0e4e | 2012-01-26 00:08:04 +0000 | [diff] [blame] | 130 | def migrator_no_finalize_removal : Flag<"-no-finalize-removal">, |
| 131 | HelpText<"Do not remove finalize method in gc mode">; |
| 132 | |
Fariborz Jahanian | b5c6bab | 2012-01-25 00:20:29 +0000 | [diff] [blame] | 133 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 50a4487 | 2009-11-20 17:23:30 +0000 | [diff] [blame] | 134 | // CodeGen Options |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 135 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 50a4487 | 2009-11-20 17:23:30 +0000 | [diff] [blame] | 136 | |
| 137 | def disable_llvm_optzns : Flag<"-disable-llvm-optzns">, |
| 138 | HelpText<"Don't run LLVM optimization passes">; |
John McCall | 824e19e | 2010-02-12 23:47:27 +0000 | [diff] [blame] | 139 | def disable_llvm_verifier : Flag<"-disable-llvm-verifier">, |
| 140 | HelpText<"Don't run the LLVM IR verifier pass">; |
Daniel Dunbar | 50a4487 | 2009-11-20 17:23:30 +0000 | [diff] [blame] | 141 | def disable_red_zone : Flag<"-disable-red-zone">, |
| 142 | HelpText<"Do not emit code that uses the red zone.">; |
Nick Lewycky | 7c4fd91 | 2011-10-21 02:32:14 +0000 | [diff] [blame] | 143 | def fdebug_compilation_dir : Separate<"-fdebug-compilation-dir">, |
| 144 | HelpText<"The compilation directory to embed in the debug info.">; |
Daniel Dunbar | f2d8b9f | 2009-12-18 02:43:17 +0000 | [diff] [blame] | 145 | def dwarf_debug_flags : Separate<"-dwarf-debug-flags">, |
| 146 | HelpText<"The string to embed in the Dwarf debug flags record.">; |
John McCall | 3209669 | 2011-03-18 02:56:14 +0000 | [diff] [blame] | 147 | def fforbid_guard_variables : Flag<"-fforbid-guard-variables">, |
| 148 | HelpText<"Emit an error if a C++ static local initializer would need a guard variable">; |
Chad Rosier | 005af27 | 2012-05-16 21:19:55 +0000 | [diff] [blame] | 149 | def no_implicit_float : Flag<"-no-implicit-float">, |
| 150 | HelpText<"Don't generate implicit floating point instructions">; |
Anders Carlsson | 824d7ea | 2010-02-11 08:02:13 +0000 | [diff] [blame] | 151 | def fdump_vtable_layouts : Flag<"-fdump-vtable-layouts">, |
| 152 | HelpText<"Dump the layouts of all vtables that will be emitted in a translation unit">; |
Nick Lewycky | e8ba8d7 | 2011-04-21 23:44:07 +0000 | [diff] [blame] | 153 | def femit_coverage_notes : Flag<"-femit-coverage-notes">, |
| 154 | HelpText<"Emit a gcov coverage notes file when compiling.">; |
| 155 | def femit_coverage_data: Flag<"-femit-coverage-data">, |
| 156 | HelpText<"Instrument the program to emit gcov coverage data when run.">; |
Nick Lewycky | 3dc0541 | 2011-05-05 00:08:20 +0000 | [diff] [blame] | 157 | def coverage_file : Separate<"-coverage-file">, |
| 158 | HelpText<"Emit coverage data to this filename. The extension will be replaced.">; |
| 159 | def coverage_file_EQ : Joined<"-coverage-file=">, Alias<coverage_file>; |
Daniel Dunbar | e26bdb9 | 2011-06-21 18:54:46 +0000 | [diff] [blame] | 160 | def fuse_register_sized_bitfield_access: Flag<"-fuse-register-sized-bitfield-access">, |
| 161 | HelpText<"Use register sized accesses to bit-fields, when possible.">; |
Dan Gohman | 4d5625e | 2010-10-14 22:36:56 +0000 | [diff] [blame] | 162 | def relaxed_aliasing : Flag<"-relaxed-aliasing">, |
Devang Patel | be57012 | 2010-10-15 18:23:36 +0000 | [diff] [blame] | 163 | HelpText<"Turn off Type Based Alias Analysis">; |
Daniel Dunbar | f219e7c | 2009-11-29 07:18:39 +0000 | [diff] [blame] | 164 | def masm_verbose : Flag<"-masm-verbose">, |
| 165 | HelpText<"Generate verbose assembly output">; |
| 166 | def mcode_model : Separate<"-mcode-model">, |
| 167 | HelpText<"The code model to use">; |
| 168 | def mdebug_pass : Separate<"-mdebug-pass">, |
| 169 | HelpText<"Enable additional debug output">; |
| 170 | def mdisable_fp_elim : Flag<"-mdisable-fp-elim">, |
| 171 | HelpText<"Disable frame pointer elimination optimization">; |
Nick Lewycky | 1db772b | 2012-01-23 08:29:12 +0000 | [diff] [blame] | 172 | def mdisable_tail_calls : Flag<"-mdisable-tail-calls">, |
| 173 | HelpText<"Disable tail call optimization, keeping the call stack accurate">; |
Daniel Dunbar | 001f628 | 2011-12-09 23:41:18 +0000 | [diff] [blame] | 174 | def menable_no_infinities : Flag<"-menable-no-infs">, |
| 175 | HelpText<"Allow optimization to assume there are no infinities.">; |
| 176 | def menable_no_nans : Flag<"-menable-no-nans">, |
| 177 | HelpText<"Allow optimization to assume there are no NaNs.">; |
Chandler Carruth | abf07a7 | 2012-01-02 14:19:45 +0000 | [diff] [blame] | 178 | def menable_unsafe_fp_math : Flag<"-menable-unsafe-fp-math">, |
| 179 | HelpText<"Allow unsafe floating-point math optimizations which may decrease " |
| 180 | "precision">; |
Daniel Dunbar | 87667aa | 2009-12-08 19:49:51 +0000 | [diff] [blame] | 181 | def mfloat_abi : Separate<"-mfloat-abi">, |
Daniel Dunbar | 3b31526 | 2009-11-30 08:42:00 +0000 | [diff] [blame] | 182 | HelpText<"The float ABI to use">; |
Daniel Dunbar | f219e7c | 2009-11-29 07:18:39 +0000 | [diff] [blame] | 183 | def mlimit_float_precision : Separate<"-mlimit-float-precision">, |
| 184 | HelpText<"Limit float precision to the given value">; |
Nick Lewycky | c3b9014 | 2011-06-21 00:14:18 +0000 | [diff] [blame] | 185 | def mno_exec_stack : Flag<"-mnoexecstack">, |
| 186 | HelpText<"Mark the file as not needing an executable stack">; |
Daniel Dunbar | f219e7c | 2009-11-29 07:18:39 +0000 | [diff] [blame] | 187 | def mno_zero_initialized_in_bss : Flag<"-mno-zero-initialized-in-bss">, |
| 188 | HelpText<"Do not put zero initialized data in the BSS">; |
Daniel Dunbar | 3c66d30 | 2011-03-22 16:48:17 +0000 | [diff] [blame] | 189 | def backend_option : Separate<"-backend-option">, |
| 190 | HelpText<"Additional arguments to forward to LLVM backend (during code gen)">; |
Daniel Dunbar | 17d3fea | 2011-02-09 17:54:19 +0000 | [diff] [blame] | 191 | def mregparm : Separate<"-mregparm">, |
| 192 | HelpText<"Limit the number of registers available for integer arguments">; |
Daniel Dunbar | 9693232 | 2011-03-28 22:49:28 +0000 | [diff] [blame] | 193 | def msave_temp_labels : Flag<"-msave-temp-labels">, |
| 194 | HelpText<"(integrated-as) Save temporary labels">; |
Daniel Dunbar | f219e7c | 2009-11-29 07:18:39 +0000 | [diff] [blame] | 195 | def mrelocation_model : Separate<"-mrelocation-model">, |
| 196 | HelpText<"The relocation model to use">; |
| 197 | def munwind_tables : Flag<"-munwind-tables">, |
| 198 | HelpText<"Generate unwinding tables for all functions">; |
Rafael Espindola | 8af669f | 2012-06-19 01:26:10 +0000 | [diff] [blame^] | 199 | def fuse_init_array : Flag<"-fuse-init-array">, |
| 200 | HelpText<"Use .init_array instead of .ctors">; |
John McCall | d46f985 | 2010-02-19 01:32:20 +0000 | [diff] [blame] | 201 | def mconstructor_aliases : Flag<"-mconstructor-aliases">, |
| 202 | HelpText<"Emit complete constructors and destructors as aliases when possible">; |
Peter Collingbourne | 22a7dfe | 2011-10-30 17:30:44 +0000 | [diff] [blame] | 203 | def mlink_bitcode_file : Separate<"-mlink-bitcode-file">, |
| 204 | HelpText<"Link the given bitcode file before performing optimizations.">; |
Daniel Dunbar | 1bed0c3 | 2009-11-20 23:28:07 +0000 | [diff] [blame] | 205 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 206 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 1bed0c3 | 2009-11-20 23:28:07 +0000 | [diff] [blame] | 207 | // Dependency Output Options |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 208 | //===----------------------------------------------------------------------===// |
| 209 | |
Daniel Dunbar | 1bed0c3 | 2009-11-20 23:28:07 +0000 | [diff] [blame] | 210 | def sys_header_deps : Flag<"-sys-header-deps">, |
| 211 | HelpText<"Include system headers in dependency output">; |
Daniel Dunbar | b34d69b | 2011-02-02 21:11:31 +0000 | [diff] [blame] | 212 | def header_include_file : Separate<"-header-include-file">, |
| 213 | HelpText<"Filename (or -) to write header include output to">; |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 214 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 215 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 216 | // Diagnostic Options |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 217 | //===----------------------------------------------------------------------===// |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 218 | |
| 219 | def dump_build_information : Separate<"-dump-build-information">, |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 220 | MetaVarName<"<filename>">, |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 221 | HelpText<"output a dump of some build information to a file">; |
Daniel Dunbar | 08c6695 | 2011-04-07 18:11:14 +0000 | [diff] [blame] | 222 | def diagnostic_log_file : Separate<"-diagnostic-log-file">, |
| 223 | HelpText<"Filename (or -) to log diagnostics to">; |
Ted Kremenek | 36f6e30 | 2011-11-11 00:07:43 +0000 | [diff] [blame] | 224 | def diagnostic_serialized_file : Separate<"-serialize-diagnostic-file">, |
Ted Kremenek | 7800212 | 2011-10-29 00:12:39 +0000 | [diff] [blame] | 225 | MetaVarName<"<filename>">, |
| 226 | HelpText<"File for serializing diagnostics in a binary format">; |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 227 | |
Douglas Gregor | c9471b0 | 2011-05-21 17:07:29 +0000 | [diff] [blame] | 228 | def fdiagnostics_format : Separate<"-fdiagnostics-format">, |
| 229 | HelpText<"Change diagnostic formatting to match IDE and command line tools">; |
Chris Lattner | 6fbe839 | 2010-05-04 21:55:25 +0000 | [diff] [blame] | 230 | def fdiagnostics_show_category : Separate<"-fdiagnostics-show-category">, |
| 231 | HelpText<"Print diagnostic category">; |
Chris Lattner | 124fca5 | 2010-01-09 21:54:33 +0000 | [diff] [blame] | 232 | def ftabstop : Separate<"-ftabstop">, MetaVarName<"<N>">, |
| 233 | HelpText<"Set the tab stop distance.">; |
Chris Lattner | c100214 | 2010-04-07 20:37:06 +0000 | [diff] [blame] | 234 | def ferror_limit : Separate<"-ferror-limit">, MetaVarName<"<N>">, |
| 235 | HelpText<"Set the maximum number of errors to emit before stopping (0 = no limit).">; |
Douglas Gregor | 6c1cb99 | 2010-05-04 17:13:42 +0000 | [diff] [blame] | 236 | def fmacro_backtrace_limit : Separate<"-fmacro-backtrace-limit">, MetaVarName<"<N>">, |
Chandler Carruth | b29a610 | 2011-07-15 00:04:38 +0000 | [diff] [blame] | 237 | HelpText<"Set the maximum number of entries to print in a macro expansion backtrace (0 = no limit).">; |
Douglas Gregor | 575cf37 | 2010-04-20 07:18:24 +0000 | [diff] [blame] | 238 | def ftemplate_backtrace_limit : Separate<"-ftemplate-backtrace-limit">, MetaVarName<"<N>">, |
| 239 | HelpText<"Set the maximum number of entries to print in a template instantiation backtrace (0 = no limit).">; |
Richard Smith | 08d6e03 | 2011-12-16 19:06:07 +0000 | [diff] [blame] | 240 | def fconstexpr_backtrace_limit : Separate<"-fconstexpr-backtrace-limit">, MetaVarName<"<N>">, |
| 241 | HelpText<"Set the maximum number of entries to print in a constexpr evaluation backtrace (0 = no limit).">; |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 242 | def fmessage_length : Separate<"-fmessage-length">, MetaVarName<"<N>">, |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 243 | HelpText<"Format message diagnostics so that they fit within N columns or fewer, when possible.">; |
Daniel Dunbar | 21affc0 | 2009-11-23 23:41:17 +0000 | [diff] [blame] | 244 | def Wno_rewrite_macros : Flag<"-Wno-rewrite-macros">, |
| 245 | HelpText<"Silence ObjC rewriting warnings">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 246 | |
| 247 | //===----------------------------------------------------------------------===// |
| 248 | // Frontend Options |
| 249 | //===----------------------------------------------------------------------===// |
| 250 | |
Daniel Dunbar | 8ff5b28 | 2009-12-11 23:00:49 +0000 | [diff] [blame] | 251 | // This isn't normally used, it is just here so we can parse a |
| 252 | // CompilerInvocation out of a driver-derived argument vector. |
| 253 | def cc1 : Flag<"-cc1">; |
| 254 | |
Douglas Gregor | 9bed879 | 2010-02-09 19:21:46 +0000 | [diff] [blame] | 255 | def ast_merge : Separate<"-ast-merge">, |
| 256 | MetaVarName<"<ast file>">, |
| 257 | HelpText<"Merge the given AST file into the translation unit being compiled.">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 258 | def code_completion_at : Separate<"-code-completion-at">, |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 259 | MetaVarName<"<file>:<line>:<column>">, |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 260 | HelpText<"Dump code-completion information at a location">; |
Daniel Dunbar | e14b5f5 | 2009-12-03 05:11:16 +0000 | [diff] [blame] | 261 | def remap_file : Separate<"-remap-file">, |
| 262 | MetaVarName<"<from>;<to>">, |
| 263 | HelpText<"Replace the contents of the <from> file with the contents of the <to> file">; |
Daniel Dunbar | ce6bf1e | 2009-11-29 09:32:20 +0000 | [diff] [blame] | 264 | def code_completion_at_EQ : Joined<"-code-completion-at=">, |
| 265 | Alias<code_completion_at>; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 266 | def code_completion_macros : Flag<"-code-completion-macros">, |
| 267 | HelpText<"Include macros in code-completion results">; |
Douglas Gregor | d8e8a58 | 2010-05-25 21:41:55 +0000 | [diff] [blame] | 268 | def code_completion_patterns : Flag<"-code-completion-patterns">, |
| 269 | HelpText<"Include code patterns in code-completion results">; |
Douglas Gregor | 8071e42 | 2010-08-15 06:18:01 +0000 | [diff] [blame] | 270 | def no_code_completion_globals : Flag<"-no-code-completion-globals">, |
| 271 | HelpText<"Do not include global declarations in code-completion results.">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 272 | def disable_free : Flag<"-disable-free">, |
| 273 | HelpText<"Disable freeing of memory on exit">; |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 274 | def load : Separate<"-load">, MetaVarName<"<dsopath>">, |
Daniel Dunbar | efba227 | 2009-12-03 05:11:05 +0000 | [diff] [blame] | 275 | HelpText<"Load the named plugin (dynamic shared object)">; |
Daniel Dunbar | 3177aae | 2010-06-16 16:59:23 +0000 | [diff] [blame] | 276 | def plugin : Separate<"-plugin">, MetaVarName<"<name>">, |
Nico Weber | 5aa74af | 2011-01-25 20:34:14 +0000 | [diff] [blame] | 277 | HelpText<"Use the named plugin action instead of the default action (use \"help\" to list available options)">; |
Michael J. Spencer | 20249a1 | 2010-10-21 03:16:25 +0000 | [diff] [blame] | 278 | def plugin_arg : JoinedAndSeparate<"-plugin-arg-">, |
Daniel Dunbar | 3177aae | 2010-06-16 16:59:23 +0000 | [diff] [blame] | 279 | MetaVarName<"<name> <arg>">, |
| 280 | HelpText<"Pass <arg> to plugin <name>">; |
Nico Weber | 5aa74af | 2011-01-25 20:34:14 +0000 | [diff] [blame] | 281 | def add_plugin : Separate<"-add-plugin">, MetaVarName<"<name>">, |
| 282 | HelpText<"Use the named plugin action in addition to the default action">; |
Daniel Dunbar | 8b9adfe | 2009-12-15 00:06:45 +0000 | [diff] [blame] | 283 | def resource_dir : Separate<"-resource-dir">, |
| 284 | HelpText<"The directory which holds the compiler resource files">; |
Daniel Dunbar | 9b5e9ae | 2009-12-03 07:01:58 +0000 | [diff] [blame] | 285 | def version : Flag<"-version">, |
| 286 | HelpText<"Print the compiler version">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 287 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 288 | let Group = Action_Group in { |
| 289 | |
| 290 | def Eonly : Flag<"-Eonly">, |
| 291 | HelpText<"Just run preprocessor, no output (for timings)">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 292 | def dump_raw_tokens : Flag<"-dump-raw-tokens">, |
| 293 | HelpText<"Lex file in raw mode and dump raw tokens">; |
| 294 | def analyze : Flag<"-analyze">, |
| 295 | HelpText<"Run static analysis engine">; |
| 296 | def dump_tokens : Flag<"-dump-tokens">, |
| 297 | HelpText<"Run preprocessor, dump internal rep of tokens">; |
Daniel Dunbar | 2758595 | 2010-03-19 19:44:04 +0000 | [diff] [blame] | 298 | def init_only : Flag<"-init-only">, |
| 299 | HelpText<"Only execute frontend initialization">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 300 | def fixit : Flag<"-fixit">, |
| 301 | HelpText<"Apply fix-it advice to the input source">; |
Nick Lewycky | ba5f6ec | 2010-04-24 01:30:46 +0000 | [diff] [blame] | 302 | def fixit_EQ : Joined<"-fixit=">, |
| 303 | HelpText<"Apply fix-it advice creating a file with the given suffix">; |
Douglas Gregor | f033f1d | 2010-07-20 20:18:03 +0000 | [diff] [blame] | 304 | def print_preamble : Flag<"-print-preamble">, |
| 305 | HelpText<"Print the \"preamble\" of a file, which is a candidate for implicit" |
| 306 | " precompiled headers.">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 307 | def emit_html : Flag<"-emit-html">, |
| 308 | HelpText<"Output input source as HTML">; |
| 309 | def ast_print : Flag<"-ast-print">, |
| 310 | HelpText<"Build ASTs and then pretty-print them">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 311 | def ast_dump : Flag<"-ast-dump">, |
| 312 | HelpText<"Build ASTs and then debug dump them">; |
John McCall | f351424 | 2010-11-24 11:21:45 +0000 | [diff] [blame] | 313 | def ast_dump_xml : Flag<"-ast-dump-xml">, |
| 314 | HelpText<"Build ASTs and then debug dump them in a verbose XML format">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 315 | def ast_view : Flag<"-ast-view">, |
| 316 | HelpText<"Build ASTs and view them with GraphViz">; |
| 317 | def print_decl_contexts : Flag<"-print-decl-contexts">, |
| 318 | HelpText<"Print DeclContexts and their Decls">; |
Douglas Gregor | 467dc88 | 2011-08-25 22:30:56 +0000 | [diff] [blame] | 319 | def emit_module : Flag<"-emit-module">, |
Douglas Gregor | 6649014 | 2011-11-29 22:42:06 +0000 | [diff] [blame] | 320 | HelpText<"Generate pre-compiled module file from a module map">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 321 | def emit_pth : Flag<"-emit-pth">, |
| 322 | HelpText<"Generate pre-tokenized header file">; |
| 323 | def emit_pch : Flag<"-emit-pch">, |
| 324 | HelpText<"Generate pre-compiled header file">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 325 | def emit_llvm_bc : Flag<"-emit-llvm-bc">, |
| 326 | HelpText<"Build ASTs then convert to LLVM, emit .bc file">; |
| 327 | def emit_llvm_only : Flag<"-emit-llvm-only">, |
| 328 | HelpText<"Build ASTs and convert to LLVM, discarding output">; |
Daniel Dunbar | 32148ce | 2010-05-25 18:41:01 +0000 | [diff] [blame] | 329 | def emit_codegen_only : Flag<"-emit-codegen-only">, |
| 330 | HelpText<"Generate machine code, but discard output">; |
Daniel Dunbar | da1573f | 2010-02-03 01:18:43 +0000 | [diff] [blame] | 331 | def emit_obj : Flag<"-emit-obj">, |
| 332 | HelpText<"Emit native object files">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 333 | def rewrite_test : Flag<"-rewrite-test">, |
| 334 | HelpText<"Rewriter playground">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 335 | def rewrite_macros : Flag<"-rewrite-macros">, |
| 336 | HelpText<"Expand macros without full preprocessing">; |
Ted Kremenek | 30660a8 | 2012-03-06 20:06:33 +0000 | [diff] [blame] | 337 | def migrate : Flag<"-migrate">, |
| 338 | HelpText<"Migrate source code">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 339 | } |
| 340 | |
Ted Kremenek | 30660a8 | 2012-03-06 20:06:33 +0000 | [diff] [blame] | 341 | def mt_migrate_directory : Separate<"-mt-migrate-directory">, |
| 342 | HelpText<"Directory for temporary files produced during ARC or ObjC migration">; |
John McCall | f85e193 | 2011-06-15 23:02:42 +0000 | [diff] [blame] | 343 | def arcmt_check : Flag<"-arcmt-check">, |
| 344 | HelpText<"Check for ARC migration issues that need manual handling">; |
| 345 | def arcmt_modify : Flag<"-arcmt-modify">, |
| 346 | HelpText<"Apply modifications to files to conform to ARC">; |
Argyrios Kyrtzidis | 69325d5 | 2011-07-09 20:00:58 +0000 | [diff] [blame] | 347 | def arcmt_migrate : Flag<"-arcmt-migrate">, |
| 348 | HelpText<"Apply modifications and produces temporary files that conform to ARC">; |
Argyrios Kyrtzidis | 389db16 | 2010-11-03 22:45:23 +0000 | [diff] [blame] | 349 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 350 | def relocatable_pch : Flag<"-relocatable-pch">, |
| 351 | HelpText<"Whether to build a relocatable precompiled header">; |
| 352 | def print_stats : Flag<"-print-stats">, |
| 353 | HelpText<"Print performance metrics and statistics">; |
Anders Carlsson | 46116ce | 2010-04-10 19:09:13 +0000 | [diff] [blame] | 354 | def fdump_record_layouts : Flag<"-fdump-record-layouts">, |
Daniel Dunbar | b69eca5 | 2010-04-08 02:59:56 +0000 | [diff] [blame] | 355 | HelpText<"Dump record layout information">; |
Douglas Gregor | 453dbcb | 2012-01-26 07:55:45 +0000 | [diff] [blame] | 356 | def fdump_record_layouts_simple : Flag<"-fdump-record-layouts-simple">, |
| 357 | HelpText<"Dump record layout information in a simple form used for testing">; |
Nick Lewycky | 1450f26 | 2010-08-13 17:31:00 +0000 | [diff] [blame] | 358 | def fix_what_you_can : Flag<"-fix-what-you-can">, |
| 359 | HelpText<"Apply fix-it advice even in the presence of unfixable errors">; |
Argyrios Kyrtzidis | 61d679a | 2012-01-26 02:40:48 +0000 | [diff] [blame] | 360 | def fix_only_warnings : Flag<"-fix-only-warnings">, |
| 361 | HelpText<"Apply fix-it advice only for warnings, not errors">; |
| 362 | def fixit_recompile : Flag<"-fixit-recompile">, |
| 363 | HelpText<"Apply fix-it changes and recompile">; |
| 364 | def fixit_to_temp : Flag<"-fixit-to-temporary">, |
| 365 | HelpText<"Apply fix-it changes to temporary files">; |
Daniel Dunbar | b69eca5 | 2010-04-08 02:59:56 +0000 | [diff] [blame] | 366 | |
Douglas Gregor | 453dbcb | 2012-01-26 07:55:45 +0000 | [diff] [blame] | 367 | def foverride_record_layout_EQ : Joined<"-foverride-record-layout=">, |
| 368 | HelpText<"Override record layouts with those in the given file">; |
| 369 | |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 370 | //===----------------------------------------------------------------------===// |
| 371 | // Language Options |
| 372 | //===----------------------------------------------------------------------===// |
| 373 | |
John McCall | 13db5cf | 2011-09-09 20:41:01 +0000 | [diff] [blame] | 374 | def fblocks_runtime_optional : Flag<"-fblocks-runtime-optional">, |
| 375 | HelpText<"Weakly link in the blocks runtime">; |
Daniel Dunbar | 7348288 | 2010-02-10 18:48:44 +0000 | [diff] [blame] | 376 | def fsjlj_exceptions : Flag<"-fsjlj-exceptions">, |
| 377 | HelpText<"Use SjLj style exceptions">; |
John McCall | 279b5eb | 2010-08-12 23:36:15 +0000 | [diff] [blame] | 378 | def fhidden_weak_vtables : Flag<"-fhidden-weak-vtables">, |
| 379 | HelpText<"Generate weak vtables and RTTI with hidden visibility">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 380 | def main_file_name : Separate<"-main-file-name">, |
| 381 | HelpText<"Main file name to use for debug info">; |
Daniel Dunbar | efb0fa9 | 2010-03-20 04:15:41 +0000 | [diff] [blame] | 382 | def fno_signed_char : Flag<"-fno-signed-char">, |
| 383 | HelpText<"Char is unsigned">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 384 | def fconstant_string_class : Separate<"-fconstant-string-class">, |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 385 | MetaVarName<"<class name>">, |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 386 | HelpText<"Specify the class to use for constant Objective-C string objects.">; |
John McCall | f85e193 | 2011-06-15 23:02:42 +0000 | [diff] [blame] | 387 | def fobjc_arc_cxxlib_EQ : Joined<"-fobjc-arc-cxxlib=">, |
| 388 | HelpText<"Objective-C++ Automatic Reference Counting standard library kind">; |
John McCall | 9f084a3 | 2011-07-06 00:26:06 +0000 | [diff] [blame] | 389 | def fobjc_runtime_has_arc : Flag<"-fobjc-runtime-has-arc">, |
| 390 | HelpText<"The target Objective-C runtime provides ARC entrypoints">; |
| 391 | def fobjc_runtime_has_weak : Flag<"-fobjc-runtime-has-weak">, |
| 392 | HelpText<"The target Objective-C runtime supports ARC weak operations">; |
John McCall | 256a76e | 2011-07-06 01:22:26 +0000 | [diff] [blame] | 393 | def fobjc_runtime_has_terminate : Flag<"-fobjc-runtime-has-terminate">, |
| 394 | HelpText<"The target Objective-C runtime provides an objc_terminate entrypoint">; |
Daniel Dunbar | f643b9b | 2010-04-24 17:56:46 +0000 | [diff] [blame] | 395 | def fobjc_dispatch_method_EQ : Joined<"-fobjc-dispatch-method=">, |
| 396 | HelpText<"Objective-C dispatch method to use">; |
Ted Kremenek | c32647d | 2010-12-23 21:35:43 +0000 | [diff] [blame] | 397 | def fobjc_default_synthesize_properties : Flag<"-fobjc-default-synthesize-properties">, |
| 398 | HelpText<"enable the default synthesis of Objective-C properties">; |
John McCall | d1e40d5 | 2011-10-02 01:16:38 +0000 | [diff] [blame] | 399 | def fobjc_fragile_abi : Flag<"-fobjc-fragile-abi">, |
| 400 | HelpText<"Use Objective-C's fragile ABI">; |
Daniel Dunbar | 7674352 | 2009-11-29 02:39:08 +0000 | [diff] [blame] | 401 | def pic_level : Separate<"-pic-level">, |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 402 | HelpText<"Value for __PIC__">; |
Chandler Carruth | 5e219cf | 2012-04-08 16:40:35 +0000 | [diff] [blame] | 403 | def pie_level : Separate<"-pie-level">, |
| 404 | HelpText<"Value for __PIE__">; |
Douglas Gregor | fae3b2f | 2010-07-27 00:27:13 +0000 | [diff] [blame] | 405 | def fno_validate_pch : Flag<"-fno-validate-pch">, |
| 406 | HelpText<"Disable validation of precompiled headers">; |
Argyrios Kyrtzidis | b972858 | 2010-10-14 20:14:18 +0000 | [diff] [blame] | 407 | def dump_deserialized_pch_decls : Flag<"-dump-deserialized-decls">, |
| 408 | HelpText<"Dump declarations that are deserialized from PCH, for testing">; |
Argyrios Kyrtzidis | 3e78593 | 2010-10-14 20:14:25 +0000 | [diff] [blame] | 409 | def error_on_deserialized_pch_decl : Separate<"-error-on-deserialized-decl">, |
| 410 | HelpText<"Emit error if a specific declaration is deserialized from PCH, for testing">; |
Argyrios Kyrtzidis | 9a8cbc7 | 2011-10-28 22:54:24 +0000 | [diff] [blame] | 411 | def error_on_deserialized_pch_decl_EQ : Joined<"-error-on-deserialized-decl=">, |
| 412 | Alias<error_on_deserialized_pch_decl>; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 413 | def static_define : Flag<"-static-define">, |
| 414 | HelpText<"Should __STATIC__ be defined">; |
| 415 | def stack_protector : Separate<"-stack-protector">, |
| 416 | HelpText<"Enable stack protectors">; |
| 417 | def fvisibility : Separate<"-fvisibility">, |
| 418 | HelpText<"Default symbol visibility">; |
| 419 | def ftemplate_depth : Separate<"-ftemplate-depth">, |
| 420 | HelpText<"Maximum depth of recursive template instantiation">; |
Richard Smith | c18c423 | 2011-11-21 19:36:32 +0000 | [diff] [blame] | 421 | def fconstexpr_depth : Separate<"-fconstexpr-depth">, |
| 422 | HelpText<"Maximum depth of recursive constexpr function calls">; |
Chandler Carruth | 50465d1 | 2011-04-23 06:30:43 +0000 | [diff] [blame] | 423 | def fconst_strings : Flag<"-fconst-strings">, |
| 424 | HelpText<"Use a const qualified type for string literals in C and ObjC">; |
| 425 | def fno_const_strings : Flag<"-fno-const-strings">, |
| 426 | HelpText<"Don't use a const qualified type for string literals in C and ObjC">; |
Daniel Dunbar | fb937b8 | 2010-04-15 15:06:22 +0000 | [diff] [blame] | 427 | def fno_bitfield_type_align : Flag<"-fno-bitfield-type-align">, |
| 428 | HelpText<"Ignore bit-field types when aligning structures">; |
Peter Collingbourne | 207f4d8 | 2011-03-18 22:38:29 +0000 | [diff] [blame] | 429 | def ffake_address_space_map : Flag<"-ffake-address-space-map">, |
| 430 | HelpText<"Use a fake address space map; OpenCL testing purposes only">; |
John McCall | a5fc472 | 2011-04-09 22:50:59 +0000 | [diff] [blame] | 431 | def funknown_anytype : Flag<"-funknown-anytype">, |
| 432 | HelpText<"Enable parser support for the __unknown_anytype type; for testing purposes only">; |
John McCall | 48218c6 | 2011-07-13 17:56:40 +0000 | [diff] [blame] | 433 | def fdebugger_support : Flag<"-fdebugger-support">, |
| 434 | HelpText<"Enable special debugger support behavior">; |
Sean Callanan | 50a9a12 | 2012-02-04 01:29:37 +0000 | [diff] [blame] | 435 | def fdebugger_cast_result_to_id : Flag<"-fdebugger-cast-result-to-id">, |
| 436 | HelpText<"Enable casting unknown expression results to id">; |
Ted Kremenek | ebcb57a | 2012-03-06 20:05:56 +0000 | [diff] [blame] | 437 | def fdebugger_objc_literal : Flag<"-fdebugger-objc-literal">, |
| 438 | HelpText<"Enable special debugger support for objective-C subscripting and literals">; |
Chandler Carruth | 1cfe3c3 | 2011-04-23 09:27:53 +0000 | [diff] [blame] | 439 | def fdeprecated_macro : Flag<"-fdeprecated-macro">, |
Chandler Carruth | f8c247d | 2011-04-23 19:48:40 +0000 | [diff] [blame] | 440 | HelpText<"Defines the __DEPRECATED macro">; |
Chandler Carruth | 1cfe3c3 | 2011-04-23 09:27:53 +0000 | [diff] [blame] | 441 | def fno_deprecated_macro : Flag<"-fno-deprecated-macro">, |
Chandler Carruth | f8c247d | 2011-04-23 19:48:40 +0000 | [diff] [blame] | 442 | HelpText<"Undefines the __DEPRECATED macro">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 443 | |
| 444 | //===----------------------------------------------------------------------===// |
| 445 | // Header Search Options |
| 446 | //===----------------------------------------------------------------------===// |
| 447 | |
Daniel Dunbar | a268fc0 | 2011-10-11 18:20:10 +0000 | [diff] [blame] | 448 | def nostdsysteminc : Flag<"-nostdsysteminc">, |
| 449 | HelpText<"Disable standard system #include directories">; |
Douglas Gregor | b86b8dc | 2011-11-15 19:35:01 +0000 | [diff] [blame] | 450 | def fmodule_name : Joined<"-fmodule-name=">, |
| 451 | MetaVarName<"<name>">, |
| 452 | HelpText<"Specify the name of the module to build">; |
Douglas Gregor | 6e975c4 | 2011-09-13 23:15:45 +0000 | [diff] [blame] | 453 | def fdisable_module_hash : Flag<"-fdisable-module-hash">, |
| 454 | HelpText<"Disable the module hash">; |
Benjamin Kramer | 47adebe | 2011-09-22 21:41:16 +0000 | [diff] [blame] | 455 | def c_isystem : JoinedOrSeparate<"-c-isystem">, MetaVarName<"<directory>">, |
| 456 | HelpText<"Add directory to the C SYSTEM include search path">; |
Benjamin Kramer | 47adebe | 2011-09-22 21:41:16 +0000 | [diff] [blame] | 457 | def objc_isystem : JoinedOrSeparate<"-objc-isystem">, |
| 458 | MetaVarName<"<directory>">, |
| 459 | HelpText<"Add directory to the ObjC SYSTEM include search path">; |
| 460 | def objcxx_isystem : JoinedOrSeparate<"-objcxx-isystem">, |
| 461 | MetaVarName<"<directory>">, |
| 462 | HelpText<"Add directory to the ObjC++ SYSTEM include search path">; |
Chandler Carruth | ac2bc4d | 2011-11-05 08:30:29 +0000 | [diff] [blame] | 463 | def internal_isystem : JoinedOrSeparate<"-internal-isystem">, |
| 464 | MetaVarName<"<directory>">, |
| 465 | HelpText<"Add directory to the internal system include search path; these " |
| 466 | "are assumed to not be user-provided and are used to model system " |
| 467 | "and standard headers' paths.">; |
| 468 | def internal_externc_isystem : JoinedOrSeparate<"-internal-externc-isystem">, |
| 469 | MetaVarName<"<directory>">, |
| 470 | HelpText<"Add directory to the internal system include search path with " |
| 471 | "implicit extern \"C\" semantics; these are assumed to not be " |
| 472 | "user-provided and are used to model system and standard headers' " |
| 473 | "paths.">; |
Richard Smith | f122a13 | 2012-06-13 20:27:03 +0000 | [diff] [blame] | 474 | def isystem_prefix : JoinedOrSeparate<"-isystem-prefix">, |
| 475 | MetaVarName<"<prefix>">, |
| 476 | HelpText<"Treat all #include paths starting with <prefix> as including a " |
| 477 | "system header.">; |
| 478 | def ino_system_prefix : JoinedOrSeparate<"-ino-system-prefix">, |
| 479 | MetaVarName<"<prefix>">, |
| 480 | HelpText<"Treat all #include paths starting with <prefix> as not including a " |
| 481 | "system header.">; |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 482 | |
| 483 | //===----------------------------------------------------------------------===// |
| 484 | // Preprocessor Options |
| 485 | //===----------------------------------------------------------------------===// |
| 486 | |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 487 | def include_pth : Separate<"-include-pth">, MetaVarName<"<file>">, |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 488 | HelpText<"Include file before parsing">; |
Argyrios Kyrtzidis | b0f4b9a | 2011-03-09 17:21:42 +0000 | [diff] [blame] | 489 | def chain_include : Separate<"-chain-include">, MetaVarName<"<file>">, |
| 490 | HelpText<"Include and chain a header file after turning it into PCH">; |
Douglas Gregor | f4f6c9d | 2010-07-26 21:36:20 +0000 | [diff] [blame] | 491 | def preamble_bytes_EQ : Joined<"-preamble-bytes=">, |
Douglas Gregor | 3d398aa | 2010-07-26 16:29:14 +0000 | [diff] [blame] | 492 | HelpText<"Assume that the precompiled header is a precompiled preamble " |
| 493 | "covering the first N bytes of the main file">; |
Daniel Dunbar | b737fb1 | 2009-12-03 07:01:46 +0000 | [diff] [blame] | 494 | def token_cache : Separate<"-token-cache">, MetaVarName<"<path>">, |
Daniel Dunbar | 33a33d8 | 2009-11-24 00:54:16 +0000 | [diff] [blame] | 495 | HelpText<"Use specified token cache file">; |
Douglas Gregor | 94dc8f6 | 2010-03-19 16:15:56 +0000 | [diff] [blame] | 496 | def detailed_preprocessing_record : Flag<"-detailed-preprocessing-record">, |
| 497 | HelpText<"include a detailed record of preprocessing actions">; |
Peter Collingbourne | 61e0786 | 2010-12-04 01:50:45 +0000 | [diff] [blame] | 498 | |
| 499 | //===----------------------------------------------------------------------===// |
| 500 | // OpenCL Options |
| 501 | //===----------------------------------------------------------------------===// |
| 502 | |
| 503 | def cl_opt_disable : Flag<"-cl-opt-disable">, |
| 504 | HelpText<"OpenCL only. This option disables all optimizations. The default is optimizations are enabled.">; |
Peter Collingbourne | 0982136 | 2010-12-04 01:50:56 +0000 | [diff] [blame] | 505 | def cl_single_precision_constant : Flag<"-cl-single-precision-constant">, |
| 506 | HelpText<"OpenCL only. Treat double precision floating-point constant as single precision constant.">; |
Peter Collingbourne | 5d729a3 | 2010-12-04 01:51:05 +0000 | [diff] [blame] | 507 | def cl_finite_math_only : Flag<"-cl-finite-math-only">, |
| 508 | HelpText<"OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.">; |
Peter Collingbourne | 5f67e13 | 2010-12-04 01:51:14 +0000 | [diff] [blame] | 509 | def cl_unsafe_math_optimizations : Flag<"-cl-unsafe-math-optimizations">, |
| 510 | HelpText<"OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable">; |
Peter Collingbourne | f084082 | 2010-12-04 01:51:23 +0000 | [diff] [blame] | 511 | def cl_fast_relaxed_math : Flag<"-cl-fast-relaxed-math">, |
| 512 | HelpText<"OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__">; |
Peter Collingbourne | 4400cb8 | 2010-12-04 01:51:33 +0000 | [diff] [blame] | 513 | def cl_mad_enable : Flag<"-cl-mad-enable">, |
| 514 | HelpText<"OpenCL only. Enable less precise MAD instructions to be generated.">; |
Peter Collingbourne | 91252d1 | 2010-12-04 01:51:40 +0000 | [diff] [blame] | 515 | def cl_std_EQ : Joined<"-cl-std=">, |
| 516 | HelpText<"OpenCL language standard to compile for">; |
Peter Collingbourne | d51e43a | 2011-10-06 18:29:46 +0000 | [diff] [blame] | 517 | |
| 518 | //===----------------------------------------------------------------------===// |
| 519 | // CUDA Options |
| 520 | //===----------------------------------------------------------------------===// |
| 521 | |
| 522 | def fcuda_is_device : Flag<"-fcuda-is-device">, |
| 523 | HelpText<"Generate code for CUDA device">; |
James Molloy | bfd7a52 | 2012-05-01 14:57:16 +0000 | [diff] [blame] | 524 | |
| 525 | } // let Flags = [CC1Option] |