decl.c (grokparms): Unobfuscate and get correct diagnostic for parameters with pointers to arrays...
cp: * decl.c (grokparms): Unobfuscate and get correct diagnostic for parameters with pointers to arrays of unknown bound. From-SVN: r38901
This commit is contained in:
parent
b37bf5bdb3
commit
98979fe0b0
|
@ -1,3 +1,8 @@
|
|||
2001-01-11 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* decl.c (grokparms): Unobfuscate and get correct diagnostic for
|
||||
parameters with pointers to arrays of unknown bound.
|
||||
|
||||
2001-01-11 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* parse.y (template_parm_header, template_spec_header): New
|
||||
|
|
|
@ -11907,15 +11907,22 @@ grokparms (first_parm)
|
|||
{
|
||||
/* [dcl.fct]/6, parameter types cannot contain pointers
|
||||
(references) to arrays of unknown bound. */
|
||||
tree t = type;
|
||||
tree t = TREE_TYPE (type);
|
||||
int ptr = TYPE_PTR_P (type);
|
||||
|
||||
while (POINTER_TYPE_P (t)
|
||||
|| (TREE_CODE (t) == ARRAY_TYPE
|
||||
&& TYPE_DOMAIN (t) != NULL_TREE))
|
||||
t = TREE_TYPE (t);
|
||||
while (1)
|
||||
{
|
||||
if (TYPE_PTR_P (t))
|
||||
ptr = 1;
|
||||
else if (TREE_CODE (t) != ARRAY_TYPE)
|
||||
break;
|
||||
else if (!TYPE_DOMAIN (t))
|
||||
break;
|
||||
t = TREE_TYPE (t);
|
||||
}
|
||||
if (TREE_CODE (t) == ARRAY_TYPE)
|
||||
cp_error ("parameter `%D' includes %s to array of unknown bound `%T'",
|
||||
decl, TYPE_PTR_P (type) ? "pointer" : "reference", t);
|
||||
decl, ptr ? "pointer" : "reference", t);
|
||||
}
|
||||
|
||||
DECL_ARG_TYPE (decl) = TREE_TYPE (decl);
|
||||
|
|
Loading…
Reference in New Issue