Mercurial > hg > CbC > CbC_gcc
comparison gcc/flag-types.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | 561a7518be6b |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Compilation switch flag type definitions for GCC. | 1 /* Compilation switch flag type definitions for GCC. |
2 Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, | 2 Copyright (C) 1987-2017 Free Software Foundation, Inc. |
3 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 | |
4 Free Software Foundation, Inc. | |
5 | 3 |
6 This file is part of GCC. | 4 This file is part of GCC. |
7 | 5 |
8 GCC is free software; you can redistribute it and/or modify it under | 6 GCC is free software; you can redistribute it and/or modify it under |
9 the terms of the GNU General Public License as published by the Free | 7 the terms of the GNU General Public License as published by the Free |
91 DINFO_STRUCT_FILE_SYS, /* Also debug structs defined in system | 89 DINFO_STRUCT_FILE_SYS, /* Also debug structs defined in system |
92 header files. */ | 90 header files. */ |
93 DINFO_STRUCT_FILE_ANY /* Debug structs defined in all files. */ | 91 DINFO_STRUCT_FILE_ANY /* Debug structs defined in all files. */ |
94 }; | 92 }; |
95 | 93 |
96 /* Enumerate visibility settings. This is deliberately ordered from most | 94 /* Balance between GNAT encodings and standard DWARF to emit. */ |
97 to least visibility. */ | 95 |
98 #ifndef SYMBOL_VISIBILITY_DEFINED | 96 enum dwarf_gnat_encodings |
99 #define SYMBOL_VISIBILITY_DEFINED | 97 { |
100 enum symbol_visibility | 98 DWARF_GNAT_ENCODINGS_ALL = 0, /* Emit all GNAT encodings, then emit as |
101 { | 99 much standard DWARF as possible so it |
102 VISIBILITY_DEFAULT, | 100 does not conflict with GNAT |
103 VISIBILITY_PROTECTED, | 101 encodings. */ |
104 VISIBILITY_HIDDEN, | 102 DWARF_GNAT_ENCODINGS_GDB = 1, /* Emit as much standard DWARF as possible |
105 VISIBILITY_INTERNAL | 103 as long as GDB handles them. Emit GNAT |
106 }; | 104 encodings for the rest. */ |
107 #endif | 105 DWARF_GNAT_ENCODINGS_MINIMAL = 2 /* Emit all the standard DWARF we can. |
106 Emit GNAT encodings for the rest. */ | |
107 }; | |
108 | |
109 /* Enumerate Objective-c instance variable visibility settings. */ | |
110 | |
111 enum ivar_visibility | |
112 { | |
113 IVAR_VISIBILITY_PRIVATE, | |
114 IVAR_VISIBILITY_PROTECTED, | |
115 IVAR_VISIBILITY_PUBLIC, | |
116 IVAR_VISIBILITY_PACKAGE | |
117 }; | |
118 | |
119 /* The stack reuse level. */ | |
120 enum stack_reuse_level | |
121 { | |
122 SR_NONE, | |
123 SR_NAMED_VARS, | |
124 SR_ALL | |
125 }; | |
126 | |
127 /* The algorithm used for basic block reordering. */ | |
128 enum reorder_blocks_algorithm | |
129 { | |
130 REORDER_BLOCKS_ALGORITHM_SIMPLE, | |
131 REORDER_BLOCKS_ALGORITHM_STC | |
132 }; | |
108 | 133 |
109 /* The algorithm used for the integrated register allocator (IRA). */ | 134 /* The algorithm used for the integrated register allocator (IRA). */ |
110 enum ira_algorithm | 135 enum ira_algorithm |
111 { | 136 { |
112 IRA_ALGORITHM_CB, | 137 IRA_ALGORITHM_CB, |
116 /* The regions used for the integrated register allocator (IRA). */ | 141 /* The regions used for the integrated register allocator (IRA). */ |
117 enum ira_region | 142 enum ira_region |
118 { | 143 { |
119 IRA_REGION_ONE, | 144 IRA_REGION_ONE, |
120 IRA_REGION_ALL, | 145 IRA_REGION_ALL, |
121 IRA_REGION_MIXED | 146 IRA_REGION_MIXED, |
147 /* This value means that there were no options -fira-region on the | |
148 command line and that we should choose a value depending on the | |
149 used -O option. */ | |
150 IRA_REGION_AUTODETECT | |
122 }; | 151 }; |
123 | 152 |
124 /* The options for excess precision. */ | 153 /* The options for excess precision. */ |
125 enum excess_precision | 154 enum excess_precision |
126 { | 155 { |
127 EXCESS_PRECISION_DEFAULT, | 156 EXCESS_PRECISION_DEFAULT, |
128 EXCESS_PRECISION_FAST, | 157 EXCESS_PRECISION_FAST, |
129 EXCESS_PRECISION_STANDARD | 158 EXCESS_PRECISION_STANDARD |
130 }; | 159 }; |
131 | 160 |
132 /* Selection of the graph form. */ | 161 /* The options for which values of FLT_EVAL_METHOD are permissible. */ |
133 enum graph_dump_types | 162 enum permitted_flt_eval_methods |
134 { | 163 { |
135 no_graph = 0, | 164 PERMITTED_FLT_EVAL_METHODS_DEFAULT, |
136 vcg | 165 PERMITTED_FLT_EVAL_METHODS_TS_18661, |
137 }; | 166 PERMITTED_FLT_EVAL_METHODS_C11 |
138 | 167 }; |
139 /* Type of stack check. */ | 168 |
169 /* Type of stack check. | |
170 | |
171 Stack checking is designed to detect infinite recursion and stack | |
172 overflows for Ada programs. Furthermore stack checking tries to ensure | |
173 in that scenario that enough stack space is left to run a signal handler. | |
174 | |
175 -fstack-check= does not prevent stack-clash style attacks. For that | |
176 you want -fstack-clash-protection. */ | |
140 enum stack_check_type | 177 enum stack_check_type |
141 { | 178 { |
142 /* Do not check the stack. */ | 179 /* Do not check the stack. */ |
143 NO_STACK_CHECK = 0, | 180 NO_STACK_CHECK = 0, |
144 | 181 |
152 STATIC_BUILTIN_STACK_CHECK, | 189 STATIC_BUILTIN_STACK_CHECK, |
153 | 190 |
154 /* Check the stack and entirely rely on the target configuration | 191 /* Check the stack and entirely rely on the target configuration |
155 files, i.e. do not use the generic mechanism at all. */ | 192 files, i.e. do not use the generic mechanism at all. */ |
156 FULL_BUILTIN_STACK_CHECK | 193 FULL_BUILTIN_STACK_CHECK |
157 }; | |
158 | |
159 /* Names for the different levels of -Wstrict-overflow=N. The numeric | |
160 values here correspond to N. */ | |
161 | |
162 enum warn_strict_overflow_code | |
163 { | |
164 /* Overflow warning that should be issued with -Wall: a questionable | |
165 construct that is easy to avoid even when using macros. Example: | |
166 folding (x + CONSTANT > x) to 1. */ | |
167 WARN_STRICT_OVERFLOW_ALL = 1, | |
168 /* Overflow warning about folding a comparison to a constant because | |
169 of undefined signed overflow, other than cases covered by | |
170 WARN_STRICT_OVERFLOW_ALL. Example: folding (abs (x) >= 0) to 1 | |
171 (this is false when x == INT_MIN). */ | |
172 WARN_STRICT_OVERFLOW_CONDITIONAL = 2, | |
173 /* Overflow warning about changes to comparisons other than folding | |
174 them to a constant. Example: folding (x + 1 > 1) to (x > 0). */ | |
175 WARN_STRICT_OVERFLOW_COMPARISON = 3, | |
176 /* Overflow warnings not covered by the above cases. Example: | |
177 folding ((x * 10) / 5) to (x * 2). */ | |
178 WARN_STRICT_OVERFLOW_MISC = 4, | |
179 /* Overflow warnings about reducing magnitude of constants in | |
180 comparison. Example: folding (x + 2 > y) to (x + 1 >= y). */ | |
181 WARN_STRICT_OVERFLOW_MAGNITUDE = 5 | |
182 }; | 194 }; |
183 | 195 |
184 /* Floating-point contraction mode. */ | 196 /* Floating-point contraction mode. */ |
185 enum fp_contract_mode { | 197 enum fp_contract_mode { |
186 FP_CONTRACT_OFF = 0, | 198 FP_CONTRACT_OFF = 0, |
187 FP_CONTRACT_ON = 1, | 199 FP_CONTRACT_ON = 1, |
188 FP_CONTRACT_FAST = 2 | 200 FP_CONTRACT_FAST = 2 |
189 }; | 201 }; |
190 | 202 |
191 /* Vectorizer verbosity levels. */ | 203 /* Scalar storage order kind. */ |
192 enum vect_verbosity_levels { | 204 enum scalar_storage_order_kind { |
193 REPORT_NONE, | 205 SSO_NATIVE = 0, |
194 REPORT_VECTORIZED_LOCATIONS, | 206 SSO_BIG_ENDIAN, |
195 REPORT_UNVECTORIZED_LOCATIONS, | 207 SSO_LITTLE_ENDIAN |
196 REPORT_COST, | 208 }; |
197 REPORT_ALIGNMENT, | 209 |
198 REPORT_DR_DETAILS, | 210 /* Vectorizer cost-model. */ |
199 REPORT_BAD_FORM_LOOPS, | 211 enum vect_cost_model { |
200 REPORT_OUTER_LOOPS, | 212 VECT_COST_MODEL_UNLIMITED = 0, |
201 REPORT_SLP, | 213 VECT_COST_MODEL_CHEAP = 1, |
202 REPORT_DETAILS, | 214 VECT_COST_MODEL_DYNAMIC = 2, |
203 /* New verbosity levels should be added before this one. */ | 215 VECT_COST_MODEL_DEFAULT = 3 |
204 MAX_VERBOSITY_LEVEL | 216 }; |
205 }; | 217 |
206 | 218 /* Different instrumentation modes. */ |
219 enum sanitize_code { | |
220 /* AddressSanitizer. */ | |
221 SANITIZE_ADDRESS = 1UL << 0, | |
222 SANITIZE_USER_ADDRESS = 1UL << 1, | |
223 SANITIZE_KERNEL_ADDRESS = 1UL << 2, | |
224 /* ThreadSanitizer. */ | |
225 SANITIZE_THREAD = 1UL << 3, | |
226 /* LeakSanitizer. */ | |
227 SANITIZE_LEAK = 1UL << 4, | |
228 /* UndefinedBehaviorSanitizer. */ | |
229 SANITIZE_SHIFT_BASE = 1UL << 5, | |
230 SANITIZE_SHIFT_EXPONENT = 1UL << 6, | |
231 SANITIZE_DIVIDE = 1UL << 7, | |
232 SANITIZE_UNREACHABLE = 1UL << 8, | |
233 SANITIZE_VLA = 1UL << 9, | |
234 SANITIZE_NULL = 1UL << 10, | |
235 SANITIZE_RETURN = 1UL << 11, | |
236 SANITIZE_SI_OVERFLOW = 1UL << 12, | |
237 SANITIZE_BOOL = 1UL << 13, | |
238 SANITIZE_ENUM = 1UL << 14, | |
239 SANITIZE_FLOAT_DIVIDE = 1UL << 15, | |
240 SANITIZE_FLOAT_CAST = 1UL << 16, | |
241 SANITIZE_BOUNDS = 1UL << 17, | |
242 SANITIZE_ALIGNMENT = 1UL << 18, | |
243 SANITIZE_NONNULL_ATTRIBUTE = 1UL << 19, | |
244 SANITIZE_RETURNS_NONNULL_ATTRIBUTE = 1UL << 20, | |
245 SANITIZE_OBJECT_SIZE = 1UL << 21, | |
246 SANITIZE_VPTR = 1UL << 22, | |
247 SANITIZE_BOUNDS_STRICT = 1UL << 23, | |
248 SANITIZE_POINTER_OVERFLOW = 1UL << 24, | |
249 SANITIZE_BUILTIN = 1UL << 25, | |
250 SANITIZE_SHIFT = SANITIZE_SHIFT_BASE | SANITIZE_SHIFT_EXPONENT, | |
251 SANITIZE_UNDEFINED = SANITIZE_SHIFT | SANITIZE_DIVIDE | SANITIZE_UNREACHABLE | |
252 | SANITIZE_VLA | SANITIZE_NULL | SANITIZE_RETURN | |
253 | SANITIZE_SI_OVERFLOW | SANITIZE_BOOL | SANITIZE_ENUM | |
254 | SANITIZE_BOUNDS | SANITIZE_ALIGNMENT | |
255 | SANITIZE_NONNULL_ATTRIBUTE | |
256 | SANITIZE_RETURNS_NONNULL_ATTRIBUTE | |
257 | SANITIZE_OBJECT_SIZE | SANITIZE_VPTR | |
258 | SANITIZE_POINTER_OVERFLOW | SANITIZE_BUILTIN, | |
259 SANITIZE_UNDEFINED_NONDEFAULT = SANITIZE_FLOAT_DIVIDE | SANITIZE_FLOAT_CAST | |
260 | SANITIZE_BOUNDS_STRICT | |
261 }; | |
262 | |
263 /* Different trace modes. */ | |
264 enum sanitize_coverage_code { | |
265 /* Trace PC. */ | |
266 SANITIZE_COV_TRACE_PC = 1 << 0, | |
267 /* Trace Comparison. */ | |
268 SANITIZE_COV_TRACE_CMP = 1 << 1 | |
269 }; | |
270 | |
271 /* flag_vtable_verify initialization levels. */ | |
272 enum vtv_priority { | |
273 VTV_NO_PRIORITY = 0, /* i.E. Do NOT do vtable verification. */ | |
274 VTV_STANDARD_PRIORITY = 1, | |
275 VTV_PREINIT_PRIORITY = 2 | |
276 }; | |
277 | |
278 /* flag_lto_partition initialization values. */ | |
279 enum lto_partition_model { | |
280 LTO_PARTITION_NONE = 0, | |
281 LTO_PARTITION_ONE = 1, | |
282 LTO_PARTITION_BALANCED = 2, | |
283 LTO_PARTITION_1TO1 = 3, | |
284 LTO_PARTITION_MAX = 4 | |
285 }; | |
286 | |
287 /* flag_lto_linker_output initialization values. */ | |
288 enum lto_linker_output { | |
289 LTO_LINKER_OUTPUT_UNKNOWN, | |
290 LTO_LINKER_OUTPUT_REL, | |
291 LTO_LINKER_OUTPUT_DYN, | |
292 LTO_LINKER_OUTPUT_PIE, | |
293 LTO_LINKER_OUTPUT_EXEC | |
294 }; | |
295 | |
296 /* gfortran -finit-real= values. */ | |
297 | |
298 enum gfc_init_local_real | |
299 { | |
300 GFC_INIT_REAL_OFF = 0, | |
301 GFC_INIT_REAL_ZERO, | |
302 GFC_INIT_REAL_NAN, | |
303 GFC_INIT_REAL_SNAN, | |
304 GFC_INIT_REAL_INF, | |
305 GFC_INIT_REAL_NEG_INF | |
306 }; | |
307 | |
308 /* gfortran -fcoarray= values. */ | |
309 | |
310 enum gfc_fcoarray | |
311 { | |
312 GFC_FCOARRAY_NONE = 0, | |
313 GFC_FCOARRAY_SINGLE, | |
314 GFC_FCOARRAY_LIB | |
315 }; | |
316 | |
317 | |
318 /* gfortran -fconvert= values; used for unformatted I/O. | |
319 Keep in sync with GFC_CONVERT_* in gcc/fortran/libgfortran.h. */ | |
320 enum gfc_convert | |
321 { | |
322 GFC_FLAG_CONVERT_NATIVE = 0, | |
323 GFC_FLAG_CONVERT_SWAP, | |
324 GFC_FLAG_CONVERT_BIG, | |
325 GFC_FLAG_CONVERT_LITTLE | |
326 }; | |
327 | |
328 | |
329 /* Control-Flow Protection values. */ | |
330 enum cf_protection_level | |
331 { | |
332 CF_NONE = 0, | |
333 CF_BRANCH = 1 << 0, | |
334 CF_RETURN = 1 << 1, | |
335 CF_FULL = CF_BRANCH | CF_RETURN, | |
336 CF_SET = 1 << 2 | |
337 }; | |
207 #endif /* ! GCC_FLAG_TYPES_H */ | 338 #endif /* ! GCC_FLAG_TYPES_H */ |