GCC Middle and Back End API Reference
diagram.h
Go to the documentation of this file.
1/* Support for diagrams within diagnostics.
2 Copyright (C) 2023-2025 Free Software Foundation, Inc.
3 Contributed by David Malcolm <dmalcolm@redhat.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 3, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
20
21#ifndef GCC_DIAGNOSTICS_DIAGRAM_H
22#define GCC_DIAGNOSTICS_DIAGRAM_H
23
24namespace text_art
25{
26 class canvas;
27} // namespace text_art
28
29namespace diagnostics {
30
31/* A text art diagram, along with an "alternative text" string
32 describing it. */
33
35{
36 public:
37 diagram (const text_art::canvas &canvas,
38 const char *alt_text)
39 : m_canvas (canvas),
40 m_alt_text (alt_text)
41 {
42 gcc_assert (alt_text);
43 }
44
45 const text_art::canvas &get_canvas () const { return m_canvas; }
46 const char *get_alt_text () const { return m_alt_text; }
47
48 private:
50 const char *const m_alt_text;
51};
52
53} // namespace diagnostics
54
55#endif /* ! GCC_DIAGNOSTICS_DIAGRAM_H */
const text_art::canvas & get_canvas() const
Definition diagram.h:45
const text_art::canvas & m_canvas
Definition diagram.h:49
const char *const m_alt_text
Definition diagram.h:50
diagram(const text_art::canvas &canvas, const char *alt_text)
Definition diagram.h:37
const char * get_alt_text() const
Definition diagram.h:46
Definition canvas.h:38
Definition coretypes.h:167
Definition diagnostics/context.h:56
#define gcc_assert(EXPR)
Definition system.h:814