aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/opts.cc')
-rw-r--r--gcc/opts.cc52
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_: