From 63ab8b241866d2e7d12445f2cd95db3f808e0c7b Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 3 Mar 2018 10:23:27 +0000 Subject: [PATCH] Make irGen.output_base use full path rather than relative --- src/common.cpp | 9 +++++++++ src/ir.cpp | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/common.cpp b/src/common.cpp index 58597a9fc..354750a24 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -692,3 +692,12 @@ wchar_t **command_line_to_wargv(wchar_t *cmd_line, int *_argc) { } #endif + +String path_to_full_path(gbAllocator a, String path) { + gbAllocator ha = heap_allocator(); + char *path_c = gb_alloc_str_len(ha, cast(char *)path.text, path.len); + defer (gb_free(ha, path_c)); + + char *fullpath = gb_path_get_full_name(a, path_c); + return make_string_c(fullpath); +} diff --git a/src/ir.cpp b/src/ir.cpp index c4fbf23a6..5b488c403 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -7766,8 +7766,10 @@ bool ir_gen_init(irGen *s, Checker *c) { s->output_base = substring(s->output_name, 0, pos); } } + gbAllocator ha = heap_allocator(); + s->output_base = path_to_full_path(ha, s->output_base); - gbString output_file_path = gb_string_make_length(heap_allocator(), s->output_base.text, s->output_base.len); + gbString output_file_path = gb_string_make_length(ha, s->output_base.text, s->output_base.len); output_file_path = gb_string_appendc(output_file_path, ".ll"); defer (gb_string_free(output_file_path));