aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-05-24 12:52:08 +0100
committergingerBill <bill@gingerbill.org>2020-05-24 12:52:08 +0100
commit2be87169efbe63409530cb7f6a0711dac8753056 (patch)
treeca8c854949c74196799118b891e6a6fafdf686ee /src/llvm_backend.cpp
parentcbfbff7240d7ce649137cede82ccf07b78888179 (diff)
Fix #656
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp66
1 files changed, 16 insertions, 50 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 9e0ca6bdb..e26308c35 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2355,58 +2355,24 @@ void lb_begin_procedure_body(lbProcedure *p) {
if (p->type->Proc.params != nullptr) {
TypeTuple *params = &p->type->Proc.params->Tuple;
- if (p->type_expr != nullptr) {
- ast_node(pt, ProcType, p->type_expr);
- isize param_index = 0;
- isize q_index = 0;
-
- for_array(i, params->variables) {
- ast_node(fl, FieldList, pt->params);
- GB_ASSERT(fl->list.count > 0);
- GB_ASSERT(fl->list[0]->kind == Ast_Field);
- if (q_index == fl->list[param_index]->Field.names.count) {
- q_index = 0;
- param_index++;
- }
- ast_node(field, Field, fl->list[param_index]);
- Ast *name = field->names[q_index++];
-
- Entity *e = params->variables[i];
- if (e->kind != Entity_Variable) {
- continue;
- }
+ auto abi_types = p->type->Proc.abi_compat_params;
- Type *abi_type = p->type->Proc.abi_compat_params[i];
- if (e->token.string != "") {
- lb_add_param(p, e, name, abi_type, parameter_index);
- }
-
- if (is_type_tuple(abi_type)) {
- parameter_index += cast(i32)abi_type->Tuple.variables.count;
- } else {
- parameter_index += 1;
- }
+ for_array(i, params->variables) {
+ Entity *e = params->variables[i];
+ if (e->kind != Entity_Variable) {
+ continue;
}
- } else {
- auto abi_types = p->type->Proc.abi_compat_params;
-
- for_array(i, params->variables) {
- Entity *e = params->variables[i];
- if (e->kind != Entity_Variable) {
- continue;
- }
- Type *abi_type = e->type;
- if (abi_types.count > 0) {
- abi_type = abi_types[i];
- }
- if (e->token.string != "") {
- lb_add_param(p, e, nullptr, abi_type, parameter_index);
- }
- if (is_type_tuple(abi_type)) {
- parameter_index += cast(i32)abi_type->Tuple.variables.count;
- } else {
- parameter_index += 1;
- }
+ Type *abi_type = e->type;
+ if (abi_types.count > 0) {
+ abi_type = abi_types[i];
+ }
+ if (e->token.string != "") {
+ lb_add_param(p, e, nullptr, abi_type, parameter_index);
+ }
+ if (is_type_tuple(abi_type)) {
+ parameter_index += cast(i32)abi_type->Tuple.variables.count;
+ } else {
+ parameter_index += 1;
}
}
}