mirror of git://gcc.gnu.org/git/gcc.git
re PR fortran/57992 (Pointless packing of contiguous arrays for simply contiguous functions results as actual arguments)
2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/57992 * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack functions with contiguous results. 2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/59345 * gfortran.dg/internal_pack_18.f90: New test. From-SVN: r267905
This commit is contained in:
parent
234c38181a
commit
8ef8fa9a4d
|
|
@ -1,3 +1,9 @@
|
||||||
|
2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/57992
|
||||||
|
* trans-array.c (gfc_conv_array_parameter): Do not pack/unpack
|
||||||
|
functions with contiguous results.
|
||||||
|
|
||||||
2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/59345
|
PR fortran/59345
|
||||||
|
|
|
||||||
|
|
@ -7894,7 +7894,9 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, bool g77,
|
||||||
{
|
{
|
||||||
gfc_symbol *result = expr->value.function.esym->result;
|
gfc_symbol *result = expr->value.function.esym->result;
|
||||||
if (result->attr.dimension
|
if (result->attr.dimension
|
||||||
&& (result->as->type == AS_EXPLICIT || result->attr.allocatable))
|
&& (result->as->type == AS_EXPLICIT
|
||||||
|
|| result->attr.allocatable
|
||||||
|
|| result->attr.contiguous))
|
||||||
no_pack = 1;
|
no_pack = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/59345
|
||||||
|
* gfortran.dg/internal_pack_18.f90: New test.
|
||||||
|
|
||||||
2019-01-13 H.J. Lu <hongjiu.lu@intel.com>
|
2019-01-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* gcc.dg/pr51628-20.c: Updated.
|
* gcc.dg/pr51628-20.c: Updated.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
! { dg-do compile }
|
||||||
|
! { dg-additional-options "-fdump-tree-original" }
|
||||||
|
! PR 57992 - this was packed/unpacked unnecessarily.
|
||||||
|
! Original case by Tobias Burnus.
|
||||||
|
subroutine test
|
||||||
|
interface
|
||||||
|
function f2()
|
||||||
|
integer, pointer, contiguous :: f2(:)
|
||||||
|
end function f2
|
||||||
|
end interface
|
||||||
|
|
||||||
|
call bar(f2())
|
||||||
|
end subroutine test
|
||||||
|
! { dg-final { scan-tree-dump-not "_gfortran_internal_pack" "original" } }
|
||||||
|
! { dg-final { scan-tree-dump-not "_gfortran_internal_unpack" "original" } }
|
||||||
Loading…
Reference in New Issue