mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-30 07:33:23 +00:00
don't mark the arguments of prototype overdefined, they will never be queried.
llvm-svn: 85793
This commit is contained in:
parent
9c7e443b07
commit
c9279a9b4d
@ -1646,16 +1646,19 @@ bool IPSCCP::runOnModule(Module &M) {
|
||||
// Loop over all functions, marking arguments to those with their addresses
|
||||
// taken or that are external as overdefined.
|
||||
//
|
||||
for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F)
|
||||
for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
|
||||
if (F->isDeclaration())
|
||||
continue;
|
||||
|
||||
if (!F->hasLocalLinkage() || AddressIsTaken(F)) {
|
||||
if (!F->isDeclaration())
|
||||
Solver.MarkBlockExecutable(F->begin());
|
||||
Solver.MarkBlockExecutable(F->begin());
|
||||
for (Function::arg_iterator AI = F->arg_begin(), E = F->arg_end();
|
||||
AI != E; ++AI)
|
||||
Solver.markOverdefined(AI);
|
||||
} else {
|
||||
Solver.AddTrackedFunction(F);
|
||||
}
|
||||
}
|
||||
|
||||
// Loop over global variables. We inform the solver about any internal global
|
||||
// variables that do not have their 'addresses taken'. If they don't have
|
||||
|
Loading…
Reference in New Issue
Block a user