VOID_TYPE_P and error_mark_node
Geoff Keating
geoffk@cygnus.com
Wed Jun 7 10:52:00 GMT 2000
Recently, a number of tests of the form
foo == void_type_node
have been changed to
VOID_TYPE_P (foo)
This is fine, but before when 'foo' was error_mark_node the test would
fail, and now it causes an --enable-checking=tree error.
The attached patch changes VOID_TYPE_P so that it rejects
error_mark_node. This seemed like the easiest thing. It fixes all of
the tree checking failures in C++.
Bootstrapped & tests OK on powerpc-unknown-linux-gnu. OK to commit?
--
- Geoffrey Keating <geoffk@cygnus.com>
===File ~/patches/cygnus/treechk-voidtype.patch=============
2000-06-07 Geoff Keating <geoffk@cygnus.com>
* tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
of an error_type_node.
Index: gcc/tree.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/tree.h,v
retrieving revision 1.177
diff -p -u -u -p -r1.177 tree.h
--- tree.h 2000/06/05 13:16:13 1.177
+++ tree.h 2000/06/07 17:50:21
@@ -454,7 +454,7 @@ extern void tree_class_check_failed PARA
#define COMPLETE_TYPE_P(NODE) (TYPE_SIZE (NODE) != NULL_TREE)
/* Nonzero if this type is the (possibly qualified) void type. */
-#define VOID_TYPE_P(NODE) (TYPE_MAIN_VARIANT (NODE) == void_type_node)
+#define VOID_TYPE_P(NODE) ((NODE) != error_mark_node && TYPE_MAIN_VARIANT (NODE) == void_type_node)
/* Nonzero if this type is complete or is cv void. */
#define COMPLETE_OR_VOID_TYPE_P(NODE) \
============================================================
More information about the Gcc-patches
mailing list