[Patch] ../../../src/libgfortran/io/write.c:713: error: conflicting types for 'itoa'

Danny Smith dansmister@gmail.com
Wed Apr 15 04:06:00 GMT 2009


> Well, actually I was thinking of a note saying that "itoa" conflicts with
> something in mingw, hence the per-libgfortran-convention unusual name. But
> whatever, no big deal either way.
>

As committed:

2009-04-15 Danny Smith  <dannysmith@clear.net.nz>

       * io/write.c (itoa) : Rename back to gfc_itoa.
       (write_i): Adjust call to write_decimal.
       (write_integer):  Use gfc_itoa.

Index: io/write.c
===================================================================
--- io/write.c	(revision 146078)
+++ io/write.c	(working copy)
@@ -707,10 +707,15 @@
 }


-/* itoa()-- Integer to decimal conversion. */
+/* gfc_itoa()-- Integer to decimal conversion.
+   The itoa function is a widespread non-standard extension to standard
+   C, often declared in <stdlib.h>.  Even though the itoa defined here
+   is a static function we take care not to conflict with any prior
+   non-static declaration.  Hence the 'gfc_' prefix, which is normally
+   reserved for functions with external linkage.  */

 static const char *
-itoa (GFC_INTEGER_LARGEST n, char *buffer, size_t len)
+gfc_itoa (GFC_INTEGER_LARGEST n, char *buffer, size_t len)
 {
   int negative;
   char *p;
@@ -747,7 +752,7 @@
 void
 write_i (st_parameter_dt *dtp, const fnode *f, const char *p, int len)
 {
-  write_decimal (dtp, f, p, len, (void *) itoa);
+  write_decimal (dtp, f, p, len, (void *) gfc_itoa);
 }


@@ -862,7 +867,7 @@
   int width;
   char itoa_buf[GFC_ITOA_BUF_SIZE];

-  q = itoa (extract_int (source, length), itoa_buf, sizeof (itoa_buf));
+  q = gfc_itoa (extract_int (source, length), itoa_buf, sizeof (itoa_buf));

   switch (length)
     {



More information about the Gcc-patches mailing list