📄 c-parse-freeze.patch
字号:
--- gcc-2.95.3/gcc/Makefile.in.old 2004-03-17 15:40:43.000000000 -0800+++ gcc-2.95.3/gcc/Makefile.in 2004-03-18 16:25:11.000000000 -0800@@ -1323,6 +1323,28 @@ c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h \ $(srcdir)/c-parse.h c-tree.h input.h flags.h system.h toplev.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c++# kludge:+# For some reason, on cygwin, Make is trying to rebuild c-parse.y+# and this causes the build error+# ...src/gcc/c-parse.h:54: error: conflicting types for `RETURN'+# .../src/gcc/rtl.def:503: error: previous declaration of `RETURN'+# maybe because of a clash with old and new versions of Bison.+# I tried removing the rules to regenerate c-parse.[ch], but Make+# decided to delete the files, even though I marked them .PRECIOUS;+# in desperation, I made a copy of those files in a 'frozen' subdirectory,+# and added a rule to copy them into the source directory when needed.++CYGWIN_DEPS_KLUDGE := 1+ifdef CYGWIN_DEPS_KLUDGE++$(srcdir)/c-parse.h: $(srcdir)/frozen/c-parse.h+ cp $(srcdir)/frozen/c-parse.h $(srcdir)/c-parse.h+$(srcdir)/c-parse.c: $(srcdir)/frozen/c-parse.c+ cp $(srcdir)/frozen/c-parse.c $(srcdir)/c-parse.c++else+ $(srcdir)/c-parse.h: $(srcdir)/c-parse.c $(srcdir)/c-parse.c: $(srcdir)/c-parse.y cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o c-parse.c c-parse.y@@ -1333,6 +1355,9 @@ $(srcdir)/c-parse.in >>tmp-c-parse.y $(srcdir)/move-if-change tmp-c-parse.y $(srcdir)/c-parse.y +endif++ $(srcdir)/c-gperf.h: c-parse.gperf gperf -L C -F ', 0, 0' -p -j1 -i 1 -g -o -t -G -N is_reserved_word \ -k1,3,$$ $(srcdir)/c-parse.gperf >tmp-gperf.h--- /dev/null 2003-01-30 02:24:37.000000000 -0800+++ gcc-2.95.3/gcc/frozen/c-parse.h 2004-03-18 16:25:25.000000000 -0800@@ -0,0 +1,64 @@+typedef union {long itype; tree ttype; enum tree_code code;+ char *filename; int lineno; int ends_in_label; } YYSTYPE;+#define IDENTIFIER 258+#define TYPENAME 259+#define SCSPEC 260+#define TYPESPEC 261+#define TYPE_QUAL 262+#define CONSTANT 263+#define STRING 264+#define ELLIPSIS 265+#define SIZEOF 266+#define ENUM 267+#define STRUCT 268+#define UNION 269+#define IF 270+#define ELSE 271+#define WHILE 272+#define DO 273+#define FOR 274+#define SWITCH 275+#define CASE 276+#define DEFAULT 277+#define BREAK 278+#define CONTINUE 279+#define RETURN 280+#define GOTO 281+#define ASM_KEYWORD 282+#define TYPEOF 283+#define ALIGNOF 284+#define ATTRIBUTE 285+#define EXTENSION 286+#define LABEL 287+#define REALPART 288+#define IMAGPART 289+#define ASSIGN 290+#define OROR 291+#define ANDAND 292+#define EQCOMPARE 293+#define ARITHCOMPARE 294+#define LSHIFT 295+#define RSHIFT 296+#define UNARY 297+#define PLUSPLUS 298+#define MINUSMINUS 299+#define HYPERUNARY 300+#define POINTSAT 301+#define INTERFACE 302+#define IMPLEMENTATION 303+#define END 304+#define SELECTOR 305+#define DEFS 306+#define ENCODE 307+#define CLASSNAME 308+#define PUBLIC 309+#define PRIVATE 310+#define PROTECTED 311+#define PROTOCOL 312+#define OBJECTNAME 313+#define CLASS 314+#define ALIAS 315+#define OBJC_STRING 316+++extern YYSTYPE yylval;--- /dev/null 2003-01-30 02:24:37.000000000 -0800+++ gcc-2.95.3/gcc/frozen/c-parse.c 2004-03-18 16:25:25.000000000 -0800@@ -0,0 +1,3945 @@++/* A Bison parser, made from c-parse.y+ by GNU Bison version 1.25+ */++#define YYBISON 1 /* Identify Bison output. */++#define IDENTIFIER 258+#define TYPENAME 259+#define SCSPEC 260+#define TYPESPEC 261+#define TYPE_QUAL 262+#define CONSTANT 263+#define STRING 264+#define ELLIPSIS 265+#define SIZEOF 266+#define ENUM 267+#define STRUCT 268+#define UNION 269+#define IF 270+#define ELSE 271+#define WHILE 272+#define DO 273+#define FOR 274+#define SWITCH 275+#define CASE 276+#define DEFAULT 277+#define BREAK 278+#define CONTINUE 279+#define RETURN 280+#define GOTO 281+#define ASM_KEYWORD 282+#define TYPEOF 283+#define ALIGNOF 284+#define ATTRIBUTE 285+#define EXTENSION 286+#define LABEL 287+#define REALPART 288+#define IMAGPART 289+#define ASSIGN 290+#define OROR 291+#define ANDAND 292+#define EQCOMPARE 293+#define ARITHCOMPARE 294+#define LSHIFT 295+#define RSHIFT 296+#define UNARY 297+#define PLUSPLUS 298+#define MINUSMINUS 299+#define HYPERUNARY 300+#define POINTSAT 301+#define INTERFACE 302+#define IMPLEMENTATION 303+#define END 304+#define SELECTOR 305+#define DEFS 306+#define ENCODE 307+#define CLASSNAME 308+#define PUBLIC 309+#define PRIVATE 310+#define PROTECTED 311+#define PROTOCOL 312+#define OBJECTNAME 313+#define CLASS 314+#define ALIAS 315+#define OBJC_STRING 316++#line 56 "c-parse.y"++#include "config.h"+#include "system.h"+#include <setjmp.h>++#include "tree.h"+#include "input.h"+#include "c-lex.h"+#include "c-tree.h"+#include "flags.h"+#include "output.h"+#include "toplev.h"++#ifdef MULTIBYTE_CHARS+#include <locale.h>+#endif+++/* Since parsers are distinct for each language, put the language string+ definition here. */+char *language_string = "GNU C";++/* Like YYERROR but do call yyerror. */+#define YYERROR1 { yyerror ("syntax error"); YYERROR; }++/* Cause the `yydebug' variable to be defined. */+#define YYDEBUG 1++#line 87 "c-parse.y"+typedef union {long itype; tree ttype; enum tree_code code;+ char *filename; int lineno; int ends_in_label; } YYSTYPE;+#line 204 "c-parse.y"++/* Number of statements (loosely speaking) and compound statements + seen so far. */+static int stmt_count;+static int compstmt_count;+ +/* Input file and line number of the end of the body of last simple_if;+ used by the stmt-rule immediately after simple_if returns. */+static char *if_stmt_file;+static int if_stmt_line;++/* List of types and structure classes of the current declaration. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -