Submitted By: Jim Gifford (jim at cross-lfs dot org)
Date: 2009-08-12
Initial Package Version: 2.5.35
Origin: Debian
Upstream Status: Unknown
Description: Corrects code generation for GCC 4.4.x
 
diff -Naur flex-2.5.35.orig/flexint.h flex-2.5.35/flexint.h
--- flex-2.5.35.orig/flexint.h	2006-03-20 18:17:56.000000000 -0800
+++ flex-2.5.35/flexint.h	2009-08-12 18:25:23.000000000 -0700
@@ -28,7 +28,6 @@
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -59,5 +58,6 @@
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#endif /* ! C99 */
 
 #endif /* ! FLEXINT_H */
diff -Naur flex-2.5.35.orig/flex.skl flex-2.5.35/flex.skl
--- flex-2.5.35.orig/flex.skl	2008-02-09 10:54:56.000000000 -0800
+++ flex-2.5.35/flex.skl	2009-08-12 18:25:23.000000000 -0700
@@ -218,6 +218,7 @@
 #include <iostream> 
 #include <errno.h>
 #include <cstdlib>
+#include <cstdio>
 #include <cstring>
 /* end standard C++ headers. */
 %endif
@@ -443,7 +444,15 @@
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
@@ -1063,7 +1072,12 @@
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
@@ -1074,7 +1088,7 @@
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 %endif
 %if-c++-only C++ definition
 #define ECHO LexerOutput( yytext, yyleng )
@@ -2348,8 +2362,8 @@
 %if-c-only
 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * M4_YY_DOC_PARAM
  * @return the newly allocated buffer state object.
  */
diff -Naur flex-2.5.35.orig/gen.c flex-2.5.35/gen.c
--- flex-2.5.35.orig/gen.c	2007-05-30 23:21:57.000000000 -0700
+++ flex-2.5.35/gen.c	2009-08-12 18:25:23.000000000 -0700
@@ -1890,7 +1890,7 @@
 			outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\");
 			outn ("\t\t{ \\");
 			outn ("\t\tint c = '*'; \\");
-			outn ("\t\tint n; \\");
+			outn ("\t\tsize_t n; \\");
 			outn ("\t\tfor ( n = 0; n < max_size && \\");
 			outn ("\t\t\t     (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\");
 			outn ("\t\t\tbuf[n] = (char) c; \\");
diff -Naur flex-2.5.35.orig/scan.c flex-2.5.35/scan.c
--- flex-2.5.35.orig/scan.c	2008-02-26 13:34:23.000000000 -0800
+++ flex-2.5.35/scan.c	2009-08-12 18:41:52.000000000 -0700
@@ -1,5 +1,6 @@
+#line 2 "scan.c"
 
-#line 3 "scan.c"
+#line 4 "scan.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -53,7 +54,6 @@
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -84,6 +84,8 @@
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#endif /* ! C99 */
+
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -140,7 +142,15 @@
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -2085,7 +2095,12 @@
     
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -2093,7 +2108,7 @@
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -2104,7 +2119,7 @@
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -4639,9 +4654,19 @@
 	yyfree((void *) b  );
 }
 
-#ifndef __cplusplus
+#ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __THROW /* this is a gnuism */
+extern int isatty (int ) __THROW;
+#else
 extern int isatty (int );
-#endif /* __cplusplus */
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
     
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
@@ -4847,8 +4872,8 @@
 
 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
diff -Naur flex-2.5.35.orig/skel.c flex-2.5.35/skel.c
--- flex-2.5.35.orig/skel.c	2008-02-26 13:34:19.000000000 -0800
+++ flex-2.5.35/skel.c	2009-08-12 18:41:52.000000000 -0700
@@ -244,7 +244,6 @@
   "typedef unsigned char flex_uint8_t; ",
   "typedef unsigned short int flex_uint16_t;",
   "typedef unsigned int flex_uint32_t;",
-  "#endif /* ! C99 */",
   "",
   "/* Limits of integral types. */",
   "#ifndef INT8_MIN",
@@ -275,6 +274,7 @@
   "#define UINT32_MAX             (4294967295U)",
   "#endif",
   "",
+  "#endif /* ! C99 */",
   "",
   "#endif /* ! FLEXINT_H */",
   "",
@@ -285,6 +285,7 @@
   "#include <iostream> ",
   "#include <errno.h>",
   "#include <cstdlib>",
+  "#include <cstdio>",
   "#include <cstring>",
   "/* end standard C++ headers. */",
   "%endif",
@@ -510,7 +511,15 @@
   "",
   "/* Size of default input buffer. */",
   "#ifndef YY_BUF_SIZE",
+  "#ifdef __ia64__",
+  "/* On IA-64, the buffer size is 16k, not 8k.",
+  " * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.",
+  " * Ditto for the __ia64__ case accordingly.",
+  " */",
+  "#define YY_BUF_SIZE 32768",
+  "#else",
   "#define YY_BUF_SIZE 16384",
+  "#endif /* __ia64__ */",
   "#endif",
   "",
   "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],",
@@ -1130,7 +1139,12 @@
   "",
   "/* Amount of stuff to slurp up with each read. */",
   "#ifndef YY_READ_BUF_SIZE",
+  "#ifdef __ia64__",
+  "/* On IA-64, the buffer size is 16k, not 8k */",
+  "#define YY_READ_BUF_SIZE 16384",
+  "#else",
   "#define YY_READ_BUF_SIZE 8192",
+  "#endif /* __ia64__ */",
   "#endif",
   "",
   "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],",
