changes to support createFunction() with DICompositeType argument in LLVM_3_4
This commit is contained in:
10
ctx.cpp
10
ctx.cpp
@@ -344,6 +344,14 @@ FunctionEmitContext::FunctionEmitContext(Function *func, Symbol *funSym,
|
|||||||
AssertPos(currentPos, diSubprogramType.Verify());
|
AssertPos(currentPos, diSubprogramType.Verify());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(LLVM_3_4)
|
||||||
|
Assert(diSubprogramType.isCompositeType());
|
||||||
|
llvm::DICompositeType diSubprogramType_n =
|
||||||
|
static_cast<llvm::DICompositeType>(diSubprogramType);
|
||||||
|
#else
|
||||||
|
llvm::DIType diSubprogramType_n = diSubprogramType;
|
||||||
|
#endif
|
||||||
|
|
||||||
std::string mangledName = llvmFunction->getName();
|
std::string mangledName = llvmFunction->getName();
|
||||||
if (mangledName == funSym->name)
|
if (mangledName == funSym->name)
|
||||||
mangledName = "";
|
mangledName = "";
|
||||||
@@ -356,7 +364,7 @@ FunctionEmitContext::FunctionEmitContext(Function *func, Symbol *funSym,
|
|||||||
diSubprogram =
|
diSubprogram =
|
||||||
m->diBuilder->createFunction(diFile /* scope */, funSym->name,
|
m->diBuilder->createFunction(diFile /* scope */, funSym->name,
|
||||||
mangledName, diFile,
|
mangledName, diFile,
|
||||||
firstLine, diSubprogramType,
|
firstLine, diSubprogramType_n,
|
||||||
isStatic, true, /* is defn */
|
isStatic, true, /* is defn */
|
||||||
firstLine,
|
firstLine,
|
||||||
flags,
|
flags,
|
||||||
|
|||||||
4
type.cpp
4
type.cpp
@@ -2879,7 +2879,11 @@ FunctionType::GetDIType(llvm::DIDescriptor scope) const {
|
|||||||
for (int i = 0; i < GetNumParameters(); ++i) {
|
for (int i = 0; i < GetNumParameters(); ++i) {
|
||||||
const Type *t = GetParameterType(i);
|
const Type *t = GetParameterType(i);
|
||||||
if (t == NULL)
|
if (t == NULL)
|
||||||
|
#if defined(LLVM_3_4)
|
||||||
|
return llvm::DICompositeType();
|
||||||
|
#else
|
||||||
return llvm::DIType();
|
return llvm::DIType();
|
||||||
|
#endif
|
||||||
retArgTypes.push_back(t->GetDIType(scope));
|
retArgTypes.push_back(t->GetDIType(scope));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user