re PR c++/14123 (odd number of parentheses in error message)

PR c++/14123
	* cxx-pretty-print.c (pp_cxx_ptr_operator): Properly put
	paranthesis in case of pointers to array members.
	* error.c (dump_type_prefix): Likewise.
	(dump_type_suffix): Maybe issue a whitespace when printing
	ARRAY_TYPE.

From-SVN: r83748
This commit is contained in:
Gabriel Dos Reis 2004-06-27 21:36:00 +00:00 committed by Gabriel Dos Reis
parent fadabebde6
commit 934d729b95
4 changed files with 27 additions and 0 deletions

View file

@ -1,3 +1,12 @@
2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/14123
* cxx-pretty-print.c (pp_cxx_ptr_operator): Properly put
paranthesis in case of pointers to array members.
* error.c (dump_type_prefix): Likewise.
(dump_type_suffix): Maybe issue a whitespace when printing
ARRAY_TYPE.
2004-06-27 Mark Mitchell <mark@codesourcery.com>
PR c++/16193

View file

@ -1100,6 +1100,8 @@ pp_cxx_ptr_operator (cxx_pretty_printer *pp, tree t)
case OFFSET_TYPE:
if (TYPE_PTR_TO_MEMBER_P (t))
{
if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
pp_cxx_left_paren (pp);
pp_cxx_nested_name_specifier (pp, TYPE_PTRMEM_CLASS_TYPE (t));
pp_star (pp);
pp_cxx_cv_qualifier_seq (pp, t);

View file

@ -512,11 +512,14 @@ dump_type_prefix (tree t, int flags)
if (TREE_CODE (t) == OFFSET_TYPE) /* pmfs deal with this in d_t_p */
{
pp_maybe_space (cxx_pp);
if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
pp_cxx_left_paren (cxx_pp);
dump_type (TYPE_OFFSET_BASETYPE (t), flags);
pp_cxx_colon_colon (cxx_pp);
}
pp_cxx_star (cxx_pp);
pp_cxx_cv_qualifier_seq (cxx_pp, t);
pp_base (cxx_pp)->padding = pp_before;
break;
/* Can only be reached through function pointer -- this would not be
@ -613,6 +616,7 @@ dump_type_suffix (tree t, int flags)
}
case ARRAY_TYPE:
pp_maybe_space (cxx_pp);
pp_cxx_left_bracket (cxx_pp);
if (TYPE_DOMAIN (t))
{

View file

@ -0,0 +1,12 @@
// PR 14123
struct a
{
int x[8];
};
int main()
{
int a::*n[8];
n = &a::x; // { dg-error "int \\(a::\\*\\)" }
}