Commit 934d729b by Gabriel Dos Reis Committed by Gabriel Dos Reis

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
parent fadabebd
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> 2004-06-27 Mark Mitchell <mark@codesourcery.com>
PR c++/16193 PR c++/16193
......
...@@ -1100,6 +1100,8 @@ pp_cxx_ptr_operator (cxx_pretty_printer *pp, tree t) ...@@ -1100,6 +1100,8 @@ pp_cxx_ptr_operator (cxx_pretty_printer *pp, tree t)
case OFFSET_TYPE: case OFFSET_TYPE:
if (TYPE_PTR_TO_MEMBER_P (t)) 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_cxx_nested_name_specifier (pp, TYPE_PTRMEM_CLASS_TYPE (t));
pp_star (pp); pp_star (pp);
pp_cxx_cv_qualifier_seq (pp, t); pp_cxx_cv_qualifier_seq (pp, t);
......
...@@ -512,11 +512,14 @@ dump_type_prefix (tree t, int flags) ...@@ -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 */ if (TREE_CODE (t) == OFFSET_TYPE) /* pmfs deal with this in d_t_p */
{ {
pp_maybe_space (cxx_pp); 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); dump_type (TYPE_OFFSET_BASETYPE (t), flags);
pp_cxx_colon_colon (cxx_pp); pp_cxx_colon_colon (cxx_pp);
} }
pp_cxx_star (cxx_pp); pp_cxx_star (cxx_pp);
pp_cxx_cv_qualifier_seq (cxx_pp, t); pp_cxx_cv_qualifier_seq (cxx_pp, t);
pp_base (cxx_pp)->padding = pp_before;
break; break;
/* Can only be reached through function pointer -- this would not be /* Can only be reached through function pointer -- this would not be
...@@ -613,6 +616,7 @@ dump_type_suffix (tree t, int flags) ...@@ -613,6 +616,7 @@ dump_type_suffix (tree t, int flags)
} }
case ARRAY_TYPE: case ARRAY_TYPE:
pp_maybe_space (cxx_pp);
pp_cxx_left_bracket (cxx_pp); pp_cxx_left_bracket (cxx_pp);
if (TYPE_DOMAIN (t)) if (TYPE_DOMAIN (t))
{ {
......
// PR 14123
struct a
{
int x[8];
};
int main()
{
int a::*n[8];
n = &a::x; // { dg-error "int \\(a::\\*\\)" }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment