http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60362

            Bug ID: 60362
           Summary: Failure to optimize away bounds check on switch when
                    range outside bounds is unreachable
           Product: gcc
           Version: 4.8.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kvanberendonck at gmail dot com

Created attachment 32229
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32229&action=edit
The test program

Test program attacked. Compiled with -O3. I had to disassemble the test program
with IDA since gdb gets really confused.

In this program I've spammed __builtin_unreachable(); everywhere to try and get
gcc to optimize away this check it emits after every switch:

cmp     byte ptr [rdx+1], 5 ; switch 6 cases
ja      sub_1004012B0

gcc isn't getting the hint, and I think it's a bug.

Reply via email to