Hi,
I'm running into this LLVM ERROR at compile time. Does anyone seem
this before or can give me some suggestions? thanks!

-------
LLVM ERROR: Cannot select: 0x3bafa28: ch = brind 0x3bc98f0:1,
0x3bc98f0 [ORD=1] [ID=9]
  0x3bc98f0: i64,ch = load 0x3bb0db0:1, 0x3baf588,
0x3bc8c58<LD8[JumpTable]> [ORD=1] [ID=8]
    0x3baf588: i64 = add 0x3bade48, 0x3bb06c0 [ORD=1] [ID=7]
      0x3bade48: i64 = shl 0x3bb0db0, 0x3bb0470 [ORD=1] [ID=6]
        0x3bb0db0: i64,ch = CopyFromReg 0x3b78a00, 0x3bad2b8 [ORD=1] [ID=5]
          0x3bad2b8: i64 = Register %vreg1 [ID=1]
        0x3bb0470: i64 = Constant<3> [ID=4]
      0x3bb06c0: i64 = JumpTable<0> [ID=2]
    0x3bc8c58: i64 = Constant<0> [ID=3]
In function: main_proto
samples/bpf/Makefile:128: recipe for target 'samples/bpf/sockex3_kern.o' failed

My C code is below:
----------------------------------
SEC("socket/0")
static int main_proto(struct __sk_buff *skb)
{
    u32 proto2 = skb->cb[1];
    switch (proto2) {
    case 0:
        skb->cb[2]= 0;
        break;
    case 1:
        skb->cb[2]= 1;
        break;
    case 2:
        skb->cb[2]= 2;
        break;
    case 3:
        skb->cb[2]= 3;
        break;
    default:
        break;
    }
    return 0;
}

I found that removing "case 3" will prevent the error, but then I
could only have 3 cases.
[root@vm-dev bpf]# clang --version
clang version 3.7.0 (tags/RELEASE_370/final)
[root@vm-dev lib]# llc --version
LLVM (http://llvm.org/):
  LLVM version 3.7.0

Any comments are appreciated!
Regards,
William
_______________________________________________
iovisor-dev mailing list
[email protected]
https://lists.iovisor.org/mailman/listinfo/iovisor-dev

Reply via email to