Merge pull request #512 from ifilippov/bug_34

Fix to track LLVM 3.4 ToT changes
This commit is contained in:
Dmitry Babokin
2013-06-04 07:10:04 -07:00
2 changed files with 13 additions and 1 deletions

10
ctx.cpp
View File

@@ -344,6 +344,14 @@ FunctionEmitContext::FunctionEmitContext(Function *func, Symbol *funSym,
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();
if (mangledName == funSym->name)
mangledName = "";
@@ -356,7 +364,7 @@ FunctionEmitContext::FunctionEmitContext(Function *func, Symbol *funSym,
diSubprogram =
m->diBuilder->createFunction(diFile /* scope */, funSym->name,
mangledName, diFile,
firstLine, diSubprogramType,
firstLine, diSubprogramType_n,
isStatic, true, /* is defn */
firstLine,
flags,

View File

@@ -2879,7 +2879,11 @@ FunctionType::GetDIType(llvm::DIDescriptor scope) const {
for (int i = 0; i < GetNumParameters(); ++i) {
const Type *t = GetParameterType(i);
if (t == NULL)
#if defined(LLVM_3_4)
return llvm::DICompositeType();
#else
return llvm::DIType();
#endif
retArgTypes.push_back(t->GetDIType(scope));
}