@@ -6495,11 +6495,29 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
64956495			} else  {
64966496				if  (show_error) {
64976497					check_assignment (c, o, param_type, str_lit (" procedure argument"  ));
6498+ 					gbString pts = type_to_string (param_type);
6499+ 					gbString ots = type_to_string (o->type , true );
6500+ 					defer  (gb_string_free (pts));
6501+ 					defer  (gb_string_free (ots));
6502+ 					if  (pts[0 ] == ' ^'   && pts[0 ] != ots[0 ]){
6503+ 						gbString os = expr_to_string (o->expr );
6504+ 						defer  (gb_string_free (os));
6505+ 						error_line (" \t Suggestion: Try passing the pointer instead of the value with '&%s'\n "  , os);
6506+ 					}
64986507				}
64996508				err = CallArgumentError_WrongTypes;
65006509			}
65016510		} else  if  (show_error) {
65026511			check_assignment (c, o, param_type, str_lit (" procedure argument"  ));
6512+ 			//  gbString pts = type_to_string(param_type);
6513+ 			//  gbString ots = type_to_string(o->type, true);
6514+ 			//  defer (gb_string_free(pts));
6515+ 			//  defer (gb_string_free(ots));
6516+ 			//  if (pts[0] == '^' && pts[0] != ots[0]){
6517+ 			//  	gbString os = expr_to_string(o->expr);
6518+ 			//  	defer (gb_string_free(os));
6519+ 			//  	error_line("\tSuggestion: Try passing the pointer instead of the value with '&%s'\n", os);
6520+ 			//  }
65036521		}
65046522
65056523		if  (e && e->flags  & EntityFlag_ConstInput) {
0 commit comments