[llvm] c0562ff - [AVR] Fix UB "left shift of negative value" detected by sanitizer
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 5 03:00:56 PDT 2025
Author: Sergei Barannikov
Date: 2025-09-05T13:00:33+03:00
New Revision: c0562ff27f4de086e4687c5ad5aaea6102faf0b8
URL: https://github.com/llvm/llvm-project/commit/c0562ff27f4de086e4687c5ad5aaea6102faf0b8
DIFF: https://github.com/llvm/llvm-project/commit/c0562ff27f4de086e4687c5ad5aaea6102faf0b8.diff
LOG: [AVR] Fix UB "left shift of negative value" detected by sanitizer
Introduced by 1793fa89.
Added:
Modified:
llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp b/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
index c87887f17f914..9df69849c41de 100644
--- a/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
+++ b/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
@@ -110,7 +110,7 @@ static DecodeStatus decodeRelCondBrTarget7(MCInst &Inst, unsigned Field,
uint64_t Address,
const MCDisassembler *Decoder) {
// The legal range is [-128, 126] (in bytes).
- Inst.addOperand(MCOperand::createImm(SignExtend32(Field, 7) << 1));
+ Inst.addOperand(MCOperand::createImm(SignExtend32(Field, 7) * 2));
return MCDisassembler::Success;
}
@@ -118,7 +118,7 @@ static DecodeStatus decodeRelCondBrTarget13(MCInst &Inst, unsigned Field,
uint64_t Address,
const MCDisassembler *Decoder) {
// The legal range is [-4096, 4094] (in bytes).
- Inst.addOperand(MCOperand::createImm(SignExtend32(Field, 12) << 1));
+ Inst.addOperand(MCOperand::createImm(SignExtend32(Field, 12) * 2));
return MCDisassembler::Success;
}
More information about the llvm-commits
mailing list