aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/FileRuntimeIO.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/FileRuntimeIO.cc')
-rw-r--r--lib/CodeGen/FileRuntimeIO.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/CodeGen/FileRuntimeIO.cc b/lib/CodeGen/FileRuntimeIO.cc
index ffe5679..c23515d 100644
--- a/lib/CodeGen/FileRuntimeIO.cc
+++ b/lib/CodeGen/FileRuntimeIO.cc
@@ -155,6 +155,7 @@ void FileHandler::buildCloseFn() {
Value *Idx = emitLookupOrFail(Name, Line);
Value *Handle = Builder.CreateLoad(PtrTy, emitSlotGEP(FileHandles, PtrTy, Idx), "handle");
Builder.CreateCall(FcloseFunc, {Handle});
+ Builder.CreateCall(FreeFunc, {Builder.CreateLoad(PtrTy, emitSlotGEP(FileNames, PtrTy, Idx))});
Builder.CreateStore(ConstantInt::get(I8, 0), emitSlotGEP(FileModes, I8, Idx));
Builder.CreateStore(ConstantPointerNull::get(PtrTy), emitSlotGEP(FileNames, PtrTy, Idx));
Builder.CreateStore(ConstantPointerNull::get(PtrTy), emitSlotGEP(FileHandles, PtrTy, Idx));