1 /* Compilation switch flag type definitions for GCC.
2 Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
3 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 Free Software Foundation, Inc.
6 This file is part of GCC.
8 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
10 Software Foundation; either version 3, or (at your option) any later
13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 You should have received a copy of the GNU General Public License
19 along with GCC; see the file COPYING3. If not see
20 <http://www.gnu.org/licenses/>. */
22 #ifndef GCC_FLAG_TYPES_H
23 #define GCC_FLAG_TYPES_H
27 NO_DEBUG
, /* Write no debug info. */
28 DBX_DEBUG
, /* Write BSD .stabs for DBX (using dbxout.c). */
29 SDB_DEBUG
, /* Write COFF for (old) SDB (using sdbout.c). */
30 DWARF2_DEBUG
, /* Write Dwarf v2 debug info (using dwarf2out.c). */
31 XCOFF_DEBUG
, /* Write IBM/Xcoff debug info (using dbxout.c). */
32 VMS_DEBUG
, /* Write VMS debug info (using vmsdbgout.c). */
33 VMS_AND_DWARF2_DEBUG
/* Write VMS debug info (using vmsdbgout.c).
34 and DWARF v2 debug info (using dwarf2out.c). */
39 DINFO_LEVEL_NONE
, /* Write no debugging info. */
40 DINFO_LEVEL_TERSE
, /* Write minimal info to support tracebacks only. */
41 DINFO_LEVEL_NORMAL
, /* Write info for all declarations (and line table). */
42 DINFO_LEVEL_VERBOSE
/* Write normal info plus #define/#undef info. */
45 /* A major contribution to object and executable size is debug
46 information size. A major contribution to debug information
47 size is struct descriptions replicated in several object files.
48 The following function determines whether or not debug information
49 should be generated for a given struct. The indirect parameter
50 indicates that the struct is being handled indirectly, via
51 a pointer. See opts.c for the implementation. */
55 DINFO_USAGE_DFN
, /* A struct definition. */
56 DINFO_USAGE_DIR_USE
, /* A direct use, such as the type of a variable. */
57 DINFO_USAGE_IND_USE
, /* An indirect use, such as through a pointer. */
58 DINFO_USAGE_NUM_ENUMS
/* The number of enumerators. */
61 /* Enumerate visibility settings. This is deliberately ordered from most
62 to least visibility. */
63 #ifndef SYMBOL_VISIBILITY_DEFINED
64 #define SYMBOL_VISIBILITY_DEFINED
65 enum symbol_visibility
74 struct visibility_flags
76 unsigned inpragma
: 1; /* True when in #pragma GCC visibility. */
77 unsigned inlines_hidden
: 1; /* True when -finlineshidden in effect. */
80 /* The algorithm used for the integrated register allocator (IRA). */
84 IRA_ALGORITHM_PRIORITY
87 /* The regions used for the integrated register allocator (IRA). */
95 /* The options for excess precision. */
98 EXCESS_PRECISION_DEFAULT
,
99 EXCESS_PRECISION_FAST
,
100 EXCESS_PRECISION_STANDARD
103 /* Selection of the graph form. */
104 enum graph_dump_types
110 /* Type of stack check. */
111 enum stack_check_type
113 /* Do not check the stack. */
116 /* Check the stack generically, i.e. assume no specific support
117 from the target configuration files. */
120 /* Check the stack and rely on the target configuration files to
121 check the static frame of functions, i.e. use the generic
122 mechanism only for dynamic stack allocations. */
123 STATIC_BUILTIN_STACK_CHECK
,
125 /* Check the stack and entirely rely on the target configuration
126 files, i.e. do not use the generic mechanism at all. */
127 FULL_BUILTIN_STACK_CHECK
130 /* Names for the different levels of -Wstrict-overflow=N. The numeric
131 values here correspond to N. */
133 enum warn_strict_overflow_code
135 /* Overflow warning that should be issued with -Wall: a questionable
136 construct that is easy to avoid even when using macros. Example:
137 folding (x + CONSTANT > x) to 1. */
138 WARN_STRICT_OVERFLOW_ALL
= 1,
139 /* Overflow warning about folding a comparison to a constant because
140 of undefined signed overflow, other than cases covered by
141 WARN_STRICT_OVERFLOW_ALL. Example: folding (abs (x) >= 0) to 1
142 (this is false when x == INT_MIN). */
143 WARN_STRICT_OVERFLOW_CONDITIONAL
= 2,
144 /* Overflow warning about changes to comparisons other than folding
145 them to a constant. Example: folding (x + 1 > 1) to (x > 0). */
146 WARN_STRICT_OVERFLOW_COMPARISON
= 3,
147 /* Overflow warnings not covered by the above cases. Example:
148 folding ((x * 10) / 5) to (x * 2). */
149 WARN_STRICT_OVERFLOW_MISC
= 4,
150 /* Overflow warnings about reducing magnitude of constants in
151 comparison. Example: folding (x + 2 > y) to (x + 1 >= y). */
152 WARN_STRICT_OVERFLOW_MAGNITUDE
= 5
155 /* Floating-point contraction mode. */
156 enum fp_contract_mode
{
162 #endif /* ! GCC_FLAG_TYPES_H */