Hello,

Code example:
#include <stdio.h>

char * a(int e) {
    char * s;
    switch (e) {
        case 0:
            s = "0";
            break;
        case 1:
            s = "1";
            break;
        case 2:
            s = "2";
            break;
        default:
            s = "def";
            break;
    }

    return s;
}


GCC 8.1:
a:
  mov eax, OFFSET FLAT:.LC0
  cmp edi, 2
  ja .L1
  mov edi, edi  <------ redundant?
  mov rax, QWORD PTR CSWTCH.0[0+rdi*8]
.L1:
  ret

Reply via email to