This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch, fortran] Cosmetics: Dup. code removal, indent fix, typo fix.
- From: Andre Vehreschild <vehre at gmx dot de>
- To: Jerry DeLisle <jvdelisle at charter dot net>
- Cc: GCC-Fortran-ML <fortran at gcc dot gnu dot org>, GCC-Patches-ML <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 2 Feb 2015 11:03:22 +0100
- Subject: Re: [Patch, fortran] Cosmetics: Dup. code removal, indent fix, typo fix.
- Authentication-results: sourceware.org; auth=none
- References: <20150130131029 dot 3b61ba87 at vepi2> <54CCF7A4 dot 4060006 at charter dot net>
Hi Jerry,
thanks for the review. Committed as r220345.
Regards,
Andre
On Sat, 31 Jan 2015 07:41:24 -0800
Jerry DeLisle <jvdelisle@charter.net> wrote:
> On 01/30/2015 04:10 AM, Andre Vehreschild wrote:
> > Hi all,
> >
> > I fear this fix is not so obvious in one location, I therefore ask for a
> > review. The attached patch fixes:
> >
> > - a duplicate code fragment (possibly due to merged twice),
> > - the indentation in the trans-expr.c block (in my first patch), and
> > - a typo on the datatype-size to create for the charlen.
> >
> > The length of a char-array is stored as a 4-byte BT_INTEGER. Due to a typo a
> > 1-byte BT_INTEGER was requested. The patch fixes this. I know this patch
> > mixes several trivial issues. Should I do separate patches for each of
> > them, or what is the most desirable method?
> >
>
> Cosmetic things are OK to throw in the mix as long as you have the Changelog.
> Duplicate code removal is just about as obvious as one can get. No need for
> separate patches.
>
> > Bootstraps and regtests ok on x86_64-linux-gnu/FC20.
> >
>
> I have learned the hard way that if you forget the testing even on trivial
> things it can byte you. OK to commit! Thanks.
--
Andre Vehreschild * Email: vehre ad gmx dot de
Index: gcc/fortran/trans-decl.c
===================================================================
--- gcc/fortran/trans-decl.c (Revision 220344)
+++ gcc/fortran/trans-decl.c (Arbeitskopie)
@@ -1443,8 +1443,6 @@
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: gcc/fortran/trans-expr.c
===================================================================
--- gcc/fortran/trans-expr.c (Revision 220344)
+++ gcc/fortran/trans-expr.c (Arbeitskopie)
@@ -660,26 +660,26 @@
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);
Index: gcc/fortran/ChangeLog
===================================================================
--- gcc/fortran/ChangeLog (Revision 220344)
+++ gcc/fortran/ChangeLog (Arbeitskopie)
@@ -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