public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-2059] text-art: remove explicit #include of C++ standard library headers
@ 2023-06-24  1:20 David Malcolm
  0 siblings, 0 replies; only message in thread
From: David Malcolm @ 2023-06-24  1:20 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:b2e075a594e93a4fc89de8fa53db5c32a4de83b5

commit r14-2059-gb2e075a594e93a4fc89de8fa53db5c32a4de83b5
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Fri Jun 23 21:18:15 2023 -0400

    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 <vector>.
            * text-art/theme.cc: Add #define INCLUDE_VECTOR.
            * text-art/types.h: Check that INCLUDE_VECTOR is defined.
            Remove #include of <vector> and <string>.
            * text-art/widget.cc: Add #define INCLUDE_VECTOR.
            * text-art/widget.h: Remove #include <vector>.
    
    gcc/testsuite/ChangeLog:
            * gcc.dg/plugin/diagnostic_plugin_test_text_art.c: Add
            #define INCLUDE_VECTOR.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

Diff:
---
 gcc/analyzer/access-diagram.cc                                |  1 +
 gcc/analyzer/bounds-checking.cc                               |  1 +
 gcc/diagnostic-format-sarif.cc                                |  1 +
 gcc/diagnostic.cc                                             |  1 +
 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c |  1 +
 gcc/text-art/box-drawing.cc                                   |  1 +
 gcc/text-art/canvas.cc                                        |  1 +
 gcc/text-art/ruler.cc                                         |  1 +
 gcc/text-art/selftests.cc                                     |  1 +
 gcc/text-art/selftests.h                                      |  4 +++-
 gcc/text-art/style.cc                                         |  1 +
 gcc/text-art/styled-string.cc                                 |  1 +
 gcc/text-art/table.cc                                         |  1 +
 gcc/text-art/table.h                                          |  1 -
 gcc/text-art/theme.cc                                         |  1 +
 gcc/text-art/types.h                                          | 10 ++++++++--
 gcc/text-art/widget.cc                                        |  1 +
 gcc/text-art/widget.h                                         |  1 -
 18 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/gcc/analyzer/access-diagram.cc b/gcc/analyzer/access-diagram.cc
index 968ff50a0b7..467c9bdd734 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 10632d12562..5e8de9a7aa5 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 ac2f5b844e3..5e483988027 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 7c2289f0634..c523f215bae 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 27c341b9f2f..58b219bb0dc 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 981d0b095cf..7d499216806 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
 <http://www.gnu.org/licenses/>.  */
 
 #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 f229612c919..26ea0517182 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
 <http://www.gnu.org/licenses/>.  */
 
 #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 80c623f77ba..3323a055bb6 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 60ad003b549..25d81c1be89 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
 <http://www.gnu.org/licenses/>.  */
 
 #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 706a1d8b5d6..ba29f692697 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 00b056336fc..85ad49ee809 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 cd176b2313f..a0cc187c8cb 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 42cc4228ea6..71a10246257 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 5e6c8ffb836..2dc5c3c41cb 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 <vector>
 
 namespace text_art {
 
diff --git a/gcc/text-art/theme.cc b/gcc/text-art/theme.cc
index 54dfe7c9213..19c39fa7df7 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
 <http://www.gnu.org/licenses/>.  */
 
 #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 b66188ae19c..ea4ff4be8cc 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 <vector> 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 <vector>
-#include <string>
 
 namespace text_art {
 
diff --git a/gcc/text-art/widget.cc b/gcc/text-art/widget.cc
index e6e544d5035..b64a6236a5c 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 91209444bf7..8798e436d94 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 <vector>
 #include "text-art/canvas.h"
 #include "text-art/table.h"

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-06-24  1:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-24  1:20 [gcc r14-2059] text-art: remove explicit #include of C++ standard library headers David Malcolm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).