cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays.

* cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays.
	(CP_TYPE_VOLATILE): Likewise.
	* decl.c (grokdeclarator): Use them.
	* tree.c (canonical_type_variant): Likewise.

From-SVN: r23244
This commit is contained in:
Jason Merrill 1998-10-23 02:26:32 +00:00 committed by Jason Merrill
parent ccb5954fea
commit 0aaa908966
4 changed files with 20 additions and 14 deletions

View File

@ -1,3 +1,10 @@
1998-10-23 Jason Merrill <jason@yorick.cygnus.com>
* cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays.
(CP_TYPE_VOLATILE): Likewise.
* decl.c (grokdeclarator): Use them.
* tree.c (canonical_type_variant): Likewise.
1998-10-22 Martin von Löwis <loewis@informatik.hu-berlin.de>
* parse.y (named_class_head): Push into class while parsing the

View File

@ -514,6 +514,15 @@ 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)))
#define CP_TYPE_READONLY(NODE) \
(TREE_CODE (NODE) == ARRAY_TYPE \
? TYPE_READONLY (TREE_TYPE (NODE)) \
: TYPE_READONLY (NODE))
#define CP_TYPE_VOLATILE(NODE) \
(TREE_CODE (NODE) == ARRAY_TYPE \
? TYPE_VOLATILE (TREE_TYPE (NODE)) \
: TYPE_VOLATILE (NODE))
/* Nonzero if T is a class (or struct or union) type. Also nonzero
for template type parameters and typename types. Despite its name,
this macro has nothing to do with the definition of aggregate given

View File

@ -9196,8 +9196,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
explicit specification or via a typedef.
Likewise for VOLATILEP. */
constp = !! RIDBIT_SETP (RID_CONST, specbits) + TYPE_READONLY (type);
volatilep = !! RIDBIT_SETP (RID_VOLATILE, specbits) + TYPE_VOLATILE (type);
constp = !!RIDBIT_SETP (RID_CONST, specbits) + CP_TYPE_READONLY (type);
volatilep = !!RIDBIT_SETP (RID_VOLATILE, specbits) + CP_TYPE_VOLATILE (type);
type = cp_build_type_variant (type, constp, volatilep);
staticp = 0;
inlinep = !! RIDBIT_SETP (RID_INLINE, specbits);

View File

@ -501,18 +501,8 @@ tree
canonical_type_variant (t)
tree t;
{
int constp, volatilep;
if (TREE_CODE (t) == ARRAY_TYPE)
{
constp = TYPE_READONLY (TREE_TYPE (t));
volatilep = TYPE_VOLATILE (TREE_TYPE (t));
}
else
{
constp = TYPE_READONLY (t);
volatilep = TYPE_VOLATILE (t);
}
return cp_build_type_variant (TYPE_MAIN_VARIANT (t), constp, volatilep);
return cp_build_type_variant (TYPE_MAIN_VARIANT (t), CP_TYPE_READONLY (t),
CP_TYPE_VOLATILE (t));
}
/* Add OFFSET to all base types of T.