Branch data Line data Source code
1 : : /* Command line option handling. Interactions with diagnostics code.
2 : : Copyright (C) 2010-2025 Free Software Foundation, Inc.
3 : :
4 : : This file is part of GCC.
5 : :
6 : : GCC is free software; you can redistribute it and/or modify it under
7 : : the terms of the GNU General Public License as published by the Free
8 : : Software Foundation; either version 3, or (at your option) any later
9 : : version.
10 : :
11 : : GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 : : WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 : : FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 : : for more details.
15 : :
16 : : You should have received a copy of the GNU General Public License
17 : : along with GCC; see the file COPYING3. If not see
18 : : <http://www.gnu.org/licenses/>. */
19 : :
20 : : #ifndef GCC_OPTS_DIAGNOSTIC_H
21 : : #define GCC_OPTS_DIAGNOSTIC_H
22 : :
23 : : /* Abstract subclass of diagnostic_option_manager for gcc options. */
24 : :
25 : : class gcc_diagnostic_option_manager : public diagnostic_option_manager
26 : : {
27 : : public:
28 : : char *make_option_url (diagnostic_option_id option_id) const final override;
29 : :
30 : : protected:
31 : 295971 : gcc_diagnostic_option_manager (unsigned lang_mask)
32 : 295971 : : m_lang_mask (lang_mask)
33 : : {}
34 : :
35 : : unsigned m_lang_mask;
36 : : };
37 : :
38 : : /* Concrete implementation of diagnostic_option_manager for compiler. */
39 : :
40 : : class compiler_diagnostic_option_manager : public gcc_diagnostic_option_manager
41 : : {
42 : : public:
43 : 283157 : compiler_diagnostic_option_manager (const diagnostic_context &context,
44 : : unsigned lang_mask,
45 : : void *opts)
46 : 283157 : : gcc_diagnostic_option_manager (lang_mask),
47 : 283157 : m_context (context),
48 : 283157 : m_opts (opts)
49 : : {
50 : : }
51 : :
52 : : int option_enabled_p (diagnostic_option_id option_id) const final override;
53 : : char *make_option_name (diagnostic_option_id option_id,
54 : : diagnostic_t orig_diag_kind,
55 : : diagnostic_t diag_kind) const final override;
56 : :
57 : : private:
58 : : const diagnostic_context &m_context;
59 : : void *m_opts;
60 : : };
61 : :
62 : : extern void
63 : : handle_OPT_fdiagnostics_add_output_ (const gcc_options &opts,
64 : : diagnostic_context &dc,
65 : : const char *arg,
66 : : location_t loc);
67 : :
68 : : extern void
69 : : handle_OPT_fdiagnostics_set_output_ (const gcc_options &opts,
70 : : diagnostic_context &dc,
71 : : const char *arg,
72 : : location_t loc);
73 : : #endif
|