From: David Malcolm Date: Sat, 24 Jun 2023 01:18:15 +0000 (-0400) Subject: text-art: remove explicit #include of C++ standard library headers X-Git-Tag: basepoints/gcc-15~8080 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2e075a594e93a4fc89de8fa53db5c32a4de83b5;p=thirdparty%2Fgcc.git text-art: remove explicit #include of C++ standard library headers gcc/analyzer/ChangeLog: * access-diagram.cc: Add #define INCLUDE_VECTOR. * bounds-checking.cc: Likewise. gcc/ChangeLog: * diagnostic-format-sarif.cc: Add #define INCLUDE_VECTOR. * diagnostic.cc: Likewise. * text-art/box-drawing.cc: Likewise. * text-art/canvas.cc: Likewise. * text-art/ruler.cc: Likewise. * text-art/selftests.cc: Likewise. * text-art/selftests.h (text_art::canvas): New forward decl. * text-art/style.cc: Add #define INCLUDE_VECTOR. * text-art/styled-string.cc: Likewise. * text-art/table.cc: Likewise. * text-art/table.h: Remove #include . * text-art/theme.cc: Add #define INCLUDE_VECTOR. * text-art/types.h: Check that INCLUDE_VECTOR is defined. Remove #include of and . * text-art/widget.cc: Add #define INCLUDE_VECTOR. * text-art/widget.h: Remove #include . gcc/testsuite/ChangeLog: * gcc.dg/plugin/diagnostic_plugin_test_text_art.c: Add #define INCLUDE_VECTOR. Signed-off-by: David Malcolm --- diff --git a/gcc/analyzer/access-diagram.cc b/gcc/analyzer/access-diagram.cc index 968ff50a0b75..467c9bdd7340 100644 --- a/gcc/analyzer/access-diagram.cc +++ b/gcc/analyzer/access-diagram.cc @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #define INCLUDE_MEMORY #define INCLUDE_MAP #define INCLUDE_SET +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "coretypes.h" diff --git a/gcc/analyzer/bounds-checking.cc b/gcc/analyzer/bounds-checking.cc index 10632d12562f..5e8de9a7aa5c 100644 --- a/gcc/analyzer/bounds-checking.cc +++ b/gcc/analyzer/bounds-checking.cc @@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_MEMORY +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "make-unique.h" diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index ac2f5b844e39..5e483988027b 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "diagnostic.h" diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc index 7c2289f06342..c523f215baec 100644 --- a/gcc/diagnostic.cc +++ b/gcc/diagnostic.cc @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see message module. */ #include "config.h" +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "version.h" diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c b/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c index 27c341b9f2f5..58b219bb0dcc 100644 --- a/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c +++ b/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c @@ -2,6 +2,7 @@ /* This plugin exercises the text_art code. */ +#define INCLUDE_VECTOR #include "gcc-plugin.h" #include "config.h" #include "system.h" diff --git a/gcc/text-art/box-drawing.cc b/gcc/text-art/box-drawing.cc index 981d0b095cf8..7d4992168067 100644 --- a/gcc/text-art/box-drawing.cc +++ b/gcc/text-art/box-drawing.cc @@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see . */ #include "config.h" +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "text-art/box-drawing.h" diff --git a/gcc/text-art/canvas.cc b/gcc/text-art/canvas.cc index f229612c9191..26ea05171826 100644 --- a/gcc/text-art/canvas.cc +++ b/gcc/text-art/canvas.cc @@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see . */ #include "config.h" +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "pretty-print.h" diff --git a/gcc/text-art/ruler.cc b/gcc/text-art/ruler.cc index 80c623f77ba7..3323a055bb6c 100644 --- a/gcc/text-art/ruler.cc +++ b/gcc/text-art/ruler.cc @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_ALGORITHM +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "pretty-print.h" diff --git a/gcc/text-art/selftests.cc b/gcc/text-art/selftests.cc index 60ad003b549f..25d81c1be89a 100644 --- a/gcc/text-art/selftests.cc +++ b/gcc/text-art/selftests.cc @@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see . */ #include "config.h" +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "selftest.h" diff --git a/gcc/text-art/selftests.h b/gcc/text-art/selftests.h index 706a1d8b5d6d..ba29f6926978 100644 --- a/gcc/text-art/selftests.h +++ b/gcc/text-art/selftests.h @@ -22,7 +22,9 @@ along with GCC; see the file COPYING3. If not see #if CHECKING_P -#include "text-art/types.h" +namespace text_art { + class canvas; +} // namespace text_art namespace selftest { diff --git a/gcc/text-art/style.cc b/gcc/text-art/style.cc index 00b056336fcb..85ad49ee809d 100644 --- a/gcc/text-art/style.cc +++ b/gcc/text-art/style.cc @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_ALGORITHM #define INCLUDE_MEMORY +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "make-unique.h" diff --git a/gcc/text-art/styled-string.cc b/gcc/text-art/styled-string.cc index cd176b2313f5..a0cc187c8cb2 100644 --- a/gcc/text-art/styled-string.cc +++ b/gcc/text-art/styled-string.cc @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_MEMORY +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "make-unique.h" diff --git a/gcc/text-art/table.cc b/gcc/text-art/table.cc index 42cc4228ea6f..71a102462576 100644 --- a/gcc/text-art/table.cc +++ b/gcc/text-art/table.cc @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_MEMORY +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "make-unique.h" diff --git a/gcc/text-art/table.h b/gcc/text-art/table.h index 5e6c8ffb8362..2dc5c3c41cb7 100644 --- a/gcc/text-art/table.h +++ b/gcc/text-art/table.h @@ -23,7 +23,6 @@ along with GCC; see the file COPYING3. If not see #include "text-art/canvas.h" #include "text-art/theme.h" -#include namespace text_art { diff --git a/gcc/text-art/theme.cc b/gcc/text-art/theme.cc index 54dfe7c92139..19c39fa7df71 100644 --- a/gcc/text-art/theme.cc +++ b/gcc/text-art/theme.cc @@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see . */ #include "config.h" +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "pretty-print.h" diff --git a/gcc/text-art/types.h b/gcc/text-art/types.h index b66188ae19c9..ea4ff4be8cc9 100644 --- a/gcc/text-art/types.h +++ b/gcc/text-art/types.h @@ -21,10 +21,16 @@ along with GCC; see the file COPYING3. If not see #ifndef GCC_TEXT_ART_TYPES_H #define GCC_TEXT_ART_TYPES_H +/* This header uses std::vector, but can't be directly + included due to issues with macros. Hence it must be included from + system.h by defining INCLUDE_MEMORY in any source file using it. */ + +#ifndef INCLUDE_VECTOR +# error "You must define INCLUDE_VECTOR before including system.h to use text-art/types.h" +#endif + #include "cpplib.h" #include "pretty-print.h" -#include -#include namespace text_art { diff --git a/gcc/text-art/widget.cc b/gcc/text-art/widget.cc index e6e544d50358..b64a6236a5c7 100644 --- a/gcc/text-art/widget.cc +++ b/gcc/text-art/widget.cc @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_MEMORY +#define INCLUDE_VECTOR #include "system.h" #include "coretypes.h" #include "pretty-print.h" diff --git a/gcc/text-art/widget.h b/gcc/text-art/widget.h index 91209444bf7b..8798e436d94d 100644 --- a/gcc/text-art/widget.h +++ b/gcc/text-art/widget.h @@ -21,7 +21,6 @@ along with GCC; see the file COPYING3. If not see #ifndef GCC_TEXT_ART_WIDGET_H #define GCC_TEXT_ART_WIDGET_H -#include #include "text-art/canvas.h" #include "text-art/table.h"