GCC Middle and Back End API Reference
Main Page
Namespaces
Data Structures
Files
File List
Globals
flags.h
Go to the documentation of this file.
1
/* Compilation switch flag definitions for GCC.
2
Copyright (C) 1987-2013 Free Software Foundation, Inc.
3
4
This file is part of GCC.
5
6
GCC is free software; you can redistribute it and/or modify it under
7
the terms of the GNU General Public License as published by the Free
8
Software Foundation; either version 3, or (at your option) any later
9
version.
10
11
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12
WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with GCC; see the file COPYING3. If not see
18
<http://www.gnu.org/licenses/>. */
19
20
#ifndef GCC_FLAGS_H
21
#define GCC_FLAGS_H
22
23
#include "
flag-types.h
"
24
#include "options.h"
25
26
#if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS) && !defined(IN_RTS)
27
28
/* Names of debug_info_type, for error messages. */
29
extern
const
char
*
const
debug_type_names
[];
30
31
extern
void
strip_off_ending
(
char
*,
int
);
32
extern
int
base_of_path
(
const
char
*
path
,
const
char
**base_out);
33
34
/* Return true iff flags are set as if -ffast-math. */
35
extern
bool
fast_math_flags_set_p
(
const
struct
gcc_options *);
36
extern
bool
fast_math_flags_struct_set_p
(
struct
cl_optimization *);
37
38
39
/* Now the symbols that are set with `-f' switches. */
40
41
/* True if printing into -fdump-final-insns= dump. */
42
43
extern
bool
final_insns_dump_p
;
44
45
46
/* Other basic status info about current function. */
47
48
/* Target-dependent global state. */
49
struct
target_flag_state
{
50
/* Values of the -falign-* flags: how much to align labels in code.
51
0 means `use default', 1 means `don't align'.
52
For each variable, there is an _log variant which is the power
53
of two not less than the variable, for .align output. */
54
int
x_align_loops_log
;
55
int
x_align_loops_max_skip
;
56
int
x_align_jumps_log
;
57
int
x_align_jumps_max_skip
;
58
int
x_align_labels_log
;
59
int
x_align_labels_max_skip
;
60
int
x_align_functions_log
;
61
62
/* The excess precision currently in effect. */
63
enum
excess_precision
x_flag_excess_precision
;
64
};
65
66
extern
struct
target_flag_state
default_target_flag_state
;
67
#if SWITCHABLE_TARGET
68
extern
struct
target_flag_state
*
this_target_flag_state
;
69
#else
70
#define this_target_flag_state (&default_target_flag_state)
71
#endif
72
73
#define align_loops_log \
74
(this_target_flag_state->x_align_loops_log)
75
#define align_loops_max_skip \
76
(this_target_flag_state->x_align_loops_max_skip)
77
#define align_jumps_log \
78
(this_target_flag_state->x_align_jumps_log)
79
#define align_jumps_max_skip \
80
(this_target_flag_state->x_align_jumps_max_skip)
81
#define align_labels_log \
82
(this_target_flag_state->x_align_labels_log)
83
#define align_labels_max_skip \
84
(this_target_flag_state->x_align_labels_max_skip)
85
#define align_functions_log \
86
(this_target_flag_state->x_align_functions_log)
87
#define flag_excess_precision \
88
(this_target_flag_state->x_flag_excess_precision)
89
90
/* Returns TRUE if generated code should match ABI version N or
91
greater is in use. */
92
93
#define abi_version_at_least(N) \
94
(flag_abi_version == 0 || flag_abi_version >= (N))
95
96
/* Whether to emit an overflow warning whose code is C. */
97
#define issue_strict_overflow_warning(c) (warn_strict_overflow >= (int) (c))
98
99
#endif
100
101
#endif
/* ! GCC_FLAGS_H */
gcc
flags.h
Generated by
1.8.1.1