This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [gfortran] Patch for PR 14055
- From: Feng Wang <wf_cs at yahoo dot com>
- To: Bud Davis <bdavis9659 at comcast dot net>, gfortran <fortran at gcc dot gnu dot org>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 10 Mar 2004 10:02:26 +0800 (CST)
- Subject: Re: [gfortran] Patch for PR 14055
> Index: gcc/gcc/fortran/arith.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fortran/Attic/arith.c,v
> retrieving revision 1.1.2.3
> diff -c -3 -p -r1.1.2.3 arith.c
> *** gcc/gcc/fortran/arith.c 29 Aug 2003 19:18:33 -0000 1.1.2.3
> --- gcc/gcc/fortran/arith.c 6 Mar 2004 19:39:51 -0000
> *************** gfc_expr *
> *** 2426,2434 ****
> gfc_convert_integer (const char *buffer, int kind, int radix, locus *
> where)
> {
> gfc_expr *e;
>
> e = gfc_constant_result (BT_INTEGER, kind, where);
> ! mpz_set_str (e->value.integer, buffer, radix);
>
> return e;
> }
> --- 2426,2440 ----
> gfc_convert_integer (const char *buffer, int kind, int radix, locus *
> where)
> {
> gfc_expr *e;
> + const char *t;
>
> e = gfc_constant_result (BT_INTEGER, kind, where);
> ! /* a leading plus is allowed, but not by mpz_set_str */
> ! if (buffer[0] == '+')
> ! t = buffer + 1;
I think this should add an explicit type conversion to get rid off the
compiling warnings. As: t = (char *)(buffer + 1);
> ! else
> ! t = buffer;
Ditto.
> ! mpz_set_str (e->value.integer, t, radix);
>
> return e;
> }
> *************** gfc_expr *
> *** 2440,2448 ****
> gfc_convert_real (const char *buffer, int kind, locus * where)
> {
> gfc_expr *e;
>
> e = gfc_constant_result (BT_REAL, kind, where);
> ! mpf_set_str (e->value.real, buffer, 10);
>
> return e;
> }
> --- 2446,2460 ----
> gfc_convert_real (const char *buffer, int kind, locus * where)
> {
> gfc_expr *e;
> + const char *t;
>
> e = gfc_constant_result (BT_REAL, kind, where);
> ! /* a leading plus is allowed, but not by mpf_set_str */
> ! if (buffer[0] == '+')
> ! t = buffer + 1;
Ditto.
> ! else
> ! t = buffer;
Ditto.
> ! mpf_set_str (e->value.real, t, 10);
>
> return e;
> }
regards,
Feng Wang
_________________________________________________________
Do You Yahoo!?
完全免费的雅虎电邮,马上注册获赠额外60兆网络存储空间
http://cn.rd.yahoo.com/mail_cn/tag/?http://cn.mail.yahoo.com