Skip to content

Commit 5d0dcf7

Browse files
authored
Merge pull request #263 from maleadt/tb/copy
Implement Base.copy for copying a module.
2 parents 111f192 + bfa19ab commit 5d0dcf7

File tree

3 files changed

+4
-2
lines changed

3 files changed

+4
-2
lines changed

src/core/module.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ end
2424

2525
Module(name::String; ctx::Context) =
2626
Module(API.LLVMModuleCreateWithNameInContext(name, ctx))
27+
2728
Module(mod::Module) = Module(API.LLVMCloneModule(mod))
29+
Base.copy(mod::Module) = Module(mod)
2830

2931
dispose(mod::Module) = API.LLVMDisposeModule(mod)
3032

test/core.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,7 @@ end
727727

728728
Context() do ctx
729729
LLVM.Module("SomeModule"; ctx) do mod
730-
clone = LLVM.Module(mod)
730+
clone = copy(mod)
731731
@test mod != clone
732732
@test context(clone) == ctx
733733
dispose(clone)

test/execution.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ Context() do ctx
137137
args = [GenericValue(LLVM.Int32Type(ctx), 1),
138138
GenericValue(LLVM.Int32Type(ctx), 2)]
139139

140-
let mod = LLVM.Module(mod)
140+
let mod = copy(mod)
141141
fn = functions(mod)["SomeFunctionSum"]
142142
Interpreter(mod) do engine
143143
res = LLVM.run(engine, fn, args)

0 commit comments

Comments
 (0)