Commit f2fe231ddf

Andrew Kelley <superjoe30@gmail.com>
2016-02-03 10:21:28
add @compile_var("is_release")
1 parent b28f7d0
Changed files (2)
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)));
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