diff options
| author | 0dminnimda <0dminnimda@gmail.com> | 2024-10-31 15:56:23 +0300 |
|---|---|---|
| committer | flysand7 <thebumboni@gmail.com> | 2024-12-01 11:54:56 +1100 |
| commit | 456279feba3344edc2d038c1b1256e2c4ce83ed2 (patch) | |
| tree | dadf1726ccd1bd5b18de3dc489bf9b12f3dca185 /src | |
| parent | d51692a3b4f8311a1d7ce7b9bfbb94fac1179dd5 (diff) | |
Add support for llvm version 19
Diffstat (limited to 'src')
| -rw-r--r-- | src/llvm_backend.hpp | 6 | ||||
| -rw-r--r-- | src/llvm_backend_expr.cpp | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp index 464efa325..e84ffd1cd 100644 --- a/src/llvm_backend.hpp +++ b/src/llvm_backend.hpp @@ -57,6 +57,10 @@ #define LB_USE_NEW_PASS_SYSTEM 0 #endif +#if LLVM_VERSION_MAJOR >= 19 +#define LLVMDIBuilderInsertDeclareAtEnd(...) LLVMDIBuilderInsertDeclareRecordAtEnd(__VA_ARGS__) +#endif + gb_internal bool lb_use_new_pass_system(void) { return LB_USE_NEW_PASS_SYSTEM; } @@ -737,4 +741,4 @@ gb_global char const *llvm_linkage_strings[] = { "linker private weak linkage" }; -#define ODIN_METADATA_IS_PACKED str_lit("odin-is-packed")
\ No newline at end of file +#define ODIN_METADATA_IS_PACKED str_lit("odin-is-packed") diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 80c469ae6..1247eed76 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -4574,7 +4574,11 @@ gb_internal lbAddr lb_build_addr_compound_lit(lbProcedure *p, Ast *expr) { auto const &f = fields[i]; LLVMValueRef mask = LLVMConstInt(lit, 1, false); - mask = LLVMConstShl(mask, LLVMConstInt(lit, f.bit_size, false)); + #if LLVM_VERSION_MAJOR >= 19 + mask = LLVMBuildShl(p->builder, mask, LLVMConstInt(lit, f.bit_size, false), ""); + #else + mask = LLVMConstShl(mask, LLVMConstInt(lit, f.bit_size, false)); + #endif mask = LLVMConstSub(mask, LLVMConstInt(lit, 1, false)); LLVMValueRef elem = values[i].value; @@ -4622,7 +4626,11 @@ gb_internal lbAddr lb_build_addr_compound_lit(lbProcedure *p, Ast *expr) { bits_to_set -= mask_width; LLVMValueRef mask = LLVMConstInt(vt, 1, false); - mask = LLVMConstShl(mask, LLVMConstInt(vt, mask_width, false)); + #if LLVM_VERSION_MAJOR >= 19 + mask = LLVMBuildShl(p->builder, mask, LLVMConstInt(vt, mask_width, false), ""); + #else + mask = LLVMConstShl(mask, LLVMConstInt(vt, mask_width, false)); + #endif mask = LLVMConstSub(mask, LLVMConstInt(vt, 1, false)); LLVMValueRef to_set = LLVMBuildAnd(p->builder, val, mask, ""); |