Simplify assertion, and avoid undefined shift. Based on patch by Ahmed Charles.
authorEli Friedman <eli.friedman@gmail.com>
Thu, 13 Oct 2011 23:27:48 +0000 (23:27 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Thu, 13 Oct 2011 23:27:48 +0000 (23:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141912 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

index 039e59d1d61cd330f67d539d6baacf7da670cd4a..69ad7d7b6b3278171ad5b31ad6fd9bed18337f46 100644 (file)
@@ -98,14 +98,7 @@ public:
     // Specifically ignore overflow/underflow as long as the leakage is
     // limited to the lower bits. This is to remain compatible with
     // other assemblers.
-
-    const uint64_t Mask = ~0ULL;
-    const uint64_t UpperV = (Value >> (Size * 8));
-    const uint64_t MaskF = (Mask >> (Size * 8));
-    (void)UpperV;
-    (void)MaskF;
-    assert(((Size == 8) ||
-            ((UpperV & MaskF) == 0ULL) || ((UpperV & MaskF) == MaskF)) &&
+    assert(isIntN(Size * 8 + 1, Value) &&
            "Value does not fit in the Fixup field");
 
     for (unsigned i = 0; i != Size; ++i)