re PR middle-end/51010 (bad diagnostics: #'ssa_name' not supported by pp_c_expression#]')

2011-11-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51010
	c-family/
	* c-pretty-print.c (pp_c_expression): Handle SSA_NAMEs.

	cp/
	* error.c (dump_expr): Handle SSA_NAMEs.

	* c-c++-common/uninit-pr51010.c: New testcase.

From-SVN: r181165
This commit is contained in:
Richard Guenther 2011-11-08 15:14:21 +00:00 committed by Richard Biener
parent 07f03cd348
commit a59526334d
6 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2011-11-08 Richard Guenther <rguenther@suse.de>
PR middle-end/51010
c-family/
2011-11-07 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Torvald Riegel <triegel@redhat.com>

View File

@ -2129,6 +2129,13 @@ pp_c_expression (c_pretty_printer *pp, tree e)
pp_primary_expression (pp, e);
break;
case SSA_NAME:
if (!DECL_ARTIFICIAL (SSA_NAME_VAR (e)))
pp_c_expression (pp, SSA_NAME_VAR (e));
else
pp_c_ws_string (pp, M_("<unknown>"));
break;
case POSTINCREMENT_EXPR:
case POSTDECREMENT_EXPR:
case ARRAY_REF:

View File

@ -1,3 +1,8 @@
2011-11-08 Richard Guenther <rguenther@suse.de>
PR middle-end/51010
* error.c (dump_expr): Handle SSA_NAMEs.
2011-11-07 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Torvald Riegel <triegel@redhat.com>

View File

@ -1792,6 +1792,13 @@ dump_expr (tree t, int flags)
| TFF_NO_FUNCTION_ARGUMENTS));
break;
case SSA_NAME:
if (!DECL_ARTIFICIAL (SSA_NAME_VAR (t)))
dump_expr (SSA_NAME_VAR (t), flags);
else
pp_cxx_ws_string (cxx_pp, M_("<unknown>"));
break;
case INTEGER_CST:
case REAL_CST:
case STRING_CST:

View File

@ -1,3 +1,8 @@
2011-11-08 Richard Guenther <rguenther@suse.de>
PR middle-end/51010
* c-c++-common/uninit-pr51010.c: New testcase.
2011-11-08 Jakub Jelinek <jakub@redhat.com>
* lib/target-supports.exp (check_effective_target_vect_call_sqrtf,

View File

@ -0,0 +1,13 @@
/* { dg-do compile } */
/* { dg-options "-O -Wuninitialized" } */
int f (int j)
{
int a [10];
return a [j]; /* { dg-warning "a\\\[j\\\]. is used uninitialized" } */
}
int g (int j)
{
int a [10];
return a [j+1]; /* { dg-warning "a\\\[<unknown>\\\]. is used uninitialized" } */
}