| ... | @@ -813,8 +813,19 @@ static const char *calling_convention_name(CallingConvention cc) { | ... | @@ -813,8 +813,19 @@ static const char *calling_convention_name(CallingConvention cc) { |
| 813 | case CallingConventionCold: return "coldcc"; | 813 | case CallingConventionCold: return "coldcc"; |
| 814 | case CallingConventionNaked: return "nakedcc"; | 814 | case CallingConventionNaked: return "nakedcc"; |
| 815 | case CallingConventionStdcall: return "stdcallcc"; | 815 | case CallingConventionStdcall: return "stdcallcc"; |
| 816 | default: zig_unreachable(); | | |
| 817 | } | 816 | } |
| | 817 | zig_unreachable(); |
| | 818 | } |
| | 819 | |
| | 820 | static const char *calling_convention_fn_type_str(CallingConvention cc) { |
| | 821 | switch (cc) { |
| | 822 | case CallingConventionUnspecified: return ""; |
| | 823 | case CallingConventionC: return "extern "; |
| | 824 | case CallingConventionCold: return "coldcc "; |
| | 825 | case CallingConventionNaked: return "nakedcc "; |
| | 826 | case CallingConventionStdcall: return "stdcallcc "; |
| | 827 | } |
| | 828 | zig_unreachable(); |
| 818 | } | 829 | } |
| 819 | | 830 | |
| 820 | TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { | 831 | TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { |
| ... | @@ -832,24 +843,7 @@ TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { | ... | @@ -832,24 +843,7 @@ TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { |
| 832 | | 843 | |
| 833 | // populate the name of the type | 844 | // populate the name of the type |
| 834 | buf_resize(&fn_type->name, 0); | 845 | buf_resize(&fn_type->name, 0); |
| 835 | const char *cc_str; | 846 | const char *cc_str = calling_convention_fn_type_str(fn_type->data.fn.fn_type_id.cc); |
| 836 | switch (fn_type->data.fn.fn_type_id.cc) { | | |
| 837 | case CallingConventionUnspecified: | | |
| 838 | cc_str = ""; | | |
| 839 | break; | | |
| 840 | case CallingConventionC: | | |
| 841 | cc_str = "extern "; | | |
| 842 | break; | | |
| 843 | case CallingConventionCold: | | |
| 844 | cc_str = "coldcc "; | | |
| 845 | break; | | |
| 846 | case CallingConventionNaked: | | |
| 847 | cc_str = "nakedcc "; | | |
| 848 | break; | | |
| 849 | case CallingConventionStdcall: | | |
| 850 | cc_str = "stdcallcc "; | | |
| 851 | break; | | |
| 852 | } | | |
| 853 | buf_appendf(&fn_type->name, "%sfn(", cc_str); | 847 | buf_appendf(&fn_type->name, "%sfn(", cc_str); |
| 854 | for (size_t i = 0; i < fn_type_id->param_count; i += 1) { | 848 | for (size_t i = 0; i < fn_type_id->param_count; i += 1) { |
| 855 | FnTypeParamInfo *param_info = &fn_type_id->param_info[i]; | 849 | FnTypeParamInfo *param_info = &fn_type_id->param_info[i]; |
| ... | @@ -4145,6 +4139,8 @@ void render_const_value(CodeGen *g, Buf *buf, ConstExprValue *const_val) { | ... | @@ -4145,6 +4139,8 @@ void render_const_value(CodeGen *g, Buf *buf, ConstExprValue *const_val) { |
| 4145 | } | 4139 | } |
| 4146 | | 4140 | |
| 4147 | TypeTableEntry *make_int_type(CodeGen *g, bool is_signed, uint32_t size_in_bits) { | 4141 | TypeTableEntry *make_int_type(CodeGen *g, bool is_signed, uint32_t size_in_bits) { |
| | 4142 | assert(size_in_bits > 0); |
| | 4143 | |
| 4148 | TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdInt); | 4144 | TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdInt); |
| 4149 | entry->is_copyable = true; | 4145 | entry->is_copyable = true; |
| 4150 | entry->type_ref = LLVMIntType(size_in_bits); | 4146 | entry->type_ref = LLVMIntType(size_in_bits); |