authorgravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2024-03-03 02:28:24+01:00
committergravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2024-03-03 02:28:24+01:00
log282b398f6da967f413e223b452457d37e93a70b3
treea5dd0ad9598ae01ff5e2256267c54121199073c6
parentd345068ec2cf7275c931c4d79d46384c38132ffc

Add comment explaining LLVM bug and linking tracking issue


1 files changed, 5 insertions(+), 0 deletions(-)

src/zig_llvm.cpp+5
...@@ -384,6 +384,11 @@ struct ZigDiagnosticHandler : public DiagnosticHandler {...@@ -384,6 +384,11 @@ struct ZigDiagnosticHandler : public DiagnosticHandler {
384 bool BrokenDebugInfo;384 bool BrokenDebugInfo;
385 ZigDiagnosticHandler() : BrokenDebugInfo(false) {}385 ZigDiagnosticHandler() : BrokenDebugInfo(false) {}
386 bool handleDiagnostics(const DiagnosticInfo &DI) override {386 bool handleDiagnostics(const DiagnosticInfo &DI) override {
387 // This dyn_cast should be casting to DiagnosticInfoIgnoringInvalidDebugMetadata
388 // but DiagnosticInfoIgnoringInvalidDebugMetadata is treated as DiagnosticInfoDebugMetadataVersion
389 // because of a bug in LLVM (see https://github.com/ziglang/zig/issues/19161).
390 // After this is fixed add an additional check for DiagnosticInfoIgnoringInvalidDebugMetadata
391 // but don't remove the current one as both indicate that debug info is broken.
387 if (auto *Remark = dyn_cast<DiagnosticInfoDebugMetadataVersion>(&DI)) {392 if (auto *Remark = dyn_cast<DiagnosticInfoDebugMetadataVersion>(&DI)) {
388 BrokenDebugInfo = true;393 BrokenDebugInfo = true;
389 }394 }