gingerBill 2 years ago
parent
commit
27d56d0da4
3 changed files with 6 additions and 0 deletions
  1. 3 0
      src/check_expr.cpp
  2. 2 0
      src/check_type.cpp
  3. 1 0
      src/llvm_backend_debug.cpp

+ 3 - 0
src/check_expr.cpp

@@ -5525,6 +5525,8 @@ CALL_ARGUMENT_CHECKER(check_named_call_arguments) {
 			GB_ASSERT(is_type_proc(gept));
 			GB_ASSERT(is_type_proc(gept));
 			proc_type = gept;
 			proc_type = gept;
 			pt = &gept->Proc;
 			pt = &gept->Proc;
+		} else {
+			err = CallArgumentError_WrongTypes;
 		}
 		}
 	}
 	}
 
 
@@ -6156,6 +6158,7 @@ CallArgumentData check_call_arguments(CheckerContext *c, Operand *operand, Type
 			}
 			}
 			result_type = t_invalid;
 			result_type = t_invalid;
 		} else {
 		} else {
+			GB_ASSERT(valids.count == 1);
 			Ast *ident = operand->expr;
 			Ast *ident = operand->expr;
 			while (ident->kind == Ast_SelectorExpr) {
 			while (ident->kind == Ast_SelectorExpr) {
 				Ast *s = ident->SelectorExpr.selector;
 				Ast *s = ident->SelectorExpr.selector;

+ 2 - 0
src/check_type.cpp

@@ -1629,6 +1629,8 @@ Type *check_get_params(CheckerContext *ctx, Scope *scope, Ast *_params, bool *is
 						// This is just to add the error message to determine_type_from_polymorphic which
 						// This is just to add the error message to determine_type_from_polymorphic which
 						// depends on valid position information
 						// depends on valid position information
 						op.expr = _params;
 						op.expr = _params;
+						op.mode = Addressing_Invalid;
+						op.type = t_invalid;
 					}
 					}
 					if (is_type_polymorphic_type) {
 					if (is_type_polymorphic_type) {
 						type = determine_type_from_polymorphic(ctx, type, op);
 						type = determine_type_from_polymorphic(ctx, type, op);

+ 1 - 0
src/llvm_backend_debug.cpp

@@ -294,6 +294,7 @@ LLVMMetadataRef lb_debug_type_internal(lbModule *m, Type *type) {
 		GB_PANIC("Type_Named should be handled in lb_debug_type separately");
 		GB_PANIC("Type_Named should be handled in lb_debug_type separately");
 
 
 	case Type_SoaPointer:
 	case Type_SoaPointer:
+		return LLVMDIBuilderCreatePointerType(m->debug_builder, lb_debug_type(m, type->SoaPointer.elem), word_bits, word_bits, 0, nullptr, 0);
 	case Type_Pointer:
 	case Type_Pointer:
 		return LLVMDIBuilderCreatePointerType(m->debug_builder, lb_debug_type(m, type->Pointer.elem), word_bits, word_bits, 0, nullptr, 0);
 		return LLVMDIBuilderCreatePointerType(m->debug_builder, lb_debug_type(m, type->Pointer.elem), word_bits, word_bits, 0, nullptr, 0);
 	case Type_MultiPointer:
 	case Type_MultiPointer: