llvm-6502/lib/VMCore
Zhou Sheng 9853db7072 Fix a PassManager pointer use-after-free bug.
The bug can be triggered when we require LoopInfo analysis ahead of DominatorTree construction in a Module Pass. The cause is that the LoopInfo analysis itself also invokes DominatorTree construction, therefore, when PassManager schedules LoopInfo, it will add DominatorTree first. Then after that, when the PassManger turns to schedule DominatorTree invoked by the above ModulePass, it finds there is already a DominatorTree, so it delete the redundant one. However, somehow it still try to access that pass pointer after free as code pasted below, which results in segment fault.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168581 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-26 05:45:53 +00:00
..
AsmWriter.cpp Remove trailing whitespace 2012-11-15 22:34:00 +00:00
Attributes.cpp Make the AttrListPtr object a part of the LLVMContext. 2012-11-20 05:09:20 +00:00
AttributesImpl.h Make the AttrListPtr object a part of the LLVMContext. 2012-11-20 05:09:20 +00:00
AutoUpgrade.cpp Attributes Rewrite 2012-10-15 04:46:55 +00:00
BasicBlock.cpp
CMakeLists.txt Don't explicitly require RTTI and EH. 2012-10-26 12:15:29 +00:00
ConstantFold.cpp Fix isEliminableCastPair to work correctly in the presence of pointers 2012-10-30 16:03:32 +00:00
ConstantFold.h
Constants.cpp Add a new function to ConstantExpr - getAsInstruction. This returns its Instruction* corollary, which may be useful if a user 2012-11-17 17:56:30 +00:00
ConstantsContext.h
Core.cpp Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change. 2012-10-15 20:35:56 +00:00
DataLayout.cpp Disallow the undocumented practice of starting the datalayout string with '-'. 2012-11-23 14:51:42 +00:00
DebugInfo.cpp 80-column and whitespace fixups. 2012-11-20 00:15:36 +00:00
DebugLoc.cpp
DIBuilder.cpp Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." 2012-11-13 23:30:43 +00:00
Dominators.cpp
Function.cpp Attributes Rewrite 2012-10-15 04:46:55 +00:00
GCOV.cpp
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp Remove trailing whitespace 2012-11-15 22:34:00 +00:00
Instructions.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.cpp
LLVMContextImpl.cpp Make the AttrListPtr object a part of the LLVMContext. 2012-11-20 05:09:20 +00:00
LLVMContextImpl.h Move semantics are great, don't destroy the optimization opportunity with trivial copy ctors. 2012-11-25 11:52:03 +00:00
Makefile Don't explicitly require RTTI and EH. 2012-10-26 12:15:29 +00:00
Metadata.cpp
Module.cpp
Pass.cpp
PassManager.cpp Fix a PassManager pointer use-after-free bug. 2012-11-26 05:45:53 +00:00
PassRegistry.cpp
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
TargetTransformInfo.cpp Lowercase the argument for TargetTransformInfo so it's consistent with all other passes. 2012-10-26 18:46:15 +00:00
Type.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00
TypeFinder.cpp
Use.cpp
User.cpp Fix ODR violations: a virtual function must be defined, even if it's never 2012-10-24 00:30:41 +00:00
Value.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00