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>
|
||||
|
||||
* 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>
|
||||
|
||||
* 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
|
||||
that decide on the code generation approach for this switch. */
|
||||
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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue