diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2011-03-29 07:58:54 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2011-03-29 07:58:54 +0000 |
commit | 23360fe40929b6f731db12007a7b262e72e5e336 (patch) | |
tree | 1acd8e0e6c03c7b1a06a0e430e76382f808828b6 /gcc | |
parent | b7469e034026f2c99add427a6c7e90f7088cd712 (diff) | |
download | gcc-23360fe40929b6f731db12007a7b262e72e5e336.zip gcc-23360fe40929b6f731db12007a7b262e72e5e336.tar.gz gcc-23360fe40929b6f731db12007a7b262e72e5e336.tar.bz2 |
function_optimize_1.f90: Add -Warray-temporaries, check for corresponding warning.
2011-03-29 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.dg/function_optimize_1.f90: Add -Warray-temporaries,
check for corresponding warning.
2011-03-29 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c (create_var): Warn about creating an
array temporary if requested.
From-SVN: r171653
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/frontend-passes.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/function_optimize_1.f90 | 5 |
4 files changed, 16 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 95d9b78..4bb344d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,7 +1,12 @@ +2011-03-29 Thomas Koenig <tkoenig@gcc.gnu.org> + + * frontend-passes.c (create_var): Warn about creating an + array temporary if requested. + 2011-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/47065 - * frontend-passes (optimize_trim): Also follow references, except + * frontend-passes.c (optimize_trim): Also follow references, except when they are substring references or array references. 2011-03-27 Tobias Burnus <burnus@net-b.de> diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c index 2051b0c..6e59c37 100644 --- a/gcc/fortran/frontend-passes.c +++ b/gcc/fortran/frontend-passes.c @@ -256,6 +256,8 @@ create_var (gfc_expr * e) result->ref->u.ar.type = AR_FULL; result->ref->u.ar.where = e->where; result->ref->u.ar.as = symbol->as; + if (gfc_option.warn_array_temp) + gfc_warning ("Creating array temporary at %L", &(e->where)); } /* Generate the new assignment. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7b1a72e..071f959 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-03-29 Thomas Koenig <tkoenig@gcc.gnu.org> + + * gfortran.dg/function_optimize_1.f90: Add -Warray-temporaries, + check for corresponding warning. + 2011-03-28 Jason Merrill <jason@redhat.com> * g++.dg/cpp0x/rv-deduce2.C: New. diff --git a/gcc/testsuite/gfortran.dg/function_optimize_1.f90 b/gcc/testsuite/gfortran.dg/function_optimize_1.f90 index eaa915f..b023121 100644 --- a/gcc/testsuite/gfortran.dg/function_optimize_1.f90 +++ b/gcc/testsuite/gfortran.dg/function_optimize_1.f90 @@ -1,5 +1,5 @@ ! { dg-do compile } -! { dg-options "-O -fdump-tree-original" } +! { dg-options "-O -fdump-tree-original -Warray-temporaries" } program main implicit none real, dimension(2,2) :: a, b, c, d @@ -24,7 +24,8 @@ program main data a /2., 3., 5., 7./ data b /11., 13., 17., 23./ - write (unit=line, fmt='(4F7.2)') matmul(a,b) + matmul(a,b) + write (unit=line, fmt='(4F7.2)') matmul(a,b) & + & + matmul(a,b) ! { dg-warning "Creating array temporary" } z = sin(x) + cos(x) + sin(x) + cos(x) print *,z x = ext_func(a) + 23 + ext_func(a) |