--- a/llvm_c_ext/lib/DIBuilder.cpp Wed Jan 27 11:43:56 2016 +0000
+++ b/llvm_c_ext/lib/DIBuilder.cpp Wed Jan 27 14:20:58 2016 +0000
@@ -77,6 +77,7 @@
unwrap<DIFile>(File), Discriminator));
}
+#if (LLVM_VERSION_MAJOR <= 3) && (LLVM_VERSION_MINOR <= 8)
LLVMMetadataRef LLVMDIBuilderCreateFunction(
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
const char *LinkageName, LLVMMetadataRef File, unsigned Line,
@@ -89,6 +90,20 @@
IsLocalToUnit, IsDefinition, ScopeLine, Flags,
IsOptimized, unwrap<Function>(Func)));
}
+#else
+LLVMMetadataRef LLVMDIBuilderCreateFunction(
+ LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
+ const char *LinkageName, LLVMMetadataRef File, unsigned Line,
+ LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition,
+ unsigned ScopeLine, unsigned Flags, int IsOptimized) {
+ DIBuilder *D = unwrap(Dref);
+ return wrap(D->createFunction(unwrap<DIScope>(Scope), Name, LinkageName,
+ File ? unwrap<DIFile>(File) : nullptr, Line,
+ unwrap<DISubroutineType>(CompositeType),
+ IsLocalToUnit, IsDefinition, ScopeLine, Flags,
+ IsOptimized));
+}
+#endif
LLVMMetadataRef LLVMDIBuilderCreateAutoVariable(
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope,
@@ -130,6 +145,7 @@
AlignInBits, Name));
}
+#if (LLVM_VERSION_MAJOR <= 3) && (LLVM_VERSION_MINOR <= 8)
LLVMMetadataRef
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File,
LLVMMetadataRef ParameterTypes) {
@@ -138,6 +154,16 @@
D->createSubroutineType(File ? unwrap<DIFile>(File) : nullptr,
DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
}
+#else
+LLVMMetadataRef
+LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref,
+ LLVMMetadataRef ParameterTypes) {
+ DIBuilder *D = unwrap(Dref);
+ return wrap(
+ D->createSubroutineType(DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
+}
+#endif
+
LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,