Commit c92366fb by Mark Mitchell Committed by Mark Mitchell

cp-tree.h (CLASS_TYPE_P): New macro.

	* cp-tree.h (CLASS_TYPE_P): New macro.
	* decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE.

From-SVN: r21945
parent 33bdeb67
1998-08-24 Mark Mitchell <mark@markmitchell.com>
* cp-tree.h (CLASS_TYPE_P): New macro.
* decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE.
1998-08-24 Benjamin Kosnik <bkoz@cygnus.com>
* cp-tree.h: Declare.
......
......@@ -498,7 +498,16 @@ enum languages { lang_c, lang_cplusplus, lang_java };
/* The _DECL for this _TYPE. */
#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. */
#define IS_AGGR_TYPE(t) (TYPE_LANG_FLAG_5 (t))
/* Nonzero if T is a class type. Zero for template type parameters. */
#define CLASS_TYPE_P(t) \
(IS_AGGR_TYPE (t) && TREE_CODE (t) != TEMPLATE_TYPE_PARM)
#define IS_AGGR_TYPE_CODE(t) (t == RECORD_TYPE || t == UNION_TYPE)
#define IS_AGGR_TYPE_2(TYPE1,TYPE2) \
(TREE_CODE (TYPE1) == TREE_CODE (TYPE2) \
......
......@@ -10444,7 +10444,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
but not both. If it appears in the class, the member is
a member constant. The file-scope definition is always
required. */
if (IS_AGGR_TYPE (type)
if (CLASS_TYPE_P (type)
|| TREE_CODE (type) == REFERENCE_TYPE)
{
cp_error ("in-class initialization of static data member of non-integral type `%T'",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment