commit | fee741b00dd092dbff1a027d9c02957e0832eccf | [log] [tgz] |
---|---|---|
author | Edwin Török <edwintorok@gmail.com> | Sun May 04 08:51:25 2008 +0000 |
committer | Edwin Török <edwintorok@gmail.com> | Sun May 04 08:51:25 2008 +0000 |
tree | c159ffbb43b5fd94f6071fd825a698dbf1b9b18d | |
parent | d7e248972f2f6a3f57fdf0e93fad08424fdff75b [diff] |
processStore may delete the instruction, avoid using dyn_cast<> on already freed memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50618 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/lib/Transforms/Scalar/MemCpyOptimizer.cpp index d6e5f39..8036bf8 100644 --- a/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/lib/Transforms/Scalar/MemCpyOptimizer.cpp
@@ -718,8 +718,7 @@ if (StoreInst *SI = dyn_cast<StoreInst>(I)) changed_function |= processStore(SI, BI); - - if (MemCpyInst* M = dyn_cast<MemCpyInst>(I)) { + else if (MemCpyInst* M = dyn_cast<MemCpyInst>(I)) { changed_function |= processMemCpy(M); } }