mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
0.5.3: Single-module not respected. Fix issue with compiler defined types. Fix optimization levels for projects. Use GEP i8 on offsets. Optimize foreach on len 1 arrays. Move panic blocks last. Fix generic module wildcard imports. Deprecate init_temp / init_new. Fix issue with macro vaarg and untyped lists. Fix extern const globals.
This commit is contained in:
committed by
Christoffer Lerno
parent
e91f6e268e
commit
deb4cc7c4b
@@ -990,7 +990,7 @@ static inline void llvm_emit_assume(GenContext *c, Expr *expr)
|
||||
llvm_value_rvalue(c, &value);
|
||||
assert(value.kind == BE_BOOLEAN);
|
||||
EMIT_LOC(c, expr);
|
||||
llvm_emit_call_intrinsic(c, intrinsic_id.assume, NULL, 0, &(value.value), 1);
|
||||
llvm_emit_assume_raw(c, value.value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1392,8 +1392,11 @@ void llvm_emit_panic_if_true(GenContext *c, BEValue *value, const char *panic_na
|
||||
LLVMBasicBlockRef panic_block = llvm_basic_block_new(c, "panic");
|
||||
LLVMBasicBlockRef ok_block = llvm_basic_block_new(c, "checkok");
|
||||
assert(llvm_value_is_bool(value));
|
||||
value->value = llvm_emit_expect_false_raw(c, value->value);
|
||||
llvm_emit_cond_br(c, value, panic_block, ok_block);
|
||||
|
||||
llvm_emit_block(c, panic_block);
|
||||
vec_add(c->panic_blocks, panic_block);
|
||||
BEValue *values = NULL;
|
||||
if (value_1)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user