delete d;
}
-void LLVMDIBuilderFinalize(LLVMDIBuilderRef dref) { unwrap(dref)->finalize(); }
-
-LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef Dref,
- unsigned Lang, const char *File,
- const char *Dir,
- const char *Producer,
- int Optimized, const char *Flags,
- unsigned RuntimeVersion) {
- DIBuilder *D = unwrap(Dref);
- return wrap(D->createCompileUnit(Lang, D->createFile(File, Dir), Producer,
- Optimized, Flags, RuntimeVersion));
-}
-
-LLVMMetadataRef LLVMDIBuilderCreateFile(LLVMDIBuilderRef Dref, const char *File,
- const char *Dir) {
- DIBuilder *D = unwrap(Dref);
- return wrap(D->createFile(File, Dir));
-}
-
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef Dref,
LLVMMetadataRef Scope,
LLVMMetadataRef File,
#include "IRBindings.h"
#include "llvm-c/Core.h"
+#include "llvm-c/DebugInfo.h"
#ifdef __cplusplus
extern "C" {
LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef m);
void LLVMDIBuilderDestroy(LLVMDIBuilderRef d);
-void LLVMDIBuilderFinalize(LLVMDIBuilderRef d);
-
-LLVMMetadataRef
-LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef D, unsigned Language,
- const char *File, const char *Dir,
- const char *Producer, int Optimized,
- const char *Flags, unsigned RuntimeVersion);
-
-LLVMMetadataRef LLVMDIBuilderCreateFile(LLVMDIBuilderRef D, const char *File,
- const char *Dir);
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef D,
LLVMMetadataRef Scope,
defer C.free(unsafe.Pointer(flags))
result := C.LLVMDIBuilderCreateCompileUnit(
d.ref,
- C.unsigned(cu.Language),
- file, dir,
- producer,
- boolToCInt(cu.Optimized),
- flags,
+ C.LLVMDWARFSourceLanguage(cu.Language),
+ C.LLVMDIBuilderCreateFile(d.ref, file, C.size_t(len(cu.File)), dir, C.size_t(len(cu.Dir))),
+ producer, C.size_t(len(cu.Producer)),
+ C.LLVMBool(boolToCInt(cu.Optimized)),
+ flags, C.size_t(len(cu.Flags)),
C.unsigned(cu.RuntimeVersion),
+ /*SplitName=*/ nil, 0,
+ C.LLVMDWARFEmissionFull,
+ /*DWOId=*/ 0,
+ /*SplitDebugInlining*/ C.LLVMBool(boolToCInt(true)),
+ /*DebugInfoForProfiling*/ C.LLVMBool(boolToCInt(false)),
)
return Metadata{C: result}
}
defer C.free(unsafe.Pointer(cfilename))
cdir := C.CString(dir)
defer C.free(unsafe.Pointer(cdir))
- result := C.LLVMDIBuilderCreateFile(d.ref, cfilename, cdir)
+ result := C.LLVMDIBuilderCreateFile(d.ref,
+ cfilename, C.size_t(len(filename)),
+ cdir, C.size_t(len(dir)))
return Metadata{C: result}
}