[llvm] r237408 - MC: Avoid some UB caused by left shifting a negative value. NFC

Justin Bogner mail at justinbogner.com
Thu May 14 16:54:49 PDT 2015


Author: bogner
Date: Thu May 14 18:54:49 2015
New Revision: 237408

URL: http://llvm.org/viewvc/llvm-project?rev=237408&view=rev
Log:
MC: Avoid some UB caused by left shifting a negative value. NFC

Modified:
    llvm/trunk/lib/MC/MachObjectWriter.cpp

Modified: llvm/trunk/lib/MC/MachObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MachObjectWriter.cpp?rev=237408&r1=237407&r2=237408&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MachObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/MachObjectWriter.cpp Thu May 14 18:54:49 2015
@@ -637,7 +637,7 @@ void MachObjectWriter::ComputeSymbolTabl
       unsigned Index = Rel.Sym->getIndex();
       assert(isInt<24>(Index));
       if (IsLittleEndian)
-        Rel.MRE.r_word1 = (Rel.MRE.r_word1 & (-1 << 24)) | Index | (1 << 27);
+        Rel.MRE.r_word1 = (Rel.MRE.r_word1 & (~0U << 24)) | Index | (1 << 27);
       else
         Rel.MRE.r_word1 = (Rel.MRE.r_word1 & 0xff) | Index << 8 | (1 << 4);
     }





More information about the llvm-commits mailing list