summaryrefslogtreecommitdiff
path: root/dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch
blob: 21b4b7e6c2672fb6e305838a308886f26764bbba (plain)
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

From: https://github.com/iovisor/bpftrace/pull/2525

From a794397394aa836f776da17c8e08876a2f64d477 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] 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 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<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);