From 1abb4e59be4ceed603ec377d89b4b8ce831dbebe Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 2 Jan 2016 21:56:33 -0700 Subject: fix various bugs related to guess number example --- src/analyze.cpp | 1 + src/codegen.cpp | 1 + src/parser.cpp | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/analyze.cpp b/src/analyze.cpp index 7e3f80439b..0f0dc372f2 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -196,6 +196,7 @@ static TypeTableEntry *get_array_type(CodeGen *g, TypeTableEntry *child_type, ui entry->size_in_bits = child_type->size_in_bits * array_size; entry->align_in_bits = child_type->align_in_bits; + entry->di_type = LLVMZigCreateDebugArrayType(g->dbuilder, entry->size_in_bits, entry->align_in_bits, child_type->di_type, array_size); entry->data.array.child_type = child_type; diff --git a/src/codegen.cpp b/src/codegen.cpp index f2660f58a1..1a865c3ae8 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -1570,6 +1570,7 @@ static void do_code_gen(CodeGen *g) { add_debug_source_node(g, var->decl_node); var->value_ref = LLVMBuildAlloca(g->builder, var->type->type_ref, buf_ptr(&var->name)); + LLVMSetAlignment(var->value_ref, var->type->align_in_bits / 8); } var->di_loc_var = LLVMZigCreateLocalVariable(g->dbuilder, tag, diff --git a/src/parser.cpp b/src/parser.cpp index c061725a65..ab0abd5285 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -628,7 +628,7 @@ static uint8_t parse_char_literal(ParseContext *pc, Token *token) { } else if (return_count > 1) { ast_error(pc, token, "character literal too long"); } - return return_count; + return return_value; } static void parse_string_literal(ParseContext *pc, Token *token, Buf *buf, bool *out_c_str, -- cgit v1.2.3