[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