mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-30 21:11:21 +08:00
(c_build_type_variant): Don't futz with main type variant of array since C...
(c_build_type_variant): Don't futz with main type variant of array since C Standard requires main type variant of array-of-const also be array-of-const. From-SVN: r14195
This commit is contained in:
parent
a68d4b7592
commit
3ab1999b99
@ -2514,27 +2514,8 @@ c_build_type_variant (type, constp, volatilep)
|
||||
int constp, volatilep;
|
||||
{
|
||||
if (TREE_CODE (type) == ARRAY_TYPE)
|
||||
{
|
||||
tree real_main_variant = TYPE_MAIN_VARIANT (type);
|
||||
|
||||
push_obstacks (TYPE_OBSTACK (real_main_variant),
|
||||
TYPE_OBSTACK (real_main_variant));
|
||||
type = build_array_type (c_build_type_variant (TREE_TYPE (type),
|
||||
constp, volatilep),
|
||||
TYPE_DOMAIN (type));
|
||||
|
||||
/* TYPE must be on same obstack as REAL_MAIN_VARIANT. If not,
|
||||
make a copy. (TYPE might have come from the hash table and
|
||||
REAL_MAIN_VARIANT might be in some function's obstack.) */
|
||||
|
||||
if (TYPE_OBSTACK (type) != TYPE_OBSTACK (real_main_variant))
|
||||
{
|
||||
type = copy_node (type);
|
||||
TYPE_POINTER_TO (type) = TYPE_REFERENCE_TO (type) = 0;
|
||||
}
|
||||
|
||||
TYPE_MAIN_VARIANT (type) = real_main_variant;
|
||||
pop_obstacks ();
|
||||
}
|
||||
return build_array_type (c_build_type_variant (TREE_TYPE (type),
|
||||
constp, volatilep),
|
||||
TYPE_DOMAIN (type));
|
||||
return build_type_variant (type, constp, volatilep);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user