diff options
author | Chris Lattner <sabre@nondot.org> | 2002-11-20 18:36:02 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-11-20 18:36:02 +0000 |
commit | 6e6026b46569b01f8f6d4dcdb6c899c3a9c76b3e (patch) | |
tree | 57322a305c9e9d3273ae9d3d09728ec2662e97d8 /lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp | |
parent | c09aab0a4de7e3f65dd830803faadb7abae28872 (diff) |
- Eliminated the deferred symbol table stuff in Module & Function, it really
wasn't an optimization and it was causing lots of bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4779 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp')
-rw-r--r-- | lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp index bc873e290e..89f64b1b9b 100644 --- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp +++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp @@ -437,16 +437,15 @@ static FILE *getFILE(PointerTy Ptr) { // Check to see if the currently loaded module contains an __iob symbol... GlobalVariable *IOB = 0; - if (SymbolTable *ST = M->getSymbolTable()) { - for (SymbolTable::iterator I = ST->begin(), E = ST->end(); I != E; ++I) { - SymbolTable::VarMap &M = I->second; - for (SymbolTable::VarMap::iterator J = M.begin(), E = M.end(); - J != E; ++J) - if (J->first == "__iob") - if ((IOB = dyn_cast<GlobalVariable>(J->second))) - break; - if (IOB) break; - } + SymbolTable &ST = M->getSymbolTable(); + for (SymbolTable::iterator I = ST.begin(), E = ST.end(); I != E; ++I) { + SymbolTable::VarMap &M = I->second; + for (SymbolTable::VarMap::iterator J = M.begin(), E = M.end(); + J != E; ++J) + if (J->first == "__iob") + if ((IOB = dyn_cast<GlobalVariable>(J->second))) + break; + if (IOB) break; } // If we found an __iob symbol now, find out what the actual address it's |