diff options
author | Martin Liska <mliska@suse.cz> | 2021-10-14 14:57:18 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-10-21 15:20:09 +0200 |
commit | b4702276615ff8d43bc910e7a54fdd850ad8d461 (patch) | |
tree | 755b63565fd478c74216b8af60e208ed96220740 /gcc/toplev.c | |
parent | 701ee067807b80957c65bd7ff94b6099a27181de (diff) | |
download | gcc-b4702276615ff8d43bc910e7a54fdd850ad8d461.zip gcc-b4702276615ff8d43bc910e7a54fdd850ad8d461.tar.gz gcc-b4702276615ff8d43bc910e7a54fdd850ad8d461.tar.bz2 |
options: Fix variable tracking option processing.
PR debug/102585
PR bootstrap/102766
gcc/ChangeLog:
* opts.c (finish_options): Process flag_var_tracking* options
here as they can be adjusted by optimize attribute.
Process also flag_syntax_only and flag_gtoggle.
* toplev.c (process_options): Remove it here.
* common.opt: Make debug_nonbind_markers_p as PerFunction
attribute as it depends on optimization level.
gcc/testsuite/ChangeLog:
* gcc.dg/pr102585.c: New test.
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 47 |
1 files changed, 1 insertions, 46 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 67fb716..e91f083 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1375,25 +1375,6 @@ process_options (bool no_backend) } } - if (flag_syntax_only) - { - write_symbols = NO_DEBUG; - profile_flag = 0; - } - - if (flag_gtoggle) - { - if (debug_info_level == DINFO_LEVEL_NONE) - { - debug_info_level = DINFO_LEVEL_NORMAL; - - if (write_symbols == NO_DEBUG) - write_symbols = PREFERRED_DEBUGGING_TYPE; - } - else - debug_info_level = DINFO_LEVEL_NONE; - } - /* CTF is supported for only C at this time. */ if (!lang_GNU_C () && ctf_debug_info_level > CTFINFO_LEVEL_NONE) @@ -1496,6 +1477,7 @@ process_options (bool no_backend) } flag_var_tracking = 0; flag_var_tracking_uninit = 0; + flag_var_tracking_assignments = 0; } /* The debug hooks are used to implement -fdump-go-spec because it @@ -1504,33 +1486,6 @@ process_options (bool no_backend) if (flag_dump_go_spec != NULL) debug_hooks = dump_go_spec_init (flag_dump_go_spec, debug_hooks); - /* One could use EnabledBy, but it would lead to a circular dependency. */ - if (!OPTION_SET_P (flag_var_tracking_uninit)) - flag_var_tracking_uninit = flag_var_tracking; - - if (!OPTION_SET_P (flag_var_tracking_assignments)) - flag_var_tracking_assignments - = (flag_var_tracking - && !(flag_selective_scheduling || flag_selective_scheduling2)); - - if (flag_var_tracking_assignments_toggle) - flag_var_tracking_assignments = !flag_var_tracking_assignments; - - if (flag_var_tracking_assignments && !flag_var_tracking) - flag_var_tracking = flag_var_tracking_assignments = -1; - - if (flag_var_tracking_assignments - && (flag_selective_scheduling || flag_selective_scheduling2)) - warning_at (UNKNOWN_LOCATION, 0, - "var-tracking-assignments changes selective scheduling"); - - if (!OPTION_SET_P (debug_nonbind_markers_p)) - debug_nonbind_markers_p - = (optimize - && debug_info_level >= DINFO_LEVEL_NORMAL - && dwarf_debuginfo_p () - && !(flag_selective_scheduling || flag_selective_scheduling2)); - if (!OPTION_SET_P (dwarf2out_as_loc_support)) dwarf2out_as_loc_support = dwarf2out_default_as_loc_support (); if (!OPTION_SET_P (dwarf2out_as_locview_support)) |