* trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
authorvehre <vehre@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Feb 2015 09:59:47 +0000 (09:59 +0000)
committervehre <vehre@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Feb 2015 09:59:47 +0000 (09:59 +0000)
* trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
Fixed datatype of charlen to be a 32-bit int.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220345 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c

index 7e455ef..6d5964a 100644 (file)
@@ -1,3 +1,10 @@
+
+2015-01-30  Andre Vehreschild  <vehre@gmx.de>
+
+       * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
+       * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
+       Fixed datatype of charlen to be a 32-bit int.
+
 2015-02-01  Joseph Myers  <joseph@codesourcery.com>
 
        * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
index 8a65d2b..3664824 100644 (file)
@@ -1443,8 +1443,6 @@ gfc_get_symbol_decl (gfc_symbol * sym)
       if (sym->ts.type == BT_CLASS && sym->backend_decl)
        GFC_DECL_CLASS(sym->backend_decl) = 1;
 
-      if (sym->ts.type == BT_CLASS && sym->backend_decl)
-       GFC_DECL_CLASS(sym->backend_decl) = 1;
      return sym->backend_decl;
     }
 
index 70da287..6b11fb3 100644 (file)
@@ -660,26 +660,26 @@ gfc_conv_intrinsic_to_class (gfc_se *parmse, gfc_expr *e,
         expression can be evaluated to a constant one.  */
       else
         {
-          /* Try to simplify the expression.  */
-          gfc_simplify_expr (e, 0);
-          if (e->expr_type == EXPR_CONSTANT && !e->ts.u.cl->resolved)
-            {
-              /* Amazingly all data is present to compute the length of a
-                 constant string, but the expression is not yet there.  */
-              e->ts.u.cl->length = gfc_get_constant_expr (BT_INTEGER, 1,
-                                                          &e->where);
-              mpz_set_ui (e->ts.u.cl->length->value.integer,
-                          e->value.character.length);
-              gfc_conv_const_charlen (e->ts.u.cl);
-              e->ts.u.cl->resolved = 1;
-              gfc_add_modify (&parmse->pre, ctree, e->ts.u.cl->backend_decl);
-            }
-          else
-            {
-              gfc_error ("Can't compute the length of the char array at %L.",
-                         &e->where);
-            }
-        }
+         /* Try to simplify the expression.  */
+         gfc_simplify_expr (e, 0);
+         if (e->expr_type == EXPR_CONSTANT && !e->ts.u.cl->resolved)
+           {
+             /* Amazingly all data is present to compute the length of a
+                constant string, but the expression is not yet there.  */
+             e->ts.u.cl->length = gfc_get_constant_expr (BT_INTEGER, 4,
+                                                         &e->where);
+             mpz_set_ui (e->ts.u.cl->length->value.integer,
+                         e->value.character.length);
+             gfc_conv_const_charlen (e->ts.u.cl);
+             e->ts.u.cl->resolved = 1;
+             gfc_add_modify (&parmse->pre, ctree, e->ts.u.cl->backend_decl);
+           }
+         else
+           {
+             gfc_error ("Can't compute the length of the char array at %L.",
+                        &e->where);
+           }
+       }
     }
   /* Pass the address of the class object.  */
   parmse->expr = gfc_build_addr_expr (NULL_TREE, var);