[PATCH] Move cpp_macro to cpplib.h
authorNathan Sidwell <nathan@acm.org>
Fri, 17 Aug 2018 12:04:13 +0000 (12:04 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Fri, 17 Aug 2018 12:04:13 +0000 (12:04 +0000)
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01016.html
libcpp/
* cpp-id-data.h (uchar, UC): Move to internal.h
(struct cpp_macro): Move to cpplib.h.
* internal.h (uchar, UC): From cpp-id-data.h.
* include/cpplib.h (struct cpp_macro): From cpp-id-data.h.
gcc/c-family/
* c-ada-spec.c: Don't #include "cpp-id-data.h"
* c-cppbuiltin.c: Likewise.
gcc/
* cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h".

From-SVN: r263618

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-ada-spec.c
gcc/c-family/c-cppbuiltin.c
gcc/cppbuiltin.c
libcpp/ChangeLog
libcpp/include/cpp-id-data.h
libcpp/include/cpplib.h
libcpp/internal.h

index db625ddd4f068dec1bcdaf0634dc1afd387952a0..17545dc78cd4553b5ab6169f0b1f7ed6db5bf8bb 100644 (file)
@@ -1,3 +1,7 @@
+2018-08-17  Nathan Sidwell  <nathan@acm.org>
+
+       * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h".
+
 2018-08-17  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/86841
index 2ab5b4477d01032654667176977695a2fc43ceb8..93b1ba1478d47883b39e6e023c501291d725fbde 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-17  Nathan Sidwell  <nathan@acm.org>
+
+       * c-ada-spec.c: Don't #include "cpp-id-data.h"
+       * c-cppbuiltin.c: Likewise.
+
 2018-08-17  Martin Liska  <mliska@suse.cz>
 
        * c.opt: Remove Warn, Init and Report for options with
index c6447ab01c991e6e0ca09366a79a3d320d638764..0352932c03973e5916e1772362f6aa10be017700 100644 (file)
@@ -27,7 +27,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "c-ada-spec.h"
 #include "fold-const.h"
 #include "c-pragma.h"
-#include "cpp-id-data.h"
 #include "stringpool.h"
 #include "attribs.h"
 
index 4fcf3a6e9bab4d2055793caec7fd35aa7d4594c2..85d79dcc1a56360a60c26c702120e4787d69cdc2 100644 (file)
@@ -31,7 +31,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"            /* For user_label_prefix.  */
 #include "debug.h"             /* For dwarf2out_do_cfi_asm.  */
 #include "common/common-target.h"
-#include "cpp-id-data.h"
 #include "cppbuiltin.h"
 
 #ifndef TARGET_OS_CPP_BUILTINS
index 7ea45c80f6a7fbd508cdecf0a0982e7c1c5938d7..759122907191f4bbcd7a7ff5ae7821c9b47b0d9f 100644 (file)
@@ -25,7 +25,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "version.h"
 #include "flags.h"
-#include "cpp-id-data.h"
+#include "cpplib.h"
 #include "cppbuiltin.h"
 
 
index 5f087ece0f8f437459f854253c3f5cf91262a1dc..978b32e37c627c296cf387dfb6c5774026523760 100644 (file)
@@ -1,3 +1,10 @@
+2018-08-17  Nathan Sidwell  <nathan@acm.org>
+
+       * cpp-id-data.h (uchar, UC): Move to internal.h
+       (struct cpp_macro): Move to cpplib.h.
+       * internal.h (uchar, UC): From cpp-id-data.h.
+       * include/cpplib.h (struct cpp_macro): From cpp-id-data.h.
+
 2018-08-16  Nathan Sidwell  <nathan@acm.org>
 
        * internal.h (_cpp_save_parameter): Take parmno, not macro.
index 0299984efb7baf8ffe94d1e43b7d0004d7f7033b..fb073faacced74cd723d1b79983ea646871f122e 100644 (file)
@@ -17,12 +17,6 @@ along with this program; see the file COPYING3.  If not see
 
 #include "cpplib.h"
 
-#if !defined (HAVE_UCHAR) && !defined (IN_GCC)
-typedef unsigned char uchar;
-#endif
-
-#define UC (const unsigned char *)  /* Intended use: UC"string" */
-
 /* Chained list of answers to an assertion.  */
 struct GTY(()) answer {
   struct answer *next;
@@ -30,53 +24,3 @@ struct GTY(()) answer {
   cpp_token GTY ((length ("%h.count"))) first[1];
 };
 
-/* Each macro definition is recorded in a cpp_macro structure.
-   Variadic macros cannot occur with traditional cpp.  */
-struct GTY(()) cpp_macro {
-  /* Parameters, if any.  If parameter names use extended identifiers,
-     the original spelling of those identifiers, not the canonical
-     UTF-8 spelling, goes here.  */
-  cpp_hashnode ** GTY ((nested_ptr (union tree_node,
-               "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
-                       "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
-                       length ("%h.paramc")))
-    params;
-
-  /* Replacement tokens (ISO) or replacement text (traditional).  See
-     comment at top of cpptrad.c for how traditional function-like
-     macros are encoded.  */
-  union cpp_macro_u
-  {
-    cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
-    const unsigned char * GTY ((tag ("1"))) text;
-  } GTY ((desc ("%1.traditional"))) exp;
-
-  /* Definition line number.  */
-  source_location line;
-
-  /* Number of tokens in expansion, or bytes for traditional macros.  */
-  unsigned int count;
-
-  /* Number of parameters.  */
-  unsigned short paramc;
-
-  /* If a function-like macro.  */
-  unsigned int fun_like : 1;
-
-  /* If a variadic macro.  */
-  unsigned int variadic : 1;
-
-  /* If macro defined in system header.  */
-  unsigned int syshdr   : 1;
-
-  /* Nonzero if it has been expanded or had its existence tested.  */
-  unsigned int used     : 1;
-
-  /* Indicate which field of 'exp' is in use.  */
-  unsigned int traditional : 1;
-
-  /* Indicate whether the tokens include extra CPP_PASTE tokens at the
-     end to track invalid redefinitions with consecutive CPP_PASTE
-     tokens.  */
-  unsigned int extra_tokens : 1;
-};
index 99992a280ba64ee28cb919175eafaa2a9967207a..2b3440d251d80af842baadb1890386a3317ec716 100644 (file)
@@ -671,6 +671,57 @@ struct cpp_dir
   dev_t dev;
 };
 
+/* Each macro definition is recorded in a cpp_macro structure.
+   Variadic macros cannot occur with traditional cpp.  */
+struct GTY(()) cpp_macro {
+  /* Parameters, if any.  If parameter names use extended identifiers,
+     the original spelling of those identifiers, not the canonical
+     UTF-8 spelling, goes here.  */
+  cpp_hashnode ** GTY ((nested_ptr (union tree_node,
+               "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
+                       "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
+                       length ("%h.paramc")))
+    params;
+
+  /* Replacement tokens (ISO) or replacement text (traditional).  See
+     comment at top of cpptrad.c for how traditional function-like
+     macros are encoded.  */
+  union cpp_macro_u
+  {
+    cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
+    const unsigned char * GTY ((tag ("1"))) text;
+  } GTY ((desc ("%1.traditional"))) exp;
+
+  /* Definition line number.  */
+  source_location line;
+
+  /* Number of tokens in expansion, or bytes for traditional macros.  */
+  unsigned int count;
+
+  /* Number of parameters.  */
+  unsigned short paramc;
+
+  /* If a function-like macro.  */
+  unsigned int fun_like : 1;
+
+  /* If a variadic macro.  */
+  unsigned int variadic : 1;
+
+  /* If macro defined in system header.  */
+  unsigned int syshdr   : 1;
+
+  /* Nonzero if it has been expanded or had its existence tested.  */
+  unsigned int used     : 1;
+
+  /* Indicate which field of 'exp' is in use.  */
+  unsigned int traditional : 1;
+
+  /* Indicate whether the tokens include extra CPP_PASTE tokens at the
+     end to track invalid redefinitions with consecutive CPP_PASTE
+     tokens.  */
+  unsigned int extra_tokens : 1;
+};
+
 /* The structure of a node in the hash table.  The hash table has
    entries for all identifiers: either macros defined by #define
    commands (type NT_MACRO), assertions created with #assert
index 001252085cb7bb0a14be8e9a81807693eeb40286..0c2395a2dcd1a7c03daac2ac3d4e4bd6e6de859f 100644 (file)
@@ -602,6 +602,12 @@ extern const unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
 extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
 #endif
 
+#if !defined (HAVE_UCHAR) && !defined (IN_GCC)
+typedef unsigned char uchar;
+#endif
+
+#define UC (const uchar *)  /* Intended use: UC"string" */
+
 /* Macros.  */
 
 static inline int cpp_in_system_header (cpp_reader *);