re PR tree-optimization/63574 (ICE building libjava (segfault) on arm-linux-gnueabihf)
PR ipa/63574 PR ipa/63664 * g++.dg/ipa/pr63574.C: New test. * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added. (func_checker::compare_gimple_label): Simlified comparison introduced. * ipa-icf-gimple.h: Missing comment added. From-SVN: r216913
This commit is contained in:
parent
fca380479c
commit
47a668cd26
5 changed files with 69 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
|||
2014-10-30 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR ipa/63574
|
||||
PR ipa/63664
|
||||
* ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
|
||||
(func_checker::compare_gimple_label): Simlified comparison introduced.
|
||||
* ipa-icf-gimple.h: Missing comment added.
|
||||
|
||||
2014-10-30 Jeff Law <law@redhat.com>
|
||||
|
||||
* config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
|
||||
|
|
|
@ -527,6 +527,10 @@ func_checker::compare_variable_decl (tree t1, tree t2)
|
|||
return return_with_debug (ret);
|
||||
}
|
||||
|
||||
|
||||
/* Function visits all gimple labels and creates corresponding
|
||||
mapping between basic blocks and labels. */
|
||||
|
||||
void
|
||||
func_checker::parse_labels (sem_bb *bb)
|
||||
{
|
||||
|
@ -765,7 +769,8 @@ func_checker::compare_gimple_label (gimple g1, gimple g2)
|
|||
if (FORCED_LABEL (t1) || FORCED_LABEL (t2))
|
||||
return return_false_with_msg ("FORCED_LABEL");
|
||||
|
||||
return compare_tree_ssa_label (t1, t2);
|
||||
/* As the pass build BB to label mapping, no further check is needed. */
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Verifies for given GIMPLEs S1 and S2 that
|
||||
|
|
|
@ -145,6 +145,8 @@ public:
|
|||
/* Memory release routine. */
|
||||
~func_checker();
|
||||
|
||||
/* Function visits all gimple labels and creates corresponding
|
||||
mapping between basic blocks and labels. */
|
||||
void parse_labels (sem_bb *bb);
|
||||
|
||||
/* Basic block equivalence comparison function that returns true if
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2014-10-30 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR ipa/63574
|
||||
PR ipa/63664
|
||||
* g++.dg/ipa/pr63574.C: New test.
|
||||
|
||||
2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* gcc.target/aarch64/madd_after_asm_1.c: New test.
|
||||
|
|
47
gcc/testsuite/g++.dg/ipa/pr63574.C
Normal file
47
gcc/testsuite/g++.dg/ipa/pr63574.C
Normal file
|
@ -0,0 +1,47 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3" } */
|
||||
|
||||
class test
|
||||
{
|
||||
public:
|
||||
test (int val, int *p)
|
||||
{
|
||||
int_val = *p;
|
||||
bool_val = (val != int_val);
|
||||
}
|
||||
|
||||
~test ()
|
||||
{
|
||||
if (!bool_val)
|
||||
return;
|
||||
}
|
||||
|
||||
int get_int_val () const
|
||||
{
|
||||
return int_val;
|
||||
}
|
||||
|
||||
private:
|
||||
bool bool_val;
|
||||
int int_val;
|
||||
};
|
||||
|
||||
static int __attribute__ ((noinline))
|
||||
f1 (int i, int *p)
|
||||
{
|
||||
test obj (i, p);
|
||||
return obj.get_int_val ();
|
||||
}
|
||||
|
||||
static int __attribute__ ((noinline))
|
||||
f2 (int i, int *p)
|
||||
{
|
||||
test obj (i, p);
|
||||
return obj.get_int_val ();
|
||||
}
|
||||
|
||||
int
|
||||
f (int i, int *p)
|
||||
{
|
||||
return f1 (i, p) + f2 (i, p);
|
||||
}
|
Loading…
Add table
Reference in a new issue