From: https://github.com/iovisor/bpftrace/pull/2525 From a794397394aa836f776da17c8e08876a2f64d477 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 13 Mar 2023 21:30:27 -0700 Subject: [PATCH] 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 --- 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 616ff89ddbc..fe440adf373 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())); + target_machine_.reset( + target->createTargetMachine(LLVMTargetTriple, + "generic", + "", + TargetOptions(), +#if LLVM_VERSION_MAJOR >= 16 + std::optional() +#else + Optional() +#endif + )); target_machine_->setOptLevel(llvm::CodeGenOpt::Aggressive); module_->setTargetTriple(LLVMTargetTriple);