diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-05-28 14:02:57 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-05-28 14:02:57 +0000 |
commit | 8364e6aca3381e6572b54ed49299e94887610f9e (patch) | |
tree | 4f5958447440e1d671791b3ffc5ca822c8f4d4b4 /gcc | |
parent | 238108d24d602f5e82d5072e19c2b4133139067b (diff) | |
download | gcc-8364e6aca3381e6572b54ed49299e94887610f9e.zip gcc-8364e6aca3381e6572b54ed49299e94887610f9e.tar.gz gcc-8364e6aca3381e6572b54ed49299e94887610f9e.tar.bz2 |
frontend-passes.c (matmul_lhs_realloc): Correct allocation size for case A1B2.
2017-05-28 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c (matmul_lhs_realloc): Correct
allocation size for case A1B2.
2017-05-28 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.dg/matmul_bounds_12.f90: New test.
From-SVN: r248546
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/frontend-passes.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 | 17 |
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2674815..c9c6a02 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2017-05-28 Thomas Koenig <tkoenig@gcc.gnu.org> + + * frontend-passes.c (matmul_lhs_realloc): Correct + allocation size for case A1B2. + 2017-05-25 Thomas Koenig <tkoenig@gcc.gnu.org> * dump-parse-tree.c (show_expr): Also replace diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c index 1ea5b54..62cccc8 100644 --- a/gcc/fortran/frontend-passes.c +++ b/gcc/fortran/frontend-passes.c @@ -2447,7 +2447,7 @@ matmul_lhs_realloc (gfc_expr *c, gfc_expr *a, gfc_expr *b, break; case A1B2: - ar->start[0] = get_array_inq_function (GFC_ISYM_SIZE, b, 1); + ar->start[0] = get_array_inq_function (GFC_ISYM_SIZE, b, 2); cond = build_logical_expr (INTRINSIC_NE, get_array_inq_function (GFC_ISYM_SIZE, c, 1), get_array_inq_function (GFC_ISYM_SIZE, b, 2)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 55aed10..bdad067 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-05-28 Thomas Koenig <tkoenig@gcc.gnu.org> + + * gfortran.dg/matmul_bounds_12.f90: New test. + 2017-05-27 Jakub Jelinek <jakub@redhat.com> PR bootstrap/80887 diff --git a/gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 b/gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 new file mode 100644 index 0000000..01b3df9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 @@ -0,0 +1,17 @@ +! { dg-do run } +program main + real, dimension(3,2) :: a + real, dimension(3) :: bp + real, dimension(3) :: res1 + real, dimension(:), allocatable :: c3 + real, dimension(2) :: res2 + + data a /-2., 3., -5., 7., -11., 13./ + data bp /-23., -31., -41./ + data res2 /158., -353./ + + c3 = matmul(bp,a) + if (size(c3,1) /= 2) call abort + if (any(c3 /= res2)) call abort + +end program main |