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:
parent
ccb5954fea
commit
0aaa908966
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user