[patch, fortran] Unify / fix error messages for matmul

Thomas Koenig tkoenig@netcologne.de
Sun Sep 16 16:14:00 GMT 2018


Hello world,

looking through the code for run-time checking of matmul, I found that
a) the code was not very clear, and b) due to this, at least one case
was not checked correctly.

So, here is a rewrite of that section. I have also made sure that
the error messages now agree between library and compiler-generated
error messages. The macros for error messages also contain the
_ magic, so I hope that translation will be easier.

I may also have fixed other bugs in that section, I didn't check
very thoroughly.

There was one suggestion in PR 37802. For code like

c = matmul(a,b)

where the boundaries of c were not correct, this is actually an error
in the assignment, so I have made the error message match what we emit
for normal array access out of bounds (like a(1:3) = b(1:2)).

Regression-tested. OK for trunk?

Regards

	Thomas

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* frontend-passes.c (B_ERROR): New macro for matmul bounds
	checking error messages.
	(C_ERROR): Likewise.
	(inline_matmul_assign): Reorganize bounds checking, use B_ERROR
	and C_ERROR macros.

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* gfortran.dg/matmul_bounds_13.f90: New test case.
	* gfortran.dg/inline_matmul_15.f90:  Adjust test for runtime
	error.
	* gfortran.dg/matmul_5.f90: Likewise.
	* gfortran.dg/matmul_bounds_10.f90: Likewise.
	* gfortran.dg/matmul_bounds_11.f90: Likewise.
	* gfortran.dg/matmul_bounds_2.f90: Likewise.
	* gfortran.dg/matmul_bounds_4.f90: Likewise.
	* gfortran.dg/matmul_bounds_5.f90: Likewise.

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* m4/matmul_internal.m4: Adjust error messages.
         * generated/matmul_c10.c: Regenerated.
         * generated/matmul_c16.c: Regenerated.
         * generated/matmul_c4.c: Regenerated.
         * generated/matmul_c8.c: Regenerated.
         * generated/matmul_i1.c: Regenerated.
         * generated/matmul_i16.c: Regenerated.
         * generated/matmul_i2.c: Regenerated.
         * generated/matmul_i4.c: Regenerated.
         * generated/matmul_i8.c: Regenerated.
         * generated/matmul_r10.c: Regenerated.
         * generated/matmul_r16.c: Regenerated.
         * generated/matmul_r4.c: Regenerated.
         * generated/matmul_r8.c: Regenerated.
         * generated/matmulavx128_c10.c: Regenerated.
         * generated/matmulavx128_c16.c: Regenerated.
         * generated/matmulavx128_c4.c: Regenerated.
         * generated/matmulavx128_c8.c: Regenerated.
         * generated/matmulavx128_i1.c: Regenerated.
         * generated/matmulavx128_i16.c: Regenerated.
         * generated/matmulavx128_i2.c: Regenerated.
         * generated/matmulavx128_i4.c: Regenerated.
         * generated/matmulavx128_i8.c: Regenerated.
         * generated/matmulavx128_r10.c: Regenerated.
         * generated/matmulavx128_r16.c: Regenerated.
         * generated/matmulavx128_r4.c: Regenerated.
         * generated/matmulavx128_r8.c: Regenerated.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: matmul_bounds_13.f90
Type: text/x-fortran
Size: 512 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180916/be66d6da/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p2.diff
Type: text/x-patch
Size: 294987 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180916/be66d6da/attachment-0001.bin>


More information about the Gcc-patches mailing list