home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-09-24 | 182.4 KB | 6,281 lines |
- diff -rcP gcc-2.4.5-fsf/Makefile.in gcc-2.4.5-amiga/Makefile.in
- *** gcc-2.4.5-fsf/Makefile.in Sun Jun 20 23:43:50 1993
- --- gcc-2.4.5-amiga/Makefile.in Tue Sep 7 15:05:53 1993
- ***************
- *** 90,96 ****
- OLDAR = ar
-
- # Target to use when installing include directory. Either
- ! # install-headers-tar or install-headers-cpio.
- INSTALL_HEADERS_DIR = install-headers-tar
-
- # The GCC to use for compiling libgcc2.a, enquire, and cross-test.
- --- 90,96 ----
- OLDAR = ar
-
- # Target to use when installing include directory. Either
- ! # install-headers-tar, install-headers-cpio, or install-headers-cp.
- INSTALL_HEADERS_DIR = install-headers-tar
-
- # The GCC to use for compiling libgcc2.a, enquire, and cross-test.
- ***************
- *** 698,705 ****
- then (cd tmpcopy; $(AR) x ../$(LIBGCC1)); \
- else true; \
- fi
- ! (cd tmpcopy; $(AR) x ../$(LIBGCC2))
- ! (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o)
- rm -rf tmpcopy
- -if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi
- # Actually build it in tmplibgcc.a, then rename at end,
- --- 698,708 ----
- then (cd tmpcopy; $(AR) x ../$(LIBGCC1)); \
- else true; \
- fi
- ! # The "cd .." makes sure there's no lock left on tmpcopy (this is actually a
- ! # bug in the Amiga ixemul.library, but I can't get around it currently
- ! # because it involves an OS bug)
- ! (cd tmpcopy; $(AR) x ../$(LIBGCC2); cd ..; /c/wait 2)
- ! (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o; cd ..; /c/wait 2)
- rm -rf tmpcopy
- -if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi
- # Actually build it in tmplibgcc.a, then rename at end,
- ***************
- *** 779,785 ****
- `echo $(srcdir)/cp-parse.c | sed 's,^\./,,'`
-
- $(srcdir)/cp-parse.c $(srcdir)/cp-parse.h : $(srcdir)/cp-parse.y
- ! @echo expect 29 shift/reduce conflicts and 14 reduce/reduce conflicts
- cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o cp-parse.c cp-parse.y
- cd $(srcdir); grep '^#define[ ]*YYEMPTY' cp-parse.c >>cp-parse.h
-
- --- 782,788 ----
- `echo $(srcdir)/cp-parse.c | sed 's,^\./,,'`
-
- $(srcdir)/cp-parse.c $(srcdir)/cp-parse.h : $(srcdir)/cp-parse.y
- ! @$(SHELL) echo expect 29 shift/reduce conflicts and 14 reduce/reduce conflicts
- cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o cp-parse.c cp-parse.y
- cd $(srcdir); grep '^#define[ ]*YYEMPTY' cp-parse.c >>cp-parse.h
-
- ***************
- *** 1220,1226 ****
- # Making the preprocessor
- cpp: cccp
- -rm -f cpp
- ! ln cccp cpp
- cccp: cccp.o cexp.o version.o $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)
- cexp.o: $(srcdir)/cexp.c $(CONFIG_H)
- --- 1223,1229 ----
- # Making the preprocessor
- cpp: cccp
- -rm -f cpp
- ! cp cccp cpp
- cccp: cccp.o cexp.o version.o $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)
- cexp.o: $(srcdir)/cexp.c $(CONFIG_H)
- ***************
- *** 1230,1236 ****
- cccp.o: cccp.c $(CONFIG_H) pcp.h version.c config.status
- # The reason we use $(libdir)/g++-include rather than using libsubdir
- # is for compatibility with the current version of libg++.
- ! $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
- -DGPLUSPLUS_INCLUDE_DIR=\"$(libdir)/g++-include\" \
- -DLOCAL_INCLUDE_DIR=\"$(local_prefix)/include\" \
- --- 1233,1241 ----
- cccp.o: cccp.c $(CONFIG_H) pcp.h version.c config.status
- # The reason we use $(libdir)/g++-include rather than using libsubdir
- # is for compatibility with the current version of libg++.
- ! # The -fno-builtin is necessary for AmigaDOS, or cccp calls uses the builtin
- ! # alloca() with huge memory requests. Fix here until we can do it cleaner.
- ! $(CC) -fno-builtin $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
- -DGPLUSPLUS_INCLUDE_DIR=\"$(libdir)/g++-include\" \
- -DLOCAL_INCLUDE_DIR=\"$(local_prefix)/include\" \
- ***************
- *** 1522,1529 ****
- install: $(INSTALL_TARGET) ; @true
-
- # Copy the compiler files into directories where they will be run.
- ! install-normal: install-common $(INSTALL_HEADERS) install-libgcc install-man \
- ! install-info
-
- # Do nothing while making gcc with a cross-compiler. The person who
- # makes gcc for the target machine has to know how to put a complete
- --- 1527,1534 ----
- install: $(INSTALL_TARGET) ; @true
-
- # Copy the compiler files into directories where they will be run.
- ! # (== changed by fnf for Amiga port; needs port of 'makeinfo' to work ==)
- ! install-normal: install-common $(INSTALL_HEADERS) install-libgcc install-man
-
- # Do nothing while making gcc with a cross-compiler. The person who
- # makes gcc for the target machine has to know how to put a complete
- ***************
- *** 1667,1683 ****
- install-headers: install-include-dir $(INSTALL_HEADERS_DIR) install-assert-h
- # Fix symlinks to absolute paths in the installed include directory to
- # point to the installed directory, not the build directory.
- ! -files=`cd $(libsubdir)/include; find . -type l -print 2>/dev/null`; \
- ! if [ $$? -eq 0 ]; then \
- ! dir=`cd include; pwd`; \
- ! for i in $$files; do \
- ! dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
- ! if expr "$$dest" : "$$dir.*" > /dev/null; then \
- ! rm -f $(libsubdir)/include/$$i; \
- ! ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
- ! fi; \
- ! done; \
- ! fi
-
- # Create or recreate the gcc private include file directory.
- install-include-dir: install-dir
- --- 1672,1689 ----
- install-headers: install-include-dir $(INSTALL_HEADERS_DIR) install-assert-h
- # Fix symlinks to absolute paths in the installed include directory to
- # point to the installed directory, not the build directory.
- ! # (=== commented out by fnf for Amiga port; hangs the install ===)
- ! # -files=`cd $(libsubdir)/include; find . -type l -print 2>/dev/null`; \
- ! # if [ $$? -eq 0 ]; then \
- ! # dir=`cd include; pwd`; \
- ! # for i in $$files; do \
- ! # dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
- ! # if expr "$$dest" : "$$dir.*" > /dev/null; then \
- ! # rm -f $(libsubdir)/include/$$i; \
- ! # ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
- ! # fi; \
- ! # done; \
- ! # fi
-
- # Create or recreate the gcc private include file directory.
- install-include-dir: install-dir
- ***************
- *** 1692,1697 ****
- --- 1698,1707 ----
- # Install the include directory using cpio.
- install-headers-cpio: stmp-headers install-include-dir
- cd include; find . -print | cpio -pdum $(libsubdir)/include
- +
- + # Install the include directory using simple recursive copy.
- + install-headers-cp: stmp-headers install-include-dir
- + cd include; cp -r . $(libsubdir)/include
-
- # Put assert.h where it won't override GNU libc's assert.h.
- # It goes in a dir that is searched after GNU libc's headers;
- diff -rcP gcc-2.4.5-fsf/c-parse.c gcc-2.4.5-amiga/c-parse.c
- *** gcc-2.4.5-fsf/c-parse.c Thu May 6 18:20:12 1993
- --- gcc-2.4.5-amiga/c-parse.c Mon Sep 6 03:40:44 1993
- ***************
- *** 1,5 ****
-
- ! /* A Bison parser, made from c-parse.y */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- --- 1,6 ----
-
- ! /* A Bison parser, made from c-parse.y with Bison version GNU Bison version 1.21
- ! */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- ***************
- *** 145,153 ****
- --- 146,156 ----
-
- #include <stdio.h>
-
- + #ifndef __cplusplus
- #ifndef __STDC__
- #define const
- #endif
- + #endif
-
-
-
- ***************
- *** 192,197 ****
- --- 195,201 ----
- 70, 71, 72, 73, 74, 75, 76
- };
-
- + #if YYDEBUG != 0
- static const short yyprhs[] = { 0,
- 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
- 26, 31, 36, 39, 42, 45, 48, 50, 51, 52,
- ***************
- *** 349,354 ****
- --- 353,360 ----
- 0
- };
-
- + #endif
- +
- #if YYDEBUG != 0
- static const short yyrline[] = { 0,
- 218, 222, 235, 237, 237, 238, 240, 242, 243, 253,
- ***************
- *** 366,391 ****
- 764, 768, 770, 773, 786, 789, 793, 795, 803, 804,
- 805, 809, 811, 817, 818, 819, 822, 824, 827, 829,
- 832, 835, 841, 846, 848, 854, 859, 861, 868, 871,
- ! 876, 878, 883, 888, 898, 909, 927, 929, 933, 935,
- ! 937, 943, 946, 951, 955, 960, 962, 964, 966, 970,
- ! 987, 991, 1008, 1015, 1017, 1022, 1025, 1030, 1032, 1034,
- ! 1036, 1044, 1050, 1052, 1054, 1056, 1062, 1068, 1070, 1072,
- ! 1074, 1076, 1079, 1084, 1088, 1091, 1093, 1095, 1097, 1100,
- ! 1102, 1105, 1108, 1111, 1114, 1118, 1120, 1123, 1125, 1129,
- ! 1132, 1137, 1139, 1141, 1155, 1161, 1166, 1171, 1176, 1180,
- ! 1182, 1186, 1190, 1194, 1204, 1206, 1211, 1214, 1218, 1221,
- ! 1225, 1228, 1231, 1234, 1238, 1241, 1245, 1249, 1251, 1253,
- ! 1255, 1257, 1259, 1261, 1263, 1271, 1273, 1274, 1277, 1279,
- ! 1282, 1285, 1296, 1298, 1303, 1305, 1308, 1322, 1325, 1328,
- ! 1330, 1335, 1340, 1348, 1353, 1356, 1369, 1377, 1381, 1385,
- ! 1389, 1395, 1399, 1404, 1406, 1417, 1420, 1421, 1426, 1431,
- ! 1434, 1442, 1444, 1454, 1464, 1465, 1473, 1476, 1488, 1492,
- ! 1509, 1516, 1525, 1527, 1532, 1537, 1541, 1545, 1556, 1563,
- ! 1570, 1577, 1588, 1592, 1595, 1600, 1623, 1654, 1678, 1706,
- ! 1721, 1732, 1735, 1739, 1742, 1747, 1749, 1752, 1754, 1758,
- ! 1763, 1766, 1772, 1777, 1782, 1784, 1793, 1794, 1800, 1802,
- ! 1807, 1809, 1813, 1816, 1822, 1825, 1827, 1829, 1831, 1838,
- ! 1843, 1848, 1850, 1859, 1862, 1867, 1870
- };
-
- static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
- --- 372,397 ----
- 764, 768, 770, 773, 786, 789, 793, 795, 803, 804,
- 805, 809, 811, 817, 818, 819, 822, 824, 827, 829,
- 832, 835, 841, 846, 848, 854, 859, 861, 868, 871,
- ! 876, 878, 883, 896, 906, 917, 935, 937, 941, 943,
- ! 945, 951, 954, 959, 963, 968, 970, 972, 974, 978,
- ! 995, 999, 1016, 1023, 1025, 1030, 1033, 1038, 1040, 1042,
- ! 1044, 1052, 1058, 1060, 1062, 1064, 1070, 1076, 1078, 1080,
- ! 1082, 1084, 1087, 1092, 1096, 1099, 1101, 1103, 1105, 1108,
- ! 1110, 1113, 1116, 1119, 1122, 1126, 1128, 1131, 1133, 1137,
- ! 1140, 1145, 1147, 1149, 1163, 1169, 1174, 1179, 1184, 1188,
- ! 1190, 1194, 1198, 1202, 1212, 1214, 1219, 1222, 1226, 1229,
- ! 1233, 1236, 1239, 1242, 1246, 1249, 1253, 1257, 1259, 1261,
- ! 1263, 1265, 1267, 1269, 1271, 1279, 1281, 1282, 1285, 1287,
- ! 1290, 1293, 1304, 1306, 1311, 1313, 1316, 1330, 1333, 1336,
- ! 1338, 1343, 1348, 1356, 1361, 1364, 1377, 1385, 1389, 1393,
- ! 1397, 1403, 1407, 1412, 1414, 1425, 1428, 1429, 1434, 1439,
- ! 1442, 1450, 1452, 1462, 1472, 1473, 1481, 1484, 1496, 1500,
- ! 1517, 1524, 1533, 1535, 1540, 1545, 1549, 1553, 1564, 1571,
- ! 1578, 1585, 1596, 1600, 1603, 1608, 1631, 1662, 1686, 1714,
- ! 1729, 1740, 1743, 1747, 1750, 1755, 1757, 1760, 1762, 1766,
- ! 1771, 1774, 1780, 1785, 1790, 1792, 1801, 1802, 1808, 1810,
- ! 1815, 1817, 1821, 1824, 1830, 1833, 1835, 1837, 1839, 1846,
- ! 1851, 1856, 1858, 1867, 1870, 1875, 1878
- };
-
- static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
- ***************
- *** 1122,1128 ****
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- --- 1128,1134 ----
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- ***************
- *** 1131,1136 ****
- --- 1137,1152 ----
- #if defined(_AIX)
- #include <malloc.h>
- #pragma alloca
- + #else /* not MSDOS, __TURBOC__, or _AIX */
- + #ifdef __hpux
- + #ifdef __cplusplus
- + extern "C" {
- + void *alloca (unsigned int);
- + };
- + #else /* not __cplusplus */
- + void *alloca (unsigned int);
- + #endif /* not __cplusplus */
- + #endif /* __hpux */
- #endif /* not _AIX */
- #endif /* not MSDOS, or __TURBOC__ */
- #endif /* not sparc. */
- ***************
- *** 1224,1229 ****
- --- 1240,1250 ----
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 10000
- #endif
- +
- + /* Prevent warning if -Wstrict-prototypes. */
- + #ifdef __GNUC__
- + int yyparse (void);
- + #endif
-
- #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
- #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
- ***************
- *** 1264,1270 ****
- #endif
- #endif
-
- ! #line 169 "bison.simple"
- int
- yyparse()
- {
- --- 1285,1291 ----
- #endif
- #endif
-
- ! #line 184 "bison.simple"
- int
- yyparse()
- {
- ***************
- *** 1320,1326 ****
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- --- 1341,1348 ----
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack.
- ! The wasted elements are never initialized. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- ***************
- *** 1403,1408 ****
- --- 1425,1431 ----
- fprintf(stderr, "Entering state %d\n", yystate);
- #endif
-
- + goto yybackup;
- yybackup:
-
- /* Do appropriate processing given the current state. */
- ***************
- *** 1527,1533 ****
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symboles being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- --- 1550,1556 ----
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- ***************
- *** 2252,2264 ****
- break;}
- case 153:
- #line 884 "c-parse.y"
- ! { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed"))
- warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER (yyvsp[0].ttype));
- yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 154:
- ! #line 889 "c-parse.y"
- { /* If not "mode (m)", then issue warning. */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
- {
- --- 2275,2295 ----
- break;}
- case 153:
- #line 884 "c-parse.y"
- ! {
- ! /* AMIGA diff */
- ! #ifdef HANDLE_ATTRIBUTE0
- ! /* give the function a chance to validate further attributes */
- ! if (HANDLE_ATTRIBUTE0 (IDENTIFIER_POINTER (yyvsp[0].ttype)) ||
- ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed"))
- ! #else
- ! if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed"))
- ! #endif
- warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER (yyvsp[0].ttype));
- yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 154:
- ! #line 897 "c-parse.y"
- { /* If not "mode (m)", then issue warning. */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
- {
- ***************
- *** 2270,2276 ****
- yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 155:
- ! #line 899 "c-parse.y"
- { /* if not "aligned(n)", then issue warning */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
- || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
- --- 2301,2307 ----
- yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 155:
- ! #line 907 "c-parse.y"
- { /* if not "aligned(n)", then issue warning */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
- || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
- ***************
- *** 2283,2289 ****
- yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 156:
- ! #line 910 "c-parse.y"
- { /* if not "format(...)", then issue warning */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
- || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
- --- 2314,2320 ----
- yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 156:
- ! #line 918 "c-parse.y"
- { /* if not "format(...)", then issue warning */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
- || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
- ***************
- *** 2301,2362 ****
- NULL_TREE); ;
- break;}
- case 158:
- ! #line 930 "c-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
- if (pedantic)
- pedwarn ("ANSI C forbids empty initializer braces"); ;
- break;}
- case 159:
- ! #line 934 "c-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); ;
- break;}
- case 160:
- ! #line 936 "c-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ;
- break;}
- case 161:
- ! #line 938 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 162:
- ! #line 945 "c-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 163:
- ! #line 947 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
- break;}
- case 164:
- ! #line 952 "c-parse.y"
- { yyval.ttype = build_tree_list (tree_cons (yyvsp[-4].ttype, NULL_TREE,
- build_tree_list (yyvsp[-2].ttype, NULL_TREE)),
- yyvsp[0].ttype); ;
- break;}
- case 165:
- ! #line 956 "c-parse.y"
- { yyval.ttype = tree_cons (tree_cons (yyvsp[-4].ttype, NULL_TREE,
- build_tree_list (yyvsp[-2].ttype, NULL_TREE)),
- yyvsp[0].ttype,
- yyvsp[-7].ttype); ;
- break;}
- case 166:
- ! #line 961 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 167:
- ! #line 963 "c-parse.y"
- { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-5].ttype); ;
- break;}
- case 168:
- ! #line 965 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 169:
- ! #line 967 "c-parse.y"
- { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
- break;}
- case 170:
- ! #line 972 "c-parse.y"
- { push_c_function_context ();
- if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
- {
- --- 2332,2393 ----
- NULL_TREE); ;
- break;}
- case 158:
- ! #line 938 "c-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
- if (pedantic)
- pedwarn ("ANSI C forbids empty initializer braces"); ;
- break;}
- case 159:
- ! #line 942 "c-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); ;
- break;}
- case 160:
- ! #line 944 "c-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ;
- break;}
- case 161:
- ! #line 946 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 162:
- ! #line 953 "c-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 163:
- ! #line 955 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
- break;}
- case 164:
- ! #line 960 "c-parse.y"
- { yyval.ttype = build_tree_list (tree_cons (yyvsp[-4].ttype, NULL_TREE,
- build_tree_list (yyvsp[-2].ttype, NULL_TREE)),
- yyvsp[0].ttype); ;
- break;}
- case 165:
- ! #line 964 "c-parse.y"
- { yyval.ttype = tree_cons (tree_cons (yyvsp[-4].ttype, NULL_TREE,
- build_tree_list (yyvsp[-2].ttype, NULL_TREE)),
- yyvsp[0].ttype,
- yyvsp[-7].ttype); ;
- break;}
- case 166:
- ! #line 969 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 167:
- ! #line 971 "c-parse.y"
- { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-5].ttype); ;
- break;}
- case 168:
- ! #line 973 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 169:
- ! #line 975 "c-parse.y"
- { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
- break;}
- case 170:
- ! #line 980 "c-parse.y"
- { push_c_function_context ();
- if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
- {
- ***************
- *** 2367,2378 ****
- store_parm_decls (); ;
- break;}
- case 171:
- ! #line 987 "c-parse.y"
- { finish_function (1);
- pop_c_function_context (); ;
- break;}
- case 172:
- ! #line 993 "c-parse.y"
- { push_c_function_context ();
- if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
- {
- --- 2398,2409 ----
- store_parm_decls (); ;
- break;}
- case 171:
- ! #line 995 "c-parse.y"
- { finish_function (1);
- pop_c_function_context (); ;
- break;}
- case 172:
- ! #line 1001 "c-parse.y"
- { push_c_function_context ();
- if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
- {
- ***************
- *** 2383,2665 ****
- store_parm_decls (); ;
- break;}
- case 173:
- ! #line 1008 "c-parse.y"
- { finish_function (1);
- pop_c_function_context (); ;
- break;}
- case 176:
- ! #line 1024 "c-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 177:
- ! #line 1026 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 178:
- ! #line 1031 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 179:
- ! #line 1033 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 180:
- ! #line 1035 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 182:
- ! #line 1046 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 183:
- ! #line 1051 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 184:
- ! #line 1053 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 185:
- ! #line 1055 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 187:
- ! #line 1064 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 188:
- ! #line 1069 "c-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 189:
- ! #line 1071 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 190:
- ! #line 1073 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 191:
- ! #line 1075 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 193:
- ! #line 1081 "c-parse.y"
- { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
- /* Start scope of tag before parsing components. */
- ;
- break;}
- case 194:
- ! #line 1085 "c-parse.y"
- { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
- /* Really define the structure. */
- ;
- break;}
- case 195:
- ! #line 1089 "c-parse.y"
- { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
- yyvsp[-1].ttype); ;
- break;}
- case 196:
- ! #line 1092 "c-parse.y"
- { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
- break;}
- case 197:
- ! #line 1094 "c-parse.y"
- { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
- break;}
- case 198:
- ! #line 1096 "c-parse.y"
- { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
- break;}
- case 199:
- ! #line 1098 "c-parse.y"
- { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
- yyvsp[-1].ttype); ;
- break;}
- case 200:
- ! #line 1101 "c-parse.y"
- { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
- break;}
- case 201:
- ! #line 1103 "c-parse.y"
- { yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_enum (yyvsp[-1].ttype); ;
- break;}
- case 202:
- ! #line 1106 "c-parse.y"
- { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
- resume_momentary (yyvsp[-4].itype); ;
- break;}
- case 203:
- ! #line 1109 "c-parse.y"
- { yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_enum (NULL_TREE); ;
- break;}
- case 204:
- ! #line 1112 "c-parse.y"
- { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
- resume_momentary (yyvsp[-4].itype); ;
- break;}
- case 205:
- ! #line 1115 "c-parse.y"
- { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
- break;}
- case 209:
- ! #line 1126 "c-parse.y"
- { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
- break;}
- case 210:
- ! #line 1131 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 211:
- ! #line 1133 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
- pedwarn ("no semicolon at end of struct or union"); ;
- break;}
- case 212:
- ! #line 1138 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 213:
- ! #line 1140 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
- break;}
- case 214:
- ! #line 1142 "c-parse.y"
- { if (pedantic)
- pedwarn ("extra semicolon in struct or union specified"); ;
- break;}
- case 215:
- ! #line 1157 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- current_declspecs = TREE_VALUE (declspec_stack);
- declspec_stack = TREE_CHAIN (declspec_stack);
- resume_momentary (yyvsp[-1].itype); ;
- break;}
- case 216:
- ! #line 1162 "c-parse.y"
- { if (pedantic)
- pedwarn ("ANSI C forbids member declarations with no members");
- shadow_tag(yyvsp[0].ttype);
- yyval.ttype = NULL_TREE; ;
- break;}
- case 217:
- ! #line 1167 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- current_declspecs = TREE_VALUE (declspec_stack);
- declspec_stack = TREE_CHAIN (declspec_stack);
- resume_momentary (yyvsp[-1].itype); ;
- break;}
- case 218:
- ! #line 1172 "c-parse.y"
- { if (pedantic)
- pedwarn ("ANSI C forbids member declarations with no members");
- shadow_tag(yyvsp[0].ttype);
- yyval.ttype = NULL_TREE; ;
- break;}
- case 219:
- ! #line 1177 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 221:
- ! #line 1183 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 222:
- ! #line 1188 "c-parse.y"
- { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
- decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
- break;}
- case 223:
- ! #line 1192 "c-parse.y"
- { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
- decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
- break;}
- case 224:
- ! #line 1195 "c-parse.y"
- { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
- decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
- break;}
- case 226:
- ! #line 1207 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
- break;}
- case 227:
- ! #line 1213 "c-parse.y"
- { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 228:
- ! #line 1215 "c-parse.y"
- { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 229:
- ! #line 1220 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 230:
- ! #line 1222 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 231:
- ! #line 1227 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 233:
- ! #line 1233 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 234:
- ! #line 1235 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 235:
- ! #line 1240 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 236:
- ! #line 1242 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 237:
- ! #line 1247 "c-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 238:
- ! #line 1250 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 239:
- ! #line 1252 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 240:
- ! #line 1254 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 241:
- ! #line 1256 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 242:
- ! #line 1258 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 243:
- ! #line 1260 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 244:
- ! #line 1262 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 245:
- ! #line 1264 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
- break;}
- case 252:
- ! #line 1286 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- pushlevel (0);
- clear_last_expr ();
- --- 2414,2696 ----
- store_parm_decls (); ;
- break;}
- case 173:
- ! #line 1016 "c-parse.y"
- { finish_function (1);
- pop_c_function_context (); ;
- break;}
- case 176:
- ! #line 1032 "c-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 177:
- ! #line 1034 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 178:
- ! #line 1039 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 179:
- ! #line 1041 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 180:
- ! #line 1043 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 182:
- ! #line 1054 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 183:
- ! #line 1059 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 184:
- ! #line 1061 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 185:
- ! #line 1063 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 187:
- ! #line 1072 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 188:
- ! #line 1077 "c-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 189:
- ! #line 1079 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 190:
- ! #line 1081 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 191:
- ! #line 1083 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 193:
- ! #line 1089 "c-parse.y"
- { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
- /* Start scope of tag before parsing components. */
- ;
- break;}
- case 194:
- ! #line 1093 "c-parse.y"
- { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
- /* Really define the structure. */
- ;
- break;}
- case 195:
- ! #line 1097 "c-parse.y"
- { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
- yyvsp[-1].ttype); ;
- break;}
- case 196:
- ! #line 1100 "c-parse.y"
- { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
- break;}
- case 197:
- ! #line 1102 "c-parse.y"
- { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
- break;}
- case 198:
- ! #line 1104 "c-parse.y"
- { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
- break;}
- case 199:
- ! #line 1106 "c-parse.y"
- { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
- yyvsp[-1].ttype); ;
- break;}
- case 200:
- ! #line 1109 "c-parse.y"
- { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
- break;}
- case 201:
- ! #line 1111 "c-parse.y"
- { yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_enum (yyvsp[-1].ttype); ;
- break;}
- case 202:
- ! #line 1114 "c-parse.y"
- { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
- resume_momentary (yyvsp[-4].itype); ;
- break;}
- case 203:
- ! #line 1117 "c-parse.y"
- { yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_enum (NULL_TREE); ;
- break;}
- case 204:
- ! #line 1120 "c-parse.y"
- { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
- resume_momentary (yyvsp[-4].itype); ;
- break;}
- case 205:
- ! #line 1123 "c-parse.y"
- { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
- break;}
- case 209:
- ! #line 1134 "c-parse.y"
- { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
- break;}
- case 210:
- ! #line 1139 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 211:
- ! #line 1141 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
- pedwarn ("no semicolon at end of struct or union"); ;
- break;}
- case 212:
- ! #line 1146 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 213:
- ! #line 1148 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
- break;}
- case 214:
- ! #line 1150 "c-parse.y"
- { if (pedantic)
- pedwarn ("extra semicolon in struct or union specified"); ;
- break;}
- case 215:
- ! #line 1165 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- current_declspecs = TREE_VALUE (declspec_stack);
- declspec_stack = TREE_CHAIN (declspec_stack);
- resume_momentary (yyvsp[-1].itype); ;
- break;}
- case 216:
- ! #line 1170 "c-parse.y"
- { if (pedantic)
- pedwarn ("ANSI C forbids member declarations with no members");
- shadow_tag(yyvsp[0].ttype);
- yyval.ttype = NULL_TREE; ;
- break;}
- case 217:
- ! #line 1175 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- current_declspecs = TREE_VALUE (declspec_stack);
- declspec_stack = TREE_CHAIN (declspec_stack);
- resume_momentary (yyvsp[-1].itype); ;
- break;}
- case 218:
- ! #line 1180 "c-parse.y"
- { if (pedantic)
- pedwarn ("ANSI C forbids member declarations with no members");
- shadow_tag(yyvsp[0].ttype);
- yyval.ttype = NULL_TREE; ;
- break;}
- case 219:
- ! #line 1185 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 221:
- ! #line 1191 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 222:
- ! #line 1196 "c-parse.y"
- { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
- decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
- break;}
- case 223:
- ! #line 1200 "c-parse.y"
- { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
- decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
- break;}
- case 224:
- ! #line 1203 "c-parse.y"
- { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
- decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
- break;}
- case 226:
- ! #line 1215 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
- break;}
- case 227:
- ! #line 1221 "c-parse.y"
- { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 228:
- ! #line 1223 "c-parse.y"
- { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 229:
- ! #line 1228 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 230:
- ! #line 1230 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 231:
- ! #line 1235 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 233:
- ! #line 1241 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 234:
- ! #line 1243 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 235:
- ! #line 1248 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 236:
- ! #line 1250 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 237:
- ! #line 1255 "c-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 238:
- ! #line 1258 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 239:
- ! #line 1260 "c-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 240:
- ! #line 1262 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 241:
- ! #line 1264 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 242:
- ! #line 1266 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 243:
- ! #line 1268 "c-parse.y"
- { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 244:
- ! #line 1270 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 245:
- ! #line 1272 "c-parse.y"
- { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
- break;}
- case 252:
- ! #line 1294 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- pushlevel (0);
- clear_last_expr ();
- ***************
- *** 2668,2679 ****
- ;
- break;}
- case 254:
- ! #line 1299 "c-parse.y"
- { if (pedantic)
- pedwarn ("ANSI C forbids label declarations"); ;
- break;}
- case 257:
- ! #line 1310 "c-parse.y"
- { tree link;
- for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
- {
- --- 2699,2710 ----
- ;
- break;}
- case 254:
- ! #line 1307 "c-parse.y"
- { if (pedantic)
- pedwarn ("ANSI C forbids label declarations"); ;
- break;}
- case 257:
- ! #line 1318 "c-parse.y"
- { tree link;
- for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
- {
- ***************
- *** 2684,2719 ****
- ;
- break;}
- case 258:
- ! #line 1324 "c-parse.y"
- {;
- break;}
- case 260:
- ! #line 1329 "c-parse.y"
- { yyval.ttype = convert (void_type_node, integer_zero_node); ;
- break;}
- case 261:
- ! #line 1331 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_end_bindings (getdecls (), 1, 0);
- yyval.ttype = poplevel (1, 1, 0);
- pop_momentary (); ;
- break;}
- case 262:
- ! #line 1336 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_end_bindings (getdecls (), kept_level_p (), 0);
- yyval.ttype = poplevel (kept_level_p (), 0, 0);
- pop_momentary (); ;
- break;}
- case 263:
- ! #line 1341 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_end_bindings (getdecls (), kept_level_p (), 0);
- yyval.ttype = poplevel (kept_level_p (), 0, 0);
- pop_momentary (); ;
- break;}
- case 266:
- ! #line 1358 "c-parse.y"
- { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
- yyvsp[-3].itype = stmt_count;
- --- 2715,2750 ----
- ;
- break;}
- case 258:
- ! #line 1332 "c-parse.y"
- {;
- break;}
- case 260:
- ! #line 1337 "c-parse.y"
- { yyval.ttype = convert (void_type_node, integer_zero_node); ;
- break;}
- case 261:
- ! #line 1339 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_end_bindings (getdecls (), 1, 0);
- yyval.ttype = poplevel (1, 1, 0);
- pop_momentary (); ;
- break;}
- case 262:
- ! #line 1344 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_end_bindings (getdecls (), kept_level_p (), 0);
- yyval.ttype = poplevel (kept_level_p (), 0, 0);
- pop_momentary (); ;
- break;}
- case 263:
- ! #line 1349 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_end_bindings (getdecls (), kept_level_p (), 0);
- yyval.ttype = poplevel (kept_level_p (), 0, 0);
- pop_momentary (); ;
- break;}
- case 266:
- ! #line 1366 "c-parse.y"
- { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
- yyvsp[-3].itype = stmt_count;
- ***************
- *** 2722,2728 ****
- position_after_white_space (); ;
- break;}
- case 267:
- ! #line 1371 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
- /* See comment in `while' alternative, above. */
- --- 2753,2759 ----
- position_after_white_space (); ;
- break;}
- case 267:
- ! #line 1379 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
- /* See comment in `while' alternative, above. */
- ***************
- *** 2731,2761 ****
- position_after_white_space (); ;
- break;}
- case 268:
- ! #line 1378 "c-parse.y"
- { expand_loop_continue_here (); ;
- break;}
- case 269:
- ! #line 1382 "c-parse.y"
- { yyval.filename = input_filename; ;
- break;}
- case 270:
- ! #line 1386 "c-parse.y"
- { yyval.lineno = lineno; ;
- break;}
- case 271:
- ! #line 1391 "c-parse.y"
- { ;
- break;}
- case 272:
- ! #line 1396 "c-parse.y"
- { ;
- break;}
- case 273:
- ! #line 1401 "c-parse.y"
- { ;
- break;}
- case 275:
- ! #line 1407 "c-parse.y"
- { int next;
- position_after_white_space ();
- next = getc (finput);
- --- 2762,2792 ----
- position_after_white_space (); ;
- break;}
- case 268:
- ! #line 1386 "c-parse.y"
- { expand_loop_continue_here (); ;
- break;}
- case 269:
- ! #line 1390 "c-parse.y"
- { yyval.filename = input_filename; ;
- break;}
- case 270:
- ! #line 1394 "c-parse.y"
- { yyval.lineno = lineno; ;
- break;}
- case 271:
- ! #line 1399 "c-parse.y"
- { ;
- break;}
- case 272:
- ! #line 1404 "c-parse.y"
- { ;
- break;}
- case 273:
- ! #line 1409 "c-parse.y"
- { ;
- break;}
- case 275:
- ! #line 1415 "c-parse.y"
- { int next;
- position_after_white_space ();
- next = getc (finput);
- ***************
- *** 2765,2805 ****
- ;
- break;}
- case 276:
- ! #line 1419 "c-parse.y"
- { stmt_count++; ;
- break;}
- case 278:
- ! #line 1422 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- iterator_expand (yyvsp[-1].ttype);
- clear_momentary (); ;
- break;}
- case 279:
- ! #line 1427 "c-parse.y"
- { expand_start_else ();
- yyvsp[-1].itype = stmt_count;
- position_after_white_space (); ;
- break;}
- case 280:
- ! #line 1431 "c-parse.y"
- { expand_end_cond ();
- if (extra_warnings && stmt_count == yyvsp[-3].itype)
- warning ("empty body in an else-statement"); ;
- break;}
- case 281:
- ! #line 1435 "c-parse.y"
- { expand_end_cond ();
- if (extra_warnings && stmt_count == yyvsp[0].itype)
- warning_with_file_and_line (if_stmt_file, if_stmt_line,
- "empty body in an if-statement"); ;
- break;}
- case 282:
- ! #line 1443 "c-parse.y"
- { expand_end_cond (); ;
- break;}
- case 283:
- ! #line 1445 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
- /* The emit_nop used to come before emit_line_note,
- --- 2796,2836 ----
- ;
- break;}
- case 276:
- ! #line 1427 "c-parse.y"
- { stmt_count++; ;
- break;}
- case 278:
- ! #line 1430 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- iterator_expand (yyvsp[-1].ttype);
- clear_momentary (); ;
- break;}
- case 279:
- ! #line 1435 "c-parse.y"
- { expand_start_else ();
- yyvsp[-1].itype = stmt_count;
- position_after_white_space (); ;
- break;}
- case 280:
- ! #line 1439 "c-parse.y"
- { expand_end_cond ();
- if (extra_warnings && stmt_count == yyvsp[-3].itype)
- warning ("empty body in an else-statement"); ;
- break;}
- case 281:
- ! #line 1443 "c-parse.y"
- { expand_end_cond ();
- if (extra_warnings && stmt_count == yyvsp[0].itype)
- warning_with_file_and_line (if_stmt_file, if_stmt_line,
- "empty body in an if-statement"); ;
- break;}
- case 282:
- ! #line 1451 "c-parse.y"
- { expand_end_cond (); ;
- break;}
- case 283:
- ! #line 1453 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
- /* The emit_nop used to come before emit_line_note,
- ***************
- *** 2811,2817 ****
- emit_nop (); ;
- break;}
- case 284:
- ! #line 1455 "c-parse.y"
- { /* Don't start the loop till we have succeeded
- in parsing the end test. This is to make sure
- that we end every loop we start. */
- --- 2842,2848 ----
- emit_nop (); ;
- break;}
- case 284:
- ! #line 1463 "c-parse.y"
- { /* Don't start the loop till we have succeeded
- in parsing the end test. This is to make sure
- that we end every loop we start. */
- ***************
- *** 2822,2832 ****
- position_after_white_space (); ;
- break;}
- case 285:
- ! #line 1464 "c-parse.y"
- { expand_end_loop (); ;
- break;}
- case 286:
- ! #line 1467 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_exit_loop_if_false (NULL_PTR,
- truthvalue_conversion (yyvsp[-2].ttype));
- --- 2853,2863 ----
- position_after_white_space (); ;
- break;}
- case 285:
- ! #line 1472 "c-parse.y"
- { expand_end_loop (); ;
- break;}
- case 286:
- ! #line 1475 "c-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_exit_loop_if_false (NULL_PTR,
- truthvalue_conversion (yyvsp[-2].ttype));
- ***************
- *** 2834,2845 ****
- clear_momentary (); ;
- break;}
- case 287:
- ! #line 1474 "c-parse.y"
- { expand_end_loop ();
- clear_momentary (); ;
- break;}
- case 288:
- ! #line 1478 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- /* See comment in `while' alternative, above. */
- --- 2865,2876 ----
- clear_momentary (); ;
- break;}
- case 287:
- ! #line 1482 "c-parse.y"
- { expand_end_loop ();
- clear_momentary (); ;
- break;}
- case 288:
- ! #line 1486 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- /* See comment in `while' alternative, above. */
- ***************
- *** 2852,2863 ****
- ;
- break;}
- case 289:
- ! #line 1490 "c-parse.y"
- { yyvsp[0].lineno = lineno;
- yyval.filename = input_filename; ;
- break;}
- case 290:
- ! #line 1493 "c-parse.y"
- {
- /* Start the loop. Doing this after parsing
- all the expressions ensures we will end the loop. */
- --- 2883,2894 ----
- ;
- break;}
- case 289:
- ! #line 1498 "c-parse.y"
- { yyvsp[0].lineno = lineno;
- yyval.filename = input_filename; ;
- break;}
- case 290:
- ! #line 1501 "c-parse.y"
- {
- /* Start the loop. Doing this after parsing
- all the expressions ensures we will end the loop. */
- ***************
- *** 2875,2881 ****
- position_after_white_space (); ;
- break;}
- case 291:
- ! #line 1509 "c-parse.y"
- { /* Emit the increment expression, with a line number. */
- emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
- expand_loop_continue_here ();
- --- 2906,2912 ----
- position_after_white_space (); ;
- break;}
- case 291:
- ! #line 1517 "c-parse.y"
- { /* Emit the increment expression, with a line number. */
- emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
- expand_loop_continue_here ();
- ***************
- *** 2885,2891 ****
- expand_end_loop (); ;
- break;}
- case 292:
- ! #line 1517 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- c_expand_start_case (yyvsp[-1].ttype);
- --- 2916,2922 ----
- expand_end_loop (); ;
- break;}
- case 292:
- ! #line 1525 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- c_expand_start_case (yyvsp[-1].ttype);
- ***************
- *** 2895,2932 ****
- position_after_white_space (); ;
- break;}
- case 293:
- ! #line 1525 "c-parse.y"
- { expand_end_case (yyvsp[-3].ttype);
- pop_momentary (); ;
- break;}
- case 294:
- ! #line 1528 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- if ( ! expand_exit_something ())
- error ("break statement not within loop or switch"); ;
- break;}
- case 295:
- ! #line 1533 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- if (! expand_continue_loop (NULL_PTR))
- error ("continue statement not within a loop"); ;
- break;}
- case 296:
- ! #line 1538 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- c_expand_return (NULL_TREE); ;
- break;}
- case 297:
- ! #line 1542 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
- c_expand_return (yyvsp[-1].ttype); ;
- break;}
- case 298:
- ! #line 1546 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
- STRIP_NOPS (yyvsp[-2].ttype);
- --- 2926,2963 ----
- position_after_white_space (); ;
- break;}
- case 293:
- ! #line 1533 "c-parse.y"
- { expand_end_case (yyvsp[-3].ttype);
- pop_momentary (); ;
- break;}
- case 294:
- ! #line 1536 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- if ( ! expand_exit_something ())
- error ("break statement not within loop or switch"); ;
- break;}
- case 295:
- ! #line 1541 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- if (! expand_continue_loop (NULL_PTR))
- error ("continue statement not within a loop"); ;
- break;}
- case 296:
- ! #line 1546 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
- c_expand_return (NULL_TREE); ;
- break;}
- case 297:
- ! #line 1550 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
- c_expand_return (yyvsp[-1].ttype); ;
- break;}
- case 298:
- ! #line 1554 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
- STRIP_NOPS (yyvsp[-2].ttype);
- ***************
- *** 2938,2944 ****
- error ("argument of `asm' is not a constant string"); ;
- break;}
- case 299:
- ! #line 1557 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
- c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
- --- 2969,2975 ----
- error ("argument of `asm' is not a constant string"); ;
- break;}
- case 299:
- ! #line 1565 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
- c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
- ***************
- *** 2946,2952 ****
- input_filename, lineno); ;
- break;}
- case 300:
- ! #line 1564 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
- c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
- --- 2977,2983 ----
- input_filename, lineno); ;
- break;}
- case 300:
- ! #line 1572 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
- c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
- ***************
- *** 2954,2960 ****
- input_filename, lineno); ;
- break;}
- case 301:
- ! #line 1572 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
- c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
- --- 2985,2991 ----
- input_filename, lineno); ;
- break;}
- case 301:
- ! #line 1580 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
- c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
- ***************
- *** 2962,2968 ****
- input_filename, lineno); ;
- break;}
- case 302:
- ! #line 1578 "c-parse.y"
- { tree decl;
- stmt_count++;
- emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
- --- 2993,2999 ----
- input_filename, lineno); ;
- break;}
- case 302:
- ! #line 1586 "c-parse.y"
- { tree decl;
- stmt_count++;
- emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
- ***************
- *** 2975,2987 ****
- ;
- break;}
- case 303:
- ! #line 1589 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
- break;}
- case 306:
- ! #line 1602 "c-parse.y"
- {
- /* The value returned by this action is */
- /* 1 if everything is OK */
- --- 3006,3018 ----
- ;
- break;}
- case 303:
- ! #line 1597 "c-parse.y"
- { stmt_count++;
- emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
- expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
- break;}
- case 306:
- ! #line 1610 "c-parse.y"
- {
- /* The value returned by this action is */
- /* 1 if everything is OK */
- ***************
- *** 3004,3017 ****
- ;
- break;}
- case 307:
- ! #line 1623 "c-parse.y"
- {
- if (yyvsp[-1].itype)
- iterator_for_loop_end (yyvsp[-3].ttype);
- ;
- break;}
- case 308:
- ! #line 1655 "c-parse.y"
- { register tree value = check_case_value (yyvsp[-1].ttype);
- register tree label
- = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
- --- 3035,3048 ----
- ;
- break;}
- case 307:
- ! #line 1631 "c-parse.y"
- {
- if (yyvsp[-1].itype)
- iterator_for_loop_end (yyvsp[-3].ttype);
- ;
- break;}
- case 308:
- ! #line 1663 "c-parse.y"
- { register tree value = check_case_value (yyvsp[-1].ttype);
- register tree label
- = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
- ***************
- *** 3037,3043 ****
- position_after_white_space (); ;
- break;}
- case 309:
- ! #line 1679 "c-parse.y"
- { register tree value1 = check_case_value (yyvsp[-3].ttype);
- register tree value2 = check_case_value (yyvsp[-1].ttype);
- register tree label
- --- 3068,3074 ----
- position_after_white_space (); ;
- break;}
- case 309:
- ! #line 1687 "c-parse.y"
- { register tree value1 = check_case_value (yyvsp[-3].ttype);
- register tree value2 = check_case_value (yyvsp[-1].ttype);
- register tree label
- ***************
- *** 3067,3073 ****
- position_after_white_space (); ;
- break;}
- case 310:
- ! #line 1707 "c-parse.y"
- {
- tree duplicate;
- register tree label
- --- 3098,3104 ----
- position_after_white_space (); ;
- break;}
- case 310:
- ! #line 1715 "c-parse.y"
- {
- tree duplicate;
- register tree label
- ***************
- *** 3084,3090 ****
- position_after_white_space (); ;
- break;}
- case 311:
- ! #line 1722 "c-parse.y"
- { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
- stmt_count++;
- emit_nop ();
- --- 3115,3121 ----
- position_after_white_space (); ;
- break;}
- case 311:
- ! #line 1730 "c-parse.y"
- { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
- stmt_count++;
- emit_nop ();
- ***************
- *** 3093,3143 ****
- position_after_white_space (); ;
- break;}
- case 312:
- ! #line 1734 "c-parse.y"
- { emit_line_note (input_filename, lineno); ;
- break;}
- case 313:
- ! #line 1736 "c-parse.y"
- { emit_line_note (input_filename, lineno); ;
- break;}
- case 314:
- ! #line 1741 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 316:
- ! #line 1748 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 319:
- ! #line 1755 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 320:
- ! #line 1760 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 321:
- ! #line 1765 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
- break;}
- case 322:
- ! #line 1767 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
- break;}
- case 323:
- ! #line 1773 "c-parse.y"
- { pushlevel (0);
- clear_parm_order ();
- declare_parm_level (0); ;
- break;}
- case 324:
- ! #line 1777 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- parmlist_tags_warning ();
- poplevel (0, 0, 0); ;
- break;}
- case 326:
- ! #line 1785 "c-parse.y"
- { tree parm;
- if (pedantic)
- pedwarn ("ANSI C forbids forward parameter declarations");
- --- 3124,3174 ----
- position_after_white_space (); ;
- break;}
- case 312:
- ! #line 1742 "c-parse.y"
- { emit_line_note (input_filename, lineno); ;
- break;}
- case 313:
- ! #line 1744 "c-parse.y"
- { emit_line_note (input_filename, lineno); ;
- break;}
- case 314:
- ! #line 1749 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 316:
- ! #line 1756 "c-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 319:
- ! #line 1763 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 320:
- ! #line 1768 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 321:
- ! #line 1773 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
- break;}
- case 322:
- ! #line 1775 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
- break;}
- case 323:
- ! #line 1781 "c-parse.y"
- { pushlevel (0);
- clear_parm_order ();
- declare_parm_level (0); ;
- break;}
- case 324:
- ! #line 1785 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- parmlist_tags_warning ();
- poplevel (0, 0, 0); ;
- break;}
- case 326:
- ! #line 1793 "c-parse.y"
- { tree parm;
- if (pedantic)
- pedwarn ("ANSI C forbids forward parameter declarations");
- ***************
- *** 3147,3220 ****
- clear_parm_order (); ;
- break;}
- case 327:
- ! #line 1793 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 328:
- ! #line 1795 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
- break;}
- case 329:
- ! #line 1801 "c-parse.y"
- { yyval.ttype = get_parm_info (0); ;
- break;}
- case 330:
- ! #line 1803 "c-parse.y"
- { yyval.ttype = get_parm_info (0);
- if (pedantic)
- pedwarn ("ANSI C requires a named argument before `...'");
- ;
- break;}
- case 331:
- ! #line 1808 "c-parse.y"
- { yyval.ttype = get_parm_info (1); ;
- break;}
- case 332:
- ! #line 1810 "c-parse.y"
- { yyval.ttype = get_parm_info (0); ;
- break;}
- case 333:
- ! #line 1815 "c-parse.y"
- { push_parm_decl (yyvsp[0].ttype); ;
- break;}
- case 334:
- ! #line 1817 "c-parse.y"
- { push_parm_decl (yyvsp[0].ttype); ;
- break;}
- case 335:
- ! #line 1824 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
- break;}
- case 336:
- ! #line 1826 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
- break;}
- case 337:
- ! #line 1828 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 338:
- ! #line 1830 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
- break;}
- case 339:
- ! #line 1832 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 340:
- ! #line 1839 "c-parse.y"
- { pushlevel (0);
- clear_parm_order ();
- declare_parm_level (1); ;
- break;}
- case 341:
- ! #line 1843 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- parmlist_tags_warning ();
- poplevel (0, 0, 0); ;
- break;}
- case 343:
- ! #line 1851 "c-parse.y"
- { tree t;
- for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
- if (TREE_VALUE (t) == NULL_TREE)
- --- 3178,3251 ----
- clear_parm_order (); ;
- break;}
- case 327:
- ! #line 1801 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 328:
- ! #line 1803 "c-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
- break;}
- case 329:
- ! #line 1809 "c-parse.y"
- { yyval.ttype = get_parm_info (0); ;
- break;}
- case 330:
- ! #line 1811 "c-parse.y"
- { yyval.ttype = get_parm_info (0);
- if (pedantic)
- pedwarn ("ANSI C requires a named argument before `...'");
- ;
- break;}
- case 331:
- ! #line 1816 "c-parse.y"
- { yyval.ttype = get_parm_info (1); ;
- break;}
- case 332:
- ! #line 1818 "c-parse.y"
- { yyval.ttype = get_parm_info (0); ;
- break;}
- case 333:
- ! #line 1823 "c-parse.y"
- { push_parm_decl (yyvsp[0].ttype); ;
- break;}
- case 334:
- ! #line 1825 "c-parse.y"
- { push_parm_decl (yyvsp[0].ttype); ;
- break;}
- case 335:
- ! #line 1832 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
- break;}
- case 336:
- ! #line 1834 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
- break;}
- case 337:
- ! #line 1836 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 338:
- ! #line 1838 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
- break;}
- case 339:
- ! #line 1840 "c-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 340:
- ! #line 1847 "c-parse.y"
- { pushlevel (0);
- clear_parm_order ();
- declare_parm_level (1); ;
- break;}
- case 341:
- ! #line 1851 "c-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- parmlist_tags_warning ();
- poplevel (0, 0, 0); ;
- break;}
- case 343:
- ! #line 1859 "c-parse.y"
- { tree t;
- for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
- if (TREE_VALUE (t) == NULL_TREE)
- ***************
- *** 3222,3245 ****
- yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 344:
- ! #line 1861 "c-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 345:
- ! #line 1863 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
- break;}
- case 346:
- ! #line 1869 "c-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 347:
- ! #line 1871 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 440 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- --- 3253,3276 ----
- yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 344:
- ! #line 1869 "c-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 345:
- ! #line 1871 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
- break;}
- case 346:
- ! #line 1877 "c-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 347:
- ! #line 1879 "c-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 457 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- ***************
- *** 3309,3315 ****
- int x, count;
-
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- --- 3340,3348 ----
- int x, count;
-
- count = 0;
- ! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- ***************
- *** 3320,3326 ****
- if (count < 5)
- {
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- --- 3353,3360 ----
- if (count < 5)
- {
- count = 0;
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- ***************
- *** 3340,3345 ****
- --- 3374,3380 ----
- yyerror("parse error");
- }
-
- + goto yyerrlab1;
- yyerrlab1: /* here on error raised explicitly by an action */
-
- if (yyerrstatus == 3)
- ***************
- *** 3431,3435 ****
- yystate = yyn;
- goto yynewstate;
- }
- ! #line 1874 "c-parse.y"
-
- --- 3466,3470 ----
- yystate = yyn;
- goto yynewstate;
- }
- ! #line 1882 "c-parse.y"
-
- diff -rcP gcc-2.4.5-fsf/c-parse.y gcc-2.4.5-amiga/c-parse.y
- *** gcc-2.4.5-fsf/c-parse.y Thu May 6 18:20:03 1993
- --- gcc-2.4.5-amiga/c-parse.y Mon Sep 6 02:40:26 1993
- ***************
- *** 881,887 ****
-
- attrib
- : IDENTIFIER
- ! { if (strcmp (IDENTIFIER_POINTER ($1), "packed"))
- warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER ($1));
- $$ = $1; }
- --- 881,895 ----
-
- attrib
- : IDENTIFIER
- ! {
- ! /* AMIGA diff */
- ! #ifdef HANDLE_ATTRIBUTE0
- ! /* give the function a chance to validate further attributes */
- ! if (HANDLE_ATTRIBUTE0 (IDENTIFIER_POINTER ($1)) ||
- ! strcmp (IDENTIFIER_POINTER ($1), "packed"))
- ! #else
- ! if (strcmp (IDENTIFIER_POINTER ($1), "packed"))
- ! #endif
- warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER ($1));
- $$ = $1; }
- diff -rcP gcc-2.4.5-fsf/cccp.c gcc-2.4.5-amiga/cccp.c
- *** gcc-2.4.5-fsf/cccp.c Fri May 21 23:13:17 1993
- --- gcc-2.4.5-amiga/cccp.c Mon Sep 6 02:40:46 1993
- ***************
- *** 39,44 ****
- --- 39,58 ----
- #include "config.h"
- #endif /* not EMACS */
-
- + #ifdef amigados
- + /* since cpp uses alloca to store all its read files, this is quite deadly
- + on a system with non-automatic stackgrowth like amigados, so we better
- + turn it off now..
- +
- + Note that it's not wise to generally inhibit __builtin_alloca, since
- + using the generic emulator entitels a serious (!) speed penalty, and
- + it's bad enough that we have to live with it in cccp, don't make cc1
- + unbearably slow as well... */
- + #undef alloca
- +
- + static int amigados_abs_filename ();
- + #endif
- +
- #ifndef STANDARD_INCLUDE_DIR
- #define STANDARD_INCLUDE_DIR "/usr/include"
- #endif
- ***************
- *** 187,193 ****
- --- 201,211 ----
- extern char *version_string;
- extern struct tm *localtime ();
- extern int sys_nerr;
- +
- + #ifndef HAVE_STRERROR
- extern char *sys_errlist[];
- + #define strerror(err) sys_errlist[err]
- + #endif
-
- #ifndef errno
- extern int errno;
- ***************
- *** 1748,1758 ****
- --- 1766,1780 ----
- char *p = in_fname;
- char *p1 = p;
- /* Discard all directory prefixes from P. */
- + #ifdef FILE_NAME_NONDIRECTORY
- + p = FILE_NAME_NONDIRECTORY (p);
- + #else
- while (*p1) {
- if (*p1 == '/')
- p = p1 + 1;
- p1++;
- }
- + #endif
- /* Output P, but remove known suffixes. */
- len = strlen (p);
- if (p[len - 2] == '.' && p[len - 1] == 'c')
- ***************
- *** 3500,3506 ****
-
- if (!no_output && already_output == 0
- && (kt->pass_thru
- ! || (kt->type == T_DEFINE
- && (dump_macros == dump_names
- || dump_macros == dump_definitions)))) {
- int len;
- --- 3522,3528 ----
-
- if (!no_output && already_output == 0
- && (kt->pass_thru
- ! || ((kt->type == T_DEFINE || kt->type == T_UNDEF)
- && (dump_macros == dump_names
- || dump_macros == dump_definitions)))) {
- int len;
- ***************
- *** 3842,3847 ****
- --- 3864,3881 ----
- search_start = dsp;
- #ifndef VMS
- ep = rindex (nam, '/');
- +
- + #ifdef amigados
- + /* amigados uses unix-style directory-filename separation, but
- + has VMS-style logicals as well */
- +
- + if (ep == NULL)
- + {
- + ep = rindex (nam, ':');
- + /* a ':' is part of the directory name, a '/' isn't ! */
- + if (ep != NULL) ep++;
- + }
- + #endif /* amigados */
- #else /* VMS */
- ep = rindex (nam, ']');
- if (ep == NULL) ep = rindex (nam, '>');
- ***************
- *** 3921,3927 ****
- --- 3955,3965 ----
-
- /* If specified file name is absolute, just open it. */
-
- + #ifndef amigados
- if (*fbeg == '/') {
- + #else
- + if (amigados_abs_filename (fbeg, flen)) {
- + #endif
- strncpy (fname, fbeg, flen);
- fname[flen] = 0;
- if (redundant_include_p (fname))
- ***************
- *** 3944,3949 ****
- --- 3982,3991 ----
- if (searchptr->fname[0] == 0)
- continue;
- strcpy (fname, searchptr->fname);
- +
- + #ifdef amigados
- + if (fname[strlen (fname) - 1] != ':')
- + #endif
- strcat (fname, "/");
- fname[strlen (fname) + flen] = 0;
- } else {
- ***************
- *** 7814,7820 ****
- fprintf (stderr, "%s:%d: ", ip->nominal_fname, ip->lineno);
-
- if (errno < sys_nerr)
- ! fprintf (stderr, "%s: %s\n", name, sys_errlist[errno]);
- else
- fprintf (stderr, "%s: undocumented I/O error\n", name);
-
- --- 7856,7862 ----
- fprintf (stderr, "%s:%d: ", ip->nominal_fname, ip->lineno);
-
- if (errno < sys_nerr)
- ! fprintf (stderr, "%s: %s\n", name, strerror (errno));
- else
- fprintf (stderr, "%s: undocumented I/O error\n", name);
-
- ***************
- *** 8764,8772 ****
- perror_with_name (name)
- char *name;
- {
- fprintf (stderr, "%s: ", progname);
- ! if (errno < sys_nerr)
- ! fprintf (stderr, "%s: %s\n", name, sys_errlist[errno]);
- else
- fprintf (stderr, "%s: undocumented I/O error\n", name);
- errors++;
- --- 8806,8816 ----
- perror_with_name (name)
- char *name;
- {
- + int error = errno;
- +
- fprintf (stderr, "%s: ", progname);
- ! if (error < sys_nerr)
- ! fprintf (stderr, "%s: %s\n", name, strerror (error));
- else
- fprintf (stderr, "%s: undocumented I/O error\n", name);
- errors++;
- ***************
- *** 9151,9153 ****
- --- 9195,9222 ----
- return dst;
- }
- #endif /* VMS */
- +
- +
- +
- + #ifdef amigados
- +
- + /* This function returns whether the LEN characters long filename FNAME
- + is an absolute path specification. */
- +
- + static int
- + amigados_abs_filename (fname, len)
- + char *fname;
- + int len;
- + {
- + /* we're using ixemul.library, which treats `/foo' as `foo:', so
- + fname[0] is to be considered absolute as well */
- + if (fname[0] == '/')
- + return 1;
- +
- + /* else do an index() on fname, but one which is limited to len characters */
- + while (*fname && *fname != ':' && len)
- + fname++, len--;
- +
- + return *fname == ':';
- + }
- + #endif /* amigados */
- diff -rcP gcc-2.4.5-fsf/cexp.c gcc-2.4.5-amiga/cexp.c
- *** gcc-2.4.5-fsf/cexp.c Sat May 8 14:48:25 1993
- --- gcc-2.4.5-amiga/cexp.c Mon Sep 6 03:38:50 1993
- ***************
- *** 1,5 ****
-
- ! /* A Bison parser, made from cexp.y */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- --- 1,6 ----
-
- ! /* A Bison parser, made from cexp.y with Bison version GNU Bison version 1.21
- ! */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- ***************
- *** 129,137 ****
- --- 130,140 ----
-
- #include <stdio.h>
-
- + #ifndef __cplusplus
- #ifndef __STDC__
- #define const
- #endif
- + #endif
-
-
-
- ***************
- *** 171,176 ****
- --- 174,180 ----
- 6, 10, 11, 15, 16, 19, 20, 21, 22, 28
- };
-
- + #if YYDEBUG != 0
- static const short yyprhs[] = { 0,
- 0, 2, 4, 8, 11, 14, 17, 20, 23, 24,
- 31, 35, 39, 43, 47, 51, 55, 59, 63, 67,
- ***************
- *** 194,199 ****
- --- 198,205 ----
- 38, 33, 38, 0, 5, 38, 0
- };
-
- + #endif
- +
- #if YYDEBUG != 0
- static const short yyrline[] = { 0,
- 143, 148, 149, 156, 161, 164, 166, 169, 173, 175,
- ***************
- *** 327,333 ****
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- --- 333,339 ----
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- ***************
- *** 336,341 ****
- --- 342,357 ----
- #if defined(_AIX)
- #include <malloc.h>
- #pragma alloca
- + #else /* not MSDOS, __TURBOC__, or _AIX */
- + #ifdef __hpux
- + #ifdef __cplusplus
- + extern "C" {
- + void *alloca (unsigned int);
- + };
- + #else /* not __cplusplus */
- + void *alloca (unsigned int);
- + #endif /* not __cplusplus */
- + #endif /* __hpux */
- #endif /* not _AIX */
- #endif /* not MSDOS, or __TURBOC__ */
- #endif /* not sparc. */
- ***************
- *** 429,434 ****
- --- 445,455 ----
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 10000
- #endif
- +
- + /* Prevent warning if -Wstrict-prototypes. */
- + #ifdef __GNUC__
- + int yyparse (void);
- + #endif
-
- #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
- #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
- ***************
- *** 469,475 ****
- #endif
- #endif
-
- ! #line 169 "bison.simple"
- int
- yyparse()
- {
- --- 490,496 ----
- #endif
- #endif
-
- ! #line 184 "bison.simple"
- int
- yyparse()
- {
- ***************
- *** 525,531 ****
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- --- 546,553 ----
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack.
- ! The wasted elements are never initialized. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- ***************
- *** 608,613 ****
- --- 630,636 ----
- fprintf(stderr, "Entering state %d\n", yystate);
- #endif
-
- + goto yybackup;
- yybackup:
-
- /* Do appropriate processing given the current state. */
- ***************
- *** 732,738 ****
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symboles being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- --- 755,761 ----
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- ***************
- *** 985,991 ****
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 440 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- --- 1008,1014 ----
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 457 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- ***************
- *** 1055,1061 ****
- int x, count;
-
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- --- 1078,1086 ----
- int x, count;
-
- count = 0;
- ! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- ***************
- *** 1066,1072 ****
- if (count < 5)
- {
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- --- 1091,1098 ----
- if (count < 5)
- {
- count = 0;
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- ***************
- *** 1086,1091 ****
- --- 1112,1118 ----
- yyerror("parse error");
- }
-
- + goto yyerrlab1;
- yyerrlab1: /* here on error raised explicitly by an action */
-
- if (yyerrstatus == 3)
- diff -rcP gcc-2.4.5-fsf/config/m68k/amiga-crt0.c gcc-2.4.5-amiga/config/m68k/amiga-crt0.c
- *** gcc-2.4.5-fsf/config/m68k/amiga-crt0.c
- --- gcc-2.4.5-amiga/config/m68k/amiga-crt0.c Mon Sep 6 21:31:42 1993
- ***************
- *** 0 ****
- --- 1,313 ----
- + /* revamped version by Loren J. Rittle. Thanks Loren !! */
- +
- + /* I guess I should start to put my sources into RCS........ */
- +
- + #include <exec/types.h>
- + #include <exec/libraries.h>
- + #include <exec/execbase.h>
- + #include <inline/exec.h>
- + #include <libraries/dosextens.h>
- + #include <limits.h>
- +
- + #include <sys/syscall.h>
- + #ifdef BASECRT0
- + #include <sys/exec.h>
- + #endif /* BASECRT0 */
- +
- + /* get the current revision number. Version control is automatically done by
- + * OpenLibrary(), I just have to check the revision number
- + */
- + #include "../library/version.h"
- +
- + #undef DEBUG
- + #ifdef DEBUG
- + #define DP(a) kprintf a
- + static int inline __geta4() {int res;asm ("movel a4,%0" : "=g" (res));return res;}
- + #else
- + #define DP(a)
- + #endif
- +
- + #define MSTRING(x) STRING(x)
- + #define STRING(x) #x
- +
- + struct Library *ixemulbase;
- +
- + static int start_stdio(int, char **, char **);
- +
- + /*
- + * Have to take care.. I may not use any library functions in this file,
- + * since they are exactly then used, when the library itself couldn't be
- + * opened...
- + */
- +
- + extern int main();
- + extern int expand_cmd_line;
- + extern char *default_wb_window;
- + extern int errno;
- + extern char **environ;
- + extern char *_ctype_;
- + extern int sys_nerr;
- + extern struct Library *SysBase, *DOSBase;
- + extern struct __sFILE **__sF;
- + static int ENTRY();
- + static int exec_entry();
- +
- + asm("
- + .text
- +
- + jmp pc@(_ENTRY-.+2) | by default jump to normal AmigaDOS startup
- +
- + | this is a struct exec, for now only OMAGIC is supported
- + .globl exec
- + exec:
- + .word ___machtype | a_mid
- + .word 0407 | a_magic = OMAGIC
- + .long ___text_size | a_text
- + .long ___data_size | a_data
- + .long ___bss_size | a_bss
- + .long 0 | a_syms
- + .long _exec_entry | a_entry
- + .long 0 | a_trsize
- + .long 0 | a_drsize
- +
- + | word alignement is guaranteed
- + ");
- +
- + #ifdef BASECRT0
- + extern int __datadata_relocs();
- + extern int __data_size, __bss_size;
- +
- + #ifdef RCRT0
- + /* have to do this this way, or it is done base-relative.. */
- + static inline int dbsize()
- + {
- + int res;
- + asm ("movel #___data_size,%0; addl #___bss_size,%0" : "=r" (res));
- + return res;
- + }
- +
- + static void inline
- + ix_resident (void *base, int num, int a4, int size, void *relocs)
- + {
- + typedef void (*func)(int, int, int, void *);
- +
- + ((func)((int)base - 6*(SYS_ix_resident + 4))) (num, a4, size, relocs);
- + }
- +
- + #else
- + static void inline
- + ix_resident (void *base, int num, int a4)
- + {
- + typedef void (*func)(int, int);
- +
- + ((func)((int)base - 6*(SYS_ix_resident + 4))) (num, a4);
- + }
- + #endif
- + #endif /* BASECRT0 */
- +
- + static int
- + exec_entry (struct Library *ixembase, int argc, char *argv[], char *env[])
- + {
- + #ifdef BASECRT0
- + register int a4;
- + /* needed, so that data can be accessed. ix_resident might change this
- + again afterwards */
- + asm volatile ("lea ___a4_init,a4" : "=r" (a4) : "0" (a4));
- + asm volatile ("movel a4,%0" : "=r" (a4) : "0" (a4));
- +
- + #ifdef RCRT0
- + ix_resident (ixembase, 4, a4, dbsize(), __datadata_relocs);
- + #else
- + ix_resident (ixembase, 2, a4);
- + #endif
- + #endif /* BASECRT0 */
- + ixemulbase = ixembase;
- + return ix_exec_entry (argc, argv, env, &errno, start_stdio);
- + }
- +
- + /* this thing is best done with sprintf else, but it has to work without the
- + * library as well ;-(
- + */
- + __inline static char *
- + itoa (int num)
- + {
- + short snum = num;
- +
- + /* how large can a long get...?? */
- + /* Answer (by ljr): best method to use (in terms of portability)
- + involves number theory. The exact number of decimal digits
- + needed to store a given number of binary digits is
- +
- + ceiling ( number_of_binary_digits * log(2) / log(10) )
- + or
- + ceiling ( number_of_binary_digits * 0.301029996 )
- +
- + Since sizeof evaluates to the number of bytes a given type takes
- + instead of the number of bits, we need to multiply sizeof (type) by
- + CHAR_BIT to obtain the number of bits. Since an array size specifier
- + needs to be integer type, we multiply by 302 and divide by 1000 instead
- + of multiplying by 0.301029996. Finally, we add 1 for the null terminator
- + and 1 because we want the ceiling of the function instead of the floor.
- + Funny thing about this whole affair is that you really wanted to know
- + the size a short could expand to be and not a long... :-) I know
- + comments get out of date, etc. The nice thing about this method is
- + that the size of the array is picked at compile time based upon the
- + number of bytes really needed by the local C implementation. */
- + static char buf[sizeof snum * CHAR_BIT * 302 / 1000 + 1 + 1];
- + char *cp;
- +
- + buf[sizeof buf - 1] = 0;
- + for (cp = &buf[sizeof buf - 1]; snum; snum /= 10)
- + *--cp = (snum % 10) + '0';
- +
- + return cp;
- + }
- +
- + __inline static char *
- + pstrcpy (char *start, char *arg)
- + {
- + while (*start++=*arg++) ;
- + return start-1;
- + }
- +
- + __inline static char *
- + build_warn (char *t1, int num1)
- + {
- + static char buf[255];
- + char *cp;
- +
- + cp = pstrcpy (buf, t1);
- + cp = pstrcpy (cp, itoa (num1));
- +
- + return buf;
- + }
- +
- + static int
- + ENTRY (void)
- + {
- + register unsigned char *rega0 asm("a0");
- + register unsigned long regd0 asm("d0");
- + #ifdef BASECRT0
- + register int a4;
- + #endif /* BASECRT0 */
- +
- + UBYTE *aline = rega0;
- + ULONG alen = regd0;
- + #ifdef BASECRT0
- + struct Library *ibase;
- +
- + /* needed, so that data can be accessed. ix_resident() might change this
- + again afterwards */
- + asm volatile ("lea ___a4_init,a4" : "=r" (a4) : "0" (a4));
- + asm volatile ("movel a4,%0" : "=r" (a4) : "0" (a4));
- + #endif /* BASECRT0 */
- +
- + #ifndef BASECRT0
- + ixemulbase = OpenLibrary ("ixemul.library", IX_VERSION);
- + if (ixemulbase)
- + #else /* BASECRT0 */
- + DP(("ENTRY: a4 = $%lx\n", __geta4()));
- +
- + ibase = OpenLibrary ("ixemul.library", IX_VERSION);
- + if (ibase)
- + #endif /* BASECRT0 */
- + {
- + int res;
- +
- + /* just warn, in case the user tries to run program which might require
- + * more functions than are currently available under this revision. */
- + #ifndef BASECRT0
- + if (ixemulbase->lib_Version == IX_VERSION &&
- + ixemulbase->lib_Revision < IX_REVISION)
- + #else /* BASECRT0 */
- + if (ibase->lib_Version == IX_VERSION &&
- + ibase->lib_Revision < IX_REVISION)
- + #endif /* BASECRT0 */
- + /* don't need to block signals, they are blocked until after
- + * ix_startup() in current releases */
- + __request_msg (build_warn ("ixemul.library warning: needed revision "
- + MSTRING (IX_REVISION) ", current revision ",
- + #ifndef BASECRT0
- + ixemulbase->lib_Revision), "Continue");
- + #else /* BASECRT0 */
- + ibase->lib_Revision), "Continue");
- +
- + #ifdef RCRT0
- + ix_resident (ibase, 4, a4, dbsize(), __datadata_relocs);
- + #else
- + ix_resident (ibase, 2, a4);
- + #endif
- +
- + DP(("ix_resident: a4 = $%lx\n", __geta4()));
- + #endif /* BASECRT0 */
- +
- + #ifdef BASECRT0
- + ixemulbase = ibase;
- + #endif /* BASECRT0 */
- +
- + res = ix_startup (aline, alen,
- + expand_cmd_line, default_wb_window, start_stdio, &errno);
- +
- + CloseLibrary (ixemulbase);
- +
- + return res;
- + }
- + else
- + {
- + struct Process *me = (struct Process *)((*(struct ExecBase **)4)->ThisTask);
- +
- + __request_msg ("Need at least version " MSTRING (IX_VERSION)
- + " of ixemul.library.", "Abort");
- +
- + /* quickly deal with the WB startup message, as the library couldn't do
- + * this for us. Nothing at all is done that isn't necessary to just shutup
- + * workbench..*/
- + if (! me->pr_CLI)
- + {
- + Forbid ();
- + ReplyMsg ((WaitPort (& me->pr_MsgPort), GetMsg (& me->pr_MsgPort)));
- + }
- +
- + return 20;
- + }
- + }
- +
- + int
- + start_stdio (int argc, char **argv, char **env)
- + {
- + int res;
- + #ifndef BASECRT0
- + extern void etext ();
- + extern void _mcleanup ();
- + #else /* BASECRT0 */
- +
- + DP(("start_stdio1: a4 = $%lx\n", __geta4()));
- + #endif /* BASECRT0 */
- +
- + /* more to follow ;-) */
- + ix_get_vars2 (6, &_ctype_, &sys_nerr, &SysBase, &DOSBase, &__sF, &environ);
- + environ = env;
- +
- + #ifndef BASECRT0
- + #ifdef MCRT0
- + atexit(_mcleanup);
- + monstartup(start_stdio, etext);
- + #endif
- + #endif /* not BASECRT0 */
- +
- + res = main (argc, argv, env);
- + return res;
- + }
- +
- + #ifndef BASECRT0
- + #ifdef CRT0
- + /*
- + * null mcount and moncontrol,
- + * just in case some routine is compiled for profiling
- + */
- + asm(".globl mcount");
- + asm(".globl _moncontrol");
- + asm("_moncontrol:");
- + asm("mcount: rts");
- + #endif CRT0
- + #endif /* not BASECRT0 */
- diff -rcP gcc-2.4.5-fsf/config/m68k/amigados.c gcc-2.4.5-amiga/config/m68k/amigados.c
- *** gcc-2.4.5-fsf/config/m68k/amigados.c
- --- gcc-2.4.5-amiga/config/m68k/amigados.c Mon Sep 6 02:36:03 1993
- ***************
- *** 0 ****
- --- 1,158 ----
- + /* Definitions of target machine for GNU compiler. amiga 68000/68020 version.
- + Copyright (C) 1992 Free Software Foundation, Inc.
- + Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
- +
- + This file is part of GNU CC.
- +
- + GNU CC is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2, or (at your option)
- + any later version.
- +
- + GNU CC is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with GNU CC; see the file COPYING. If not, write to
- + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
- +
- + #include "m68k/m68k.c"
- +
- + /* Does operand (which is a symbolic_operand) live in text space? If
- + so SYMBOL_REF_FLAG, which is set by ENCODE_SECTION_INFO, will be true.
- +
- + This function is used in base relative code generation. */
- +
- + int
- + read_only_operand (operand)
- + rtx operand;
- + {
- + if (GET_CODE (operand) == CONST)
- + operand = XEXP (XEXP (operand, 0), 0);
- + if (GET_CODE (operand) == SYMBOL_REF)
- + return SYMBOL_REF_FLAG (operand) || CONSTANT_POOL_ADDRESS_P (operand);
- + return 1;
- + }
- +
- +
- + /* the rest of the file is to implement AmigaDOS specific keywords some day.
- + The approach used so far used __attribute__ for this, but this required
- + changes to c-parse.y as well as if we'd use the common keywords used
- + on commercial AmigaDOS C-compilers as well. So in the future I'll probably
- + switch to __saveds and __interrupt keywords as well.
- +
- + The rest of this file is currently ignored, because it's no longer
- + working with the current gcc version. */
- +
- + #if not_yet_working
- +
- + #include "tree.h"
- +
- + struct attribute {
- + tree ident;
- + int saveds : 1,
- + interrupt : 1;
- + };
- +
- +
- + static struct attribute *a_tab = 0;
- + static int a_index, a_size;
- +
- + void
- + add_attr_entry (attr)
- + struct attribute *attr;
- + {
- + if (! a_tab)
- + {
- + a_size = 10;
- + a_index = 0;
- + a_tab = (struct attribute *) xmalloc (a_size * sizeof (struct attribute));
- + }
- +
- + if (a_index == a_size)
- + {
- + a_size <<= 1;
- + a_tab = (struct attribute *) xrealloc (a_tab, a_size * sizeof (struct attribute));
- + }
- +
- + a_tab[a_index++] = *attr;
- + }
- +
- +
- + void
- + attr_do_saveds (function_ident)
- + tree function_ident;
- + {
- + struct attribute attr, *a;
- + int i;
- +
- + for (i = 0, a = a_tab; i < a_index; i++, a++)
- + if (a->ident == function_ident)
- + {
- + a->saveds = 1;
- + return;
- + }
- +
- + /* create a new entry for this function */
- + attr.ident = function_ident;
- + attr.saveds = 1;
- + attr.interrupt = 0;
- + add_attr_entry (&attr);
- + }
- +
- + void
- + attr_do_interrupt (function_ident)
- + tree function_ident;
- + {
- + struct attribute attr, *a;
- + int i;
- +
- + for (i = 0, a = a_tab; i < a_index; i++, a++)
- + if (a->ident == function_ident)
- + {
- + /* __interrupt implies __saveds */
- + a->saveds = 1;
- + a->interrupt = 1;
- + return;
- + }
- +
- + /* create a new entry for this function */
- + attr.ident = function_ident;
- + attr.saveds = 1;
- + attr.interrupt = 1;
- + add_attr_entry (&attr);
- + }
- +
- + int
- + attr_does_saveds (function_name)
- + char *function_name;
- + {
- + tree ident = get_identifier (function_name);
- + struct attribute *attr;
- + int i;
- +
- + for (i = 0, attr = a_tab; i < a_index; i++, attr++)
- + if (attr->ident == ident)
- + return attr->saveds;
- +
- + return 0;
- + }
- +
- + int
- + attr_does_interrupt (function_name)
- + char *function_name;
- + {
- + tree ident = get_identifier (function_name);
- + struct attribute *attr;
- + int i;
- +
- + for (i = 0, attr = a_tab; i < a_index; i++, attr++)
- + if (attr->ident == ident)
- + return attr->interrupt;
- +
- + return 0;
- + }
- +
- + #endif
- diff -rcP gcc-2.4.5-fsf/config/m68k/amigados.h gcc-2.4.5-amiga/config/m68k/amigados.h
- *** gcc-2.4.5-fsf/config/m68k/amigados.h
- --- gcc-2.4.5-amiga/config/m68k/amigados.h Tue Sep 7 18:07:09 1993
- ***************
- *** 0 ****
- --- 1,399 ----
- + /* Definitions of target machine for GNU compiler. amiga 68000/68020 version.
- + Copyright (C) 1992 Free Software Foundation, Inc.
- + Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
- +
- + This file is part of GNU CC.
- +
- + GNU CC is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2, or (at your option)
- + any later version.
- +
- + GNU CC is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with GNU CC; see the file COPYING. If not, write to
- + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
- +
- + #include "m68k/m68k.h"
- +
- + /* See m68k.h for bits in TARGET_DEFAULT.
- + 0 means 68000, no hardware fpu (68881/68882/68040).
- + 7 means 68020 (or higher) with hardware fpu. */
- +
- + #ifndef TARGET_DEFAULT
- + #define TARGET_DEFAULT 0
- + #endif
- +
- + /* Define __HAVE_68881__ in preprocessor according to the -m flags.
- + This will control the use of inline 68881 insns in certain macros.
- + Also inform the program which CPU this is for. */
- +
- + #if TARGET_DEFAULT & 02
- +
- + /* -m68881 is the default */
- + #define CPP_SPEC \
- + "%{!msoft-float:-D__HAVE_68881__ }\
- + %{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}"
- +
- + #else
- +
- + /* -msoft-float is the default, assume -mc68000 as well */
- + #define CPP_SPEC \
- + "%{m68881:-D__HAVE_68881__ }\
- + %{!ansi:%{m68020:-Dmc68020}%{mc68020:-Dmc68020}%{!mc68020:%{!m68020:-Dmc68010}}}"
- +
- + /* Don't try using XFmode since we don't have appropriate runtime software
- + support. */
- + #undef LONG_DOUBLE_TYPE_SIZE
- + #define LONG_DOUBLE_TYPE_SIZE 64
- +
- + #endif
- +
- + /* -m68000 requires special flags to the assembler. */
- +
- + #if TARGET_DEFAULT & 01
- +
- + #define ASM_SPEC \
- + "%{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}} %{msmall-code:-l} "
- +
- + #else
- +
- + #define ASM_SPEC \
- + "%{m68020:-mc68020}%{mc68020:-mc68020}%{!mc68020:%{!m68020:-mc68010}} %{msmall-code:-l} "
- +
- + #endif
- +
- + /* amiga/amigados are the new "standard" defines for the Amiga, MCH_AMIGA
- + * was used before and is included for compatibility reasons */
- +
- + #define CPP_PREDEFINES "-Dmc68000 -Damiga -Damigados -DMCH_AMIGA -DAMIGA"
- +
- + /* Chose the right startup file, depending on whether we use base relative code,
- + base relative code with automatic relocation (-resident), or plain crt0.o.
- +
- + Profiling is currently only available for plain startup.
- + mcrt0.o does not (yet) exist. */
- +
- + #define STARTFILE_SPEC \
- + "%{resident:%{!fbaserel:-L gcc:blib }}%{fbaserel:-L gcc:blib }\
- + %{resident:rcrt0.o%s}%{!resident:%{!fbaserel:%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}%{fbaserel:%{pg:bgcrt0.o%s}%{!pg:%{p:bmcrt0.o%s}%{!p:bcrt0.o%s}}}}"
- +
- +
- + #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
- +
- + /* if debugging, tell the linker to output amiga-hunk symbols *and*
- + a BSD compatible debug hunk (which will probably change in the future, it's not
- + tremendously useful in its current state). */
- +
- + #define LINK_SPEC "%{g:-amiga-debug-hunk} %{fbaserel:-databss-together} %{resident:-databss-together -datadata-reloc} "
- +
- + #define CC1_SPEC "%{resident:-fbaserel} "
- +
- + #define CC1PLUS_SPEC "%{resident:-fbaserel} "
- +
- + /* Omit frame pointer at high optimization levels. (This doesn't hurt, since
- + GDB doesn't work under AmigaDOS at the moment anyway..) */
- +
- + #define OPTIMIZATION_OPTIONS(OPTIMIZE) \
- + { \
- + if (OPTIMIZE >= 2) \
- + flag_omit_frame_pointer = 1; \
- + }
- +
- + /* provide a dummy entry for the small-code switch. This is currently only
- + needed by the assembler (explanations: m68k.h), but will be used by cc1
- + to output 16bit pc-relative code later. */
- +
- + #undef TARGET_SWITCHES
- + #define TARGET_SWITCHES \
- + { { "68020", 5}, \
- + { "c68020", 5}, \
- + { "68881", 2}, \
- + { "bitfield", 4}, \
- + { "68000", -5}, \
- + { "c68000", -5}, \
- + { "soft-float", -0102}, \
- + { "nobitfield", -4}, \
- + { "rtd", 8}, \
- + { "nortd", -8}, \
- + { "short", 040}, \
- + { "noshort", -040}, \
- + { "fpa", 0100}, \
- + { "nofpa", -0100}, \
- + { "sky", 0200}, \
- + { "nosky", -0200}, \
- + { "68040", 0407}, \
- + { "68030", -01400}, \
- + { "68030", 7}, \
- + { "68040-only", 01000}, \
- + { "small-code", 0 }, \
- + { "", TARGET_DEFAULT}}
- +
- + /* Every structure or union's size must be a multiple of 2 bytes. */
- +
- + #define STRUCTURE_SIZE_BOUNDARY 16
- +
- + /* This is (almost;-)) BSD, so it wants DBX format. */
- +
- + #define DBX_DEBUGGING_INFO
- +
- + /* Allow folding division by zero. */
- + #define REAL_INFINITY
- +
- + #ifdef This_Was_Marcus_Wild_Modifications
- + /* This is how to output an assembler line defining a `double' constant. */
- +
- + #undef ASM_OUTPUT_DOUBLE
- + #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
- + { \
- + if (REAL_VALUE_ISINF (VALUE)) \
- + fprintf (FILE, "\t.double 0r%s99e999\n", (VALUE) > 0 ? "" : "-"); \
- + else if (isnan (VALUE)) \
- + { \
- + union { double d; long l[2];} t; \
- + t.d = (VALUE); \
- + fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", t.l[0], t.l[1]); \
- + } \
- + else \
- + fprintf (FILE, "\t.double 0r%.17g\n", VALUE); \
- + }
- +
- + /* This is how to output an assembler line defining a `float' constant. */
- +
- + #undef ASM_OUTPUT_FLOAT
- + #define ASM_OUTPUT_FLOAT(FILE,VALUE) \
- + { \
- + if (REAL_VALUE_ISINF (VALUE)) \
- + fprintf (FILE, "\t.single 0r%s99e999\n", (VALUE) > 0 ? "" : "-"); \
- + else if (isnan (VALUE)) \
- + { \
- + union { float f; long l;} t; \
- + t.f = (VALUE); \
- + fprintf (FILE, "\t.long 0x%lx\n", t.l); \
- + } \
- + else \
- + fprintf (FILE, "\t.single 0r%.9g\n", VALUE); \
- + }
- +
- + /* This is how to output an assembler lines defining floating operands.
- + There's no way to output a NaN's fraction, so we lose it. */
- +
- + #undef ASM_OUTPUT_FLOAT_OPERAND
- + #define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \
- + do { \
- + if (CODE == 'f') \
- + { \
- + (REAL_VALUE_ISINF ((VALUE)) \
- + ? asm_fprintf (FILE, "%I0r%s99e999", ((VALUE) > 0 ? "" : "-")) \
- + : (VALUE) == -0.0 \
- + ? asm_fprintf (FILE, "%I0r-0.0") \
- + : asm_fprintf (FILE, "%I0r%.9g", (VALUE))) \
- + } else { \
- + long l; \
- + REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
- + if (sizeof (int) == sizeof (long)) \
- + asm_fprintf ((FILE), "%I0x%x", l); \
- + else \
- + asm_fprintf ((FILE), "%I0x%lx", l); \
- + } \
- + } while (0)
- +
- + #undef ASM_OUTPUT_DOUBLE_OPERAND
- + #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \
- + (REAL_VALUE_ISINF ((VALUE)) \
- + ? asm_fprintf (FILE, "%I0r%s99e999", ((VALUE) > 0 ? "" : "-")) \
- + : (VALUE) == -0.0 \
- + ? asm_fprintf (FILE, "%I0r-0.0") \
- + : asm_fprintf (FILE, "%I0r%.17g", (VALUE)))
- +
- +
- + #endif /* Marcus_Wild */
- +
- + /* use A5 as framepointer instead of A6, this makes A6 available as a
- + general purpose register, and can thus be used without problems in
- + direct library calls. */
- +
- + #undef FRAME_POINTER_REGNUM
- + #define FRAME_POINTER_REGNUM 13
- + #undef ARG_POINTER_REGNUM
- + #define ARG_POINTER_REGNUM 13
- +
- + /* we use A4 for this, not A5, which is the framepointer */
- + #undef PIC_OFFSET_TABLE_REGNUM
- + #define PIC_OFFSET_TABLE_REGNUM 12
- +
- + /* setup a default shell return value for those (gazillion..) programs that
- + (inspite of ANSI-C) declare main() to be void (or even VOID...) and thus
- + cause the shell to randomly caugh upon executing such programs (contrary
- + to Unix, AmigaDOS scripts are terminated with an error if a program returns
- + with an error code above the `error' or even `failure' level
- + (which is configurable with the FAILAT command) */
- +
- + #define DEFAULT_MAIN_RETURN c_expand_return (integer_zero_node)
- +
- + /* we do have an ansi-compliant c-library ;-) */
- + #define HAVE_VPRINTF
- + #define HAVE_VFPRINTF
- + #define HAVE_PUTENV
- + #define HAVE_STRERROR
- + #define HAVE_ATEXIT
- +
- + /* given that symbolic_operand(X), return TRUE if no special
- + base relative relocation is necessary */
- +
- + #define LEGITIMATE_BASEREL_OPERAND_P(X) \
- + (flag_pic >= 3 && read_only_operand (X))
- +
- + #undef LEGITIMATE_PIC_OPERAND_P
- + #define LEGITIMATE_PIC_OPERAND_P(X) \
- + (! symbolic_operand (X, VOIDmode) || LEGITIMATE_BASEREL_OPERAND_P (X))
- +
- +
- + /* Define this macro if references to a symbol must be treated
- + differently depending on something about the variable or
- + function named by the symbol (such as what section it is in).
- +
- + The macro definition, if any, is executed immediately after the
- + rtl for DECL or other node is created.
- + The value of the rtl will be a `mem' whose address is a
- + `symbol_ref'.
- +
- + The usual thing for this macro to do is to a flag in the
- + `symbol_ref' (such as `SYMBOL_REF_FLAG') or to store a modified
- + name string in the `symbol_ref' (if one bit is not enough
- + information).
- +
- + On the Amiga we use this to indicate if a symbol is in text or
- + data space. */
- +
- + #define ENCODE_SECTION_INFO(DECL)\
- + do \
- + { \
- + if (TREE_CODE (DECL) == FUNCTION_DECL) \
- + SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1; \
- + else \
- + { \
- + rtx rtl = (TREE_CODE_CLASS (TREE_CODE (DECL)) != 'd' \
- + ? TREE_CST_RTL (DECL) : DECL_RTL (DECL)); \
- + if (RTX_UNCHANGING_P (rtl) && !MEM_VOLATILE_P (rtl)) \
- + SYMBOL_REF_FLAG (XEXP (rtl, 0)) = 1; \
- + } \
- + } \
- + while (0)
- +
- + #undef SELECT_RTX_SECTION
- + #define SELECT_RTX_SECTION(MODE, X) readonly_data_section ();
- +
- + /* according to varasm.c, RELOC referrs *only* to whether constants (!)
- + are addressed by address. This doesn't matter in baserelative code,
- + so we allow (inspite of flag_pic) readonly_data_section() in that
- + case */
- +
- + #undef SELECT_SECTION
- + #define SELECT_SECTION(DECL, RELOC) \
- + { \
- + if (TREE_CODE (DECL) == STRING_CST) \
- + { \
- + if (! flag_writable_strings) \
- + readonly_data_section (); \
- + else \
- + data_section (); \
- + } \
- + else if (TREE_CODE (DECL) == VAR_DECL) \
- + { \
- + if ((flag_pic && flag_pic < 3 && RELOC) \
- + || !TREE_READONLY (DECL) || TREE_SIDE_EFFECTS (DECL)) \
- + data_section (); \
- + else \
- + readonly_data_section (); \
- + } \
- + else \
- + readonly_data_section (); \
- + }
- +
- +
- +
- + #if not_yet_working
- +
- + /* starting support for amiga specific keywords
- + * --------------------------------------------
- + */
- +
- + /* validate attributes that don't take a parameter. Currently we support
- + * __attribute__ (saveds) and __attribute__ (interrupt)
- + */
- + #define HANDLE_ATTRIBUTE0(attr) \
- + (strcmp(attr, "saveds") != 0 && strcmp(attr, "interrupt") != 0)
- +
- + /* (c-common.c)
- + * install additional attributes
- + */
- + #define HANDLE_EXTRA_ATTRIBUTES(a) \
- + if (TREE_VALUE (a) != 0 \
- + && TREE_CODE (TREE_VALUE (a)) == IDENTIFIER_NODE \
- + && TREE_VALUE (a) == get_identifier ("saveds")) \
- + { \
- + if (TREE_CODE (decl) != FUNCTION_DECL) \
- + { \
- + warning_with_decl (decl, \
- + "saveds attribute specified for non-function `%s'"); \
- + return; \
- + } \
- + \
- + attr_do_saveds (DECL_NAME (decl)); \
- + } \
- + else if (TREE_VALUE (a) != 0 \
- + && TREE_CODE (TREE_VALUE (a)) == IDENTIFIER_NODE \
- + && TREE_VALUE (a) == get_identifier ("interrupt")) \
- + { \
- + if (TREE_CODE (decl) != FUNCTION_DECL) \
- + { \
- + warning_with_decl (decl, \
- + "saveds attribute specified for non-function `%s'"); \
- + return; \
- + } \
- + \
- + attr_do_interrupt (DECL_NAME (decl)); \
- + } \
- +
- +
- + #define PROLOGUE_EXTRA_SAVE(mask) \
- + { extern char *current_function_name; \
- + /* saveds makes the function preserve d1/a0/a1 as well */ \
- + if (attr_does_saveds (current_function_name)) \
- + mask |= 0x40c0; } \
- +
- +
- + #define EPILOGUE_EXTRA_RESTORE(mask, nregs) \
- + { extern char *current_function_name; \
- + /* restore those extra registers */ \
- + if (attr_does_saveds (current_function_name)) \
- + { \
- + mask |= 0x0302; \
- + nregs += 3; \
- + } } \
- +
- +
- + #define EPILOGUE_EXTRA_BARRIER_KLUDGE(stream) \
- + { extern char *current_function_name; \
- + /* PLEASE Help! how is this done cleaner?? */ \
- + if (attr_does_saveds (current_function_name)) \
- + { \
- + fprintf (stderr, \
- + "warning: couldn't cleanup `saveds'-stack in `%s'.\n"); \
- + fprintf (stderr, \
- + " this is only ok, if the function never returns!\n"); \
- + } } \
- +
- +
- + #define EPILOGUE_EXTRA_TEST(stream) \
- + { extern char *current_function_name; \
- + /* with the interrupt-attribute, we have to set the cc before rts */ \
- + if (attr_does_interrupt (current_function_name)) \
- + asm_fprintf (stream, "\ttstl %s\n", reg_names[0]); } \
- +
- + #endif
- diff -rcP gcc-2.4.5-fsf/config/m68k/m68k.c gcc-2.4.5-amiga/config/m68k/m68k.c
- *** gcc-2.4.5-fsf/config/m68k/m68k.c Mon May 10 05:15:04 1993
- --- gcc-2.4.5-amiga/config/m68k/m68k.c Mon Sep 6 02:35:44 1993
- ***************
- *** 60,66 ****
-
- finalize_pic ()
- {
- ! if (flag_pic && current_function_uses_pic_offset_table)
- emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
- }
-
- --- 60,66 ----
-
- finalize_pic ()
- {
- ! if (flag_pic && (flag_pic < 3) && current_function_uses_pic_offset_table)
- emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
- }
-
- ***************
- *** 180,185 ****
- --- 180,188 ----
- mask &= ~ (1 << (15 - FRAME_POINTER_REGNUM));
- num_saved_regs--;
- }
- + #ifdef PROLOGUE_EXTRA_SAVE
- + PROLOGUE_EXTRA_SAVE (mask);
- + #endif
-
- #if NEED_PROBE
- fprintf (stream, "\ttstl sp@(%d)\n", NEED_PROBE - num_saved_regs * 4);
- ***************
- *** 213,219 ****
- asm_fprintf (stream, "\tmoveml %0I0x%x,%Rsp@-\n", mask);
- #endif
- }
- ! if (flag_pic && current_function_uses_pic_offset_table)
- {
- #ifdef MOTOROLA
- asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n",
- --- 216,222 ----
- asm_fprintf (stream, "\tmoveml %0I0x%x,%Rsp@-\n", mask);
- #endif
- }
- ! if (flag_pic && (flag_pic < 3) && current_function_uses_pic_offset_table)
- {
- #ifdef MOTOROLA
- asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n",
- ***************
- *** 278,283 ****
- --- 281,289 ----
- /* Output just a no-op so that debuggers don't get confused
- about which function the pc is in at this address. */
- asm_fprintf (stream, "\tnop\n");
- + #ifdef EPILOGUE_EXTRA_BARRIER_KLUDGE
- + EPILOGUE_EXTRA_BARRIER_KLUDGE(stream);
- + #endif
- return;
- }
-
- ***************
- *** 308,313 ****
- --- 314,322 ----
- nregs++;
- mask |= 1 << regno;
- }
- + #ifdef EPILOGUE_EXTRA_RESTORE
- + EPILOGUE_EXTRA_RESTORE(mask, nregs);
- + #endif
- offset = foffset + nregs * 4;
- if (offset + fsize >= 0x8000
- && frame_pointer_needed
- ***************
- *** 510,515 ****
- --- 519,527 ----
- #endif
- }
- }
- + #ifdef EPILOGUE_EXTRA_TEST
- + EPILOGUE_EXTRA_TEST(stream);
- + #endif
- if (current_function_pops_args)
- asm_fprintf (stream, "\trtd %0I%d\n", current_function_pops_args);
- else
- ***************
- *** 800,814 ****
- /* First handle a simple SYMBOL_REF or LABEL_REF */
- if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
- {
- if (reg == 0)
- abort ();
-
- ! pic_ref = gen_rtx (MEM, Pmode,
- ! gen_rtx (PLUS, Pmode,
- ! pic_offset_table_rtx, orig));
- current_function_uses_pic_offset_table = 1;
- RTX_UNCHANGING_P (pic_ref) = 1;
- emit_move_insn (reg, pic_ref);
- return reg;
- }
- else if (GET_CODE (orig) == CONST)
- --- 812,836 ----
- /* First handle a simple SYMBOL_REF or LABEL_REF */
- if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
- {
- + #ifdef LEGITIMATE_BASEREL_OPERAND_P
- + if (LEGITIMATE_BASEREL_OPERAND_P (orig))
- + return orig;
- + #endif
- +
- if (reg == 0)
- abort ();
-
- ! if (flag_pic >= 3)
- ! pic_ref = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig);
- ! else
- ! pic_ref = gen_rtx (MEM, Pmode,
- ! gen_rtx (PLUS, Pmode,
- ! pic_offset_table_rtx, orig));
- !
- current_function_uses_pic_offset_table = 1;
- RTX_UNCHANGING_P (pic_ref) = 1;
- emit_move_insn (reg, pic_ref);
- +
- return reg;
- }
- else if (GET_CODE (orig) == CONST)
- ***************
- *** 837,842 ****
- --- 859,865 ----
- pic_ref = gen_rtx (PLUS, Pmode, base, orig);
- /* Likewise, should we set special REG_NOTEs here? */
- }
- +
- return pic_ref;
- }
-
- ***************
- *** 2100,2105 ****
- --- 2123,2132 ----
- fprintf (file, ":w");
- if ((flag_pic == 2) && (breg == pic_offset_table_rtx))
- fprintf (file, ":l");
- + if ((flag_pic == 3) && (breg == pic_offset_table_rtx))
- + fprintf (file, ":W");
- + if ((flag_pic == 4) && (breg == pic_offset_table_rtx))
- + fprintf (file, ":L");
- }
- if (addr != 0 && ireg != 0)
- {
- diff -rcP gcc-2.4.5-fsf/config/m68k/m68k.h gcc-2.4.5-amiga/config/m68k/m68k.h
- *** gcc-2.4.5-fsf/config/m68k/m68k.h Fri Jun 18 21:58:01 1993
- --- gcc-2.4.5-amiga/config/m68k/m68k.h Mon Sep 6 02:35:46 1993
- ***************
- *** 338,346 ****
- #ifndef SUPPORT_SUN_FPA
-
- #define CONDITIONAL_REGISTER_USAGE \
- ! { \
- ! if (flag_pic) \
- ! fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
- }
-
- #else /* defined SUPPORT_SUN_FPA */
- --- 338,349 ----
- #ifndef SUPPORT_SUN_FPA
-
- #define CONDITIONAL_REGISTER_USAGE \
- ! { \
- ! if (flag_pic) \
- ! fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
- ! /* prevent saving/restoring of the base reg */ \
- ! if (flag_pic == 3) \
- ! call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
- }
-
- #else /* defined SUPPORT_SUN_FPA */
- diff -rcP gcc-2.4.5-fsf/config/m68k/m68k.md gcc-2.4.5-amiga/config/m68k/m68k.md
- *** gcc-2.4.5-fsf/config/m68k/m68k.md Sat Jun 12 20:22:57 1993
- --- gcc-2.4.5-amiga/config/m68k/m68k.md Mon Sep 6 02:35:51 1993
- ***************
- *** 704,716 ****
- {
- if (flag_pic && symbolic_operand (operands[1], SImode))
- {
- ! /* The source is an address which requires PIC relocation.
- ! Call legitimize_pic_address with the source, mode, and a relocation
- ! register (a new pseudo, or the final destination if reload_in_progress
- ! is set). Then fall through normally */
- ! extern rtx legitimize_pic_address();
- ! rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
- ! operands[1] = legitimize_pic_address (operands[1], SImode, temp);
- }
- }")
-
- --- 704,721 ----
- {
- if (flag_pic && symbolic_operand (operands[1], SImode))
- {
- ! #ifdef LEGITIMATE_BASEREL_OPERAND_P
- ! if (flag_pic < 3 || !LEGITIMATE_BASEREL_OPERAND_P (operands[1]))
- ! #endif
- ! {
- ! /* The source is an address which requires PIC relocation.
- ! Call legitimize_pic_address with the source, mode, and a relocation
- ! register (a new pseudo, or the final destination if reload_in_progress
- ! is set). Then fall through normally */
- ! extern rtx legitimize_pic_address();
- ! rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
- ! operands[1] = legitimize_pic_address (operands[1], SImode, temp);
- ! }
- }
- }")
-
- ***************
- *** 1878,1885 ****
-
- /* These insns can result from reloads to access
- stack slots over 64k from the frame pointer. */
- ! if (GET_CODE (operands[2]) == CONST_INT
- ! && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000)
- return \"move%.l %2,%0\;add%.l %1,%0\";
- #ifdef SGS
- if (GET_CODE (operands[2]) == REG)
- --- 1883,1891 ----
-
- /* These insns can result from reloads to access
- stack slots over 64k from the frame pointer. */
- ! if (((GET_CODE (operands[2]) == CONST_INT
- ! && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000))
- ! || (flag_pic == 4 && operands[1] == pic_offset_table_rtx))
- return \"move%.l %2,%0\;add%.l %1,%0\";
- #ifdef SGS
- if (GET_CODE (operands[2]) == REG)
- ***************
- *** 4823,4829 ****
- ""
- "
- {
- ! if (flag_pic && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
- #ifdef MOTOROLA
- SYMBOL_REF_FLAG (XEXP (operands[0], 0)) = 1;
- #else
- --- 4829,4835 ----
- ""
- "
- {
- ! if (flag_pic && flag_pic < 3 && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
- #ifdef MOTOROLA
- SYMBOL_REF_FLAG (XEXP (operands[0], 0)) = 1;
- #else
- ***************
- *** 4838,4844 ****
- (match_operand:SI 1 "general_operand" "g"))]
- ;; Operand 1 not really used on the m68000.
-
- ! "! flag_pic"
- "*
- #ifdef MOTOROLA
- return \"jsr %0\";
- --- 4844,4850 ----
- (match_operand:SI 1 "general_operand" "g"))]
- ;; Operand 1 not really used on the m68000.
-
- ! "(! flag_pic || flag_pic >= 3)"
- "*
- #ifdef MOTOROLA
- return \"jsr %0\";
- ***************
- *** 4853,4859 ****
- (match_operand:SI 1 "general_operand" "g"))]
- ;; Operand 1 not really used on the m68000.
-
- ! "flag_pic"
- "*
- #ifdef MOTOROLA
- if (GET_CODE (operands[0]) == MEM
- --- 4859,4865 ----
- (match_operand:SI 1 "general_operand" "g"))]
- ;; Operand 1 not really used on the m68000.
-
- ! "(flag_pic && flag_pic < 3)"
- "*
- #ifdef MOTOROLA
- if (GET_CODE (operands[0]) == MEM
- ***************
- *** 4874,4880 ****
- ""
- "
- {
- ! if (flag_pic && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
- #ifdef MOTOROLA
- SYMBOL_REF_FLAG (XEXP (operands[1], 0)) = 1;
- #else
- --- 4880,4886 ----
- ""
- "
- {
- ! if (flag_pic && flag_pic < 3 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
- #ifdef MOTOROLA
- SYMBOL_REF_FLAG (XEXP (operands[1], 0)) = 1;
- #else
- ***************
- *** 4889,4895 ****
- (call (match_operand:QI 1 "memory_operand" "o")
- (match_operand:SI 2 "general_operand" "g")))]
- ;; Operand 2 not really used on the m68000.
- ! "! flag_pic"
- "*
- #ifdef MOTOROLA
- return \"jsr %1\";
- --- 4895,4901 ----
- (call (match_operand:QI 1 "memory_operand" "o")
- (match_operand:SI 2 "general_operand" "g")))]
- ;; Operand 2 not really used on the m68000.
- ! "(! flag_pic || flag_pic >= 3)"
- "*
- #ifdef MOTOROLA
- return \"jsr %1\";
- ***************
- *** 4904,4910 ****
- (call (match_operand:QI 1 "memory_operand" "o")
- (match_operand:SI 2 "general_operand" "g")))]
- ;; Operand 2 not really used on the m68000.
- ! "flag_pic"
- "*
- #ifdef MOTOROLA
- if (GET_CODE (operands[1]) == MEM
- --- 4910,4916 ----
- (call (match_operand:QI 1 "memory_operand" "o")
- (match_operand:SI 2 "general_operand" "g")))]
- ;; Operand 2 not really used on the m68000.
- ! "(flag_pic && flag_pic < 3)"
- "*
- #ifdef MOTOROLA
- if (GET_CODE (operands[1]) == MEM
- diff -rcP gcc-2.4.5-fsf/config/m68k/t-amigados gcc-2.4.5-amiga/config/m68k/t-amigados
- *** gcc-2.4.5-fsf/config/m68k/t-amigados
- --- gcc-2.4.5-amiga/config/m68k/t-amigados Tue Sep 7 18:33:22 1993
- ***************
- *** 0 ****
- --- 1,93 ----
- + # Compilation rules for target amigados. We generate two additional things:
- + #
- + # libngcc.a: A `normal' library, the automatically generated libgcc.a is
- + # base relative (which is the right thing, since it's used to
- + # generate further generations of compilers).
- + #
- + # gccv: A forking gcc instead of one calling ssytem. This makes it less
- + # system conformant (can't ^C it when started from make), while
- + # providing increased functionality (-pipe option).
- +
- + # the provided file is POSIX compliant
- + LIMITS_H =
- +
- + # we don't need a libgcc1, it's all in ixemul.library
- + LIBGCC1 = libgcc1.null
- +
- + # use flags that don't generate base relative objects. So -resident
- + # would be a bad idea..
- + LIBNGCC2_CFLAGS = -O2 $(INTERNAL_CFLAGS) $(CFLAGS) -B./
- +
- + # The libngcc.a archive is copied into gcc:compilers/amiga/<version>/libgcc.a,
- + # whereas libgcc.a is copied into gcc:blib/libgcc.a, which is searched first
- + # if we're compiling/linking base relative. Note you can only rebuild crt0.o
- + # if you have the AmigaDOS header files installed.
- + EXTRA_PARTS = libngcc.a crt0.o
- +
- + # this includes the knowledge that target amigados doesn't need
- + # libgcc1.a at all
- + libngcc.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \
- + longlong.h gbl-ctors.h config.status
- + # Actually build it in tmplibngcc.a, then rename at end,
- + # so that libngcc.a itself remains nonexistent if compilation is aborted.
- + -rm -f tmplibngcc.a
- + # -e causes any failing command to make this rule fail.
- + # -e doesn't work in certain shells, so we test $$? as well.
- + set -e; \
- + for name in $(LIB2FUNCS); \
- + do \
- + echo $${name}; \
- + $(GCC_FOR_TARGET) $(LIBNGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
- + $(srcdir)/libgcc2.c -o $${name}.o; \
- + if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
- + $(AR) $(AR_FLAGS) tmplibngcc.a $${name}.o; \
- + rm -f $${name}.o; \
- + done
- + # Some shells crash when a loop has no items.
- + # So make sure there is always at least one--`..'.
- + # Then ignore it.
- + # We don't use -e here because there are if statements
- + # that should not make the command give up when the if condition is false.
- + # Instead, we test for failure after each command where it matters.
- + -for file in .. $(LIB2FUNCS_EXTRA); \
- + do \
- + if [ x$${file} != x.. ]; then \
- + name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \
- + echo $${name}; \
- + if [ $${name}.asm = $${file} ]; then \
- + cp $${file} $${name}.s; file=$${name}.s; \
- + if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
- + else true; fi; \
- + $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
- + if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
- + $(AR) $(AR_FLAGS) tmplibngcc.a $${name}.o; \
- + rm -f $${name}.[so]; \
- + else true; \
- + fi; \
- + done
- + mv tmplibngcc.a libngcc.a
- + ranlib libngcc.a
- +
- + # The default gcc (xgcc) is not built with -DAMIGADOS_FORK_GCC. Define
- + # rules that build a version (gccv) that uses vfork() instead of running
- + # a child in a more system conformant way.
- +
- + EXTRA_PASSES = gccv
- +
- + gccv: gccv.o version.o $(LIBDEPS)
- + $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o gccv gccv.o version.o $(LIBS)
- +
- + gccv.o: gcc.c $(CONFIG_H) gvarargs.h config.status
- + $(CC) -DAMIGADOS_FORK_GCC $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- + -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \
- + -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \
- + -DDEFAULT_TARGET_MACHINE=\"$(target)\" \
- + -DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\" \
- + -DTOOLDIR=\"$(tooldir)/\" \
- + $(MAYBE_TARGET_DEFAULT) \
- + -c `echo $(srcdir)/gcc.c | sed 's,^\./,,'` -o gccv.o
- +
- + # Assemble startup file. Ignore errors that occur since recompilation
- + # requires proprietary Commodore Amiga header files to be available.
- + crt0.o: $(srcdir)/config/m68k/amiga-crt0.c
- + -$(GCC_FOR_TARGET) -o crt0.o $(srcdir)/config/m68k/amiga-crt0.c
- diff -rcP gcc-2.4.5-fsf/config/m68k/x-amigados gcc-2.4.5-amiga/config/m68k/x-amigados
- *** gcc-2.4.5-fsf/config/m68k/x-amigados
- --- gcc-2.4.5-amiga/config/m68k/x-amigados Tue Sep 7 15:07:13 1993
- ***************
- *** 0 ****
- --- 1,28 ----
- + # building under amigados requires an already working gcc. You can of course
- + # try to reinvent the wheel, get sun2manx and try to do a crosscompile from a
- + # sun3, like I did some years ago...
- + CC = gcc
- + # if your gcc has not been compiled with -DAMIGADOS_FORK_GCC, then don't use
- + # -pipe! (see also t-amigados !)
- + X_CFLAGS = -O2
- +
- + prefix = /gcc
- + local_prefix = /gcc
- + exec_prefix = $(prefix)
- + bindir = /gcc/bin
- + libdir = /gcc/lib
- + manext = .0
- + mandir = /gcc/man/man1
- +
- + # don't compile with debugging, as long as there is no debugger...
- + LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS)
- +
- + # we really shouldn't specify CFLAGS from here, but there's no other way
- + # to get rid of the `-g' indoctrinated by Makefile.in...
- + CFLAGS =
- +
- + RANLIB_TEST = true
- +
- + # Target to use when installing include directory. Neither
- + # install-headers-tar or install-headers-cpio work yet.
- + INSTALL_HEADERS_DIR = install-headers-cp
- diff -rcP gcc-2.4.5-fsf/config/m68k/xm-amigados.h gcc-2.4.5-amiga/config/m68k/xm-amigados.h
- *** gcc-2.4.5-fsf/config/m68k/xm-amigados.h
- --- gcc-2.4.5-amiga/config/m68k/xm-amigados.h Tue Sep 7 18:15:24 1993
- ***************
- *** 0 ****
- --- 1,223 ----
- + /* Configuration for GNU C-compiler for Commodore Amiga, running AmigaDOS.
- + Copyright (C) 1992 Free Software Foundation, Inc.
- + Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
- +
- + This file is part of GNU CC.
- +
- + GNU CC is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2, or (at your option)
- + any later version.
- +
- + GNU CC is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with GNU CC; see the file COPYING. If not, write to
- + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
- +
- + /* first include the generic header, then modify some parts.. */
- +
- + #include "m68k/xm-m68k.h"
- +
- + #undef GCC_INCLUDE_DIR
- + #define GCC_INCLUDE_DIR ":GCC_INCLUDE_DIR is not used under AmigaDOS!:"
- +
- + /* use this list of header files instead of the Unix'ish default */
- + #define INCLUDE_DEFAULTS \
- + { \
- + { "gcc:g++-include", 1}, \
- + { "gcc:gcc-include", 0}, /* gcc-specific changes to system headers. none currently.. */ \
- + { "gcc:os-include", 0}, /* here go amiga specific headers */ \
- + { "gcc:include", 0}, /* here go the usual headers */ \
- + { 0, 0} \
- + }
- +
- + /* Fork one piped subcommand. SEARCH_FLAG is the system call to use
- + (either execv or execvp). ARGV is the arg vector to use.
- + NOT_LAST is nonzero if this is not the last subcommand
- + (i.e. its output should be piped to the next one.) */
- +
- + #ifdef AMIGADOS_FORK_GCC
- +
- + /* the vfork() version. This one has the drawback, that gcc is not
- + interruptible when started from make, since ixemul.library doesn't yet
- + propagate ^C to subprocesses. To generate this version, define
- + AMIGADOS_FORK_GCC when compiling gcc.c. This is not the default. */
- +
- + #define PEXECUTE(SEARCH_FLAG,PROGRAM,ARGV,NOT_LAST) \
- + ({int (*_func)() = (SEARCH_FLAG ? execv : execvp); \
- + int _pid; \
- + int _pdes[2]; \
- + int _input_desc = last_pipe_input; \
- + int _output_desc = STDOUT_FILE_NO; \
- + int _retries, _sleep_interval, _result; \
- + \
- + /* If this isn't the last process, make a pipe for its output, \
- + and record it as waiting to be the input to the next process. */ \
- + \
- + if (NOT_LAST) \
- + { \
- + if (pipe (_pdes) < 0) \
- + pfatal_with_name ("pipe"); \
- + _output_desc = _pdes[WRITE_PORT]; \
- + last_pipe_input = _pdes[READ_PORT]; \
- + } \
- + else \
- + last_pipe_input = STDIN_FILE_NO; \
- + \
- + /* Fork a subprocess; wait and retry if it fails. */ \
- + _sleep_interval = 1; \
- + for (_retries = 0; _retries < 4; _retries++) \
- + { \
- + _pid = vfork (); \
- + if (_pid >= 0) \
- + break; \
- + sleep (_sleep_interval); \
- + _sleep_interval *= 2; \
- + } \
- + \
- + switch (_pid) \
- + { \
- + case -1: \
- + pfatal_with_name ("vfork"); \
- + /* NOTREACHED */ \
- + _result = 0; \
- + break; \
- + \
- + case 0: /* child */ \
- + /* Move the input and output pipes into place, if nec. */ \
- + if (_input_desc != STDIN_FILE_NO) \
- + { \
- + close (STDIN_FILE_NO); \
- + dup (_input_desc); \
- + close (_input_desc); \
- + } \
- + if (_output_desc != STDOUT_FILE_NO) \
- + { \
- + close (STDOUT_FILE_NO); \
- + dup (_output_desc); \
- + close (_output_desc); \
- + } \
- + \
- + /* Close the parent's descs that aren't wanted here. */ \
- + if (last_pipe_input != STDIN_FILE_NO) \
- + close (last_pipe_input); \
- + \
- + /* Exec the program. */ \
- + (*_func) (PROGRAM, ARGV); \
- + perror_exec (PROGRAM); \
- + exit (-1); \
- + /* NOTREACHED */ \
- + _result = 0; \
- + break; \
- + \
- + default: \
- + /* In the parent, after forking. \
- + Close the descriptors that we made for this child. */ \
- + if (_input_desc != STDIN_FILE_NO) \
- + close (_input_desc); \
- + if (_output_desc != STDOUT_FILE_NO) \
- + close (_output_desc); \
- + \
- + /* Return child's process number. */ \
- + _result = _pid; \
- + break; \
- + } \
- + _result; }) \
- +
- + #define PEXECUTE_RESULT(STATUS, COMMAND) \
- + ({ wait (& STATUS); })
- +
- + #else
- +
- + /* This version uses a more or less amigados-conformant way of running a
- + program (in the context of the parent) and is the default way the
- + gcc frontend is built. If you want to use -pipe however, you'll have
- + to use the vfork() version above. */
- +
- + #define PEXECUTE(SEARCH_FLAG,PROGRAM,ARGV,NOT_LAST) \
- + ({char *_argline; \
- + int _arglinelength, _i; \
- + \
- + for (_i = 1, _arglinelength=0; ARGV[_i]; ++_i) \
- + _arglinelength += strlen(ARGV[_i]) + 1; \
- + \
- + _arglinelength += strlen(PROGRAM) + 1; \
- + \
- + if (!(_argline = (char *)alloca(_arglinelength))) \
- + pfatal_with_name ("alloca"); \
- + \
- + strcpy(_argline, PROGRAM); \
- + for (_i = 1; ARGV[_i]; ++_i) \
- + { \
- + strcat(_argline, " "); \
- + strcat(_argline, ARGV[_i]); \
- + } \
- + \
- + ssystem(_argline); }) \
- +
- + #define PEXECUTE_RESULT(STATUS, COMMAND) \
- + ({ STATUS = COMMAND.pid; })
- +
- + #endif /* AMIGADOS_FORK_GCC */
- +
- + /* the following macros are stolen more or less from xm-vms.h ... */
- +
- + /* This macro is used to help compare filenames in cp-lex.c.
- +
- + We also need to make sure that the names are all lower case, because
- + we must be able to compare filenames to determine if a file implements
- + a class. */
- +
- + #define FILE_NAME_NONDIRECTORY(C) \
- + ({ \
- + char * pnt_ = (C), * pnt1_; \
- + pnt1_ = pnt_ - 1; \
- + while (*++pnt1_) \
- + if ((*pnt1_ >= 'A' && *pnt1_ <= 'Z')) *pnt1_ |= 0x20; \
- + pnt1_ = rindex (pnt_, '/'); \
- + pnt1_ = (pnt1_ == 0 ? rindex (pnt_, ':') : pnt1_); \
- + (pnt1_ == 0 ? pnt_ : pnt1_ + 1); \
- + })
- +
- + /* Macro to generate the name of the cross reference file. The standard
- + one does not work, since it was written assuming that the conventions
- + of a unix style filesystem will work on the host system.
- +
- + Contrary to VMS, I'm using the original unix filename, there's no reason
- + not to use this under AmigaDOS. */
- +
- + #define XREF_FILE_NAME(BUFF, NAME) \
- + s = FILE_NAME_NONDIRECTORY (NAME); \
- + if (s == NAME) sprintf(BUFF, ".%s.gxref", NAME); \
- + else { \
- + unsigned char ch = *s; /* could be Latin1 char.. */ \
- + /* temporary: cut the filename from the directory */\
- + *s = 0; \
- + sprintf (BUFF, "%s.%c%s.gxref", NAME, ch, s+1); \
- + /* and restore the filename */ \
- + *s = ch; \
- + } \
- +
- + /* Macro that is used in cp-xref.c to determine whether a file name is
- + absolute or not.
- +
- + This checks for both, '/' as first character, since we're running under
- + ixemul.library which provides for this unix'ism, and for the usual
- + logical-terminator, ':', somewhere in the filename. */
- +
- + #define FILE_NAME_ABSOLUTE_P(NAME) (NAME[0] == '/' || index(NAME, ':'))
- +
- +
- + /* the colon conflicts with the name space of logicals */
- +
- + #define PATH_SEPARATOR ','
- +
- + /* AmigaDOS handles rename(2) *much* better than any link(2)/unlink(2)
- + hacks. It's actually the inverse case as on Unix. rename(2) was always
- + there, link(2) is new with OS 2.0 */
- +
- + #define HAVE_rename 1
- diff -rcP gcc-2.4.5-fsf/configure gcc-2.4.5-amiga/configure
- *** gcc-2.4.5-fsf/configure Fri Jun 18 18:21:08 1993
- --- gcc-2.4.5-amiga/configure Tue Sep 7 14:27:43 1993
- ***************
- *** 68,74 ****
-
- remove=rm
- hard_link=ln
- ! symbolic_link='ln -s'
- copy=cp
-
- # Record all the arguments, to write them in config.status.
- --- 68,75 ----
-
- remove=rm
- hard_link=ln
- ! #symbolic_link='ln -s'
- ! symbolic_link=ln
- copy=cp
-
- # Record all the arguments, to write them in config.status.
- ***************
- *** 281,287 ****
- use_collect2=
- # Set this to override the default target model.
- target_cpu_default=
- ! # Set this to force use of install.sh.
- broken_install=
- # Set this to control which fixincludes program to use.
- fixincludes=fixincludes
- --- 282,289 ----
- use_collect2=
- # Set this to override the default target model.
- target_cpu_default=
- ! # Set this to force use of install.sh (if set to 'yes')
- ! # Set to name of installer to use custom installer.
- broken_install=
- # Set this to control which fixincludes program to use.
- fixincludes=fixincludes
- ***************
- *** 569,574 ****
- --- 571,586 ----
- tm_file=sparc/lite.h
- use_collect2=yes
- ;;
- + m68k-*-amigados)
- + xm_file=m68k/xm-amigados.h
- + out_file=m68k/amigados.c
- + tm_file=m68k/amigados.h
- + tmake_file=m68k/t-amigados
- + xmake_file=m68k/x-amigados
- + fixincludes=Makefile.in # Headers are already fixed.
- + broken_install=cp
- + install_headers_dir=install-headers-cp
- + ;;
- m68k-cbm-sysv4*) # Commodore variant of V.4.
- tm_file=m68k/amix.h
- xm_file=m68k/xm-amix.h
- ***************
- *** 1494,1501 ****
- then true
- else
- rm -f Makefile.xx
- ! abssrcdir=`cd ${srcdir}; pwd`
- ! sed "s|^INSTALL = .*|INSTALL = ${abssrcdir}/install.sh -c|" Makefile.tem > Makefile.xx
- rm -f Makefile.tem
- mv Makefile.xx Makefile.tem
- fi
- --- 1506,1519 ----
- then true
- else
- rm -f Makefile.xx
- ! if [ x$host_broken_install = xyes ]
- ! then
- ! abssrcdir=`cd ${srcdir}; pwd`
- ! installer=${abssrcdir}/install.sh -c
- ! else
- ! installer=$host_broken_install
- ! fi
- ! sed "s|^INSTALL = .*|INSTALL = ${installer}|" Makefile.tem > Makefile.xx
- rm -f Makefile.tem
- mv Makefile.xx Makefile.tem
- fi
- diff -rcP gcc-2.4.5-fsf/cp-parse.c gcc-2.4.5-amiga/cp-parse.c
- *** gcc-2.4.5-fsf/cp-parse.c Tue Apr 27 05:39:59 1993
- --- gcc-2.4.5-amiga/cp-parse.c Mon Sep 6 20:13:29 1993
- ***************
- *** 1,5 ****
-
- ! /* A Bison parser, made from cp-parse.y */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- --- 1,6 ----
-
- ! /* A Bison parser, made from cp-parse.y with Bison version GNU Bison version 1.21
- ! */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- ***************
- *** 186,194 ****
- --- 187,197 ----
-
- #include <stdio.h>
-
- + #ifndef __cplusplus
- #ifndef __STDC__
- #define const
- #endif
- + #endif
-
-
-
- ***************
- *** 235,240 ****
- --- 238,244 ----
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
- };
-
- + #if YYDEBUG != 0
- static const short yyprhs[] = { 0,
- 0, 1, 3, 4, 7, 10, 11, 12, 14, 16,
- 18, 20, 22, 24, 30, 35, 39, 44, 49, 51,
- ***************
- *** 559,564 ****
- --- 563,570 ----
- 41, 1, 0
- };
-
- + #endif
- +
- #if YYDEBUG != 0
- static const short yyrline[] = { 0,
- 283, 284, 292, 294, 295, 299, 304, 308, 311, 314,
- ***************
- *** 2497,2503 ****
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- --- 2503,2509 ----
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- ***************
- *** 2506,2511 ****
- --- 2512,2527 ----
- #if defined(_AIX)
- #include <malloc.h>
- #pragma alloca
- + #else /* not MSDOS, __TURBOC__, or _AIX */
- + #ifdef __hpux
- + #ifdef __cplusplus
- + extern "C" {
- + void *alloca (unsigned int);
- + };
- + #else /* not __cplusplus */
- + void *alloca (unsigned int);
- + #endif /* not __cplusplus */
- + #endif /* __hpux */
- #endif /* not _AIX */
- #endif /* not MSDOS, or __TURBOC__ */
- #endif /* not sparc. */
- ***************
- *** 2599,2604 ****
- --- 2615,2625 ----
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 10000
- #endif
- +
- + /* Prevent warning if -Wstrict-prototypes. */
- + #ifdef __GNUC__
- + int yyparse (void);
- + #endif
-
- #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
- #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
- ***************
- *** 2639,2645 ****
- #endif
- #endif
-
- ! #line 169 "bison.simple"
- int
- yyparse()
- {
- --- 2660,2666 ----
- #endif
- #endif
-
- ! #line 184 "bison.simple"
- int
- yyparse()
- {
- ***************
- *** 2695,2701 ****
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- --- 2716,2723 ----
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack.
- ! The wasted elements are never initialized. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- ***************
- *** 2778,2783 ****
- --- 2800,2806 ----
- fprintf(stderr, "Entering state %d\n", yystate);
- #endif
-
- + goto yybackup;
- yybackup:
-
- /* Do appropriate processing given the current state. */
- ***************
- *** 2902,2908 ****
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symboles being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- --- 2925,2931 ----
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- ***************
- *** 7093,7099 ****
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 440 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- --- 7116,7122 ----
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 457 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- ***************
- *** 7163,7169 ****
- int x, count;
-
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- --- 7186,7194 ----
- int x, count;
-
- count = 0;
- ! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- ***************
- *** 7174,7180 ****
- if (count < 5)
- {
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- --- 7199,7206 ----
- if (count < 5)
- {
- count = 0;
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- ***************
- *** 7194,7199 ****
- --- 7220,7226 ----
- yyerror("parse error");
- }
-
- + goto yyerrlab1;
- yyerrlab1: /* here on error raised explicitly by an action */
-
- if (yyerrstatus == 3)
- diff -rcP gcc-2.4.5-fsf/gcc.c gcc-2.4.5-amiga/gcc.c
- *** gcc-2.4.5-fsf/gcc.c Mon Jun 7 03:45:56 1993
- --- gcc-2.4.5-amiga/gcc.c Mon Sep 6 02:48:35 1993
- ***************
- *** 104,110 ****
- --- 104,114 ----
- extern char *getenv ();
-
- extern int errno, sys_nerr;
- + #ifndef HAVE_STRERROR
- + /* provide a cheap strerror() emulator for those that don't have it */
- extern char *sys_errlist[];
- + #define strerror(err) sys_errlist[err]
- + #endif
-
- extern int execv (), execvp ();
-
- ***************
- *** 1348,1364 ****
- #endif
- if (base == (char *)0)
- {
- if (access ("/usr/tmp", R_OK | W_OK) == 0)
- base = "/usr/tmp/";
- else
- base = "/tmp/";
- }
- }
-
- len = strlen (base);
- temp_filename = xmalloc (len + sizeof("/ccXXXXXX"));
- strcpy (temp_filename, base);
- ! if (len > 0 && temp_filename[len-1] != '/')
- temp_filename[len++] = '/';
- strcpy (temp_filename + len, "ccXXXXXX");
-
- --- 1352,1376 ----
- #endif
- if (base == (char *)0)
- {
- + #ifdef amigados
- + base = "ram:";
- + #else
- if (access ("/usr/tmp", R_OK | W_OK) == 0)
- base = "/usr/tmp/";
- else
- base = "/tmp/";
- + #endif
- }
- }
-
- len = strlen (base);
- temp_filename = xmalloc (len + sizeof("/ccXXXXXX"));
- strcpy (temp_filename, base);
- ! if (len > 0 && temp_filename[len-1] != '/'
- ! #ifdef amigados
- ! && temp_filename[len-1] != ':'
- ! #endif
- ! )
- temp_filename[len++] = '/';
- strcpy (temp_filename + len, "ccXXXXXX");
-
- ***************
- *** 1502,1508 ****
-
- /* Determine the filename to execute (special case for absolute paths). */
-
- ! if (*name == '/')
- {
- if (access (name, mode))
- {
- --- 1514,1524 ----
-
- /* Determine the filename to execute (special case for absolute paths). */
-
- ! if (*name == '/'
- ! #ifdef amigados
- ! || index (name, ':')
- ! #endif
- ! )
- {
- if (access (name, mode))
- {
- ***************
- *** 1708,1713 ****
- --- 1724,1730 ----
- NOT_LAST is nonzero if this is not the last subcommand
- (i.e. its output should be piped to the next one.) */
-
- + #ifndef PEXECUTE
- #ifndef OS2
- #ifdef __MSDOS__
-
- ***************
- *** 1854,1859 ****
- --- 1871,1877 ----
- return (search_flag ? spawnv : spawnvp) (1, program, argv);
- }
- #endif /* not OS2 */
- + #endif /* !defined (PEXECUTE) */
-
- /* Execute the command specified by the arguments on the current line of spec.
- When using pipes, this includes several piped-together commands
- ***************
- *** 1948,1956 ****
- --- 1966,1980 ----
- {
- char *string = commands[i].argv[0];
-
- + #ifdef PEXECUTE
- + commands[i].pid = PEXECUTE (string != commands[i].prog,
- + string, commands[i].argv,
- + i + 1 < n_commands);
- + #else
- commands[i].pid = pexecute (string != commands[i].prog,
- string, commands[i].argv,
- i + 1 < n_commands);
- + #endif
-
- if (string != commands[i].prog)
- free (string);
- ***************
- *** 1971,1981 ****
- --- 1995,2009 ----
- int pid;
- char *prog;
-
- + #ifdef PEXECUTE_RESULT
- + pid = PEXECUTE_RESULT (status, commands[i]);
- + #else /* PEXECUTE_RESULT */
- #ifdef __MSDOS__
- status = pid = commands[i].pid;
- #else
- pid = wait (&status);
- #endif
- + #endif /* PEXECUTE_RESULT */
- if (pid < 0)
- abort ();
-
- ***************
- *** 2082,2087 ****
- --- 2110,2116 ----
- if (*endp == PATH_SEPARATOR || *endp == 0)
- {
- strncpy (nstore, startp, endp-startp);
- + #ifndef amigados
- if (endp == startp)
- {
- strcpy (nstore, "./");
- ***************
- *** 2093,2098 ****
- --- 2122,2136 ----
- }
- else
- nstore[endp-startp] = 0;
- + #else
- + if (endp[-1] != '/' && endp[-1] != ':')
- + {
- + nstore[endp-startp] = '/';
- + nstore[endp-startp+1] = 0;
- + }
- + else
- + nstore[endp-startp] = 0;
- + #endif
- add_prefix (&exec_prefix, nstore, 0, 0, NULL_PTR);
- if (*endp == 0)
- break;
- ***************
- *** 2115,2120 ****
- --- 2153,2159 ----
- if (*endp == PATH_SEPARATOR || *endp == 0)
- {
- strncpy (nstore, startp, endp-startp);
- + #ifndef amigados
- if (endp == startp)
- {
- strcpy (nstore, "./");
- ***************
- *** 2126,2131 ****
- --- 2165,2179 ----
- }
- else
- nstore[endp-startp] = 0;
- + #else
- + if (endp[-1] != '/' && endp[-1] != ':')
- + {
- + nstore[endp-startp] = '/';
- + nstore[endp-startp+1] = 0;
- + }
- + else
- + nstore[endp-startp] = 0;
- + #endif
- add_prefix (&startfile_prefix, nstore, 0, 0, NULL_PTR);
- if (*endp == 0)
- break;
- ***************
- *** 2149,2154 ****
- --- 2197,2203 ----
- if (*endp == PATH_SEPARATOR || *endp == 0)
- {
- strncpy (nstore, startp, endp-startp);
- + #ifndef amigados
- if (endp == startp)
- {
- strcpy (nstore, "./");
- ***************
- *** 2160,2165 ****
- --- 2209,2223 ----
- }
- else
- nstore[endp-startp] = 0;
- + #else
- + if (endp[-1] != '/' && endp[-1] != ':')
- + {
- + nstore[endp-startp] = '/';
- + nstore[endp-startp+1] = 0;
- + }
- + else
- + nstore[endp-startp] = 0;
- + #endif
- add_prefix (&startfile_prefix, nstore, 0, 0, NULL_PTR);
- if (*endp == 0)
- break;
- ***************
- *** 3756,3765 ****
- --- 3814,3827 ----
- register char *p;
- int len;
-
- + #ifdef FILE_NAME_NONDIRECTORY
- + input_basename = FILE_NAME_NONDIRECTORY (input_filename);
- + #else
- input_basename = input_filename;
- for (p = input_filename; *p; p++)
- if (*p == '/')
- input_basename = p + 1;
- + #endif
-
- /* Find a suffix starting with the last period,
- and set basename_length to exclude that suffix. */
- ***************
- *** 3999,4005 ****
- char *s;
-
- if (errno < sys_nerr)
- ! s = concat ("%s: ", sys_errlist[errno], "");
- else
- s = "cannot open %s";
- fatal (s, name);
- --- 4061,4067 ----
- char *s;
-
- if (errno < sys_nerr)
- ! s = concat ("%s: ", strerror (errno), "");
- else
- s = "cannot open %s";
- fatal (s, name);
- ***************
- *** 4012,4018 ****
- char *s;
-
- if (errno < sys_nerr)
- ! s = concat ("%s: ", sys_errlist[errno], "");
- else
- s = "cannot open %s";
- error (s, name);
- --- 4074,4080 ----
- char *s;
-
- if (errno < sys_nerr)
- ! s = concat ("%s: ", strerror (errno), "");
- else
- s = "cannot open %s";
- error (s, name);
- ***************
- *** 4026,4032 ****
-
- if (errno < sys_nerr)
- s = concat ("installation problem, cannot exec %s: ",
- ! sys_errlist[errno], "");
- else
- s = "installation problem, cannot exec %s";
- error (s, name);
- --- 4088,4094 ----
-
- if (errno < sys_nerr)
- s = concat ("installation problem, cannot exec %s: ",
- ! strerror (errno), "");
- else
- s = "installation problem, cannot exec %s";
- error (s, name);
- diff -rcP gcc-2.4.5-fsf/genconfig.c gcc-2.4.5-amiga/genconfig.c
- *** gcc-2.4.5-fsf/genconfig.c Tue Oct 13 04:11:48 1992
- --- gcc-2.4.5-amiga/genconfig.c Mon Sep 6 02:45:06 1993
- ***************
- *** 303,310 ****
- --- 303,318 ----
- printf ("/* Generated automatically by the program `genconfig'\n\
- from the machine description file `md'. */\n\n");
-
- + #ifdef amigados
- + /* this constant probably better be 14 in general, or a cross compiling
- + host might choke on some amigados header files... */
- +
- + /* Allow at least 14 operands for the sake of asm constructs. */
- + max_recog_operands = 14;
- + #else
- /* Allow at least 10 operands for the sake of asm constructs. */
- max_recog_operands = 9; /* We will add 1 later. */
- + #endif
- max_dup_operands = 1;
-
- /* Read the machine description. */
- diff -rcP gcc-2.4.5-fsf/gstddef.h gcc-2.4.5-amiga/gstddef.h
- *** gcc-2.4.5-fsf/gstddef.h Mon May 24 06:08:45 1993
- --- gcc-2.4.5-amiga/gstddef.h Mon Sep 6 02:45:23 1993
- ***************
- *** 2,7 ****
- --- 2,21 ----
- #ifndef _STDDEF_H_
- #ifndef _ANSI_STDDEF_H
-
- + #ifdef amigados
- + /* GNU libc has special support in this file, 4.3bsd-net2 libc deserves that
- + just as well. The system headers are ANSI compliant, the used compiler IS
- + gcc, so it's really ok to use the system header, no reason to hassle
- + with a jungle of ifdefs. Besides, amigados is only defined if compiling
- + with host=amigados, it doesn't apply if compiling with target=amigados
- + on a different host with possibly different system headers. Same thing
- + would apply to gstdarg.h and gvarargs.h, but those headers are more
- + easily fixable than this one and I'm sick of writing the same comment
- + there as well. MW */
- + #include <stddef.h>
- +
- + #else /* not amigados */
- +
- /* Any one of these symbols __need_* means that GNU libc
- wants us just to define one data type. So don't define
- the symbols that indicate this file's entire job has been done. */
- ***************
- *** 162,167 ****
- --- 176,184 ----
- #ifndef __WCHAR_TYPE__
- #define __WCHAR_TYPE__ int
- #endif
- +
- +
- + #endif /* not amigados */
- #ifdef __GNUG__
- /* In C++, wchar_t is a distinct basic type,
- and we can expect __wchar_t to be defined by cc1plus. */
- diff -rcP gcc-2.4.5-fsf/gvarargs.h gcc-2.4.5-amiga/gvarargs.h
- *** gcc-2.4.5-fsf/gvarargs.h Mon May 17 17:54:29 1993
- --- gcc-2.4.5-amiga/gvarargs.h Mon Sep 6 02:45:25 1993
- ***************
- *** 166,169 ****
- --- 166,176 ----
- #undef _BSD_VA_LIST
- #endif
-
- + #ifdef amigados
- + # ifndef _VA_LIST
- + # define _VA_LIST
- + typedef __gnuc_va_list va_list;
- + # endif
- + #endif /* amigados */
- +
- #endif /* __GNUC__ */
- diff -rcP gcc-2.4.5-fsf/machmode.h gcc-2.4.5-amiga/machmode.h
- *** gcc-2.4.5-fsf/machmode.h Sat Mar 20 02:10:51 1993
- --- gcc-2.4.5-amiga/machmode.h Mon Sep 6 02:46:06 1993
- ***************
- *** 92,98 ****
-
- /* Get the name of mode MODE as a string. */
-
- ! extern char *mode_name[];
- #define GET_MODE_NAME(MODE) (mode_name[(int)(MODE)])
-
- enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
- --- 92,98 ----
-
- /* Get the name of mode MODE as a string. */
-
- ! extern char * const mode_name[];
- #define GET_MODE_NAME(MODE) (mode_name[(int)(MODE)])
-
- enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
- ***************
- *** 101,117 ****
- /* Get the general kind of object that mode MODE represents
- (integer, floating, complex, etc.) */
-
- ! extern enum mode_class mode_class[];
- #define GET_MODE_CLASS(MODE) (mode_class[(int)(MODE)])
-
- /* Get the size in bytes of an object of mode MODE. */
-
- ! extern int mode_size[];
- #define GET_MODE_SIZE(MODE) (mode_size[(int)(MODE)])
-
- /* Get the size in bytes of the basic parts of an object of mode MODE. */
-
- ! extern int mode_unit_size[];
- #define GET_MODE_UNIT_SIZE(MODE) (mode_unit_size[(int)(MODE)])
-
- /* Get the number of units in the object. */
- --- 101,117 ----
- /* Get the general kind of object that mode MODE represents
- (integer, floating, complex, etc.) */
-
- ! extern const enum mode_class mode_class[];
- #define GET_MODE_CLASS(MODE) (mode_class[(int)(MODE)])
-
- /* Get the size in bytes of an object of mode MODE. */
-
- ! extern const int mode_size[];
- #define GET_MODE_SIZE(MODE) (mode_size[(int)(MODE)])
-
- /* Get the size in bytes of the basic parts of an object of mode MODE. */
-
- ! extern const int mode_unit_size[];
- #define GET_MODE_UNIT_SIZE(MODE) (mode_unit_size[(int)(MODE)])
-
- /* Get the number of units in the object. */
- ***************
- *** 133,139 ****
-
- /* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI). */
-
- ! extern enum machine_mode mode_wider_mode[];
- #define GET_MODE_WIDER_MODE(MODE) (mode_wider_mode[(int)(MODE)])
-
- /* Return the mode for data of a given size SIZE and mode class CLASS.
- --- 133,139 ----
-
- /* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI). */
-
- ! extern const enum machine_mode mode_wider_mode[];
- #define GET_MODE_WIDER_MODE(MODE) (mode_wider_mode[(int)(MODE)])
-
- /* Return the mode for data of a given size SIZE and mode class CLASS.
- diff -rcP gcc-2.4.5-fsf/objc/Makefile gcc-2.4.5-amiga/objc/Makefile
- *** gcc-2.4.5-fsf/objc/Makefile Thu Jun 3 04:58:41 1993
- --- gcc-2.4.5-amiga/objc/Makefile Mon Sep 6 02:38:07 1993
- ***************
- *** 75,82 ****
- chmod a+r $(incinstalldir)/objc/$$file; \
- done
-
- ! sendmsg.o: sendmsg.c fflags
- ! $(GCC_FOR_TARGET) `cat fflags` -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $(srcdir)/objc/sendmsg.c
-
- ## Next to are for heuristics on forwarding mechanism...
- xforward: xforward.c
- --- 75,82 ----
- chmod a+r $(incinstalldir)/objc/$$file; \
- done
-
- ! sendmsg.o: sendmsg.c
- ! $(GCC_FOR_TARGET) -DSTACK_ARGS -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $(srcdir)/objc/sendmsg.c
-
- ## Next to are for heuristics on forwarding mechanism...
- xforward: xforward.c
- diff -rcP gcc-2.4.5-fsf/objc-parse.c gcc-2.4.5-amiga/objc-parse.c
- *** gcc-2.4.5-fsf/objc-parse.c Thu May 6 18:18:54 1993
- --- gcc-2.4.5-amiga/objc-parse.c Mon Sep 6 20:35:14 1993
- ***************
- *** 1,5 ****
-
- ! /* A Bison parser, made from objc-parse.y */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- --- 1,6 ----
-
- ! /* A Bison parser, made from objc-parse.y with Bison version GNU Bison version 1.21
- ! */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- ***************
- *** 157,165 ****
- --- 158,168 ----
-
- #include <stdio.h>
-
- + #ifndef __cplusplus
- #ifndef __STDC__
- #define const
- #endif
- + #endif
-
-
-
- ***************
- *** 204,209 ****
- --- 207,213 ----
- 70, 71, 72, 73, 74, 75, 76
- };
-
- + #if YYDEBUG != 0
- static const short yyprhs[] = { 0,
- 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
- 24, 28, 33, 38, 41, 44, 47, 50, 52, 53,
- ***************
- *** 421,426 ****
- --- 425,432 ----
- 160, 77, 0
- };
-
- + #endif
- +
- #if YYDEBUG != 0
- static const short yyrline[] = { 0,
- 227, 232, 246, 248, 248, 249, 251, 253, 254, 255,
- ***************
- *** 1555,1561 ****
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- --- 1561,1567 ----
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- ***************
- *** 1564,1569 ****
- --- 1570,1585 ----
- #if defined(_AIX)
- #include <malloc.h>
- #pragma alloca
- + #else /* not MSDOS, __TURBOC__, or _AIX */
- + #ifdef __hpux
- + #ifdef __cplusplus
- + extern "C" {
- + void *alloca (unsigned int);
- + };
- + #else /* not __cplusplus */
- + void *alloca (unsigned int);
- + #endif /* not __cplusplus */
- + #endif /* __hpux */
- #endif /* not _AIX */
- #endif /* not MSDOS, or __TURBOC__ */
- #endif /* not sparc. */
- ***************
- *** 1657,1662 ****
- --- 1673,1683 ----
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 10000
- #endif
- +
- + /* Prevent warning if -Wstrict-prototypes. */
- + #ifdef __GNUC__
- + int yyparse (void);
- + #endif
-
- #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
- #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
- ***************
- *** 1697,1703 ****
- #endif
- #endif
-
- ! #line 169 "bison.simple"
- int
- yyparse()
- {
- --- 1718,1724 ----
- #endif
- #endif
-
- ! #line 184 "bison.simple"
- int
- yyparse()
- {
- ***************
- *** 1753,1759 ****
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- --- 1774,1781 ----
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- ! so that they stay on the same level as the state stack.
- ! The wasted elements are never initialized. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- ***************
- *** 1836,1841 ****
- --- 1858,1864 ----
- fprintf(stderr, "Entering state %d\n", yystate);
- #endif
-
- + goto yybackup;
- yybackup:
-
- /* Do appropriate processing given the current state. */
- ***************
- *** 1960,1966 ****
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symboles being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- --- 1983,1989 ----
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- ! /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- ***************
- *** 4430,4436 ****
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 440 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- --- 4453,4459 ----
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- ! #line 457 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- ***************
- *** 4500,4506 ****
- int x, count;
-
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- --- 4523,4531 ----
- int x, count;
-
- count = 0;
- ! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- ***************
- *** 4511,4517 ****
- if (count < 5)
- {
- count = 0;
- ! for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- --- 4536,4543 ----
- if (count < 5)
- {
- count = 0;
- ! for (x = (yyn < 0 ? -yyn : 0);
- ! x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- ***************
- *** 4531,4536 ****
- --- 4557,4563 ----
- yyerror("parse error");
- }
-
- + goto yyerrlab1;
- yyerrlab1: /* here on error raised explicitly by an action */
-
- if (yyerrstatus == 3)
- diff -rcP gcc-2.4.5-fsf/print-tree.c gcc-2.4.5-amiga/print-tree.c
- *** gcc-2.4.5-fsf/print-tree.c Wed Apr 14 19:23:14 1993
- --- gcc-2.4.5-amiga/print-tree.c Mon Sep 6 02:46:54 1993
- ***************
- *** 24,30 ****
-
- extern char **tree_code_name;
-
- ! extern char *mode_name[];
-
- void print_node ();
- void indent_to ();
- --- 24,30 ----
-
- extern char **tree_code_name;
-
- ! extern char *const mode_name[];
-
- void print_node ();
- void indent_to ();
- diff -rcP gcc-2.4.5-fsf/protoize.c gcc-2.4.5-amiga/protoize.c
- *** gcc-2.4.5-fsf/protoize.c Tue May 25 14:48:37 1993
- --- gcc-2.4.5-amiga/protoize.c Mon Sep 6 02:46:59 1993
- ***************
- *** 80,86 ****
- #undef getopt
-
- extern int errno;
- ! extern char *sys_errlist[];
- extern char *version_string;
-
- /* Systems which are compatible only with POSIX 1003.1-1988 (but *not*
- --- 80,89 ----
- #undef getopt
-
- extern int errno;
- ! #ifndef HAVE_STRERROR
- ! extern char *sys_errlist[];
- ! #define strerror(err) sys_errlist[err]
- ! #endif
- extern char *version_string;
-
- /* Systems which are compatible only with POSIX 1003.1-1988 (but *not*
- ***************
- *** 776,783 ****
- --- 779,791 ----
- {
- struct default_include *p;
-
- + #ifdef FILE_NAME_ABSOLUTE_P
- + if (! FILE_NAME_ABSOLUTE_P (path))
- + abort ();
- + #else
- if (path[0] != '/')
- abort (); /* Must be an absolutized filename. */
- + #endif
-
- for (p = include_defaults; p->fname; p++)
- if (!strncmp (path, p->fname, strlen (p->fname))
- ***************
- *** 1204,1210 ****
- --- 1212,1222 ----
- {
- const char *src_p;
-
- + #ifdef FILE_NAME_ABSOLUTE_P
- + if (! FILE_NAME_ABSOLUTE_P (rel_filename))
- + #else
- if (rel_filename[0] != '/')
- + #endif
- {
- src_p = cwd2;
- while (*endp++ = *src_p++)
- ***************
- *** 1406,1412 ****
- if (my_stat (filename, &stat_buf) == -1)
- {
- fprintf (stderr, "%s: %s: can't get status: %s\n",
- ! pname, shortpath (NULL, filename), sys_errlist[errno]);
- stat_buf.st_mtime = (time_t) -1;
- }
- }
- --- 1418,1424 ----
- if (my_stat (filename, &stat_buf) == -1)
- {
- fprintf (stderr, "%s: %s: can't get status: %s\n",
- ! pname, shortpath (NULL, filename), strerror (errno));
- stat_buf.st_mtime = (time_t) -1;
- }
- }
- ***************
- *** 1467,1472 ****
- --- 1479,1503 ----
- return ++q;
- }
-
- + /* Use this macro to advance a char * over the filename part in a line
- + read from an aux-info file. */
- +
- + #ifndef amigados
- + /* Version for file systems where the colon has no special meaning */
- + #define ADVANCE_PAST_FILENAME(CP) \
- + while (* (CP) != ':') (CP)++
- + #else
- + /* Have to heuristically decide whether the colon is part of the filename
- + or whether it serves to delimit the filename from the line number. If
- + it's the latter case, then the character following the colon *must*
- + be a digit. Note that this heuristic fails if the filename starts
- + with a digit. */
- + #define ADVANCE_PAST_FILENAME(CP) \
- + while ((CP)[0] != ':' || !isdigit ((CP)[1])) \
- + (CP)++;
- + #endif
- +
- +
- /* Given a line from an aux info file, and a time at which the aux info
- file it came from was created, check to see if the item described in
- the line comes from a file which has been modified since the aux info
- ***************
- *** 1488,1495 ****
- {
- const char *filename_start = p = l + 3;
-
- ! while (*p != ':')
- ! p++;
- filename = (char *) alloca ((size_t) (p - filename_start) + 1);
- strncpy (filename, filename_start, (size_t) (p - filename_start));
- filename[p-filename_start] = '\0';
- --- 1519,1525 ----
- {
- const char *filename_start = p = l + 3;
-
- ! ADVANCE_PAST_FILENAME (p);
- filename = (char *) alloca ((size_t) (p - filename_start) + 1);
- strncpy (filename, filename_start, (size_t) (p - filename_start));
- filename[p-filename_start] = '\0';
- ***************
- *** 1546,1553 ****
- const char *filename_start = p = l + 3;
- char *filename;
-
- ! while (*p != ':')
- ! p++;
- filename = (char *) alloca ((size_t) (p - filename_start) + 1);
- strncpy (filename, filename_start, (size_t) (p - filename_start));
- filename[p-filename_start] = '\0';
- --- 1576,1582 ----
- const char *filename_start = p = l + 3;
- char *filename;
-
- ! ADVANCE_PAST_FILENAME (p);
- filename = (char *) alloca ((size_t) (p - filename_start) + 1);
- strncpy (filename, filename_start, (size_t) (p - filename_start));
- filename[p-filename_start] = '\0';
- ***************
- *** 2000,2006 ****
- if (child_pid == -1)
- {
- fprintf (stderr, "%s: could not fork process: %s\n",
- ! pname, sys_errlist[errno]);
- return 0;
- }
-
- --- 2029,2035 ----
- if (child_pid == -1)
- {
- fprintf (stderr, "%s: could not fork process: %s\n",
- ! pname, strerror (errno));
- return 0;
- }
-
- ***************
- *** 2028,2034 ****
- if (wait (&wait_status) == -1)
- {
- fprintf (stderr, "%s: wait failed: %s\n",
- ! pname, sys_errlist[errno]);
- return 0;
- }
- if ((wait_status & 0x7F) != 0)
- --- 2057,2063 ----
- if (wait (&wait_status) == -1)
- {
- fprintf (stderr, "%s: wait failed: %s\n",
- ! pname, strerror (errno));
- return 0;
- }
- if ((wait_status & 0x7F) != 0)
- ***************
- *** 2055,2061 ****
- write (f, ": ", 2);
- write (f, compile_params[0], strlen (compile_params[0]));
- write (f, ": ", 2);
- ! write (f, sys_errlist[e], strlen (sys_errlist[e]));
- write (f, "\n", 1);
- _exit (1);
- }
- --- 2084,2090 ----
- write (f, ": ", 2);
- write (f, compile_params[0], strlen (compile_params[0]));
- write (f, ": ", 2);
- ! write (f, strerror (e), strlen (strerror (e)));
- write (f, "\n", 1);
- _exit (1);
- }
- ***************
- *** 2115,2121 ****
- {
- fprintf (stderr, "%s: can't read aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- errors++;
- return;
- }
- --- 2144,2150 ----
- {
- fprintf (stderr, "%s: can't read aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- errors++;
- return;
- }
- ***************
- *** 2143,2149 ****
- {
- fprintf (stderr, "%s: can't read aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- errors++;
- return;
- }
- --- 2172,2178 ----
- {
- fprintf (stderr, "%s: can't read aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- errors++;
- return;
- }
- ***************
- *** 2158,2164 ****
- {
- fprintf (stderr, "%s: can't get status of aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- errors++;
- return;
- }
- --- 2187,2193 ----
- {
- fprintf (stderr, "%s: can't get status of aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- errors++;
- return;
- }
- ***************
- *** 2185,2191 ****
- {
- fprintf (stderr, "%s: can't get status of aux info file `%s': %s\n",
- pname, shortpath (NULL, base_source_filename),
- ! sys_errlist[errno]);
- errors++;
- return;
- }
- --- 2214,2220 ----
- {
- fprintf (stderr, "%s: can't get status of aux info file `%s': %s\n",
- pname, shortpath (NULL, base_source_filename),
- ! strerror (errno));
- errors++;
- return;
- }
- ***************
- *** 2206,2212 ****
- {
- fprintf (stderr, "%s: can't open aux info file `%s' for reading: %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- return;
- }
-
- --- 2235,2241 ----
- {
- fprintf (stderr, "%s: can't open aux info file `%s' for reading: %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- return;
- }
-
- ***************
- *** 2222,2228 ****
- {
- fprintf (stderr, "%s: error reading aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- free (aux_info_base);
- close (aux_info_file);
- return;
- --- 2251,2257 ----
- {
- fprintf (stderr, "%s: error reading aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- free (aux_info_base);
- close (aux_info_file);
- return;
- ***************
- *** 2234,2240 ****
- {
- fprintf (stderr, "%s: error closing aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- free (aux_info_base);
- close (aux_info_file);
- return;
- --- 2263,2269 ----
- {
- fprintf (stderr, "%s: error closing aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- free (aux_info_base);
- close (aux_info_file);
- return;
- ***************
- *** 2248,2254 ****
- if (my_unlink (aux_info_filename) == -1)
- fprintf (stderr, "%s: can't delete aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
-
- /* Save a pointer into the first line of the aux_info file which
- contains the filename of the directory from which the compiler
- --- 2277,2283 ----
- if (my_unlink (aux_info_filename) == -1)
- fprintf (stderr, "%s: can't delete aux info file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
-
- /* Save a pointer into the first line of the aux_info file which
- contains the filename of the directory from which the compiler
- ***************
- *** 2260,2266 ****
- {
- char *p = aux_info_base;
-
- ! while (*p != ':')
- p++;
- p++;
- while (*p == ' ')
- --- 2289,2297 ----
- {
- char *p = aux_info_base;
-
- ! /* have to make sure at least one space is following the colon to make
- ! sure the colon is not part of the filename */
- ! while (*p != ':' && p[1] != ' ')
- p++;
- p++;
- while (*p == ' ')
- ***************
- *** 2274,2280 ****
- continue;
- aux_info_second_line = p;
- aux_info_relocated_name = 0;
- ! if (invocation_filename[0] != '/')
- {
- /* INVOCATION_FILENAME is relative;
- append it to BASE_SOURCE_FILENAME's dir. */
- --- 2305,2315 ----
- continue;
- aux_info_second_line = p;
- aux_info_relocated_name = 0;
- ! #ifdef FILE_NAME_ABSOLUTE_P
- ! if (! FILE_NAME_ABSOLUTE_P (invocation_filename))
- ! #else
- ! if (invocation_filename[0] != '/')
- ! #endif
- {
- /* INVOCATION_FILENAME is relative;
- append it to BASE_SOURCE_FILENAME's dir. */
- ***************
- *** 2314,2320 ****
- {
- fprintf (stderr, "%s: can't delete file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! sys_errlist[errno]);
- return;
- }
- goto start_over;
- --- 2349,2355 ----
- {
- fprintf (stderr, "%s: can't delete file `%s': %s\n",
- pname, shortpath (NULL, aux_info_filename),
- ! strerror (errno));
- return;
- }
- goto start_over;
- ***************
- *** 2362,2368 ****
- #ifndef UNPROTOIZE
-
- /* Check an individual filename for a .c suffix. If the filename has this
- ! suffix, rename the file such that its suffix is changed to .C. This
- function implements the -C option. */
-
- static void
- --- 2397,2403 ----
- #ifndef UNPROTOIZE
-
- /* Check an individual filename for a .c suffix. If the filename has this
- ! suffix, rename the file such that its suffix is changed to .cc. This
- function implements the -C option. */
-
- static void
- ***************
- *** 2371,2377 ****
- {
- const char *filename = hp->symbol;
- int last_char_index = strlen (filename) - 1;
- ! char *const new_filename = (char *) alloca (strlen (filename) + 1);
-
- /* Note that we don't care here if the given file was converted or not. It
- is possible that the given file was *not* converted, simply because there
- --- 2406,2412 ----
- {
- const char *filename = hp->symbol;
- int last_char_index = strlen (filename) - 1;
- ! char *const new_filename = (char *) alloca (strlen (filename) + 2);
-
- /* Note that we don't care here if the given file was converted or not. It
- is possible that the given file was *not* converted, simply because there
- ***************
- *** 2383,2395 ****
- return;
-
- strcpy (new_filename, filename);
- ! new_filename[last_char_index] = 'C';
-
- if (my_link (filename, new_filename) == -1)
- {
- fprintf (stderr, "%s: warning: can't link file `%s' to `%s': %s\n",
- pname, shortpath (NULL, filename),
- ! shortpath (NULL, new_filename), sys_errlist[errno]);
- errors++;
- return;
- }
- --- 2418,2447 ----
- return;
-
- strcpy (new_filename, filename);
- ! strcat (new_filename + last_char_index, "cc");
- !
- ! /* use rename(2) if available !! Update config files to include HAVE_rename
- ! if the used OS provides it. Advantages are: it's atomic, it's one
- ! system call compared to two. */
- !
- ! #ifdef HAVE_rename
- ! /* if the mentioned systems (POSIX 1003.1-1988) have rename(2), this has
- ! to be changed to `my_rename' as well. */
-
- + if (rename (filename, new_filename) == -1)
- + {
- + fprintf (stderr, "%s: warning: can't rename file `%s' to `%s': %s\n",
- + pname, shortpath (NULL, filename),
- + shortpath (NULL, new_filename), strerror (errno));
- + errors++;
- + return;
- + }
- + #else
- if (my_link (filename, new_filename) == -1)
- {
- fprintf (stderr, "%s: warning: can't link file `%s' to `%s': %s\n",
- pname, shortpath (NULL, filename),
- ! shortpath (NULL, new_filename), strerror (errno));
- errors++;
- return;
- }
- ***************
- *** 2397,2406 ****
- if (my_unlink (filename) == -1)
- {
- fprintf (stderr, "%s: warning: can't delete file `%s': %s\n",
- ! pname, shortpath (NULL, filename), sys_errlist[errno]);
- errors++;
- return;
- }
- }
-
- #endif /* !defined (UNPROTOIZE) */
- --- 2449,2459 ----
- if (my_unlink (filename) == -1)
- {
- fprintf (stderr, "%s: warning: can't delete file `%s': %s\n",
- ! pname, shortpath (NULL, filename), strerror (errno));
- errors++;
- return;
- }
- + #endif
- }
-
- #endif /* !defined (UNPROTOIZE) */
- ***************
- *** 4093,4099 ****
- if (my_stat ((char *)convert_filename, &stat_buf) == -1)
- {
- fprintf (stderr, "%s: can't get status for file `%s': %s\n",
- ! pname, shortpath (NULL, convert_filename), sys_errlist[errno]);
- return;
- }
- orig_size = stat_buf.st_size;
- --- 4146,4152 ----
- if (my_stat ((char *)convert_filename, &stat_buf) == -1)
- {
- fprintf (stderr, "%s: can't get status for file `%s': %s\n",
- ! pname, shortpath (NULL, convert_filename), strerror (errno));
- return;
- }
- orig_size = stat_buf.st_size;
- ***************
- *** 4128,4134 ****
- {
- fprintf (stderr, "%s: can't open file `%s' for reading: %s\n",
- pname, shortpath (NULL, convert_filename),
- ! sys_errlist[errno]);
- return;
- }
-
- --- 4181,4187 ----
- {
- fprintf (stderr, "%s: can't open file `%s' for reading: %s\n",
- pname, shortpath (NULL, convert_filename),
- ! strerror (errno));
- return;
- }
-
- ***************
- *** 4141,4147 ****
- close (input_file);
- fprintf (stderr, "\n%s: error reading input file `%s': %s\n",
- pname, shortpath (NULL, convert_filename),
- ! sys_errlist[errno]);
- return;
- }
-
- --- 4194,4200 ----
- close (input_file);
- fprintf (stderr, "\n%s: error reading input file `%s': %s\n",
- pname, shortpath (NULL, convert_filename),
- ! strerror (errno));
- return;
- }
-
- ***************
- *** 4174,4180 ****
- {
- fprintf (stderr, "%s: can't create/open clean file `%s': %s\n",
- pname, shortpath (NULL, clean_filename),
- ! sys_errlist[errno]);
- return;
- }
-
- --- 4227,4233 ----
- {
- fprintf (stderr, "%s: can't create/open clean file `%s': %s\n",
- pname, shortpath (NULL, clean_filename),
- ! strerror (errno));
- return;
- }
-
- ***************
- *** 4182,4188 ****
-
- if (write (clean_file, new_clean_text_base, clean_size) != clean_size)
- fprintf (stderr, "%s: error writing file `%s': %s\n",
- ! pname, shortpath (NULL, clean_filename), sys_errlist[errno]);
-
- close (clean_file);
- }
- --- 4235,4241 ----
-
- if (write (clean_file, new_clean_text_base, clean_size) != clean_size)
- fprintf (stderr, "%s: error writing file `%s': %s\n",
- ! pname, shortpath (NULL, clean_filename), strerror (errno));
-
- close (clean_file);
- }
- ***************
- *** 4285,4291 ****
- pname,
- shortpath (NULL, convert_filename),
- shortpath (NULL, new_filename),
- ! sys_errlist[errno]);
- return;
- }
- }
- --- 4338,4344 ----
- pname,
- shortpath (NULL, convert_filename),
- shortpath (NULL, new_filename),
- ! strerror (errno));
- return;
- }
- }
- ***************
- *** 4294,4300 ****
- if (my_unlink (convert_filename) == -1)
- {
- fprintf (stderr, "%s: can't delete file `%s': %s\n",
- ! pname, shortpath (NULL, convert_filename), sys_errlist[errno]);
- return;
- }
-
- --- 4347,4353 ----
- if (my_unlink (convert_filename) == -1)
- {
- fprintf (stderr, "%s: can't delete file `%s': %s\n",
- ! pname, shortpath (NULL, convert_filename), strerror (errno));
- return;
- }
-
- ***************
- *** 4307,4313 ****
- {
- fprintf (stderr, "%s: can't create/open output file `%s': %s\n",
- pname, shortpath (NULL, convert_filename),
- ! sys_errlist[errno]);
- return;
- }
-
- --- 4360,4366 ----
- {
- fprintf (stderr, "%s: can't create/open output file `%s': %s\n",
- pname, shortpath (NULL, convert_filename),
- ! strerror (errno));
- return;
- }
-
- ***************
- *** 4319,4325 ****
- if (write (output_file, repl_text_base, out_size) != out_size)
- fprintf (stderr, "%s: error writing file `%s': %s\n",
- pname, shortpath (NULL, convert_filename),
- ! sys_errlist[errno]);
- }
-
- close (output_file);
- --- 4372,4378 ----
- if (write (output_file, repl_text_base, out_size) != out_size)
- fprintf (stderr, "%s: error writing file `%s': %s\n",
- pname, shortpath (NULL, convert_filename),
- ! strerror (errno));
- }
-
- close (output_file);
- ***************
- *** 4336,4342 ****
- /* The cast avoids an erroneous warning on AIX. */
- if (my_chmod ((char *)convert_filename, stat_buf.st_mode) == -1)
- fprintf (stderr, "%s: can't change mode of file `%s': %s\n",
- ! pname, shortpath (NULL, convert_filename), sys_errlist[errno]);
-
- /* Note: We would try to change the owner and group of the output file
- to match those of the input file here, except that may not be a good
- --- 4389,4395 ----
- /* The cast avoids an erroneous warning on AIX. */
- if (my_chmod ((char *)convert_filename, stat_buf.st_mode) == -1)
- fprintf (stderr, "%s: can't change mode of file `%s': %s\n",
- ! pname, shortpath (NULL, convert_filename), strerror (errno));
-
- /* Note: We would try to change the owner and group of the output file
- to match those of the input file here, except that may not be a good
- ***************
- *** 4479,4485 ****
- if (!cwd_buffer)
- {
- fprintf (stderr, "%s: cannot get working directory: %s\n",
- ! pname, sys_errlist[errno]);
- exit (1);
- }
-
- --- 4532,4538 ----
- if (!cwd_buffer)
- {
- fprintf (stderr, "%s: cannot get working directory: %s\n",
- ! pname, strerror (errno));
- exit (1);
- }
-
- diff -rcP gcc-2.4.5-fsf/real.c gcc-2.4.5-amiga/real.c
- *** gcc-2.4.5-fsf/real.c Sun Jun 13 22:09:11 1993
- --- gcc-2.4.5-amiga/real.c Fri Sep 24 01:51:38 1993
- ***************
- *** 3793,3801 ****
- if (y[NE - 1] == 0x7fff)
- {
- if (sign)
- ! sprintf (wstring, " -Infinity ");
- else
- ! sprintf (wstring, " Infinity ");
- goto bxit;
- }
-
- --- 3793,3801 ----
- if (y[NE - 1] == 0x7fff)
- {
- if (sign)
- ! sprintf (wstring, " -NaN");
- else
- ! sprintf (wstring, " NaN");
- goto bxit;
- }
-
- diff -rcP gcc-2.4.5-fsf/rtl.c gcc-2.4.5-amiga/rtl.c
- *** gcc-2.4.5-fsf/rtl.c Mon May 17 20:07:00 1993
- --- gcc-2.4.5-amiga/rtl.c Mon Sep 6 02:47:31 1993
- ***************
- *** 50,56 ****
-
- #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) NAME ,
-
- ! char *rtx_name[] = {
- #include "rtl.def" /* rtl expressions are documented here */
- };
-
- --- 50,56 ----
-
- #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) NAME ,
-
- ! char * const rtx_name[] = {
- #include "rtl.def" /* rtl expressions are documented here */
- };
-
- ***************
- *** 61,67 ****
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) NAME,
-
- ! char *mode_name[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def"
-
- #ifdef EXTRA_CC_MODES
- --- 61,67 ----
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) NAME,
-
- ! char * const mode_name[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def"
-
- #ifdef EXTRA_CC_MODES
- ***************
- *** 77,83 ****
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) CLASS,
-
- ! enum mode_class mode_class[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def"
- };
-
- --- 77,83 ----
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) CLASS,
-
- ! const enum mode_class mode_class[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def"
- };
-
- ***************
- *** 88,94 ****
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) SIZE,
-
- ! int mode_size[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def"
- };
-
- --- 88,94 ----
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) SIZE,
-
- ! const int mode_size[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def"
- };
-
- ***************
- *** 99,105 ****
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) UNIT,
-
- ! int mode_unit_size[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def" /* machine modes are documented here */
- };
-
- --- 99,105 ----
-
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) UNIT,
-
- ! const int mode_unit_size[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def" /* machine modes are documented here */
- };
-
- ***************
- *** 112,118 ****
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) \
- (enum machine_mode) WIDER,
-
- ! enum machine_mode mode_wider_mode[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def" /* machine modes are documented here */
- };
-
- --- 112,118 ----
- #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) \
- (enum machine_mode) WIDER,
-
- ! const enum machine_mode mode_wider_mode[(int) MAX_MACHINE_MODE] = {
- #include "machmode.def" /* machine modes are documented here */
- };
-
- ***************
- *** 131,137 ****
- rtx's of that code. The sequence is a C string in which
- each character describes one operand. */
-
- ! char *rtx_format[] = {
- /* "*" undefined.
- can cause a warning message
- "0" field is unused (or used in a phase-dependent manner)
- --- 131,137 ----
- rtx's of that code. The sequence is a C string in which
- each character describes one operand. */
-
- ! char *const rtx_format[] = {
- /* "*" undefined.
- can cause a warning message
- "0" field is unused (or used in a phase-dependent manner)
- ***************
- *** 162,168 ****
- /* Indexed by rtx code, gives a character representing the "class" of
- that rtx code. See rtl.def for documentation on the defined classes. */
-
- ! char rtx_class[] = {
- #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) CLASS,
- #include "rtl.def" /* rtl expressions are defined here */
- #undef DEF_RTL_EXPR
- --- 162,168 ----
- /* Indexed by rtx code, gives a character representing the "class" of
- that rtx code. See rtl.def for documentation on the defined classes. */
-
- ! const char rtx_class[] = {
- #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) CLASS,
- #include "rtl.def" /* rtl expressions are defined here */
- #undef DEF_RTL_EXPR
- ***************
- *** 170,176 ****
-
- /* Names for kinds of NOTEs and REG_NOTEs. */
-
- ! char *note_insn_name[] = { 0 , "NOTE_INSN_DELETED",
- "NOTE_INSN_BLOCK_BEG", "NOTE_INSN_BLOCK_END",
- "NOTE_INSN_LOOP_BEG", "NOTE_INSN_LOOP_END",
- "NOTE_INSN_FUNCTION_END", "NOTE_INSN_SETJMP",
- --- 170,176 ----
-
- /* Names for kinds of NOTEs and REG_NOTEs. */
-
- ! char * const note_insn_name[] = { 0 , "NOTE_INSN_DELETED",
- "NOTE_INSN_BLOCK_BEG", "NOTE_INSN_BLOCK_END",
- "NOTE_INSN_LOOP_BEG", "NOTE_INSN_LOOP_END",
- "NOTE_INSN_FUNCTION_END", "NOTE_INSN_SETJMP",
- ***************
- *** 178,184 ****
- "NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG",
- "NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG"};
-
- ! char *reg_note_name[] = { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
- "REG_EQUAL", "REG_RETVAL", "REG_LIBCALL",
- "REG_NONNEG", "REG_NO_CONFLICT", "REG_UNUSED",
- "REG_CC_SETTER", "REG_CC_USER", "REG_LABEL",
- --- 178,185 ----
- "NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG",
- "NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG"};
-
- ! char * const reg_note_name[] =
- ! { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
- "REG_EQUAL", "REG_RETVAL", "REG_LIBCALL",
- "REG_NONNEG", "REG_NO_CONFLICT", "REG_UNUSED",
- "REG_CC_SETTER", "REG_CC_USER", "REG_LABEL",
- diff -rcP gcc-2.4.5-fsf/rtl.h gcc-2.4.5-amiga/rtl.h
- *** gcc-2.4.5-fsf/rtl.h Sat May 29 16:15:40 1993
- --- gcc-2.4.5-amiga/rtl.h Mon Sep 6 02:47:34 1993
- ***************
- *** 44,56 ****
- extern int rtx_length[];
- #define GET_RTX_LENGTH(CODE) (rtx_length[(int)(CODE)])
-
- ! extern char *rtx_name[];
- #define GET_RTX_NAME(CODE) (rtx_name[(int)(CODE)])
-
- ! extern char *rtx_format[];
- #define GET_RTX_FORMAT(CODE) (rtx_format[(int)(CODE)])
-
- ! extern char rtx_class[];
- #define GET_RTX_CLASS(CODE) (rtx_class[(int)(CODE)])
-
- /* Common union for an element of an rtx. */
- --- 44,56 ----
- extern int rtx_length[];
- #define GET_RTX_LENGTH(CODE) (rtx_length[(int)(CODE)])
-
- ! extern char * const rtx_name[];
- #define GET_RTX_NAME(CODE) (rtx_name[(int)(CODE)])
-
- ! extern char * const rtx_format[];
- #define GET_RTX_FORMAT(CODE) (rtx_format[(int)(CODE)])
-
- ! extern const char rtx_class[];
- #define GET_RTX_CLASS(CODE) (rtx_class[(int)(CODE)])
-
- /* Common union for an element of an rtx. */
- ***************
- *** 330,336 ****
-
- /* Names for REG_NOTE's in EXPR_LIST insn's. */
-
- ! extern char *reg_note_name[];
- #define GET_REG_NOTE_NAME(MODE) (reg_note_name[(int)(MODE)])
-
- /* The label-number of a code-label. The assembler label
- --- 330,336 ----
-
- /* Names for REG_NOTE's in EXPR_LIST insn's. */
-
- ! extern char *const reg_note_name[];
- #define GET_REG_NOTE_NAME(MODE) (reg_note_name[(int)(MODE)])
-
- /* The label-number of a code-label. The assembler label
- ***************
- *** 407,413 ****
-
- /* Names for NOTE insn's other than line numbers. */
-
- ! extern char *note_insn_name[];
- #define GET_NOTE_INSN_NAME(NOTE_CODE) (note_insn_name[-(NOTE_CODE)])
-
- /* The name of a label, in case it corresponds to an explicit label
- --- 407,413 ----
-
- /* Names for NOTE insn's other than line numbers. */
-
- ! extern char *const note_insn_name[];
- #define GET_NOTE_INSN_NAME(NOTE_CODE) (note_insn_name[-(NOTE_CODE)])
-
- /* The name of a label, in case it corresponds to an explicit label
- diff -rcP gcc-2.4.5-fsf/toplev.c gcc-2.4.5-amiga/toplev.c
- *** gcc-2.4.5-fsf/toplev.c Sat Jun 19 22:34:12 1993
- --- gcc-2.4.5-amiga/toplev.c Mon Sep 6 02:48:13 1993
- ***************
- *** 492,497 ****
- --- 492,498 ----
- {"unroll-all-loops", &flag_unroll_all_loops, 1},
- {"writable-strings", &flag_writable_strings, 1},
- {"peephole", &flag_no_peephole, 0},
- + {"large-baserel", &flag_pic, 4},
- {"force-mem", &flag_force_mem, 1},
- {"force-addr", &flag_force_addr, 1},
- {"function-cse", &flag_no_function_cse, 0},
- ***************
- *** 510,515 ****
- --- 511,517 ----
- {"schedule-insns2", &flag_schedule_insns_after_reload, 1},
- {"pic", &flag_pic, 1},
- {"PIC", &flag_pic, 2},
- + {"baserel", &flag_pic, 3},
- {"fast-math", &flag_fast_math, 1},
- {"common", &flag_no_common, 0},
- {"inhibit-size-directive", &flag_inhibit_size_directive, 1},
- ***************
- *** 1486,1491 ****
- --- 1488,1496 ----
- FILE *asm_file;
- char *input_name;
- {
- + #ifdef FILE_NAME_NONDIRECTORY
- + char *na = FILE_NAME_NONDIRECTORY (input_name);
- + #else
- int len = strlen (input_name);
- char *na = input_name + len;
-
- ***************
- *** 1496,1501 ****
- --- 1501,1507 ----
- break;
- na--;
- }
- + #endif
-
- #ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME
- ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na);
- ***************
- *** 3380,3385 ****
- --- 3386,3392 ----
-
- #ifndef OS2
- #ifndef VMS
- + #ifndef amigados
- if (flag_print_mem)
- {
- char *lim = (char *) sbrk (0);
- ***************
- *** 3394,3399 ****
- --- 3401,3407 ----
- system ("ps v");
- #endif /* not USG */
- }
- + #endif /* not amigados */
- #endif /* not VMS */
- #endif /* not OS2 */
-
- diff -rcP gcc-2.4.5-fsf/tree.c gcc-2.4.5-amiga/tree.c
- *** gcc-2.4.5-fsf/tree.c Wed May 12 18:09:00 1993
- --- gcc-2.4.5-amiga/tree.c Mon Sep 6 02:48:16 1993
- ***************
- *** 248,254 ****
- /* Unique id for next type created. */
- static int next_type_uid = 1;
-
- ! extern char *mode_name[];
-
- void gcc_obstack_init ();
- static tree stabilize_reference_1 ();
- --- 248,254 ----
- /* Unique id for next type created. */
- static int next_type_uid = 1;
-
- ! extern char *const mode_name[];
-
- void gcc_obstack_init ();
- static tree stabilize_reference_1 ();
-