Add new linkage types to support a real frontend


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5786 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 805b7e7..fb561aa 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -307,7 +307,8 @@
   Function *F = FunctionSignatureList.back().first;
   unsigned FunctionSlot = FunctionSignatureList.back().second;
   FunctionSignatureList.pop_back();
-  F->setInternalLinkage(isInternal != 0);
+  F->setLinkage(isInternal ? GlobalValue::InternalLinkage :
+                             GlobalValue::ExternalLinkage);
 
   const FunctionType::ParamTypes &Params =F->getFunctionType()->getParamTypes();
   Function::aiterator AI = F->abegin();
@@ -399,8 +400,13 @@
 
     const Type *ElTy = cast<PointerType>(Ty)->getElementType();
 
+
+    GlobalValue::LinkageTypes Linkage = 
+      (VarType & 4) ? GlobalValue::InternalLinkage :
+                      GlobalValue::ExternalLinkage;
+
     // Create the global variable...
-    GlobalVariable *GV = new GlobalVariable(ElTy, VarType & 1, VarType & 4,
+    GlobalVariable *GV = new GlobalVariable(ElTy, VarType & 1, Linkage,
                                             0, "", TheModule);
     int DestSlot = insertValue(GV, ModuleValues);
     if (DestSlot == -1) return true;
@@ -435,7 +441,8 @@
     // this placeholder is replaced.
 
     // Insert the placeholder...
-    Function *Func = new Function(cast<FunctionType>(Ty), false, "", TheModule);
+    Function *Func = new Function(cast<FunctionType>(Ty),
+                                  GlobalValue::InternalLinkage, "", TheModule);
     int DestSlot = insertValue(Func, ModuleValues);
     if (DestSlot == -1) return true;
     ResolveReferencesToValue(Func, (unsigned)DestSlot);