aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-11-20 16:01:59 +0000
committergingerBill <bill@gingerbill.org>2020-11-20 16:01:59 +0000
commit6416a6f39cce4c65c80e29bb4ff4b93a3e463947 (patch)
tree2bf6668068ab0516998fb6bde144a3d4a69bac9e /src/llvm_backend.cpp
parent87956676f52a56db98e263d1074b490b71141f0b (diff)
Allow string literals for `[N]byte`
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index ea5081be4..d47c45401 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -5126,7 +5126,15 @@ lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, bool allow_loc
LLVMValueRef data = LLVMConstStringInContext(ctx,
cast(char const *)value.value_string.text,
cast(unsigned)value.value_string.len,
- false);
+ false /*DontNullTerminate*/);
+ res.value = data;
+ return res;
+ } else if (is_type_u8_array(type) && value.kind == ExactValue_String) {
+ GB_ASSERT(type->Array.count == value.value_string.len);
+ LLVMValueRef data = LLVMConstStringInContext(ctx,
+ cast(char const *)value.value_string.text,
+ cast(unsigned)value.value_string.len,
+ true /*DontNullTerminate*/);
res.value = data;
return res;
} else if (is_type_array(type) &&