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
// 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
/*
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())
// 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();