aboutsummaryrefslogtreecommitdiff
path: root/src/zig_llvm.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2015-12-07 20:07:46 -0700
committerAndrew Kelley <superjoe30@gmail.com>2015-12-07 20:07:46 -0700
commitb66fb607bf00c8ac120f22080bcf48eb05cbc71f (patch)
tree480fd5993a44c7cdb5a33181039e9fae1471c2d1 /src/zig_llvm.cpp
parentf6eecfe5f486b250de33a8129b1c85198be43280 (diff)
downloadzig-b66fb607bf00c8ac120f22080bcf48eb05cbc71f.tar.gz
zig-b66fb607bf00c8ac120f22080bcf48eb05cbc71f.zip
add debugging info for array type
Diffstat (limited to 'src/zig_llvm.cpp')
-rw-r--r--src/zig_llvm.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp
index cfc4920116..6ef2cace17 100644
--- a/src/zig_llvm.cpp
+++ b/src/zig_llvm.cpp
@@ -149,6 +149,18 @@ LLVMZigDIType *LLVMZigCreateDebugBasicType(LLVMZigDIBuilder *dibuilder, const ch
return reinterpret_cast<LLVMZigDIType*>(di_type);
}
+LLVMZigDIType *LLVMZigCreateDebugArrayType(LLVMZigDIBuilder *dibuilder, uint64_t size_in_bits,
+ uint64_t align_in_bits, LLVMZigDIType *elem_type, int elem_count)
+{
+ SmallVector<Metadata *, 1> subrange;
+ subrange.push_back(reinterpret_cast<DIBuilder*>(dibuilder)->getOrCreateSubrange(0, elem_count - 1));
+ DIType *di_type = reinterpret_cast<DIBuilder*>(dibuilder)->createArrayType(
+ size_in_bits, align_in_bits,
+ reinterpret_cast<DIType*>(elem_type),
+ reinterpret_cast<DIBuilder*>(dibuilder)->getOrCreateArray(subrange));
+ return reinterpret_cast<LLVMZigDIType*>(di_type);
+}
+
LLVMZigDISubroutineType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped,
LLVMZigDIFile *file, LLVMZigDIType **types_array, int types_array_len, unsigned flags)
{