diff options
author | Guillermo E. Martinez <guillermo.e.martinez@oracle.com> | 2023-02-03 11:17:49 -0600 |
---|---|---|
committer | Guillermo E. Martinez <guillermo.e.martinez@oracle.com> | 2023-02-03 11:18:50 -0600 |
commit | 7f6ebecd56e690012b05af0a492280765b17f186 (patch) | |
tree | 64dad324277f2a48ec5ed43bcb556261e08b03ed /include | |
parent | 5a19bfd673d88184b5426b732178042ec24b248d (diff) | |
download | binutils-7f6ebecd56e690012b05af0a492280765b17f186.zip binutils-7f6ebecd56e690012b05af0a492280765b17f186.tar.gz binutils-7f6ebecd56e690012b05af0a492280765b17f186.tar.bz2 |
bpf: fix error conversion from long unsigned int to unsigned int [-Werror=overflow]
Regenerating BPF target using the maintainer mode emits:
.../opcodes/bpf-opc.c:57:11: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘18446744073709486335’ to ‘4294902015’ [-Werror=overflow]
57 | 64, 64, 0xffffffffffff00ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
The use of a narrow size to handle the mask CGEN in instruction format
is causing this error. Additionally eBPF `call' instructions
constructed by expressions using symbols (BPF_PSEUDO_CALL) emits
annotations in `src' field of the instruction, used to identify BPF
target endianness.
cpu/
* bpf.cpu (define-call-insn): Remove `src' field from
instruction mask.
include/
*opcode/cge.h (CGEN_IFMT): Adjust mask bit width.
opcodes/
* bpf-opc.c: Regenerate.
Diffstat (limited to 'include')
-rw-r--r-- | include/opcode/cgen.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h index 36b88f1..6c0732b 100644 --- a/include/opcode/cgen.h +++ b/include/opcode/cgen.h @@ -914,7 +914,7 @@ typedef struct Each insn's value is stored with the insn. The first step in recognizing an insn for disassembly is (opcode & mask) == value. */ - CGEN_INSN_INT mask; + CGEN_INSN_LGUINT mask; #define CGEN_IFMT_MASK(ifmt) ((ifmt)->mask) /* Instruction fields. |