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 Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. 2012-09-15 17:09:36 +00:00
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 Pull the simple parts of DenseMapInfo<DebugLoc> inline and prune includes. 2012-07-19 15:00:34 +00:00
DIBuilder.cpp Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." 2012-11-13 23:30:43 +00:00
Dominators.cpp Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
Function.cpp Attributes Rewrite 2012-10-15 04:46:55 +00:00
GCOV.cpp Don't do actual work inside an assert statement. Fixes PR11760! 2012-09-23 03:58:21 +00:00
Globals.cpp Clean-up after r159077. 2012-06-23 12:14:23 +00:00
GVMaterializer.cpp
InlineAsm.cpp [ms-inline asm] Enumerate the InlineAsm dialects and rename the nsdialect to 2012-09-05 19:00:49 +00:00
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 Add IRBuilder code for adding !tbaa.struct metadata tags to llvm.memcpy calls. 2012-09-26 22:17:14 +00:00
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.cpp Define an official slot for the new !tbaa.struct metadata tag. 2012-09-13 17:56:17 +00:00
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 Typo. 2012-08-14 01:09:10 +00:00
Module.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Pass.cpp Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
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 Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
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 Replace calls to getSizeInBits with getExtendedSizeInBits since its already known its an extended type. 2012-09-26 07:11:42 +00:00
Verifier.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00