diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-07-31 12:15:20 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-07-31 12:15:20 +0100 |
| commit | 4d14b3bcb482aaaa26bcaedbbaadb055f8bf8c41 (patch) | |
| tree | 64bb1ce3d8159aedfb4a379c13486ae35b681b1a /src | |
| parent | 9f4f5f9346455a322f5e2fbea022fae0406285b3 (diff) | |
Update `remove_temp_files`
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/main.cpp b/src/main.cpp index 4a532dcde..24878974d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -413,13 +413,25 @@ void show_timings(Checker *c, Timings *t) { void remove_temp_files(String output_base) { if (build_context.keep_temp_files) return; - gb_file_delete(gb_bprintf("%.*s.ll", LIT(output_base))); - gb_file_delete(gb_bprintf("%.*s.bc", LIT(output_base))); + Array<u8> data = {}; + array_init_count(&data, heap_allocator(), output_base.len + 10); + defer (array_free(&data)); + + isize n = output_base.len; + gb_memcopy(data.data, output_base.text, n); +#define EXT_DELETE(s) do { \ + gb_memcopy(data.data+n, s, gb_size_of(s)); \ + gb_file_delete(cast(char *)data.data); \ + } while (0) + EXT_DELETE(".ll"); + EXT_DELETE(".bc"); #if defined(GB_SYSTEM_WINDOWS) - gb_file_delete(gb_bprintf("%.*s.obj", LIT(output_base))); + EXT_DELETE(".obj"); #else - gb_file_delete(gb_bprintf("%.*s.o", LIT(output_base))); + EXT_DELETE(".o"); #endif + +#undef EXT_DELETE } int main(int arg_count, char **arg_ptr) { |