decl.c (complete_array_type): Allocate off same obstack.
* decl.c (complete_array_type): Allocate off same obstack. Fix DO_DEFAULT comment to match reality. * friend.c (make_friend_class): Fix diagnostic typo. From-SVN: r27210
This commit is contained in:
parent
9cb15ab62f
commit
6ab5c7408e
@ -1,3 +1,10 @@
|
|||||||
|
1999-05-28 Nathan Sidwell <nathan@acm.org>
|
||||||
|
|
||||||
|
* decl.c (complete_array_type): Allocate off same obstack. Fix
|
||||||
|
DO_DEFAULT comment to match reality.
|
||||||
|
|
||||||
|
* friend.c (make_friend_class): Fix diagnostic typo.
|
||||||
|
|
||||||
1999-05-28 Mark Mitchell <mark@codesourcery.com>
|
1999-05-28 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
* decl.c (lookup_namespace_name): Handle getting a
|
* decl.c (lookup_namespace_name): Handle getting a
|
||||||
|
@ -8558,7 +8558,7 @@ expand_static_init (decl, init)
|
|||||||
|
|
||||||
/* Make TYPE a complete type based on INITIAL_VALUE.
|
/* Make TYPE a complete type based on INITIAL_VALUE.
|
||||||
Return 0 if successful, 1 if INITIAL_VALUE can't be deciphered,
|
Return 0 if successful, 1 if INITIAL_VALUE can't be deciphered,
|
||||||
2 if there was no information (in which case assume 1 if DO_DEFAULT). */
|
2 if there was no information (in which case assume 0 if DO_DEFAULT). */
|
||||||
|
|
||||||
int
|
int
|
||||||
complete_array_type (type, initial_value, do_default)
|
complete_array_type (type, initial_value, do_default)
|
||||||
@ -8568,6 +8568,9 @@ complete_array_type (type, initial_value, do_default)
|
|||||||
register tree maxindex = NULL_TREE;
|
register tree maxindex = NULL_TREE;
|
||||||
int value = 0;
|
int value = 0;
|
||||||
|
|
||||||
|
/* Allocate on the same obstack as TYPE. */
|
||||||
|
push_obstacks (TYPE_OBSTACK (type), TYPE_OBSTACK (type));
|
||||||
|
|
||||||
if (initial_value)
|
if (initial_value)
|
||||||
{
|
{
|
||||||
/* Note MAXINDEX is really the maximum index,
|
/* Note MAXINDEX is really the maximum index,
|
||||||
@ -8615,23 +8618,28 @@ complete_array_type (type, initial_value, do_default)
|
|||||||
if (maxindex)
|
if (maxindex)
|
||||||
{
|
{
|
||||||
tree itype;
|
tree itype;
|
||||||
|
tree domain;
|
||||||
|
|
||||||
|
domain = build_index_type (maxindex);
|
||||||
|
TYPE_DOMAIN (type) = domain;
|
||||||
|
|
||||||
TYPE_DOMAIN (type) = build_index_type (maxindex);
|
|
||||||
if (! TREE_TYPE (maxindex))
|
if (! TREE_TYPE (maxindex))
|
||||||
TREE_TYPE (maxindex) = TYPE_DOMAIN (type);
|
TREE_TYPE (maxindex) = domain;
|
||||||
if (initial_value)
|
if (initial_value)
|
||||||
itype = TREE_TYPE (initial_value);
|
itype = TREE_TYPE (initial_value);
|
||||||
else
|
else
|
||||||
itype = NULL;
|
itype = NULL;
|
||||||
if (itype && !TYPE_DOMAIN (itype))
|
if (itype && !TYPE_DOMAIN (itype))
|
||||||
TYPE_DOMAIN (itype) = TYPE_DOMAIN (type);
|
TYPE_DOMAIN (itype) = domain;
|
||||||
/* The type of the main variant should never be used for arrays
|
/* The type of the main variant should never be used for arrays
|
||||||
of different sizes. It should only ever be completed with the
|
of different sizes. It should only ever be completed with the
|
||||||
size of the array. */
|
size of the array. */
|
||||||
if (! TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)))
|
if (! TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)))
|
||||||
TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)) = TYPE_DOMAIN (type);
|
TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)) = domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pop_obstacks();
|
||||||
|
|
||||||
/* Lay out the type now that we can get the real answer. */
|
/* Lay out the type now that we can get the real answer. */
|
||||||
|
|
||||||
layout_type (type);
|
layout_type (type);
|
||||||
|
@ -296,7 +296,7 @@ make_friend_class (type, friend_type)
|
|||||||
template <class T> friend typename S<T>::X;
|
template <class T> friend typename S<T>::X;
|
||||||
|
|
||||||
which isn't any of these. */
|
which isn't any of these. */
|
||||||
cp_error ("typename type `%T' declare `friend'",
|
cp_error ("typename type `%T' declared `friend'",
|
||||||
friend_type);
|
friend_type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user