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>
|
2001-01-11 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* parse.y (template_parm_header, template_spec_header): New
|
* parse.y (template_parm_header, template_spec_header): New
|
||||||
|
|
|
@ -11907,15 +11907,22 @@ grokparms (first_parm)
|
||||||
{
|
{
|
||||||
/* [dcl.fct]/6, parameter types cannot contain pointers
|
/* [dcl.fct]/6, parameter types cannot contain pointers
|
||||||
(references) to arrays of unknown bound. */
|
(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)
|
while (1)
|
||||||
|| (TREE_CODE (t) == ARRAY_TYPE
|
{
|
||||||
&& TYPE_DOMAIN (t) != NULL_TREE))
|
if (TYPE_PTR_P (t))
|
||||||
t = TREE_TYPE (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)
|
if (TREE_CODE (t) == ARRAY_TYPE)
|
||||||
cp_error ("parameter `%D' includes %s to array of unknown bound `%T'",
|
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);
|
DECL_ARG_TYPE (decl) = TREE_TYPE (decl);
|
||||||
|
|
Loading…
Reference in New Issue