https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89939
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tkoenig at gcc dot gnu.org --- Comment #2 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- For this case, the solution is straightforward: Index: frontend-passes.c =================================================================== --- frontend-passes.c (Revision 270182) +++ frontend-passes.c (Arbeitskopie) @@ -3743,13 +3743,16 @@ /* Macros for unified error messages. */ -#define B_ERROR(n) _("Incorrect extent in argument B in MATMUL intrinsic in " \ - "dimension " #n ": is %ld, should be %ld") +#define B_ERROR_1 _("Incorrect extent in argument B in MATMUL intrinsic in " \ + "dimension 1: is %ld, should be %ld") -#define C_ERROR(n) _("Array bound mismatch for dimension " #n " of array " \ - "(%ld/%ld)") +#define C_ERROR_1 _("Array bound mismatch for dimension 1 of array " \ + "(%ld/%ld)") +#define C_ERROR_2 _("Array bound mismatch for dimension 2 of array " \ + "(%ld/%ld)") + /* Inline assignments of the form c = matmul(a,b). Handle only the cases currently where b and c are rank-two arrays. @@ -3976,7 +3979,7 @@ b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); - test = runtime_error_ne (b1, a2, B_ERROR(1)); + test = runtime_error_ne (b1, a2, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -3984,7 +3987,7 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (c1, a1, C_ERROR(1)); + test = runtime_error_ne (c1, a1, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; } @@ -3994,7 +3997,7 @@ b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (b1, a1, B_ERROR(1)); + test = runtime_error_ne (b1, a1, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4002,7 +4005,7 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); - test = runtime_error_ne (c1, b2, C_ERROR(1)); + test = runtime_error_ne (c1, b2, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; } @@ -4012,7 +4015,7 @@ b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); - test = runtime_error_ne (b1, a2, B_ERROR(1)); + test = runtime_error_ne (b1, a2, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4020,13 +4023,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (c1, a1, C_ERROR(1)); + test = runtime_error_ne (c1, a1, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); - test = runtime_error_ne (c2, b2, C_ERROR(2)); + test = runtime_error_ne (c2, b2, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; } @@ -4037,7 +4040,7 @@ b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); /* matrix_b is transposed, hence dimension 1 for the error message. */ - test = runtime_error_ne (b2, a2, B_ERROR(1)); + test = runtime_error_ne (b2, a2, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4045,13 +4048,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (c1, a1, C_ERROR(1)); + test = runtime_error_ne (c1, a1, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); - test = runtime_error_ne (c2, b1, C_ERROR(2)); + test = runtime_error_ne (c2, b1, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; } @@ -4061,7 +4064,7 @@ b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (b1, a1, B_ERROR(1)); + test = runtime_error_ne (b1, a1, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4069,13 +4072,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); - test = runtime_error_ne (c1, a2, C_ERROR(1)); + test = runtime_error_ne (c1, a2, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); - test = runtime_error_ne (c2, b2, C_ERROR(2)); + test = runtime_error_ne (c2, b2, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; } @@ -4478,7 +4481,7 @@ case A2B2: b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); - test = runtime_error_ne (b1, a2, B_ERROR(1)); + test = runtime_error_ne (b1, a2, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4486,13 +4489,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (c1, a1, C_ERROR(1)); + test = runtime_error_ne (c1, a1, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); - test = runtime_error_ne (c2, b2, C_ERROR(2)); + test = runtime_error_ne (c2, b2, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; } @@ -4503,7 +4506,7 @@ b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); /* matrix_b is transposed, hence dimension 1 for the error message. */ - test = runtime_error_ne (b2, a2, B_ERROR(1)); + test = runtime_error_ne (b2, a2, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4511,13 +4514,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (c1, a1, C_ERROR(1)); + test = runtime_error_ne (c1, a1, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); - test = runtime_error_ne (c2, b1, C_ERROR(2)); + test = runtime_error_ne (c2, b1, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; } @@ -4527,7 +4530,7 @@ b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (b1, a1, B_ERROR(1)); + test = runtime_error_ne (b1, a1, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4535,13 +4538,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); - test = runtime_error_ne (c1, a2, C_ERROR(1)); + test = runtime_error_ne (c1, a2, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); - test = runtime_error_ne (c2, b2, C_ERROR(2)); + test = runtime_error_ne (c2, b2, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; } @@ -4550,7 +4553,7 @@ case A2TB2T: b2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 2); a1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 1); - test = runtime_error_ne (b2, a1, B_ERROR(1)); + test = runtime_error_ne (b2, a1, B_ERROR_1); *next_code_point = test; next_code_point = &test->next; @@ -4558,13 +4561,13 @@ { c1 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 1); a2 = get_array_inq_function (GFC_ISYM_SIZE, matrix_a, 2); - test = runtime_error_ne (c1, a2, C_ERROR(1)); + test = runtime_error_ne (c1, a2, C_ERROR_1); *next_code_point = test; next_code_point = &test->next; c2 = get_array_inq_function (GFC_ISYM_SIZE, expr1, 2); b1 = get_array_inq_function (GFC_ISYM_SIZE, matrix_b, 1); - test = runtime_error_ne (c2, b1, C_ERROR(2)); + test = runtime_error_ne (c2, b1, C_ERROR_2); *next_code_point = test; next_code_point = &test->next; }