On Fri, Dec 16, 2016 at 02:58:59PM +0100, Richard Biener wrote:
> On Fri, Dec 16, 2016 at 2:03 PM, Bernd Schmidt <[email protected]> wrote:
> > On 12/16/2016 12:49 PM, Marek Polacek wrote:
> >
> >> But as this testcase shows, this breaks when the default label shares a
> >> label
> >> with another case. On this testcase, when we reach the switch, we know
> >> that
> >> argc is either 1, 2, or 3. So by the time we reach vrp2, the IR will have
> >> been optimized to
> >>
> >> switch (argc) {
> >> default:
> >> case 3:
> >> // argc will be considered 1 despite the case 3
> >> break;
> >> case 2:
> >> ...
> >> }
> >
> >
> > Shouldn't we just remove the "case 3:" from the switch in this case? Would
> > that fix things?
>
> We probably should indeed. But can we rely on this?
I think we should do both -- apply my fix + investigated why we kept case 3
around. I'm willing to look into this.
Marek