diff options
| author | gingerBill <bill@gingerbill.org> | 2021-04-08 15:06:23 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-04-08 15:06:23 +0100 |
| commit | 3eaf3327d4faa13c54b05fab740451e7a32ca2a9 (patch) | |
| tree | 16d997efdc808265309230cf9addbdcdf517beaf /src/llvm_backend.cpp | |
| parent | d721ffa6fa4daea7732a3fc7970d8d70a2574f4f (diff) | |
Add "Dwarf Version" metadata for `darwin` on `-llvm-api`
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 9ad76373c..1edb516c2 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -12471,11 +12471,23 @@ void lb_init_module(lbModule *m, Checker *c) { LLVMMetadataRef debug_ref = LLVMValueAsMetadata(LLVMConstInt(LLVMInt32TypeInContext(m->ctx), DEBUG_METADATA_VERSION, true)); LLVMAddModuleFlag(m->mod, LLVMModuleFlagBehaviorWarning, "Debug Info Version", 18, debug_ref); - if (build_context.metrics.os == TargetOs_windows) { - LLVMMetadataRef ref = LLVMValueAsMetadata(LLVMConstInt(LLVMInt32TypeInContext(m->ctx), 1, true)); - LLVMAddModuleFlag(m->mod, LLVMModuleFlagBehaviorWarning, "CodeView", 8, ref); - m->debug_builder = LLVMCreateDIBuilder(m->mod); + switch (build_context.metrics.os) { + case TargetOs_windows: + LLVMAddModuleFlag(m->mod, + LLVMModuleFlagBehaviorWarning, + "CodeView", 8, + LLVMValueAsMetadata(LLVMConstInt(LLVMInt32TypeInContext(m->ctx), 1, true))); + break; + + case TargetOs_darwin: + // NOTE(bill): Darwin only supports DWARF2 (that I know of) + LLVMAddModuleFlag(m->mod, + LLVMModuleFlagBehaviorWarning, + "Dwarf Version", 13, + LLVMValueAsMetadata(LLVMConstInt(LLVMInt32TypeInContext(m->ctx), 2, true))); + } + m->debug_builder = LLVMCreateDIBuilder(m->mod); } m->state_flags = 0; |