Skip to content

Commit b5cca3f

Browse files
committed
Add dibuilder and file!
1 parent 9f9d2fa commit b5cca3f

File tree

5 files changed

+45
-8
lines changed

5 files changed

+45
-8
lines changed

src/LLVM.jl

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ include("ir.jl")
6161
include("bitcode.jl")
6262
include("transform.jl")
6363
include("debuginfo.jl")
64-
include("dibuilder.jl")
6564
include("jitevents.jl")
6665
include("utils.jl")
6766

src/debuginfo.jl

+22
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
## DIBuilder
2+
3+
export DIBuilder
4+
5+
@checked struct DIBuilder
6+
ref::API.LLVMDIBuilderRef
7+
end
8+
Base.unsafe_convert(::Type{API.LLVMDIBuilderRef}, builder::DIBuilder) = builder.ref
9+
10+
# LLVMCreateDIBuilderDisallowUnresolved
11+
DIBuilder(mod::Module) = DIBuilder(API.LLVMCreateDIBuilder(mod))
12+
13+
dispose(builder::DIBuilder) = API.LLVMDisposeDIBuilder(builder)
14+
finalize(builder::DIBuilder) = API.LLVMDIBuilderFinalize(builder)
15+
116
## location information
217

318
export DILocation
@@ -106,6 +121,13 @@ function source(file::DIFile)
106121
unsafe_string(convert(Ptr{Int8}, data), len[])
107122
end
108123

124+
function file!(builder::DIBuilder, file::String, dir::String)
125+
DIFile(API.LLVMDIBuilderCreateFile(
126+
builder,
127+
file, convert(Csize_t, length(file)),
128+
dir, convert(Csize_t, length(dir))
129+
))
130+
end
109131

110132
## type
111133

src/dibuilder.jl

-7
This file was deleted.

test/dibuilder.jl

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
@testset "dibuilder" begin
2+
3+
Context() do ctx
4+
LLVM.Module("SomeModule", ctx) do mod
5+
builder = DIBuilder(mod)
6+
dispose(builder)
7+
end
8+
end
9+
10+
Context() do ctx
11+
LLVM.Module("SomeModule", ctx) do mod
12+
di_builder = DIBuilder(mod)
13+
file = LLVM.file!(di_builder, "test.jl", "src")
14+
15+
@test LLVM.filename(file) == "test.jl"
16+
@test LLVM.directory(file) == "src"
17+
@test LLVM.source(file) == joinpath("src", "test.jl")
18+
19+
finalize(dibuilder)
20+
dispose(builder)
21+
end
22+
end

test/runtests.jl

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ include("target.jl")
6464
include("targetmachine.jl")
6565
include("datalayout.jl")
6666
include("debuginfo.jl")
67+
include("dibuilder.jl")
6768
include("utils.jl")
6869
if LLVM.has_orc_v1()
6970
include("orc.jl")

0 commit comments

Comments
 (0)