Add support for global constants, and for initializers for constants


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@598 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Writer/SlotCalculator.cpp b/lib/Bytecode/Writer/SlotCalculator.cpp
index cc7d4e5..0ac371c 100644
--- a/lib/Bytecode/Writer/SlotCalculator.cpp
+++ b/lib/Bytecode/Writer/SlotCalculator.cpp
@@ -223,11 +223,13 @@
 
 
 int SlotCalculator::insertValue(const Value *D) {
-  if (const ConstPoolVal *CPV = D->castConstant()) {
+  if (D->isConstant() || D->isGlobal()) {
+    const User *U = (const User *)D;
     // This makes sure that if a constant has uses (for example an array
-    // of const ints), that they are inserted also.
+    // of const ints), that they are inserted also.  Same for global variable
+    // initializers.
     //
-    for_each(CPV->op_begin(), CPV->op_end(), 
+    for_each(U->op_begin(), U->op_end(), 
 	     bind_obj(this, &SlotCalculator::insertValue));
   }