No functional change intended.
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r16-4147-g233d3121c3a64e.
gcc/ChangeLog:
* diagnostics/output-spec.cc: Rename "parsed_arg" to
"scheme_and_kvs" throughout. Rename "unparsed_arg" to
"unparsed_spec" throughout, and make a member of
output_spec::context rather than passing it around.
* diagnostics/output-spec.h: Likewise.
* libgdiagnostics.cc: Likewise.
* opts-diagnostic.cc: Likewise.
---
gcc/diagnostics/output-spec.cc | 166 +++++++++++++++------------------
gcc/diagnostics/output-spec.h | 24 +++--
gcc/libgdiagnostics.cc | 7 +-
gcc/opts-diagnostic.cc | 26 +++---
4 files changed, 110 insertions(+), 113 deletions(-)
diff --git a/gcc/diagnostics/output-spec.cc b/gcc/diagnostics/output-spec.cc
index 8ec638a83bf1..33a5f0d317e8 100644
--- a/gcc/diagnostics/output-spec.cc
+++ b/gcc/diagnostics/output-spec.cc
@@ -75,13 +75,11 @@ public:
virtual std::unique_ptr<sink>
make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const = 0;
+ const scheme_name_and_params &scheme_and_kvs) const = 0;
protected:
bool
parse_bool_value (const context &ctxt,
- const char *unparsed_arg,
const std::string &key,
const std::string &value,
bool &out) const
@@ -101,7 +99,7 @@ public:
ctxt.report_error
("%<%s%s%>:"
" unexpected value %qs for key %qs; expected %qs or %qs",
- ctxt.get_option_name (), unparsed_arg,
+ ctxt.get_option_name (), ctxt.get_unparsed_spec (),
value.c_str (),
key.c_str (),
"yes", "no");
@@ -112,7 +110,6 @@ public:
template <typename EnumType, size_t NumValues>
bool
parse_enum_value (const context &ctxt,
- const char *unparsed_arg,
const std::string &key,
const std::string &value,
const std::array<std::pair<const char *, EnumType>,
NumValues> &value_names,
@@ -132,7 +129,7 @@ public:
ctxt.report_error
("%<%s%s%>:"
" unexpected value %qs for key %qs; known values: %e",
- ctxt.get_option_name (), unparsed_arg,
+ ctxt.get_option_name (), ctxt.get_unparsed_spec (),
value.c_str (),
key.c_str (),
&e);
@@ -148,8 +145,7 @@ public:
std::unique_ptr<sink>
make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg);
+ const scheme_name_and_params &scheme_and_kvs);
const scheme_handler *get_scheme_handler (const std::string &scheme_name);
@@ -165,8 +161,7 @@ public:
std::unique_ptr<sink>
make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const final override;
+ const scheme_name_and_params &scheme_and_kvs) const final override;
};
class sarif_scheme_handler : public output_factory::scheme_handler
@@ -177,8 +172,7 @@ public:
std::unique_ptr<sink>
make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const final override;
+ const scheme_name_and_params &scheme_and_kvs) const final override;
private:
static std::unique_ptr<sarif_serialization_format>
@@ -193,8 +187,7 @@ public:
std::unique_ptr<sink>
make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const final override;
+ const scheme_name_and_params &scheme_and_kvs) const final override;
};
/* struct context. */
@@ -209,8 +202,7 @@ context::report_error (const char *gmsgid, ...) const
}
void
-context::report_unknown_key (const char *unparsed_arg,
- const std::string &key,
+context::report_unknown_key (const std::string &key,
const std::string &scheme_name,
auto_vec<const char *> &known_keys) const
{
@@ -218,13 +210,12 @@ context::report_unknown_key (const char *unparsed_arg,
report_error
("%<%s%s%>:"
" unknown key %qs for format %qs; known keys: %e",
- get_option_name (), unparsed_arg,
+ get_option_name (), get_unparsed_spec (),
key.c_str (), scheme_name.c_str (), &e);
}
void
-context::report_missing_key (const char *unparsed_arg,
- const std::string &key,
+context::report_missing_key (const std::string &key,
const std::string &scheme_name,
const char *metavar) const
{
@@ -232,7 +223,7 @@ context::report_missing_key (const char *unparsed_arg,
("%<%s%s%>:"
" missing required key %qs for format %qs;"
" try %<%s%s:%s=%s%>",
- get_option_name (), unparsed_arg,
+ get_option_name (), get_unparsed_spec (),
key.c_str (), scheme_name.c_str (),
get_option_name (), scheme_name.c_str (), key.c_str (), metavar);
}
@@ -250,12 +241,13 @@ context::open_output_file (label_text &&filename) const
}
static std::unique_ptr<scheme_name_and_params>
-parse (const context &ctxt, const char *unparsed_arg)
+parse (const context &ctxt)
{
scheme_name_and_params result;
- if (const char *const colon = strchr (unparsed_arg, ':'))
+ const char *const unparsed_spec = ctxt.get_unparsed_spec ();
+ if (const char *const colon = strchr (unparsed_spec, ':'))
{
- result.m_scheme_name = std::string (unparsed_arg, colon - unparsed_arg);
+ result.m_scheme_name = std::string (unparsed_spec, colon -
unparsed_spec);
/* Expect zero of more of KEY=VALUE,KEY=VALUE, etc .*/
const char *iter = colon + 1;
const char *last_separator = ":";
@@ -271,7 +263,7 @@ parse (const context &ctxt, const char *unparsed_arg)
" expected KEY=VALUE-style parameter for format %qs"
" after %qs;"
" got %qs",
- ctxt.get_option_name (), unparsed_arg,
+ ctxt.get_option_name (), ctxt.get_unparsed_spec (),
result.m_scheme_name.c_str (),
last_separator,
iter);
@@ -295,20 +287,19 @@ parse (const context &ctxt, const char *unparsed_arg)
}
}
else
- result.m_scheme_name = unparsed_arg;
+ result.m_scheme_name = unparsed_spec;
return std::make_unique<scheme_name_and_params> (std::move (result));
}
std::unique_ptr<sink>
-context::parse_and_make_sink (const char *unparsed_arg,
- diagnostics::context &dc)
+context::parse_and_make_sink (diagnostics::context &dc)
{
- auto parsed_arg = parse (*this, unparsed_arg);
+ auto parsed_arg = parse (*this);
if (!parsed_arg)
return nullptr;
output_factory factory;
- return factory.make_sink (*this, dc, unparsed_arg, *parsed_arg);
+ return factory.make_sink (*this, dc, *parsed_arg);
}
/* class output_factory::scheme_handler. */
@@ -334,10 +325,9 @@ output_factory::get_scheme_handler (const std::string
&scheme_name)
std::unique_ptr<sink>
output_factory::make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg)
+ const scheme_name_and_params &scheme_and_kvs)
{
- auto scheme_handler = get_scheme_handler (parsed_arg.m_scheme_name);
+ auto scheme_handler = get_scheme_handler (scheme_and_kvs.m_scheme_name);
if (!scheme_handler)
{
auto_vec<const char *> strings;
@@ -346,12 +336,12 @@ output_factory::make_sink (const context &ctxt,
pp_markup::comma_separated_quoted_strings e (strings);
ctxt.report_error ("%<%s%s%>:"
" unrecognized format %qs; known formats: %e",
- ctxt.get_option_name (), unparsed_arg,
- parsed_arg.m_scheme_name.c_str (), &e);
+ ctxt.get_option_name (), ctxt.get_unparsed_spec (),
+ scheme_and_kvs.m_scheme_name.c_str (), &e);
return nullptr;
}
- return scheme_handler->make_sink (ctxt, dc, unparsed_arg, parsed_arg);
+ return scheme_handler->make_sink (ctxt, dc, scheme_and_kvs);
}
/* class text_scheme_handler : public output_factory::scheme_handler. */
@@ -359,40 +349,39 @@ output_factory::make_sink (const context &ctxt,
std::unique_ptr<sink>
text_scheme_handler::make_sink (const context &ctxt,
diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const
+ const scheme_name_and_params &scheme_and_kvs)
const
{
bool show_color = pp_show_color (dc.get_reference_printer ());
bool show_nesting = true;
bool show_locations_in_nesting = true;
bool show_levels = false;
- for (auto& iter : parsed_arg.m_kvs)
+ for (auto& iter : scheme_and_kvs.m_kvs)
{
const std::string &key = iter.first;
const std::string &value = iter.second;
if (key == "color")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value, show_color))
+ if (!parse_bool_value (ctxt, key, value, show_color))
return nullptr;
continue;
}
if (key == "show-nesting")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
show_nesting))
return nullptr;
continue;
}
if (key == "show-nesting-locations")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
show_locations_in_nesting))
return nullptr;
continue;
}
if (key == "show-nesting-levels")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value, show_levels))
+ if (!parse_bool_value (ctxt, key, value, show_levels))
return nullptr;
continue;
}
@@ -403,8 +392,7 @@ text_scheme_handler::make_sink (const context &ctxt,
known_keys.safe_push ("show-nesting");
known_keys.safe_push ("show-nesting-locations");
known_keys.safe_push ("show-nesting-levels");
- ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (),
- known_keys);
+ ctxt.report_unknown_key (key, get_scheme_name (), known_keys);
return nullptr;
}
@@ -418,16 +406,16 @@ text_scheme_handler::make_sink (const context &ctxt,
/* class sarif_scheme_handler : public output_factory::scheme_handler. */
std::unique_ptr<sink>
-sarif_scheme_handler::make_sink (const context &ctxt,
- diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const
+sarif_scheme_handler::
+make_sink (const context &ctxt,
+ diagnostics::context &dc,
+ const scheme_name_and_params &scheme_and_kvs) const
{
label_text filename;
enum sarif_serialization_kind serialization_kind
= sarif_serialization_kind::json;
sarif_generation_options sarif_gen_opts;
- for (auto& iter : parsed_arg.m_kvs)
+ for (auto& iter : scheme_and_kvs.m_kvs)
{
const std::string &key = iter.first;
const std::string &value = iter.second;
@@ -443,7 +431,7 @@ sarif_scheme_handler::make_sink (const context &ctxt,
{{{"json", sarif_serialization_kind::json}}};
if (!parse_enum_value<enum sarif_serialization_kind>
- (ctxt, unparsed_arg,
+ (ctxt,
key, value,
value_names,
serialization_kind))
@@ -458,7 +446,7 @@ sarif_scheme_handler::make_sink (const context &ctxt,
{"2.2-prerelease", sarif_version::v2_2_prerelease_2024_08_08}}};
if (!parse_enum_value<enum sarif_version>
- (ctxt, unparsed_arg,
+ (ctxt,
key, value,
value_names,
sarif_gen_opts.m_version))
@@ -467,7 +455,7 @@ sarif_scheme_handler::make_sink (const context &ctxt,
}
if (key == "state-graphs")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
sarif_gen_opts.m_state_graph))
return nullptr;
continue;
@@ -479,8 +467,7 @@ sarif_scheme_handler::make_sink (const context &ctxt,
known_keys.safe_push ("serialization");
known_keys.safe_push ("state-graphs");
known_keys.safe_push ("version");
- ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (),
- known_keys);
+ ctxt.report_unknown_key (key, get_scheme_name (), known_keys);
return nullptr;
}
@@ -493,8 +480,7 @@ sarif_scheme_handler::make_sink (const context &ctxt,
const char *basename = ctxt.get_base_filename ();
if (!basename)
{
- ctxt.report_missing_key (unparsed_arg,
- "file",
+ ctxt.report_missing_key ("file",
get_scheme_name (),
"FILENAME");
return nullptr;
@@ -535,20 +521,20 @@ make_sarif_serialization_object (enum
sarif_serialization_kind kind)
/* class html_scheme_handler : public output_factory::scheme_handler. */
std::unique_ptr<sink>
-html_scheme_handler::make_sink (const context &ctxt,
- diagnostics::context &dc,
- const char *unparsed_arg,
- const scheme_name_and_params &parsed_arg) const
+html_scheme_handler::
+make_sink (const context &ctxt,
+ diagnostics::context &dc,
+ const scheme_name_and_params &scheme_and_kvs) const
{
label_text filename;
html_generation_options html_gen_opts;
- for (auto& iter : parsed_arg.m_kvs)
+ for (auto& iter : scheme_and_kvs.m_kvs)
{
const std::string &key = iter.first;
const std::string &value = iter.second;
if (key == "css")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
html_gen_opts.m_css))
return nullptr;
continue;
@@ -560,28 +546,28 @@ html_scheme_handler::make_sink (const context &ctxt,
}
if (key == "javascript")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
html_gen_opts.m_javascript))
return nullptr;
continue;
}
if (key == "show-state-diagrams")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
html_gen_opts.m_show_state_diagrams))
return nullptr;
continue;
}
if (key == "show-state-diagrams-dot-src")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
html_gen_opts.m_show_state_diagrams_dot_src))
return nullptr;
continue;
}
if (key == "show-state-diagrams-sarif")
{
- if (!parse_bool_value (ctxt, unparsed_arg, key, value,
+ if (!parse_bool_value (ctxt, key, value,
html_gen_opts.m_show_state_diagrams_sarif))
return nullptr;
continue;
@@ -595,8 +581,7 @@ html_scheme_handler::make_sink (const context &ctxt,
known_keys.safe_push ("show-state-diagrams");
known_keys.safe_push ("show-state-diagram-dot-src");
known_keys.safe_push ("show-state-diagram-sarif");
- ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (),
- known_keys);
+ ctxt.report_unknown_key (key, get_scheme_name (), known_keys);
return nullptr;
}
@@ -609,8 +594,7 @@ html_scheme_handler::make_sink (const context &ctxt,
const char *basename = ctxt.get_base_filename ();
if (!basename)
{
- ctxt.report_missing_key (unparsed_arg,
- "file",
+ ctxt.report_missing_key ("file",
get_scheme_name (),
"FILENAME");
return nullptr;
@@ -668,12 +652,14 @@ struct parser_test
test_spec_context (diagnostics::context &dc,
line_maps *location_mgr,
location_t loc,
- const char *option_name)
+ const char *option_name,
+ const char *unparsed_arg)
: dc_spec_context (dc,
location_mgr,
location_mgr,
loc,
- option_name)
+ option_name,
+ unparsed_arg)
{
}
@@ -684,18 +670,18 @@ struct parser_test
}
};
- parser_test ()
+ parser_test (const char *unparsed_spec)
: m_dc (),
- m_ctxt (m_dc, line_table, UNKNOWN_LOCATION, "-fOPTION="),
+ m_ctxt (m_dc, line_table, UNKNOWN_LOCATION, "-fOPTION=", unparsed_spec),
m_fmt (m_dc.get_sink (0))
{
pp_buffer (m_fmt.get_printer ())->m_flush_p = false;
}
std::unique_ptr<diagnostics::output_spec::scheme_name_and_params>
- parse (const char *unparsed_arg)
+ parse ()
{
- return diagnostics::output_spec::parse (m_ctxt, unparsed_arg);
+ return diagnostics::output_spec::parse (m_ctxt);
}
bool execution_failed_p () const
@@ -725,8 +711,8 @@ test_output_arg_parsing ()
/* Minimal correct example. */
{
- parser_test pt;
- auto result = pt.parse ("foo");
+ parser_test pt ("foo");
+ auto result = pt.parse ();
ASSERT_EQ (result->m_scheme_name, "foo");
ASSERT_EQ (result->m_kvs.size (), 0);
ASSERT_FALSE (pt.execution_failed_p ());
@@ -734,8 +720,8 @@ test_output_arg_parsing ()
/* Stray trailing colon with no key/value pairs. */
{
- parser_test pt;
- auto result = pt.parse ("foo:");
+ parser_test pt ("foo:");
+ auto result = pt.parse ();
ASSERT_EQ (result, nullptr);
ASSERT_TRUE (pt.execution_failed_p ());
ASSERT_STREQ (pt.get_diagnostic_text (),
@@ -747,8 +733,8 @@ test_output_arg_parsing ()
/* No key before '='. */
{
- parser_test pt;
- auto result = pt.parse ("foo:=");
+ parser_test pt ("foo:=");
+ auto result = pt.parse ();
ASSERT_EQ (result, nullptr);
ASSERT_TRUE (pt.execution_failed_p ());
ASSERT_STREQ (pt.get_diagnostic_text (),
@@ -760,8 +746,8 @@ test_output_arg_parsing ()
/* No value for key. */
{
- parser_test pt;
- auto result = pt.parse ("foo:key,");
+ parser_test pt ("foo:key,");
+ auto result = pt.parse ();
ASSERT_EQ (result, nullptr);
ASSERT_TRUE (pt.execution_failed_p ());
ASSERT_STREQ (pt.get_diagnostic_text (),
@@ -773,8 +759,8 @@ test_output_arg_parsing ()
/* Correct example, with one key/value pair. */
{
- parser_test pt;
- auto result = pt.parse ("foo:key=value");
+ parser_test pt ("foo:key=value");
+ auto result = pt.parse ();
ASSERT_EQ (result->m_scheme_name, "foo");
ASSERT_EQ (result->m_kvs.size (), 1);
ASSERT_EQ (result->m_kvs[0].first, "key");
@@ -784,8 +770,8 @@ test_output_arg_parsing ()
/* Stray trailing comma. */
{
- parser_test pt;
- auto result = pt.parse ("foo:key=value,");
+ parser_test pt ("foo:key=value,");
+ auto result = pt.parse ();
ASSERT_EQ (result, nullptr);
ASSERT_TRUE (pt.execution_failed_p ());
ASSERT_STREQ (pt.get_diagnostic_text (),
@@ -797,8 +783,8 @@ test_output_arg_parsing ()
/* Correct example, with two key/value pairs. */
{
- parser_test pt;
- auto result = pt.parse ("foo:color=red,shape=circle");
+ parser_test pt ("foo:color=red,shape=circle");
+ auto result = pt.parse ();
ASSERT_EQ (result->m_scheme_name, "foo");
ASSERT_EQ (result->m_kvs.size (), 2);
ASSERT_EQ (result->m_kvs[0].first, "color");
diff --git a/gcc/diagnostics/output-spec.h b/gcc/diagnostics/output-spec.h
index c84d237de499..e24002bc8ae4 100644
--- a/gcc/diagnostics/output-spec.h
+++ b/gcc/diagnostics/output-spec.h
@@ -34,22 +34,19 @@ class context
{
public:
std::unique_ptr<sink>
- parse_and_make_sink (const char *,
- diagnostics::context &dc);
+ parse_and_make_sink (diagnostics::context &dc);
void
report_error (const char *gmsgid, ...) const
ATTRIBUTE_GCC_DIAG(2,3);
void
- report_unknown_key (const char *unparsed_arg,
- const std::string &key,
+ report_unknown_key (const std::string &key,
const std::string &scheme_name,
auto_vec<const char *> &known_keys) const;
void
- report_missing_key (const char *unparsed_arg,
- const std::string &key,
+ report_missing_key (const std::string &key,
const std::string &scheme_name,
const char *metavar) const;
@@ -59,6 +56,9 @@ class context
const char *
get_option_name () const { return m_option_name; }
+ const char *
+ get_unparsed_spec () const { return m_unparsed_spec; }
+
line_maps *
get_affected_location_mgr () const { return m_affected_location_mgr; }
@@ -72,13 +72,20 @@ class context
protected:
context (const char *option_name,
+ const char *unparsed_spec,
line_maps *affected_location_mgr)
: m_option_name (option_name),
+ m_unparsed_spec (unparsed_spec),
m_affected_location_mgr (affected_location_mgr)
{
}
+ // e.g. "-fdiagnostics-add-output="
const char *m_option_name;
+
+ // e.g. "scheme:foo=bar,key=value"
+ const char *m_unparsed_spec;
+
line_maps *m_affected_location_mgr;
};
@@ -91,8 +98,9 @@ public:
line_maps *affected_location_mgr,
line_maps *control_location_mgr,
location_t loc,
- const char *option_name)
- : context (option_name, affected_location_mgr),
+ const char *option_name,
+ const char *unparsed_spec)
+ : context (option_name, unparsed_spec, affected_location_mgr),
m_dc (dc),
m_control_location_mgr (control_location_mgr),
m_loc (loc)
diff --git a/gcc/libgdiagnostics.cc b/gcc/libgdiagnostics.cc
index cceddff9d690..6b269a1d1fe8 100644
--- a/gcc/libgdiagnostics.cc
+++ b/gcc/libgdiagnostics.cc
@@ -2481,9 +2481,10 @@ struct spec_context : public
diagnostics::output_spec::context
{
public:
spec_context (const char *option_name,
+ const char *unparsed_spec,
diagnostic_manager &affected_mgr,
diagnostic_manager &control_mgr)
- : context (option_name, affected_mgr.get_line_table ()),
+ : context (option_name, unparsed_spec, affected_mgr.get_line_table ()),
m_control_mgr (control_mgr)
{}
@@ -2519,8 +2520,8 @@ diagnostic_manager_add_sink_from_spec (diagnostic_manager
*affected_mgr,
FAIL_IF_NULL (spec);
FAIL_IF_NULL (control_mgr);
- spec_context ctxt (option_name, *affected_mgr, *control_mgr);
- auto inner_sink = ctxt.parse_and_make_sink (spec, affected_mgr->get_dc ());
+ spec_context ctxt (option_name, spec, *affected_mgr, *control_mgr);
+ auto inner_sink = ctxt.parse_and_make_sink (affected_mgr->get_dc ());
if (!inner_sink)
return -1;
affected_mgr->get_dc ().add_sink (std::move (inner_sink));
diff --git a/gcc/opts-diagnostic.cc b/gcc/opts-diagnostic.cc
index 0e0296ab5aa7..6f459ec46173 100644
--- a/gcc/opts-diagnostic.cc
+++ b/gcc/opts-diagnostic.cc
@@ -47,12 +47,14 @@ public:
diagnostics::context &dc,
line_maps *location_mgr,
location_t loc,
- const char *option_name)
+ const char *option_name,
+ const char *option_value)
: dc_spec_context (dc,
location_mgr,
location_mgr,
loc,
- option_name),
+ option_name,
+ option_value),
m_opts (opts)
{}
@@ -72,17 +74,17 @@ public:
void
handle_OPT_fdiagnostics_add_output_ (const gcc_options &opts,
diagnostics::context &dc,
- const char *arg,
+ const char *unparsed_spec,
location_t loc)
{
- gcc_assert (arg);
+ gcc_assert (unparsed_spec);
gcc_assert (line_table);
const char *const option_name = "-fdiagnostics-add-output=";
DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (),
- "handling: %s%s", option_name, arg);
- opt_spec_context ctxt (opts, dc, line_table, loc, option_name);
- auto sink = ctxt.parse_and_make_sink (arg, dc);
+ "handling: %s%s", option_name, unparsed_spec);
+ opt_spec_context ctxt (opts, dc, line_table, loc, option_name,
unparsed_spec);
+ auto sink = ctxt.parse_and_make_sink (dc);
if (!sink)
return;
@@ -93,17 +95,17 @@ handle_OPT_fdiagnostics_add_output_ (const gcc_options
&opts,
void
handle_OPT_fdiagnostics_set_output_ (const gcc_options &opts,
diagnostics::context &dc,
- const char *arg,
+ const char *unparsed_spec,
location_t loc)
{
- gcc_assert (arg);
+ gcc_assert (unparsed_spec);
gcc_assert (line_table);
const char *const option_name = "-fdiagnostics-set-output=";
DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (),
- "handling: %s%s", option_name, arg);
- opt_spec_context ctxt (opts, dc, line_table, loc, option_name);
- auto sink = ctxt.parse_and_make_sink (arg, dc);
+ "handling: %s%s", option_name, unparsed_spec);
+ opt_spec_context ctxt (opts, dc, line_table, loc, option_name,
unparsed_spec);
+ auto sink = ctxt.parse_and_make_sink (dc);
if (!sink)
return;
--
2.26.3