regardless of whether or not the client things we should mark globals incomplete,
ALWAYS mark them incomplete if they are external!

llvm-svn: 20586
diff --git a/llvm/lib/Analysis/DataStructure/DataStructure.cpp b/llvm/lib/Analysis/DataStructure/DataStructure.cpp
index 9e97b8a..212e118 100644
--- a/llvm/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/llvm/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) {