mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-17 05:25:47 +00:00
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
This commit is contained in:
@@ -307,7 +307,8 @@ bool BytecodeParser::ParseFunction(const uchar *&Buf, const uchar *EndBuf) {
|
||||
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 @@ bool BytecodeParser::ParseModuleGlobalInfo(const uchar *&Buf, const uchar *End){
|
||||
|
||||
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 @@ bool BytecodeParser::ParseModuleGlobalInfo(const uchar *&Buf, const uchar *End){
|
||||
// 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);
|
||||
|
Reference in New Issue
Block a user