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
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 9e97b8a..212e118 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -1498,13 +1498,13 @@
            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) {