------- Comment #3 from burnus at gcc dot gnu dot org  2007-02-26 20:17 -------
Patch.

Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c       (Revision 122328)
+++ gcc/fortran/primary.c       (Arbeitskopie)
@@ -773,7 +773,7 @@
     return c;

   old_locus = gfc_current_locus;
-  c = gfc_next_char_literal (1);
+  c = gfc_next_char_literal (0);

   if (c == delimiter)
     return c;
@@ -852,7 +852,7 @@
 match_string_constant (gfc_expr **result)
 {
   char *p, name[GFC_MAX_SYMBOL_LEN + 1];
-  int i, c, kind, length, delimiter;
+  int i, c, kind, length, delimiter, warn_ampersand;
   locus old_locus, start_locus;
   gfc_symbol *sym;
   gfc_expr *e;
@@ -979,10 +979,16 @@
   gfc_current_locus = start_locus;
   gfc_next_char ();            /* Skip delimiter */

+  /* We disable the warning for the following loop as the warning has already
+     been printed in the loop above.  */
+  warn_ampersand = gfc_option.warn_ampersand;
+  gfc_option.warn_ampersand = 0;
+
   for (i = 0; i < length; i++)
     *p++ = next_string_char (delimiter);

   *p = '\0';   /* TODO: C-style string is for development/debug purposes.  */
+  gfc_option.warn_ampersand = warn_ampersand;

   if (next_string_char (delimiter) != -1)
     gfc_internal_error ("match_string_constant(): Delimiter not found");
+
   if (next_string_char (delimiter) != -1)
     gfc_internal_error ("match_string_constant(): Delimiter not found");


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30968

Reply via email to