* cp-tree.h (CLASS_TYPE_P): Revise definition.
authorMark Mitchell <mark@markmitchell.com>
Tue, 25 Aug 1998 11:34:22 +0000 (11:34 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Tue, 25 Aug 1998 11:34:22 +0000 (11:34 +0000)
From-SVN: r21965

gcc/cp/ChangeLog
gcc/cp/cp-tree.h

index 5a60b49f5f824240a82e3533ee27bf90fcc476d2..1fd7317112b4829f5d64a58fa1370bdda3e696cf 100644 (file)
@@ -1,3 +1,7 @@
+1998-08-25  Mark Mitchell  <mark@markmitchell.com>
+
+       * cp-tree.h (CLASS_TYPE_P): Revise definition.
+
 1998-08-25  Jason Merrill  <jason@yorick.cygnus.com>
 
        * decl.c (duplicate_decls): Don't complain about different
index 993628a4296d6ee61eca0c51e19ed1f20504f602..a22a5ad61d0c2a7b4d1ef6763b8984c2c59198fa 100644 (file)
@@ -499,14 +499,15 @@ enum languages { lang_c, lang_cplusplus, lang_java };
 #define TYPE_MAIN_DECL(NODE) (TYPE_STUB_DECL (TYPE_MAIN_VARIANT (NODE)))
 
 /* Nonzero if T is a class (or struct or union) type.  Also nonzero
-   for template type parameters.  Despite its name, this macro has
-   nothing to do with the definition of aggregate given in the
-   standard.  Think of this macro as MAYBE_CLASS_TYPE_P.  */
+   for template type parameters and typename types.  Despite its name,
+   this macro has nothing to do with the definition of aggregate given
+   in the standard.  Think of this macro as MAYBE_CLASS_TYPE_P.  */
 #define IS_AGGR_TYPE(t)                (TYPE_LANG_FLAG_5 (t))
 
-/* Nonzero if T is a class type.  Zero for template type parameters.  */
+/* Nonzero if T is a class type.  Zero for template type parameters,
+   typename types, and so forth.  */
 #define CLASS_TYPE_P(t) \
-  (IS_AGGR_TYPE (t) && TREE_CODE (t) != TEMPLATE_TYPE_PARM)
+  (IS_AGGR_TYPE (t) && IS_AGGR_TYPE_CODE (TREE_CODE (t)))
 
 #define IS_AGGR_TYPE_CODE(t)   (t == RECORD_TYPE || t == UNION_TYPE)
 #define IS_AGGR_TYPE_2(TYPE1,TYPE2) \