c++: retval dtor on rethrow [PR112301]
[official-gcc.git] / gcc / diagnostic-diagram.h
blobfc923c512ed25fc8cb0a4a4b4c6a5e6f62ca0b61
1 /* Support for diagrams within diagnostics.
2 Copyright (C) 2023 Free Software Foundation, Inc.
3 Contributed by David Malcolm <dmalcolm@redhat.com>
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 3, or (at your option) any later
10 version.
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
21 #ifndef GCC_DIAGNOSTIC_DIAGRAM_H
22 #define GCC_DIAGNOSTIC_DIAGRAM_H
24 namespace text_art
26 class canvas;
27 } // namespace text_art
29 /* A text art diagram, along with an "alternative text" string
30 describing it. */
32 class diagnostic_diagram
34 public:
35 diagnostic_diagram (const text_art::canvas &canvas,
36 const char *alt_text)
37 : m_canvas (canvas),
38 m_alt_text (alt_text)
40 gcc_assert (alt_text);
43 const text_art::canvas &get_canvas () const { return m_canvas; }
44 const char *get_alt_text () const { return m_alt_text; }
46 private:
47 const text_art::canvas &m_canvas;
48 const char *const m_alt_text;
51 #endif /* ! GCC_DIAGNOSTIC_DIAGRAM_H */