bpftrace/bpftrace-0.17.0-0003-ast-Us...

45 lines
1.7 KiB
Diff

From 1632c1fb41d03730a5106696c4fed64cd4a86785 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 13 Mar 2023 21:30:27 -0700
Subject: [PATCH 1/3] ast: Use std::optional in CodegenLLVM::CodegenLLVM call
Fixes build with clang-16
src/ast/passes/codegen_llvm.cpp:63:53: error: use of undeclared identifier 'Optional'; did you mean 'std::optional'?
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/ast/passes/codegen_llvm.cpp | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/ast/passes/codegen_llvm.cpp b/src/ast/passes/codegen_llvm.cpp
index 4e2a18e1..efeb4160 100644
--- a/src/ast/passes/codegen_llvm.cpp
+++ b/src/ast/passes/codegen_llvm.cpp
@@ -56,11 +56,17 @@ CodegenLLVM::CodegenLLVM(Node *root, BPFtrace &bpftrace)
throw std::runtime_error(
"Could not find bpf llvm target, does your llvm support it?");
- target_machine_.reset(target->createTargetMachine(LLVMTargetTriple,
- "generic",
- "",
- TargetOptions(),
- Optional<Reloc::Model>()));
+ target_machine_.reset(
+ target->createTargetMachine(LLVMTargetTriple,
+ "generic",
+ "",
+ TargetOptions(),
+#if LLVM_VERSION_MAJOR >= 16
+ std::optional<Reloc::Model>()
+#else
+ Optional<Reloc::Model>()
+#endif
+ ));
target_machine_->setOptLevel(llvm::CodeGenOpt::Aggressive);
module_->setTargetTriple(LLVMTargetTriple);
--
2.40.1