mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 05:30:49 +00:00
Revert "Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC)"
This reverts commit r281806. It introduces undefined behavior as an API is returning a reference to the Symtab git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281808 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e3e722b910
commit
977635df54
@ -50,8 +50,7 @@ private:
|
||||
// Important things that make up a function!
|
||||
BasicBlockListType BasicBlocks; ///< The basic blocks
|
||||
mutable ArgumentListType ArgumentList; ///< The formal arguments
|
||||
std::unique_ptr<ValueSymbolTable>
|
||||
SymTab; ///< Symbol table of args/instructions
|
||||
ValueSymbolTable *SymTab; ///< Symbol table of args/instructions
|
||||
AttributeSet AttributeSets; ///< Parameter attributes
|
||||
|
||||
/*
|
||||
|
@ -258,10 +258,7 @@ Function::Function(FunctionType *Ty, LinkageTypes Linkage, const Twine &name,
|
||||
assert(FunctionType::isValidReturnType(getReturnType()) &&
|
||||
"invalid return type");
|
||||
setGlobalObjectSubClassData(0);
|
||||
|
||||
// We only need a symbol table for a function if the context keeps value names
|
||||
if (!getContext().shouldDiscardValueNames())
|
||||
SymTab = make_unique<ValueSymbolTable>();
|
||||
SymTab = new ValueSymbolTable();
|
||||
|
||||
// If the function has arguments, mark them as lazily built.
|
||||
if (Ty->getNumParams())
|
||||
@ -282,6 +279,7 @@ Function::~Function() {
|
||||
|
||||
// Delete all of the method arguments and unlink from symbol table...
|
||||
ArgumentList.clear();
|
||||
delete SymTab;
|
||||
|
||||
// Remove the function from the on-the-side GC table.
|
||||
clearGC();
|
||||
|
Loading…
Reference in New Issue
Block a user