diff --git a/src/parsers/bits.c b/src/parsers/bits.c index ae01a7f1c31b18f2f9e11a20ea99998ed7539e15..336585a799b24c935358b1f02a90ec6f7b9bd84d 100644 --- a/src/parsers/bits.c +++ b/src/parsers/bits.c @@ -34,10 +34,8 @@ static bool bits_llvm(HLLVMParserCompileContext *ctxt, /* Allocator */ HAllocator *mm__ = NULL; /* Names */ - char *bits_bb_name = NULL; - int bits_bb_name_len = 0; - char *read_bits_name = NULL; - int read_bits_name_len; + H_LLVM_DECLARE_NAME(bits_bb); + H_LLVM_DECLARE_NAME(read_bits); /* Basic blocks */ LLVMBasicBlockRef bits_bb; /* Arguments for call to h_read_bits() */ @@ -68,9 +66,7 @@ static bool bits_llvm(HLLVMParserCompileContext *ctxt, bits_args[2] = LLVMConstInt(LLVMInt8Type(), env->signedp ? 1 : 0, 0); /* Set up basic blocks: entry, success and failure branches, then exit */ - bits_bb_name_len = snprintf(NULL, 0, "bits_%p", p); - bits_bb_name = h_new(char, bits_bb_name_len + 1); - snprintf(bits_bb_name, bits_bb_name_len + 1, "bits_%p", p); + H_LLVM_COMPUTE_NAME(bits_bb, p); bits_bb = LLVMAppendBasicBlock(ctxt->func, bits_bb_name); LLVMBuildBr(ctxt->builder, bits_bb); LLVMPositionBuilderAtEnd(ctxt->builder, bits_bb); @@ -82,9 +78,7 @@ static bool bits_llvm(HLLVMParserCompileContext *ctxt, * i32 env_->length, * i8 signext env_->signedp) */ - read_bits_name_len = snprintf(NULL, 0, "bits_read_bits_%p", p); - read_bits_name = h_new(char, read_bits_name_len + 1); - snprintf(read_bits_name, read_bits_name_len + 1, "bits_read_bits_%p", p); + H_LLVM_COMPUTE_NAME(read_bits, p); bits = LLVMBuildCall(ctxt->builder, LLVMGetNamedFunction(ctxt->mod, "h_read_bits"), bits_args, 3, read_bits_name); @@ -95,15 +89,8 @@ static bool bits_llvm(HLLVMParserCompileContext *ctxt, /* Return mr */ *res = mr; - if (bits_bb_name) { - h_free(bits_bb_name); - bits_bb_name = NULL; - } - - if (read_bits_name) { - h_free(read_bits_name); - read_bits_name = NULL; - } + H_LLVM_FREE_NAME(bits_bb); + H_LLVM_FREE_NAME(read_bits); return true; }