@@ -1141,7 +1155,7 @@
   "/* This used to be an fputs(), but since the string might contain NUL's,",
   " * we now use fwrite().",
   " */",
-  "#define ECHO fwrite( yytext, yyleng, 1, yyout )",
+  "#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)",
   "%endif",
   "%if-c++-only C++ definition",
   "#define ECHO LexerOutput( yytext, yyleng )",
@@ -2266,9 +2280,19 @@
   "[[",
   "    m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,",
   "    [[",
-  "#ifndef __cplusplus",
+  "#ifndef _UNISTD_H /* assume unistd.h has isatty() for us */",
+  "#ifdef __cplusplus",
+  "extern \"C\" {",
+  "#endif",
+  "#ifdef __THROW /* this is a gnuism */",
+  "extern int isatty M4_YY_PARAMS( int ) __THROW;",
+  "#else",
   "extern int isatty M4_YY_PARAMS( int );",
-  "#endif /* __cplusplus */",
+  "#endif",
+  "#ifdef __cplusplus",
+  "}",
+  "#endif",
+  "#endif",
   "    ]])",
   "]])",
   "%endif",
@@ -2559,8 +2583,8 @@
   "%if-c-only",
   "/** Setup the input buffer state to scan the given bytes. The next call to yylex() will",
   " * scan from a @e copy of @a bytes.",
-  " * @param bytes the byte buffer to scan",
-  " * @param len the number of bytes in the buffer pointed to by @a bytes.",
+  " * @param yybytes the byte buffer to scan",
+  " * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.",
   " * M4_YY_DOC_PARAM",
   " * @return the newly allocated buffer state object.",
   " */",
diff -Naur flex-2.5.35.orig/tests/test-bison-nr/Makefile.am flex-2.5.35/tests/test-bison-nr/Makefile.am
--- flex-2.5.35.orig/tests/test-bison-nr/Makefile.am	2006-11-09 12:14:46.000000000 -0800
+++ flex-2.5.35/tests/test-bison-nr/Makefile.am	2009-08-12 18:25:23.000000000 -0700
@@ -34,7 +34,7 @@
 
 testname = test-bison-nr
 
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
 	$(FLEX) $<
 
 parser.c: $(srcdir)/parser.y
@@ -50,4 +50,5 @@
 	$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
 
 parser.h: parser.c
-scanner.c main.o: parser.h
+scanner.o: parser.h
+main.o: parser.h scanner.h
diff -Naur flex-2.5.35.orig/tests/test-bison-nr/Makefile.in flex-2.5.35/tests/test-bison-nr/Makefile.in
--- flex-2.5.35.orig/tests/test-bison-nr/Makefile.in	2008-02-26 13:34:05.000000000 -0800
+++ flex-2.5.35/tests/test-bison-nr/Makefile.in	2009-08-12 18:36:31.000000000 -0700
@@ -343,7 +343,7 @@
 	uninstall-info-am
 
 
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
 	$(FLEX) $<
 
 parser.c: $(srcdir)/parser.y
@@ -359,7 +359,8 @@
 	$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
 
 parser.h: parser.c
-scanner.c main.o: parser.h
+scanner.o: parser.h
+main.o: parser.h scanner.h
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff -Naur flex-2.5.35.orig/tests/test-bison-yylloc/Makefile.am flex-2.5.35/tests/test-bison-yylloc/Makefile.am
--- flex-2.5.35.orig/tests/test-bison-yylloc/Makefile.am	2006-11-09 12:14:46.000000000 -0800
+++ flex-2.5.35/tests/test-bison-yylloc/Makefile.am	2009-08-12 18:25:23.000000000 -0700
@@ -34,7 +34,7 @@
 
 testname = test-bison-yylloc
 
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
 	$(FLEX) $<
 
 parser.c: $(srcdir)/parser.y
@@ -50,4 +50,5 @@
 	$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
 
 parser.h: parser.c
-scanner.c main.o: parser.h
+scanner.o: parser.h
+main.o: parser.h scanner.h
diff -Naur flex-2.5.35.orig/tests/test-bison-yylloc/Makefile.in flex-2.5.35/tests/test-bison-yylloc/Makefile.in
--- flex-2.5.35.orig/tests/test-bison-yylloc/Makefile.in	2008-02-26 13:34:06.000000000 -0800
+++ flex-2.5.35/tests/test-bison-yylloc/Makefile.in	2009-08-12 18:32:20.000000000 -0700
@@ -343,7 +343,7 @@
 	uninstall-info-am
 
 
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
 	$(FLEX) $<
 
 parser.c: $(srcdir)/parser.y
@@ -359,7 +359,8 @@
 	$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
 
 parser.h: parser.c
-scanner.c main.o: parser.h
+scanner.o: parser.h
+main.o: parser.h scanner.h
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff -Naur flex-2.5.35.orig/tests/test-bison-yylval/Makefile.am flex-2.5.35/tests/test-bison-yylval/Makefile.am
--- flex-2.5.35.orig/tests/test-bison-yylval/Makefile.am	2006-11-09 12:14:46.000000000 -0800
+++ flex-2.5.35/tests/test-bison-yylval/Makefile.am	2009-08-12 18:25:23.000000000 -0700
@@ -34,7 +34,7 @@
 
 testname = test-bison-yylval
 
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
 	$(FLEX) $<
 
 parser.c: $(srcdir)/parser.y
@@ -50,4 +50,4 @@
 	$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
 
 parser.h: parser.c
-main.o: parser.h
+main.o: parser.h scanner.h
