From 282b398f6da967f413e223b452457d37e93a70b3 Mon Sep 17 00:00:00 2001 From: antlilja Date: Sun, 3 Mar 2024 02:28:24 +0100 Subject: [PATCH] Add comment explaining LLVM bug and linking tracking issue --- src/zig_llvm.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index 92364cc143..ae1f02422b 100644 --- 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(&DI)) { BrokenDebugInfo = true; }