Patchwork [quadmath] PR 46772 - include stdlib.h instead of declaring stdtod

login
register
mail settings
Submitter Tobias Burnus
Date Dec. 8, 2010, 3:09 p.m.
Message ID <4CFF9FBD.8000307@net-b.de>
Download mbox | patch
Permalink /patch/74734/
State New
Headers show

Comments

Tobias Burnus - Dec. 8, 2010, 3:09 p.m.
(We really lack libquadmath maintainers. Thus, at the moment, one has 
the choice between declaring it as obvious and asking a global 
maintainer for review...)

In the gdtoa/*.h files of libquadmath stdtod and stdtof are declared. 
This patch removes the declaration in favour of using stdlib.h.

The main reason for the change is MinGW which declares "strtod" as 
static (?!?) - which in turn gcc does not like ...

Build on x86-64-linux.
OK for the trunk?

Tobias
Ian Taylor - Dec. 8, 2010, 10:31 p.m.
On Wed, Dec 8, 2010 at 7:09 AM, Tobias Burnus <burnus@net-b.de> wrote:
> In the gdtoa/*.h files of libquadmath stdtod and stdtof are declared. This
> patch removes the declaration in favour of using stdlib.h.

This is OK.

Thanks.

Ian

Patch

2010-12-08  Tobiuas Burnus  <burnus/2net-b.de>

	PR fortran/46772
	* gdtoa/gdtoa.h: Include stdlib.h instead of declare strtod.
	* gdtoa/gdtoaimp.h: Don't declare strtod.

Index: libquadmath/gdtoa/gdtoa.h
===================================================================
--- libquadmath/gdtoa/gdtoa.h	(revision 167583)
+++ libquadmath/gdtoa/gdtoa.h	(working copy)
@@ -34,6 +34,7 @@  THIS SOFTWARE.
 
 #include "arith.h"
 #include <stddef.h> /* for size_t */
+#include <stdlib.h> /* for strtod */
 
 #ifndef Long
 #define Long long
@@ -108,8 +109,6 @@  extern char* dtoa  ANSI((double d, int m
 extern char* gdtoa ANSI((FPI *fpi, int be, ULong *bits, int *kindp,
 			int mode, int ndigits, int *decpt, char **rve));
 extern void freedtoa ANSI((char*));
-extern float  strtof ANSI((CONST char *, char **));
-extern double strtod ANSI((CONST char *, char **));
 extern int strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*));
 
 extern char*	g_ddfmt  ANSI((char*, double*, int, size_t));
Index: libquadmath/gdtoa/gdtoaimp.h
===================================================================
--- libquadmath/gdtoa/gdtoaimp.h	(revision 167583)
+++ libquadmath/gdtoa/gdtoaimp.h	(working copy)
@@ -561,7 +561,6 @@  extern void memcpy_D2A ANSI((void*, cons
  extern Bigint *set_ones ANSI((Bigint*, int));
  extern char *strcp ANSI((char*, const char*));
  extern int strtoIg ANSI((CONST char*, char**, FPI*, Long*, Bigint**, int*));
- extern double strtod ANSI((const char *s00, char **se));
  extern Bigint *sum ANSI((Bigint*, Bigint*));
  extern int trailz ANSI((Bigint*));
  extern double ulp ANSI((U*));