regardless of whether or not the client things we should mark globals incomplete,

ALWAYS mark them incomplete if they are external!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20586 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-03-13 20:36:01 +00:00
parent 270cf5025e
commit e2bc7b2517

View File

@ -1498,13 +1498,13 @@ void DSGraph::markIncompleteNodes(unsigned Flags) {
E = AuxFunctionCalls.end(); I != E; ++I)
markIncomplete(*I);
// Mark all global nodes as incomplete...
if ((Flags & DSGraph::IgnoreGlobals) == 0)
for (DSScalarMap::global_iterator I = ScalarMap.global_begin(),
E = ScalarMap.global_end(); I != E; ++I)
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(*I))
if (!GV->isConstant() || !GV->hasInitializer())
markIncompleteNode(ScalarMap[GV].getNode());
// Mark all global nodes as incomplete.
for (DSScalarMap::global_iterator I = ScalarMap.global_begin(),
E = ScalarMap.global_end(); I != E; ++I)
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(*I))
if (!GV->hasInitializer() || // Always mark external globals incomp.
(!GV->isConstant() && (Flags & DSGraph::IgnoreGlobals) == 0))
markIncompleteNode(ScalarMap[GV].getNode());
}
static inline void killIfUselessEdge(DSNodeHandle &Edge) {