Commit 2f159d9f by Jeff Law Committed by Jeff Law

re PR tree-optimization/65241 (ICE (in remove_local_expressions_from_table, at…

re PR tree-optimization/65241 (ICE (in remove_local_expressions_from_table, at tree-ssa-dom.c:1081))

	PR tree-optimization/65241
	* tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
	hash table if INSERT is true.

	PR tree-optimization/65241
	* gcc.c-torture/compile/pr65241.c: New test.

From-SVN: r221145
parent 5cb8b86e
2015-03-23 Jeff Law <law@redhat.com>
PR tree-optimization/65241
* tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
hash table if INSERT is true.
2015-03-03 Georg-Johann Lay <avr@gjlay.de>
PR target/65296
......
2015-03-13 Jeff Law <law@redhat.com>
PR tree-optimization/65241
* gcc.c-torture/compile/pr65241.c: New test.
2015-03-03 Georg-Johann Lay <avr@gjlay.de>
PR target/64331
......
enum E { A, B, C, D };
void fn4 (void);
int
fn1 (enum E p1)
{
static int w[D];
if (w[p1])
switch (p1)
case C:
w[p1] = 0;
}
void
fn2 (p1)
{
fn1 (p1);
}
void
fn3 (enum E p1)
{
fn2 (p1);
fn4 ();
fn2 (p1);
}
......@@ -2649,19 +2649,22 @@ lookup_avail_expr (gimple stmt, bool insert)
&& walk_non_aliased_vuses (&ref, vuse2,
vuse_eq, NULL, NULL, vuse1) != NULL))
{
struct expr_hash_elt *element2 = XNEW (struct expr_hash_elt);
*element2 = element;
element2->stamp = element2;
/* Insert the expr into the hash by replacing the current
entry and recording the value to restore in the
aval_exprs_stack. */
avail_exprs_stack.safe_push (std::make_pair (element2, *slot));
*slot = element2;
if (dump_file && (dump_flags & TDF_DETAILS))
if (insert)
{
fprintf (dump_file, "2>>> ");
print_expr_hash_elt (dump_file, *slot);
struct expr_hash_elt *element2 = XNEW (struct expr_hash_elt);
*element2 = element;
element2->stamp = element2;
/* Insert the expr into the hash by replacing the current
entry and recording the value to restore in the
avail_exprs_stack. */
avail_exprs_stack.safe_push (std::make_pair (element2, *slot));
*slot = element2;
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "2>>> ");
print_expr_hash_elt (dump_file, *slot);
}
}
return NULL_TREE;
}
......
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