summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/flags.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/flags.h')
-rw-r--r--contrib/gcc/flags.h43
1 files changed, 39 insertions, 4 deletions
diff --git a/contrib/gcc/flags.h b/contrib/gcc/flags.h
index 226fb60..1c1fd0d 100644
--- a/contrib/gcc/flags.h
+++ b/contrib/gcc/flags.h
@@ -23,6 +23,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#ifndef GCC_FLAGS_H
#define GCC_FLAGS_H
+#include "coretypes.h"
#include "options.h"
enum debug_info_type
@@ -54,6 +55,25 @@ enum debug_info_level
/* Specify how much debugging info to generate. */
extern enum debug_info_level debug_info_level;
+/* A major contribution to object and executable size is debug
+ information size. A major contribution to debug information
+ size is struct descriptions replicated in several object files.
+ The following function determines whether or not debug information
+ should be generated for a given struct. The indirect parameter
+ indicates that the struct is being handled indirectly, via
+ a pointer. See opts.c for the implementation. */
+
+enum debug_info_usage
+{
+ DINFO_USAGE_DFN, /* A struct definition. */
+ DINFO_USAGE_DIR_USE, /* A direct use, such as the type of a variable. */
+ DINFO_USAGE_IND_USE, /* An indirect use, such as through a pointer. */
+ DINFO_USAGE_NUM_ENUMS /* The number of enumerators. */
+};
+
+extern bool should_emit_struct_debug (tree type_decl, enum debug_info_usage);
+extern void set_struct_debug_option (const char *value);
+
/* Nonzero means use GNU-only extensions in the generated symbolic
debugging information. */
extern bool use_gnu_debug_info_extensions;
@@ -102,6 +122,15 @@ extern bool extra_warnings;
extern void set_Wunused (int setting);
+/* Used to set the level of -Wstrict-aliasing, when no level is specified.
+ The external way to set the default level is to use
+ -Wstrict-aliasing=level.
+ ONOFF is assumed to take value 1 when -Wstrict-aliasing is specified,
+ and 0 otherwise. After calling this function, wstrict_aliasing will be
+ set to the default value of -Wstrict_aliasing=level. */
+
+extern void set_warn_strict_aliasing (int onoff);
+
/* Nonzero means warn about any objects definitions whose size is larger
than N bytes. Also want about function definitions whose returned
values are larger than N bytes. The value N is in `larger_than_size'. */
@@ -109,6 +138,12 @@ extern void set_Wunused (int setting);
extern bool warn_larger_than;
extern HOST_WIDE_INT larger_than_size;
+/* Nonzero means warn about any function whose frame size is larger
+ than N bytes. */
+
+extern bool warn_frame_larger_than;
+extern HOST_WIDE_INT frame_larger_than_size;
+
/* Nonzero means warn about constructs which might not be strict
aliasing safe. */
@@ -226,10 +261,6 @@ extern int align_labels_log;
extern int align_labels_max_skip;
extern int align_functions_log;
-/* Like align_functions_log above, but used by front-ends to force the
- minimum function alignment. Zero means no alignment is forced. */
-extern int force_align_functions_log;
-
/* Nonzero if we dump in VCG format, not plain text. */
extern int dump_for_graph;
@@ -267,6 +298,10 @@ extern const char *flag_random_seed;
#define abi_version_at_least(N) \
(flag_abi_version == 0 || flag_abi_version >= (N))
+/* Return whether the function should be excluded from
+ instrumentation. */
+extern bool flag_instrument_functions_exclude_p (tree fndecl);
+
/* True if the given mode has a NaN representation and the treatment of
NaN operands is important. Certain optimizations, such as folding
x * 0 into 0, are not correct for NaN operands, and are normally
OpenPOWER on IntegriCloud