diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2025-09-02 15:58:26 -0700 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2025-09-02 15:58:26 -0700 |
commit | 071b4126c613881f4cb25b4e5c39032964827f88 (patch) | |
tree | 7ed805786566918630d1d617b1ed8f7310f5fd8e /gcc/opts.cc | |
parent | 845d23f3ea08ba873197c275a8857eee7edad996 (diff) | |
parent | caa1c2f42691d68af4d894a5c3e700ecd2dba080 (diff) | |
download | gcc-devel/gfortran-test.zip gcc-devel/gfortran-test.tar.gz gcc-devel/gfortran-test.tar.bz2 |
Merge branch 'master' into gfortran-testdevel/gfortran-test
Diffstat (limited to 'gcc/opts.cc')
-rw-r--r-- | gcc/opts.cc | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/gcc/opts.cc b/gcc/opts.cc index c21e66b..3ab993a 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -993,7 +993,8 @@ vec<const char *> help_option_arguments; /* Return the string name describing a sanitizer argument which has been provided on the command line and has set this particular flag. */ const char * -find_sanitizer_argument (struct gcc_options *opts, unsigned int flags) +find_sanitizer_argument (struct gcc_options *opts, + sanitize_code_type flags) { for (int i = 0; sanitizer_opts[i].name != NULL; ++i) { @@ -1027,10 +1028,11 @@ find_sanitizer_argument (struct gcc_options *opts, unsigned int flags) set these flags. */ static void report_conflicting_sanitizer_options (struct gcc_options *opts, location_t loc, - unsigned int left, unsigned int right) + sanitize_code_type left, + sanitize_code_type right) { - unsigned int left_seen = (opts->x_flag_sanitize & left); - unsigned int right_seen = (opts->x_flag_sanitize & right); + sanitize_code_type left_seen = (opts->x_flag_sanitize & left); + sanitize_code_type right_seen = (opts->x_flag_sanitize & right); if (left_seen && right_seen) { const char* left_arg = find_sanitizer_argument (opts, left_seen); @@ -2168,9 +2170,9 @@ const struct sanitizer_opts_s sanitizer_opts[] = SANITIZER_OPT (pointer-overflow, SANITIZE_POINTER_OVERFLOW, true, true), SANITIZER_OPT (builtin, SANITIZE_BUILTIN, true, true), SANITIZER_OPT (shadow-call-stack, SANITIZE_SHADOW_CALL_STACK, false, false), - SANITIZER_OPT (all, ~0U, true, true), + SANITIZER_OPT (all, ~sanitize_code_type (0), true, true), #undef SANITIZER_OPT - { NULL, 0U, 0UL, false, false } + { NULL, sanitize_code_type (0), 0UL, false, false } }; /* -fzero-call-used-regs= suboptions. */ @@ -2241,7 +2243,7 @@ get_closest_sanitizer_option (const string_fragment &arg, { /* -fsanitize=all is not valid, so don't offer it. */ if (code == OPT_fsanitize_ - && opts[i].flag == ~0U + && opts[i].flag == ~sanitize_code_type (0) && value) continue; @@ -2268,9 +2270,9 @@ get_closest_sanitizer_option (const string_fragment &arg, adjust previous FLAGS and return new ones. If COMPLAIN is false, don't issue diagnostics. */ -unsigned int +sanitize_code_type parse_sanitizer_options (const char *p, location_t loc, int scode, - unsigned int flags, int value, bool complain) + sanitize_code_type flags, int value, bool complain) { enum opt_code code = (enum opt_code) scode; @@ -2296,7 +2298,7 @@ parse_sanitizer_options (const char *p, location_t loc, int scode, && memcmp (p, sanitizer_opts[i].name, len) == 0) { /* Handle both -fsanitize and -fno-sanitize cases. */ - if (value && sanitizer_opts[i].flag == ~0U) + if (value && sanitizer_opts[i].flag == ~sanitize_code_type (0)) { if (code == OPT_fsanitize_) { @@ -2377,10 +2379,10 @@ parse_sanitizer_options (const char *p, location_t loc, int scode, /* Parse string values of no_sanitize attribute passed in VALUE. Values are separated with comma. */ -unsigned int +sanitize_code_type parse_no_sanitize_attribute (char *value) { - unsigned int flags = 0; + sanitize_code_type flags = 0; unsigned int i; char *q = strtok (value, ","); @@ -3016,11 +3018,12 @@ common_handle_option (struct gcc_options *opts, break; case OPT_fdiagnostics_column_unit_: - dc->m_column_unit = (enum diagnostics_column_unit)value; + dc->get_column_options ().m_column_unit + = (enum diagnostics_column_unit)value; break; case OPT_fdiagnostics_column_origin_: - dc->m_column_origin = value; + dc->get_column_options ().m_column_origin = value; break; case OPT_fdiagnostics_escape_format_: @@ -3051,6 +3054,18 @@ common_handle_option (struct gcc_options *opts, dc->set_show_option_requested (value); break; + case OPT_fdiagnostics_show_nesting: + dc->set_show_nesting (value); + break; + + case OPT_fdiagnostics_show_nesting_locations: + dc->set_show_nesting_locations (value); + break; + + case OPT_fdiagnostics_show_nesting_levels: + dc->set_show_nesting_levels (value); + break; + case OPT_fdiagnostics_minimum_margin_width_: dc->get_source_printing_options ().min_margin_width = value; break; @@ -3408,7 +3423,7 @@ common_handle_option (struct gcc_options *opts, case OPT_ftabstop_: /* It is documented that we silently ignore silly values. */ if (value >= 1 && value <= 100) - dc->m_tabstop = value; + dc->get_column_options ().m_tabstop = value; break; case OPT_freport_bug: @@ -3744,7 +3759,7 @@ enable_warning_as_error (const char *arg, int value, unsigned int lang_mask, as -Werror. */ char * -compiler_diagnostic_option_manager:: +compiler_diagnostic_option_id_manager:: make_option_name (diagnostics::option_id option_id, enum diagnostics::kind orig_diag_kind, enum diagnostics::kind diag_kind) const @@ -3823,7 +3838,7 @@ get_option_url_suffix (int option_index, unsigned lang_mask) which enabled a diagnostic. */ char * -gcc_diagnostic_option_manager:: +gcc_diagnostic_option_id_manager:: make_option_url (diagnostics::option_id option_id) const { if (option_id.m_idx) @@ -3879,6 +3894,9 @@ gen_command_line_string (cl_decoded_option *options, case OPT_fdiagnostics_show_line_numbers: case OPT_fdiagnostics_color_: case OPT_fdiagnostics_format_: + case OPT_fdiagnostics_show_nesting: + case OPT_fdiagnostics_show_nesting_locations: + case OPT_fdiagnostics_show_nesting_levels: case OPT_fverbose_asm: case OPT____: case OPT__sysroot_: |