From f2fe231ddf6ad6f7e46190e6a47996d7996b7b76 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 3 Feb 2016 02:21:28 -0700 Subject: [PATCH] add @compile_var("is_release") --- src/analyze.cpp | 2 ++ src/codegen.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/analyze.cpp b/src/analyze.cpp index 2913a07bb45fb892eac9fb6f6bbd427e4cca0406..e423b6fd0e41b1882bba47bdd1551834fce99323 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -4020,6 +4020,8 @@ static TypeTableEntry *analyze_builtin_fn_call_expr(CodeGen *g, ImportTableEntry if (buf_eql_str(&var_name, "is_big_endian")) { return resolve_expr_const_val_as_bool(g, node, g->is_big_endian); + } else if (buf_eql_str(&var_name, "is_release")) { + return resolve_expr_const_val_as_bool(g, node, g->build_type == CodeGenBuildTypeRelease); } else { add_node_error(g, *str_node, buf_sprintf("unrecognized compile variable: '%s'", buf_ptr(&var_name))); diff --git a/src/codegen.cpp b/src/codegen.cpp index 49e9c8b91a19595d94d9988096c35a85582e1619..2d080f9d1c49835eec8ee8a20a46653a6d99b470 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -1353,6 +1353,8 @@ static LLVMValueRef gen_struct_memcpy(CodeGen *g, AstNode *source_node, LLVMValu TypeTableEntry *isize = g->builtin_types.entry_isize; uint64_t size_bytes = LLVMStoreSizeOfType(g->target_data_ref, type_entry->type_ref); uint64_t align_bytes = get_memcpy_align(g, type_entry); + assert(size_bytes > 0); + assert(align_bytes > 0); LLVMValueRef params[] = { dest_ptr, // dest pointer -- 2.54.0