capstone-engine / capstone

Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
http://www.capstone-engine.org
7.18k stars 1.52k forks source link

[next] SH: Use bitwise OR with mask for sign extension #2389

Open lhsazevedo opened 2 weeks ago

lhsazevedo commented 2 weeks ago

Cherry pick of #2371 to next branch

Rot127 commented 2 weeks ago

@lhsazevedo Please test it with clang-tidy-18. The CI Ubuntu only has version 14 or something. Which reports false positives for the va_args. If everything is fine with clang-tidy-18 it can be ignored.

lhsazevedo commented 2 weeks ago

@Rot127 clang-tidy 18 also warns about uninitialized va_args. Perhaps it is a bug in clang-tidy?

/home/lhsazevedo/code/tweaking/capstone/arch/AArch64/AArch64Mapping.c:2162:14: warning: va_arg() is called on an uninitialized va_list [clang-analyzer-valist.Uninitialized]
 2162 |                 int Tile = va_arg(args, int);
/home/lhsazevedo/code/tweaking/capstone/arch/AArch64/AArch64Mapping.c:2211:18: warning: va_arg() is called on an uninitialized va_list [clang-analyzer-valist.Uninitialized]
 2211 |                 int8_t First = va_arg(args, int);
/home/lhsazevedo/code/tweaking/capstone/arch/SH/SHDisassembler.c:102:9: warning: va_arg() is called on an uninitialized va_list [clang-analyzer-valist.Uninitialized]
  102 |                 grp = va_arg(g, sh_insn_group);

There are more warnings for SHDisassembler, but they all seem to be unrelated to this change

Rot127 commented 2 weeks ago

Sorry, those AArch64 ones can be ignored. I fixed them in the AArch64 update. Just check the SH one please.

lhsazevedo commented 1 week ago

@Rot127, I haven't had time to check the SH disassembler yet as the warnings are from a different part of the code. I'll get on it as soon as I can. Thanks for your patience!