commit 282b398f6da967f413e223b452457d37e93a70b3 (tree) parent d345068ec2cf7275c931c4d79d46384c38132ffc Author: antlilja <liljaanton2001@gmail.com> Date: Sun, 3 Mar 2024 02:28:24 +0100 Add comment explaining LLVM bug and linking tracking issue Diffstat:
| M | src/zig_llvm.cpp | | | 5 | +++++ |
1 file changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp @@ -384,6 +384,11 @@ struct ZigDiagnosticHandler : public DiagnosticHandler { bool BrokenDebugInfo; ZigDiagnosticHandler() : BrokenDebugInfo(false) {} bool handleDiagnostics(const DiagnosticInfo &DI) override { + // This dyn_cast should be casting to DiagnosticInfoIgnoringInvalidDebugMetadata + // but DiagnosticInfoIgnoringInvalidDebugMetadata is treated as DiagnosticInfoDebugMetadataVersion + // because of a bug in LLVM (see https://github.com/ziglang/zig/issues/19161). + // After this is fixed add an additional check for DiagnosticInfoIgnoringInvalidDebugMetadata + // but don't remove the current one as both indicate that debug info is broken. if (auto *Remark = dyn_cast<DiagnosticInfoDebugMetadataVersion>(&DI)) { BrokenDebugInfo = true; }