From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21279 invoked by alias); 9 Jan 2008 19:11:52 -0000 Received: (qmail 21269 invoked by uid 22791); 9 Jan 2008 19:11:51 -0000 X-Spam-Check-By: sourceware.org Received: from igw1.br.ibm.com (HELO igw1.br.ibm.com) (32.104.18.24) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 09 Jan 2008 19:11:29 +0000 Received: from mailhub1.br.ibm.com (mailhub1 [9.18.232.109]) by igw1.br.ibm.com (Postfix) with ESMTP id 659B032C233 for ; Wed, 9 Jan 2008 16:50:42 -0200 (BRDT) Received: from d24av01.br.ibm.com (d24av01.br.ibm.com [9.18.232.46]) by mailhub1.br.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id m09JBQNG3547278 for ; Wed, 9 Jan 2008 17:11:26 -0200 Received: from d24av01.br.ibm.com (loopback [127.0.0.1]) by d24av01.br.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m09JBQ8m001773 for ; Wed, 9 Jan 2008 17:11:26 -0200 Received: from [9.18.238.251] ([9.18.238.251]) by d24av01.br.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id m09JBQfB001769; Wed, 9 Jan 2008 17:11:26 -0200 Subject: Re: DFP build failure From: Thiago Jung Bauermann To: Daniel Jacobowitz Cc: gdb-patches@sourceware.org In-Reply-To: <20080109183554.GA16920@caradoc.them.org> References: <20080109164917.GA10333@caradoc.them.org> <1199903445.15225.50.camel@localhost.localdomain> <20080109183554.GA16920@caradoc.them.org> Content-Type: multipart/mixed; boundary="=-xsJ+rYYRpv0XJM4O+qBI" Date: Wed, 09 Jan 2008 19:11:00 -0000 Message-Id: <1199905885.15225.52.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.12.2 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-01/txt/msg00205.txt.bz2 --=-xsJ+rYYRpv0XJM4O+qBI Content-Type: text/plain Content-Transfer-Encoding: 7bit Content-length: 741 On Wed, 2008-01-09 at 13:35 -0500, Daniel Jacobowitz wrote: > On Wed, Jan 09, 2008 at 04:30:45PM -0200, Thiago Jung Bauermann wrote: > > Mmmm.... sorry about that. What do you think of the attached fix > > (dangerous question to ask!)? > > > > DOUBLEST_PRINT_FORMAT is currently not used, so not a big deal to change > > it a bit. > > OK, with changelog entry. This matches the standard PRIx64 et al, > too. Could you update DOUBLEST_SCAN_FORMAT to match? > > > - ret = asprintf (&buffer, "%.30Lg", value_as_double (from)); > > + ret = asprintf (&buffer, "%.30"DOUBLEST_PRINT_FORMAT, value_as_double (from)); > > Space between " and D. What about this? -- []'s Thiago Jung Bauermann Software Engineer IBM Linux Technology Center --=-xsJ+rYYRpv0XJM4O+qBI Content-Disposition: attachment; filename=fix-mingw-build-with-scanf.diff Content-Type: text/x-patch; name=fix-mingw-build-with-scanf.diff; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 4101 2008-01-09 Thiago Jung Bauermann * doublest.h (DOUBLEST_PRINT_FORMAT): Remove '%' from definition. (DOUBLEST_SCAN_FORMAT): Likewise. * dfp.c (decimal_from_floating): Use DOUBLEST_PRINT_FORMAT. * ada-lex.l (processReal): Prepend "%" to use of DOUBLEST_SCAN_FORMAT. * c-exp.y (parse_number): Likewise. * jv-exp.y (parse_number): Likewise. * objc-exp.y (parse_number): Likewise. * p-exp.y (parse_number): Likewise. diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 6be64ab..cd6de8c 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -373,7 +373,7 @@ processInt (const char *base0, const char *num0, const char *exp0) static int processReal (const char *num0) { - sscanf (num0, DOUBLEST_SCAN_FORMAT, &yylval.typed_val_float.dval); + sscanf (num0, "%" DOUBLEST_SCAN_FORMAT, &yylval.typed_val_float.dval); yylval.typed_val_float.type = type_float (); if (sizeof(DOUBLEST) >= gdbarch_double_bit (current_gdbarch) diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 22bb4c6..b520721 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -1125,7 +1125,7 @@ parse_number (p, len, parsed_float, putithere) return (DECFLOAT); } - num = sscanf (p, DOUBLEST_SCAN_FORMAT "%s", + num = sscanf (p, "%" DOUBLEST_SCAN_FORMAT "%s", &putithere->typed_val_float.dval, s); p[len] = saved_char; /* restore the input stream */ diff --git a/gdb/dfp.c b/gdb/dfp.c index bf82114..e184ecd 100644 --- a/gdb/dfp.c +++ b/gdb/dfp.c @@ -237,7 +237,8 @@ decimal_from_floating (struct value *from, gdb_byte *to, int len) char *buffer; int ret; - ret = asprintf (&buffer, "%.30Lg", value_as_double (from)); + ret = asprintf (&buffer, "%.30" DOUBLEST_PRINT_FORMAT, + value_as_double (from)); if (ret < 0) error (_("Error in memory allocation for conversion to decimal float.")); diff --git a/gdb/doublest.h b/gdb/doublest.h index f3ab619..247eb5d 100644 --- a/gdb/doublest.h +++ b/gdb/doublest.h @@ -49,12 +49,12 @@ struct floatformat; #if (defined HAVE_LONG_DOUBLE && defined PRINTF_HAS_LONG_DOUBLE \ && defined SCANF_HAS_LONG_DOUBLE) typedef long double DOUBLEST; -# define DOUBLEST_PRINT_FORMAT "%Lg" -# define DOUBLEST_SCAN_FORMAT "%Lg" +# define DOUBLEST_PRINT_FORMAT "Lg" +# define DOUBLEST_SCAN_FORMAT "Lg" #else typedef double DOUBLEST; -# define DOUBLEST_PRINT_FORMAT "%g" -# define DOUBLEST_SCAN_FORMAT "%lg" +# define DOUBLEST_PRINT_FORMAT "g" +# define DOUBLEST_SCAN_FORMAT "lg" /* If we can't scan or print long double, we don't want to use it anywhere. */ # undef HAVE_LONG_DOUBLE diff --git a/gdb/jv-exp.y b/gdb/jv-exp.y index 1db33a6..14a7bf8 100644 --- a/gdb/jv-exp.y +++ b/gdb/jv-exp.y @@ -713,7 +713,7 @@ parse_number (p, len, parsed_float, putithere) char saved_char = p[len]; p[len] = 0; /* null-terminate the token */ - num = sscanf (p, DOUBLEST_SCAN_FORMAT "%c", + num = sscanf (p, "%" DOUBLEST_SCAN_FORMAT "%c", &putithere->typed_val_float.dval, &c); p[len] = saved_char; /* restore the input stream */ if (num != 1) /* check scanf found ONLY a float ... */ diff --git a/gdb/objc-exp.y b/gdb/objc-exp.y index d421441..a4a42d9 100644 --- a/gdb/objc-exp.y +++ b/gdb/objc-exp.y @@ -1023,7 +1023,7 @@ parse_number (p, len, parsed_float, putithere) /* It's a float since it contains a point or an exponent. */ - sscanf (p, DOUBLEST_SCAN_FORMAT "%c", + sscanf (p, "%" DOUBLEST_SCAN_FORMAT "%c", &putithere->typed_val_float.dval, &c); /* See if it has `f' or `l' suffix (float or long double). */ diff --git a/gdb/p-exp.y b/gdb/p-exp.y index 857a69f..9cab7cd 100644 --- a/gdb/p-exp.y +++ b/gdb/p-exp.y @@ -797,7 +797,7 @@ parse_number (p, len, parsed_float, putithere) char saved_char = p[len]; p[len] = 0; /* null-terminate the token */ - num = sscanf (p, DOUBLEST_SCAN_FORMAT "%c", + num = sscanf (p, "%" DOUBLEST_SCAN_FORMAT "%c", &putithere->typed_val_float.dval, &c); p[len] = saved_char; /* restore the input stream */ if (num != 1) /* check scanf found ONLY a float ... */ --=-xsJ+rYYRpv0XJM4O+qBI--