From 11c64bfe6ec921a481b340392ab1d2377359586d Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Sun, 13 Nov 2022 20:19:46 +0200 Subject: llvm: implement arbitrary precision debug enumerators Closes #645 --- src/zig_llvm.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/zig_llvm.cpp') diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index b5edb336a5..7134df6a9c 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -594,8 +594,16 @@ ZigLLVMDIType *ZigLLVMCreateDebugArrayType(ZigLLVMDIBuilder *dibuilder, uint64_t return reinterpret_cast(di_type); } -ZigLLVMDIEnumerator *ZigLLVMCreateDebugEnumerator(ZigLLVMDIBuilder *dibuilder, const char *name, int64_t val) { - DIEnumerator *di_enumerator = reinterpret_cast(dibuilder)->createEnumerator(name, val); +ZigLLVMDIEnumerator *ZigLLVMCreateDebugEnumerator(ZigLLVMDIBuilder *dibuilder, const char *name, uint64_t val, bool isUnsigned) { + DIEnumerator *di_enumerator = reinterpret_cast(dibuilder)->createEnumerator(name, val, isUnsigned); + return reinterpret_cast(di_enumerator); +} + +ZigLLVMDIEnumerator *ZigLLVMCreateDebugEnumeratorOfArbitraryPrecision(ZigLLVMDIBuilder *dibuilder, + const char *name, unsigned NumWords, const uint64_t Words[], unsigned int bits, bool isUnsigned) +{ + DIEnumerator *di_enumerator = reinterpret_cast(dibuilder)->createEnumerator(name, + APSInt(APInt(bits, makeArrayRef(Words, NumWords)), isUnsigned)); return reinterpret_cast(di_enumerator); } -- cgit v1.2.3