Add constant literal expressions

This commit is contained in:
gingerBill
2019-12-27 15:49:52 +00:00
parent 880c7f01a8
commit f99f351e01
5 changed files with 284 additions and 42 deletions
+7
View File
@@ -6978,6 +6978,13 @@ irValue *ir_build_expr_internal(irProcedure *proc, Ast *expr) {
return ir_addr_load(proc, ir_build_addr(proc, expr));
}
if (tv.mode == Addressing_Constant) {
GB_ASSERT(tv.value.kind == ExactValue_Invalid);
// NOTE(bill): Zero value constant
return ir_add_module_constant(proc->module, tv.type, tv.value);
}
switch (expr->kind) {
case_ast_node(bl, BasicLit, expr);
TokenPos pos = bl->token.pos;