From fffd56ecdf348630bba0e1500229f2fa8d7e8101 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Wed, 20 Aug 2014 21:56:43 +0000 Subject: Fix undefined behavior (left shift of negative value) in SystemZ backend. This bug is reported by UBSan. llvm-svn: 216131 --- llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp') diff --git a/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp b/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp index db1a005353b..eff4ae3baf3 100644 --- a/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp @@ -294,7 +294,7 @@ static void emitIncrement(MachineBasicBlock &MBB, else { Opcode = SystemZ::AGFI; // Make sure we maintain 8-byte stack alignment. - int64_t MinVal = -int64_t(1) << 31; + int64_t MinVal = -uint64_t(1) << 31; int64_t MaxVal = (int64_t(1) << 31) - 8; if (ThisVal < MinVal) ThisVal = MinVal; -- cgit v1.2.3