Skip to content

Commit eb2e827

Browse files
[LLVM22] Fix createAndSetDiagnosticsOutputFile (#5021)
1 parent a1ca6a0 commit eb2e827

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

driver/codegenerator.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,19 @@
3737
#include "mlir/IR/MLIRContext.h"
3838
#endif
3939

40+
#if LDC_LLVM_VER < 2200
41+
namespace llvm {
42+
using LLVMRemarkFileHandle = std::unique_ptr<llvm::ToolOutputFile>;
43+
}
44+
#endif
4045
namespace {
4146

42-
std::unique_ptr<llvm::ToolOutputFile>
47+
llvm::LLVMRemarkFileHandle
4348
createAndSetDiagnosticsOutputFile(IRState &irs, llvm::LLVMContext &ctx,
4449
llvm::StringRef filename) {
45-
std::unique_ptr<llvm::ToolOutputFile> diagnosticsOutputFile;
46-
4750
// Set LLVM Diagnostics outputfile if requested
4851
if (opts::saveOptimizationRecord.getNumOccurrences() == 0)
49-
return std::unique_ptr<llvm::ToolOutputFile>();
52+
return llvm::LLVMRemarkFileHandle();
5053
llvm::SmallString<128> diagnosticsFilename;
5154
if (!opts::saveOptimizationRecord.empty()) {
5255
diagnosticsFilename = opts::saveOptimizationRecord.getValue();
@@ -266,7 +269,7 @@ void CodeGenerator::writeAndFreeLLModule(const char *filename) {
266269
context_.setDiagnosticHandler(
267270
std::make_unique<InlineAsmDiagnosticHandler>(ir_));
268271

269-
std::unique_ptr<llvm::ToolOutputFile> diagnosticsOutputFile =
272+
llvm::LLVMRemarkFileHandle diagnosticsOutputFile =
270273
createAndSetDiagnosticsOutputFile(*ir_, context_, filename);
271274

272275
writeModule(&ir_->module, filename);

0 commit comments

Comments
 (0)