diff mbox

[fortran,19/66] inline sum and product: Interfaces changes: dim_ok

Message ID 20111027233026.18581.71418@gimli.local
State New
Headers show

Commit Message

Mikael Morin Oct. 27, 2011, 11:30 p.m. UTC
Same as previous patch, dim_ok uses dimensions and needs a gfc_ss struct as
argument.
The name is changed to the more descriptive transposed_dims and the logic
is inverted (dim_ok <=> !transposed_dims).
OK?
2011-10-19  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (dim_ok, transposed_dims): Rename the former to the
	latter.  Change argument type.  Invert return value.
	(gfc_conv_expr_descriptor): Update calls.
diff mbox

Patch

diff --git a/trans-array.c b/trans-array.c
index eeed8bb..dc4dccd 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -5659,13 +5659,16 @@  get_array_charlen (gfc_expr *expr, gfc_se *se)
 
 /* Helper function to check dimensions.  */
 static bool
-dim_ok (gfc_ss_info *info)
+transposed_dims (gfc_ss *ss)
 {
+  gfc_ss_info *info;
   int n;
+
+  info = &ss->data.info;
   for (n = 0; n < info->dimen; n++)
     if (info->dim[n] != n)
-      return false;
-  return true;
+      return true;
+  return false;
 }
 
 /* Convert an array for passing as an actual argument.  Expressions and
@@ -5752,7 +5755,7 @@  gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
       else
 	full = gfc_full_array_ref_p (info->ref, NULL);
 
-      if (full && dim_ok (info))
+      if (full && !transposed_dims (ss))
 	{
 	  if (se->direct_byref && !se->byref_noassign)
 	    {
@@ -5949,7 +5952,7 @@  gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
 
       desc = loop.temp_ss->data.info.descriptor;
     }
-  else if (expr->expr_type == EXPR_FUNCTION && dim_ok (info))
+  else if (expr->expr_type == EXPR_FUNCTION && !transposed_dims (ss))
     {
       desc = info->descriptor;
       se->string_length = ss->string_length;