mirror of git://gcc.gnu.org/git/gcc.git
Revert r263947.
2018-10-22 Martin Liska <mliska@suse.cz> PR tree-optimization/87686 Revert 2018-08-29 Martin Liska <mliska@suse.cz> * tree-switch-conversion.c (switch_conversion::expand): Strenghten assumption about gswitch statements. 2018-10-22 Martin Liska <mliska@suse.cz> PR tree-optimization/87686 * g++.dg/tree-ssa/pr87686.C: New test. From-SVN: r265388
This commit is contained in:
parent
c7acc2964e
commit
d78bcb133d
|
|
@ -1,3 +1,12 @@
|
||||||
|
2018-10-22 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
PR tree-optimization/87686
|
||||||
|
Revert
|
||||||
|
2018-08-29 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
* tree-switch-conversion.c (switch_conversion::expand):
|
||||||
|
Strenghten assumption about gswitch statements.
|
||||||
|
|
||||||
2018-10-22 Martin Liska <mliska@suse.cz>
|
2018-10-22 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
* ipa-icf.c (sem_item::compare_attributes): Remove.
|
* ipa-icf.c (sem_item::compare_attributes): Remove.
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2018-10-22 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
PR tree-optimization/87686
|
||||||
|
* g++.dg/tree-ssa/pr87686.C: New test.
|
||||||
|
|
||||||
2018-10-22 Jakub Jelinek <jakub@redhat.com>
|
2018-10-22 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* g++.target/i386/i386.exp: Use g++-dg-runtest to iterate
|
* g++.target/i386/i386.exp: Use g++-dg-runtest to iterate
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O2" } */
|
||||||
|
|
||||||
|
class a {
|
||||||
|
public:
|
||||||
|
enum b { c, g, d, e } f;
|
||||||
|
a(b h) : f(h) {}
|
||||||
|
a i() {
|
||||||
|
switch (f) {
|
||||||
|
case d:
|
||||||
|
return c;
|
||||||
|
case e:
|
||||||
|
return g;
|
||||||
|
}
|
||||||
|
} /* { dg-warning "control reaches end of non-void function" } */
|
||||||
|
};
|
||||||
|
struct k {
|
||||||
|
a j;
|
||||||
|
k l() { j.i(); } /* { dg-warning "no return statement in function returning non-void" } */
|
||||||
|
};
|
||||||
|
void m(k h) { h.l(); }
|
||||||
|
|
@ -913,7 +913,14 @@ switch_conversion::expand (gswitch *swtch)
|
||||||
/* Group case labels so that we get the right results from the heuristics
|
/* Group case labels so that we get the right results from the heuristics
|
||||||
that decide on the code generation approach for this switch. */
|
that decide on the code generation approach for this switch. */
|
||||||
m_cfg_altered |= group_case_labels_stmt (swtch);
|
m_cfg_altered |= group_case_labels_stmt (swtch);
|
||||||
gcc_assert (gimple_switch_num_labels (swtch) >= 2);
|
|
||||||
|
/* If this switch is now a degenerate case with only a default label,
|
||||||
|
there is nothing left for us to do. */
|
||||||
|
if (gimple_switch_num_labels (swtch) < 2)
|
||||||
|
{
|
||||||
|
m_reason = "switch is a degenerate case";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
collect (swtch);
|
collect (swtch);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue