https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107847
Bug ID: 107847
Summary: error: integer overflow in expression in bpf-next
test_xdp_vlan.c
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: james.hilliard1 at gmail dot com
Target Milestone: ---
I'm seeing this error which does not occur in llvm for a bpf
test(test_xdp_vlan.c) in bpf-next, I'm not sure if this is an upstream bug in
the test itself or a bug in gcc:
progs/test_xdp_vlan.c: In function 'xdp_prognum1':
progs/test_xdp_vlan.c:163:25: error: integer overflow in expression '(short
int)(((__builtin_constant_p((int)vlan_hdr->h_vlan_TCI)) != 0 ? (int)(short
unsigned int)((short int)((int)vlan_hdr->h_vlan_TCI << 8 >> 8) << 8 | (short
int)((int)vlan_hdr->h_vlan_TCI << 0 >> 8 << 0)) & 61440 :
(int)__builtin_bswap16(vlan_hdr->h_vlan_TCI) & 61440) << 8 >> 8) << 8' of type
'short int' results in '0' [-Werror=overflow]
163 | bpf_htons((bpf_ntohs(vlan_hdr->h_vlan_TCI) &
0xf000)
| ^~~~~~~~~