motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

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:
Msrc/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; }