From c51ecf2813baeab6e24a2474d6c097d047ad41a2 Mon Sep 17 00:00:00 2001
From: Thomas Koenig <tkoenig@gcc.gnu.org>
Date: Sun, 26 May 2019 14:02:51 +0000
Subject: [PATCH] re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby
 with -Ofast -march=native starting with r271377)

2019-05-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/90539
	* trans-types.c (get_formal_from_actual_arglist): Set rank
	and lower bound for assumed size arguments.

From-SVN: r271630
---
 gcc/fortran/ChangeLog     | 6 ++++++
 gcc/fortran/trans-types.c | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c3240f44e8d4..679633d616d1 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2019-05-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+	PR fortran/90539
+	* trans-types.c (get_formal_from_actual_arglist): Set rank
+	and lower bound for assumed size arguments.
+
 2019-05-22  Andrew Stubbs  <ams@codesourcery.com>
 
 	* trans-stmt.c (gfc_trans_critical): Use size_type_node for
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index 22410b551e6c..e16de59f6668 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -3010,6 +3010,10 @@ get_formal_from_actual_arglist (gfc_symbol *sym, gfc_actual_arglist *actual_args
 		{
 		  s->attr.dimension = 1;
 		  s->as = gfc_get_array_spec ();
+		  s->as->rank = 1;
+		  s->as->lower[0] = gfc_get_int_expr (gfc_index_integer_kind,
+						      &a->expr->where, 1);
+		  s->as->upper[0] = NULL;
 		  s->as->type = AS_ASSUMED_SIZE;
 		}
 	    }
-- 
GitLab