[llvm] r292700 - LowerTypeTests: Fix use-after-free. Found by asan/msan.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 20 17:57:44 PST 2017


Author: pcc
Date: Fri Jan 20 19:57:44 2017
New Revision: 292700

URL: http://llvm.org/viewvc/llvm-project?rev=292700&view=rev
Log:
LowerTypeTests: Fix use-after-free. Found by asan/msan.

Modified:
    llvm/trunk/lib/Transforms/IPO/LowerTypeTests.cpp

Modified: llvm/trunk/lib/Transforms/IPO/LowerTypeTests.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/LowerTypeTests.cpp?rev=292700&r1=292699&r2=292700&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/LowerTypeTests.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/LowerTypeTests.cpp Fri Jan 20 19:57:44 2017
@@ -1344,8 +1344,11 @@ bool LowerTypeTestsModule::lower() {
     return false;
 
   if (Action == SummaryAction::Import) {
-    for (const Use &U : TypeTestFunc->uses())
-      importTypeTest(cast<CallInst>(U.getUser()));
+    for (auto UI = TypeTestFunc->use_begin(), UE = TypeTestFunc->use_end();
+         UI != UE;) {
+      auto *CI = cast<CallInst>((*UI++).getUser());
+      importTypeTest(CI);
+    }
     return true;
   }
 




More information about the llvm-commits mailing list