50 lines
1.9 KiB
Text
50 lines
1.9 KiB
Text
Index: gcc/opts.c
|
|
--- gcc/opts.c.orig
|
|
+++ gcc/opts.c
|
|
@@ -50,6 +50,9 @@ const char *const debug_type_names[] =
|
|
((strncmp (prefix, string, sizeof prefix - 1) == 0) \
|
|
? ((string += sizeof prefix - 1), 1) : 0)
|
|
|
|
+int warn_stack_larger_than;
|
|
+HOST_WIDE_INT stack_larger_than_size;
|
|
+
|
|
void
|
|
set_struct_debug_option (struct gcc_options *opts, location_t loc,
|
|
const char *spec)
|
|
@@ -501,7 +504,6 @@ static const struct default_options default_options_ta
|
|
#ifdef INSN_SCHEDULING
|
|
{ OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 },
|
|
#endif
|
|
- { OPT_LEVELS_2_PLUS, OPT_fstrict_aliasing, NULL, 1 },
|
|
{ OPT_LEVELS_2_PLUS, OPT_fstore_merging, NULL, 1 },
|
|
{ OPT_LEVELS_2_PLUS, OPT_fthread_jumps, NULL, 1 },
|
|
{ OPT_LEVELS_2_PLUS, OPT_ftree_pre, NULL, 1 },
|
|
@@ -536,6 +538,7 @@ static const struct default_options default_options_ta
|
|
{ OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
|
|
{ OPT_LEVELS_3_PLUS, OPT_fsplit_loops, NULL, 1 },
|
|
{ OPT_LEVELS_3_PLUS, OPT_fsplit_paths, NULL, 1 },
|
|
+ { OPT_LEVELS_3_PLUS, OPT_fstrict_aliasing, NULL, 1 },
|
|
{ OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribution, NULL, 1 },
|
|
{ OPT_LEVELS_3_PLUS, OPT_ftree_loop_vectorize, NULL, 1 },
|
|
{ OPT_LEVELS_3_PLUS, OPT_ftree_partial_pre, NULL, 1 },
|
|
@@ -969,6 +972,8 @@ finish_options (struct gcc_options *opts, struct gcc_o
|
|
opts->x_flag_pic = 0;
|
|
if (opts->x_flag_pic && !opts->x_flag_pie)
|
|
opts->x_flag_shlib = 1;
|
|
+ if (opts->x_profile_flag)
|
|
+ opts->x_flag_pie = 0;
|
|
opts->x_flag_opts_finished = true;
|
|
}
|
|
|
|
@@ -2463,6 +2468,11 @@ common_handle_option (struct gcc_options *opts,
|
|
case OPT_Wfatal_errors:
|
|
dc->fatal_errors = value;
|
|
break;
|
|
+
|
|
+ case OPT_Wstack_larger_than_:
|
|
+ stack_larger_than_size = value;
|
|
+ warn_stack_larger_than = stack_larger_than_size != -1;
|
|
+ break;
|
|
|
|
case OPT_Wstack_usage_:
|
|
opts->x_flag_stack_usage_info = value != -1;
|