re PR c++/78051 (error: dead STMT in EH table when using -O2)

2016-10-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78051
	* tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
	and mark replaced if folding did something.

	* g++.dg/torture/pr78051.C: New testcase.

From-SVN: r241394
This commit is contained in:
Richard Biener 2016-10-21 07:07:06 +00:00 committed by Richard Biener
parent 924fae46b3
commit a20d03c882
4 changed files with 25 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-10-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/78051
* tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
and mark replaced if folding did something.
2016-10-21 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"

View File

@ -1,3 +1,8 @@
2016-10-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/78051
* g++.dg/torture/pr78051.C: New testcase.
2016-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
* c-c++-common/wdate-time.c: Restored test case.

View File

@ -0,0 +1,9 @@
extern "C" {
typedef int FILE;
int *stdout;
int fputs(const char *, FILE *);
}
void print_packet() {
const char *color[]{"", "", ""};
fputs(color[2], stdout);
}

View File

@ -10850,7 +10850,11 @@ evrp_dom_walker::before_dom_children (basic_block bb)
= replace_uses_in (stmt, op_with_constant_singleton_value_range);
if (fold_stmt (&gsi, follow_single_use_edges)
|| did_replace)
update_stmt (gsi_stmt (gsi));
{
stmt = gsi_stmt (gsi);
update_stmt (stmt);
did_replace = true;
}
if (did_replace)
{