[llvm] r328755 - [MemorySSA] Turn an assert into a condition

George Burgess IV via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 28 20:12:04 PDT 2018


Author: gbiv
Date: Wed Mar 28 20:12:03 2018
New Revision: 328755

URL: http://llvm.org/viewvc/llvm-project?rev=328755&view=rev
Log:
[MemorySSA] Turn an assert into a condition

Eli pointed out that variadic functions are totally a thing, so this
assert is incorrect.

No test-case is provided, since the only way this assert fires is if a
specific DenseMap falls back to doing `isEqual` checks, and that seems
fairly brittle (and requires a pyramid of growing
`call void (i8, ...) @varargs(i8 0)`).

Modified:
    llvm/trunk/lib/Analysis/MemorySSA.cpp

Modified: llvm/trunk/lib/Analysis/MemorySSA.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemorySSA.cpp?rev=328755&r1=328754&r2=328755&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/MemorySSA.cpp (original)
+++ llvm/trunk/lib/Analysis/MemorySSA.cpp Wed Mar 28 20:12:03 2018
@@ -159,8 +159,8 @@ public:
     if (CS.getCalledValue() != Other.CS.getCalledValue())
       return false;
 
-    assert(CS.arg_size() == Other.CS.arg_size());
-    return std::equal(CS.arg_begin(), CS.arg_end(), Other.CS.arg_begin());
+    return CS.arg_size() == Other.CS.arg_size() &&
+           std::equal(CS.arg_begin(), CS.arg_end(), Other.CS.arg_begin());
   }
 
 private:




More information about the llvm-commits mailing list