The failures in the testcases gfortran.dg/char_transpose_1.f90,
gfortran.dg/matmul_2.f90, gfortran.dg/matmul_3.f90 are apparently due to a
miscompilation of the gfortran FE.

The error can be traced to the following code from trans-arrray.c:775
  for (n = 0; n < 2; n++)
    {
      dest_info->delta[n] = gfc_index_zero_node;
      dest_info->start[n] = gfc_index_zero_node;
      dest_info->stride[n] = gfc_index_one_node;
      dest_info->dim[n] = n;

      dest_index = gfc_rank_cst[n];
      src_index = gfc_rank_cst[1-n];
      ...
Replacing the last line by the equivalent
      if (n == 0)
          src_index = gfc_rank_cst[1];
     else if (n == 1)
          src_index = gfc_rank_cst[0];

Fixes the testsuite failures.


-- 
           Summary: gcc miscompiling gfortran
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tobi at gcc dot gnu dot org
  GCC host triplet: i686-darwin


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29977

Reply via email to