There was only one use of this macro outside the frontends, in dbxout.c.
This patch expands that use and moves the macro's definition to c-common.h.

There's no expectation that dbx will support sizeless types,
so keeping the current definition should be fine.

2018-10-15  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        * tree.h (COMPLETE_OR_VOID_TYPE_P): Move to c-common.h.
        * dbxout.c (dbxout_typedefs): Expand definition of
        COMPLETE_OR_VOID_TYPE_P.

gcc/c-family/
        * c-common.h (COMPLETE_OR_VOID_TYPE_P): Moved from tree.h.

Index: gcc/tree.h
===================================================================
--- gcc/tree.h  2018-10-15 14:12:59.036511679 +0100
+++ gcc/tree.h  2018-10-15 14:13:04.148469305 +0100
@@ -602,10 +602,6 @@ #define COMPLETE_TYPE_P(NODE) (TYPE_SIZE
 /* Nonzero if this type is the (possibly qualified) void type.  */
 #define VOID_TYPE_P(NODE) (TREE_CODE (NODE) == VOID_TYPE)
 
-/* Nonzero if this type is complete or is cv void.  */
-#define COMPLETE_OR_VOID_TYPE_P(NODE) \
-  (COMPLETE_TYPE_P (NODE) || VOID_TYPE_P (NODE))
-
 /* Nonzero if this type is complete or is an array with unspecified bound.  */
 #define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \
   (COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : 
(NODE)))
Index: gcc/dbxout.c
===================================================================
--- gcc/dbxout.c        2018-10-15 14:12:59.024511777 +0100
+++ gcc/dbxout.c        2018-10-15 14:13:04.148469305 +0100
@@ -1093,7 +1093,7 @@ dbxout_typedefs (tree syms)
          tree type = TREE_TYPE (syms);
          if (TYPE_NAME (type)
              && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
-             && COMPLETE_OR_VOID_TYPE_P (type)
+             && (DEFINITE_TYPE_P (type) || VOID_TYPE_P (type))
              && ! TREE_ASM_WRITTEN (TYPE_NAME (type)))
            dbxout_symbol (TYPE_NAME (type), 0);
        }
Index: gcc/c-family/c-common.h
===================================================================
--- gcc/c-family/c-common.h     2018-10-15 14:08:44.946617301 +0100
+++ gcc/c-family/c-common.h     2018-10-15 14:13:04.148469305 +0100
@@ -742,6 +742,10 @@ #define C_TYPE_FUNCTION_P(type) \
 #define C_TYPE_OBJECT_OR_INCOMPLETE_P(type) \
   (!C_TYPE_FUNCTION_P (type))
 
+/* Nonzero if this type is complete or is cv void.  */
+#define COMPLETE_OR_VOID_TYPE_P(NODE) \
+  (COMPLETE_TYPE_P (NODE) || VOID_TYPE_P (NODE))
+
 struct visibility_flags
 {
   unsigned inpragma : 1;       /* True when in #pragma GCC visibility.  */

Reply via email to