1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
From: Cordell Bloor <cgmb@debian.org>
Date: Mon, 22 Sep 2025 13:32:25 -0600
Subject: fix DiagnosticOptions IntrusiveRefCntPtr
Compatibility with LLVM 21 was fixed upstream in a massive merge commit.
I've extracted the relevant portions.
Applied-Upstream: https://github.com/ROCm/llvm-project/commit/75074634076c0
---
amd/comgr/src/comgr-compiler.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
--- a/amd/comgr/src/comgr-compiler.cpp
+++ b/amd/comgr/src/comgr-compiler.cpp
@@ -655,9 +655,9 @@
amd_comgr_status_t executeCommand(const Command &Job, raw_ostream &LogS,
DiagnosticOptions &DiagOpts,
llvm::vfs::FileSystem &FS) {
- TextDiagnosticPrinter DiagClient(LogS, &DiagOpts);
+ TextDiagnosticPrinter DiagClient(LogS, DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs);
- DiagnosticsEngine Diags(DiagID, &DiagOpts, &DiagClient, false);
+ DiagnosticsEngine Diags(DiagID, DiagOpts, &DiagClient, false);
auto Arguments = Job.getArguments();
SmallVector<const char *, 128> Argv;
@@ -752,7 +752,7 @@
// here is mostly copy-and-pasted from driver.cpp/cc1_main.cpp/various Clang
// tests to try to approximate the same behavior as running the `clang`
// executable.
- IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions);
+ std::unique_ptr<DiagnosticOptions> DiagOpts(new DiagnosticOptions);
unsigned MissingArgIndex, MissingArgCount;
InputArgList ArgList = getDriverOptTable().ParseArgs(
Args.slice(1), MissingArgIndex, MissingArgCount);
@@ -761,9 +761,9 @@
// DiagnosticsEngine actually exists.
(void)ParseDiagnosticArgs(*DiagOpts, ArgList);
TextDiagnosticPrinter *DiagClient =
- new TextDiagnosticPrinter(LogS, &*DiagOpts);
+ new TextDiagnosticPrinter(LogS, *DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs);
- DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagClient);
+ DiagnosticsEngine Diags(DiagID, *DiagOpts, DiagClient);
ProcessWarningOptions(Diags, *DiagOpts, *OverlayFS, /*ReportDiags=*/false);
|