diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-08-06 18:15:11 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-08-06 18:15:11 -0400 |
| commit | d83e4092bfee7bfdb59d1522289aa0bc7df407e4 (patch) | |
| tree | bbfd8e765bbd7130c22245095f18d8a4f8414951 /src/analyze.cpp | |
| parent | a0a57beed53a08346a3b6e0d739ee221f151ceca (diff) | |
| download | zig-d83e4092bfee7bfdb59d1522289aa0bc7df407e4.tar.gz zig-d83e4092bfee7bfdb59d1522289aa0bc7df407e4.zip | |
fix constant debug info when number literal is 0
Diffstat (limited to 'src/analyze.cpp')
| -rw-r--r-- | src/analyze.cpp | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp index 6ad5af782b..8418dbdcd1 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -813,8 +813,19 @@ static const char *calling_convention_name(CallingConvention cc) { case CallingConventionCold: return "coldcc"; case CallingConventionNaked: return "nakedcc"; case CallingConventionStdcall: return "stdcallcc"; - default: zig_unreachable(); } + zig_unreachable(); +} + +static const char *calling_convention_fn_type_str(CallingConvention cc) { + switch (cc) { + case CallingConventionUnspecified: return ""; + case CallingConventionC: return "extern "; + case CallingConventionCold: return "coldcc "; + case CallingConventionNaked: return "nakedcc "; + case CallingConventionStdcall: return "stdcallcc "; + } + zig_unreachable(); } TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { @@ -832,24 +843,7 @@ TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { // populate the name of the type buf_resize(&fn_type->name, 0); - const char *cc_str; - switch (fn_type->data.fn.fn_type_id.cc) { - case CallingConventionUnspecified: - cc_str = ""; - break; - case CallingConventionC: - cc_str = "extern "; - break; - case CallingConventionCold: - cc_str = "coldcc "; - break; - case CallingConventionNaked: - cc_str = "nakedcc "; - break; - case CallingConventionStdcall: - cc_str = "stdcallcc "; - break; - } + const char *cc_str = calling_convention_fn_type_str(fn_type->data.fn.fn_type_id.cc); buf_appendf(&fn_type->name, "%sfn(", cc_str); for (size_t i = 0; i < fn_type_id->param_count; i += 1) { FnTypeParamInfo *param_info = &fn_type_id->param_info[i]; @@ -4145,6 +4139,8 @@ void render_const_value(CodeGen *g, Buf *buf, ConstExprValue *const_val) { } TypeTableEntry *make_int_type(CodeGen *g, bool is_signed, uint32_t size_in_bits) { + assert(size_in_bits > 0); + TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdInt); entry->is_copyable = true; entry->type_ref = LLVMIntType(size_in_bits); |
