21#ifndef GCC_DIAGNOSTICS_OUTPUT_SPEC_H
22#define GCC_DIAGNOSTICS_OUTPUT_SPEC_H
47 const std::string &key,
48 const std::string &value) = 0;
55 const std::string &key,
56 const std::string &value,
59 template <
typename EnumType,
size_t NumValues>
62 const std::string &key,
63 const std::string &value,
64 const std::array<std::pair<const char *, EnumType>,
65 NumValues> &value_names,
81 virtual std::unique_ptr<sink>
108 const std::string &scheme_name,
109 const char *metavar)
const;
133 const std::string &value,
138 const char *unparsed_spec,
140 line_maps *affected_location_mgr)
166 const char *unparsed_spec,
168 line_maps *affected_location_mgr,
170 line_maps *control_location_mgr,
175 affected_location_mgr),
Definition diagnostics/context.h:254
Definition output-file.h:32
Definition output-spec.h:93
virtual const char * get_base_filename() const =0
key_handler * m_client_keys
Definition output-spec.h:155
void report_missing_key(const std::string &key, const std::string &scheme_name, const char *metavar) const
Definition output-spec.cc:280
const char * get_unparsed_spec() const
Definition output-spec.h:118
line_maps * m_affected_location_mgr
Definition output-spec.h:157
line_maps * get_affected_location_mgr() const
Definition output-spec.h:121
const char * m_unparsed_spec
Definition output-spec.h:152
const char * get_option_name() const
Definition output-spec.h:115
std::unique_ptr< sink > parse_and_make_sink(diagnostics::context &dc)
Definition output-spec.cc:357
virtual void report_error_va(const char *gmsgid, va_list *ap) const =0
void report_error(const char *gmsgid,...) const ATTRIBUTE_GCC_DIAG(2
Definition output-spec.cc:235
context(const char *option_name, const char *unparsed_spec, key_handler *client_keys, line_maps *affected_location_mgr)
Definition output-spec.h:137
virtual ~context()
Definition output-spec.h:123
void void report_unknown_key(const std::string &key, const scheme_handler &scheme) const
Definition output-spec.cc:244
const char * m_option_name
Definition output-spec.h:149
bool handle_kv(const std::string &key, const std::string &value, scheme_handler &scheme) const
Definition output-spec.cc:419
output_file open_output_file(label_text &&filename) const
Definition output-spec.cc:294
Definition output-spec.h:35
result
Definition output-spec.h:38
@ ok
Definition output-spec.h:39
@ unrecognized
Definition output-spec.h:40
@ malformed_value
Definition output-spec.h:41
enum result parse_enum_value(const context &ctxt, const std::string &key, const std::string &value, const std::array< std::pair< const char *, EnumType >, NumValues > &value_names, EnumType &out) const
virtual void get_keys(auto_vec< const char * > &out) const =0
virtual enum result maybe_handle_kv(const context &ctxt, const std::string &key, const std::string &value)=0
enum result parse_bool_value(const context &ctxt, const std::string &key, const std::string &value, bool &out) const
Definition output-spec.cc:90
Definition output-spec.h:72
const std::string & get_scheme_name() const
Definition output-spec.h:79
const std::string m_scheme_name
Definition output-spec.h:86
scheme_handler(std::string scheme_name)
Definition output-spec.h:74
virtual ~scheme_handler()
Definition output-spec.h:77
virtual std::unique_ptr< sink > make_sink(const context &ctxt, diagnostics::context &dc)=0
#define ATTRIBUTE_GCC_DIAG(m, n)
Definition diagnostic-core.h:71
Definition output-spec.cc:51
Definition coretypes.h:167
static void const char va_list ap
Definition read-md.cc:205
void report_error_va(const char *gmsgid, va_list *ap) const final override ATTRIBUTE_GCC_DIAG(2
dc_spec_context(const char *option_name, const char *unparsed_spec, key_handler *client_keys, line_maps *affected_location_mgr, diagnostics::context &dc, line_maps *control_location_mgr, location_t loc)
Definition output-spec.h:165
m_dc diagnostic_impl & richloc
Definition output-spec.h:186
void rich_location richloc(m_control_location_mgr, m_loc)
line_maps * m_control_location_mgr
Definition output-spec.h:191
location_t m_loc
Definition output-spec.h:192
diagnostics::context & m_dc
Definition output-spec.h:190
Definition ira-emit.cc:158