From 077bbaa98b29ebd693f5f56f08831aa01a0a7e78 Mon Sep 17 00:00:00 2001 From: Joerg Koenig Date: Mon, 6 Nov 2017 10:02:29 +0100 Subject: Changed gcc to vxWorks 5.5 compatible compiler version 3.0.4 and binutils 2.10.1 Change-Id: I64eaeb35e7728c25f372983cfc658fd5387f8515 --- Makefile | 76 +- Makefile.7.2 | 98 + SOURCES/binutils-2.10.1.tar.gz | Bin 0 -> 7284401 bytes SOURCES/gcc-3.0.4.tar.gz | Bin 0 -> 18435440 bytes SOURCES/gcc304.patch | 62 + SOURCES/vx-ppc-binutils-2.10.diff | 920 ++ SOURCES/vx-ppc-gcc.2.95.3.diff | 25289 ++++++++++++++++++++++++++++++++++++ 7 files changed, 26404 insertions(+), 41 deletions(-) create mode 100644 Makefile.7.2 create mode 100644 SOURCES/binutils-2.10.1.tar.gz create mode 100644 SOURCES/gcc-3.0.4.tar.gz create mode 100644 SOURCES/gcc304.patch create mode 100755 SOURCES/vx-ppc-binutils-2.10.diff create mode 100755 SOURCES/vx-ppc-gcc.2.95.3.diff diff --git a/Makefile b/Makefile index 378574f..7f75cab 100644 --- a/Makefile +++ b/Makefile @@ -2,15 +2,20 @@ CWD = $(shell readlink -f .) VERSION=0.4.1 SRCDIR=$(CWD)/SOURCES BUILDDIR=$(CWD)/build -#WIND_BASE=$(CWD)/unpacked/tornado/2.2.1 -#WIND_USR=$(WIND_BASE)/target -WIND_BASE=/master/tornado/2.2.1 +#WIND_BASE=$(HOME)/tornado/2.2.1 WIND_USR=$(WIND_BASE)/target +HOST=i686-pc-linux-gnu GCC_TARGET=powerpc-wrs-vxworks55 MASCH=$(shell uname -m) -GCC_PKGVERSION="TechSAT VxWorks 5.5/Tornado 2.2.1 Cross-Toolchain ($(MASCH)) v$(VERSION)" INSTDIR=$(CWD)/inst/crossppc -PACKAGE=$(CWD)/crossppc-vxworks-$(VERSION)-bin-linux-$(MASCH).tar.gz +GCC_VERSION=3.0.4 +LANGUAGES=c +PACKAGE=$(CWD)/vxw55-crossppc-$(GCC_VERSION)-$(HOST).tar.gz + +ifeq ($(WIND_BASE),) +$(error WIND_BASE not specified ) +endif + JOBS=-j4 @@ -22,42 +27,28 @@ prepare: rm -Rf $(CWD)/unpacked mkdir -p $(CWD)/unpacked cd $(CWD)/unpacked && \ - tar -zxf $(SRCDIR)/gcc-7.2.0.tar.gz - cd $(CWD)/unpacked/gcc-7.2.0 && \ - patch -p1 < $(SRCDIR)/gcc72-vxworks.patch - cd $(CWD)/unpacked/gcc-7.2.0 && \ - patch -p1 < $(SRCDIR)/gcc72-vxworks55-config.patch - cd $(CWD)/unpacked/gcc-7.2.0 && \ - patch -p1 < $(SRCDIR)/gcc72-vxworks55-libgcc-config.patch - cd $(CWD)/unpacked && \ - tar -zxf $(SRCDIR)/gmp-6.1.2.tar.gz -# cd $(CWD)/unpacked && \ -# tar -zxf $(SRCDIR)/tornado-2.2.1.tar.gz - cd $(CWD)/unpacked && \ - tar -jxf $(SRCDIR)/binutils-2.29.tar.bz2 + tar -zxf $(SRCDIR)/gcc-$(GCC_VERSION).tar.gz + cd $(CWD)/unpacked/gcc-$(GCC_VERSION) && \ + patch -p1 < $(SRCDIR)/gcc304.patch cd $(CWD)/unpacked && \ - tar -jxf $(SRCDIR)/isl-0.18.tar.bz2 - cd $(CWD)/unpacked && \ - tar -zxf $(SRCDIR)/mpc-1.0.3.tar.gz - cd $(CWD)/unpacked && \ - tar -jxf $(SRCDIR)/mpfr-3.1.6.tar.bz2 - mv $(CWD)/unpacked/gmp-6.1.2 $(CWD)/unpacked/gcc-7.2.0/gmp - mv $(CWD)/unpacked/isl-0.18 $(CWD)/unpacked/gcc-7.2.0/isl - mv $(CWD)/unpacked/mpc-1.0.3 $(CWD)/unpacked/gcc-7.2.0/mpc - mv $(CWD)/unpacked/mpfr-3.1.6 $(CWD)/unpacked/gcc-7.2.0/mpfr - + tar -zxf $(SRCDIR)/binutils-2.10.1.tar.gz + cd $(CWD)/unpacked/binutils-* && \ + patch -p1 < $(SRCDIR)/vx-ppc-binutils-2.10.diff binutils: rm -Rf $(BUILDDIR)/binutils mkdir -p $(BUILDDIR)/binutils cd $(BUILDDIR)/binutils && \ - $(CWD)/unpacked/binutils-2.29/configure \ - --with-pkgversion=$(GCC_PKGVERSION) \ + CFLAGS="-m32" LDFLAGS="-m32" \ + $(CWD)/unpacked/binutils-2.10.1/configure \ + --build=$(HOST) \ + --host=$(HOST) \ --prefix=$(INSTDIR) \ --target=$(GCC_TARGET) \ - --with-headers=$(WIND_BASE)/target/h + --with-headers=$(WIND_BASE)/target/h \ + --with-libs=$(WIND_BASE)/target/lib cd $(BUILDDIR)/binutils && \ make $(JOBS) && \ - make install-strip + make install xgcc: rm -Rf $(BUILDDIR)/gcc @@ -65,23 +56,26 @@ xgcc: cd $(BUILDDIR)/gcc && \ export WIND_BASE=$(WIND_BASE) && \ export WIND_USR=$(WIND_USR) && \ - LDFLAGS="-static-libgcc -static-libstdc++" \ - $(CWD)/unpacked/gcc-7.2.0/configure \ - --with-pkgversion=$(GCC_PKGVERSION) \ + export PATH=$(INSTDIR)/bin:$(PATH) && \ + CFLAGS="-m32" LDFLAGS="-m32" \ + $(CWD)/unpacked/gcc-$(GCC_VERSION)/configure \ + --build=$(HOST) \ + --host=$(HOST) \ --prefix=$(INSTDIR) \ --target=$(GCC_TARGET) \ --with-headers=$(WIND_BASE)/target/h \ - --disable-plugin \ - --enable-languages="c,c++" \ - --disable-multilib \ - --with-endian=big \ - --enable-threads=vxworks + --with-libs=$(WIND_BASE)/target/lib \ + --enable-languages="$(LANGUAGES)" \ + --with-gnu-as --with-gnu-ld cd $(BUILDDIR)/gcc && \ export WIND_BASE=$(WIND_BASE) && \ export WIND_USR=$(WIND_USR) && \ + export PATH=$(INSTDIR)/bin:$(PATH) && \ make $(JOBS) && \ - make install-strip + make install rm -Rf $(INSTDIR)/$(GCC_TARGET)/sys-include + rm -f $(INSTDIR)/bin/powerpc-wrs-vxworks55-gccbug + strip $(INSTDIR)/bin/$(GCC_TARGET)-* pack: cd $(INSTDIR) && \ diff --git a/Makefile.7.2 b/Makefile.7.2 new file mode 100644 index 0000000..75606c2 --- /dev/null +++ b/Makefile.7.2 @@ -0,0 +1,98 @@ +CWD = $(shell readlink -f .) +VERSION=0.4.1 +SRCDIR=$(CWD)/SOURCES +BUILDDIR=$(CWD)/build +WIND_BASE=$(HOME)/tornado/2.2.1 +WIND_USR=$(WIND_BASE)/target +#WIND_BASE=/master/tornado/2.2.1 +#WIND_USR=$(WIND_BASE)/target +GCC_TARGET=powerpc-wrs-vxworks55 +MASCH=$(shell uname -m) +GCC_PKGVERSION="TechSAT VxWorks 5.5/Tornado 2.2.1 Cross-Toolchain $(MASCH) v$(VERSION)" +INSTDIR=$(CWD)/inst/$(MASCH)/crossppc +PACKAGE=$(CWD)/crossppc-vxworks-$(VERSION)-bin-linux-$(MASCH).tar.gz + +JOBS=-j4 + +all: prepare binutils xgcc pack clean + +prepare: + mkdir -p $(BUILDDIR) + mkdir -p $(INSTDIR) + rm -Rf $(CWD)/unpacked + mkdir -p $(CWD)/unpacked + cd $(CWD)/unpacked && \ + tar -zxf $(SRCDIR)/gcc-7.2.0.tar.gz + cd $(CWD)/unpacked/gcc-7.2.0 && \ + patch -p1 < $(SRCDIR)/gcc72-vxworks.patch + cd $(CWD)/unpacked/gcc-7.2.0 && \ + patch -p1 < $(SRCDIR)/gcc72-vxworks55-config.patch + cd $(CWD)/unpacked/gcc-7.2.0 && \ + patch -p1 < $(SRCDIR)/gcc72-vxworks55-libgcc-config.patch + cd $(CWD)/unpacked && \ + tar -zxf $(SRCDIR)/gmp-6.1.2.tar.gz + cd $(CWD)/unpacked && \ + tar -jxf $(SRCDIR)/binutils-2.29.tar.bz2 + cd $(CWD)/unpacked && \ + tar -jxf $(SRCDIR)/isl-0.18.tar.bz2 + cd $(CWD)/unpacked && \ + tar -zxf $(SRCDIR)/mpc-1.0.3.tar.gz + cd $(CWD)/unpacked && \ + tar -jxf $(SRCDIR)/mpfr-3.1.6.tar.bz2 + mv $(CWD)/unpacked/gmp-6.1.2 $(CWD)/unpacked/gcc-7.2.0/gmp + mv $(CWD)/unpacked/isl-0.18 $(CWD)/unpacked/gcc-7.2.0/isl + mv $(CWD)/unpacked/mpc-1.0.3 $(CWD)/unpacked/gcc-7.2.0/mpc + mv $(CWD)/unpacked/mpfr-3.1.6 $(CWD)/unpacked/gcc-7.2.0/mpfr + +binutils: + rm -Rf $(BUILDDIR)/binutils + mkdir -p $(BUILDDIR)/binutils + cd $(BUILDDIR)/binutils && \ + $(CWD)/unpacked/binutils-2.29/configure \ + --with-pkgversion=$(GCC_PKGVERSION) \ + --prefix=$(INSTDIR) \ + --target=$(GCC_TARGET) \ + --with-headers=$(WIND_BASE)/target/h \ + --with-libs=$(WIND_BASE)/target/lib + cd $(BUILDDIR)/binutils && \ + make $(JOBS) && \ + make install-strip + +xgcc: + rm -Rf $(BUILDDIR)/gcc + mkdir -p $(BUILDDIR)/gcc + cd $(BUILDDIR)/gcc && \ + export WIND_BASE=$(WIND_BASE) && \ + export WIND_USR=$(WIND_USR) && \ + export PATH=$(INSTDIR)/bin:$(PATH) && \ + LDFLAGS="-static-libgcc -static-libstdc++" \ + $(CWD)/unpacked/gcc-7.2.0/configure \ + --with-pkgversion=$(GCC_PKGVERSION) \ + --prefix=$(INSTDIR) \ + --target=$(GCC_TARGET) \ + --with-headers=$(WIND_BASE)/target/h \ + --disable-plugin \ + --enable-languages="c,c++" \ + --disable-multilib \ + --with-endian=big \ + --with-gnu-as \ + --with-gnu-ld \ + --enable-threads=vxworks + cd $(BUILDDIR)/gcc && \ + export WIND_BASE=$(WIND_BASE) && \ + export WIND_USR=$(WIND_USR) && \ + export PATH=$(INSTDIR)/bin:$(PATH) && \ + make $(JOBS) && \ + make install-strip + rm -Rf $(INSTDIR)/$(GCC_TARGET)/sys-include + +pack: + cd $(INSTDIR) && \ + tar -zcf $(PACKAGE) . + +clean: + rm -Rf $(BUILDDIR) + rm -Rf $(CWD)/unpacked + #rm -Rf $(CWD)/inst + + diff --git a/SOURCES/binutils-2.10.1.tar.gz b/SOURCES/binutils-2.10.1.tar.gz new file mode 100644 index 0000000..4a3610c Binary files /dev/null and b/SOURCES/binutils-2.10.1.tar.gz differ diff --git a/SOURCES/gcc-3.0.4.tar.gz b/SOURCES/gcc-3.0.4.tar.gz new file mode 100644 index 0000000..c184ea4 Binary files /dev/null and b/SOURCES/gcc-3.0.4.tar.gz differ diff --git a/SOURCES/gcc304.patch b/SOURCES/gcc304.patch new file mode 100644 index 0000000..2c1693c --- /dev/null +++ b/SOURCES/gcc304.patch @@ -0,0 +1,62 @@ +--- gcc-3.0.4.orig/gcc/fixinc/mkfixinc.sh 2001-12-13 03:20:27.000000000 +0100 ++++ gcc-3.0.4/gcc/fixinc/mkfixinc.sh 2017-11-05 23:02:55.000000000 +0100 +@@ -84,6 +84,7 @@ + powerpc-*-eabisim* | \ + powerpc-*-eabi* | \ + powerpc-*-rtems* | \ ++ powerpc-*-vxworks* | \ + powerpcle-*-eabisim* | \ + powerpcle-*-eabi* | \ + powerpcle-*-winnt* | \ +diff -ruNb gcc-3.0.4.orig/gcc/config/rs6000/vxppc.h gcc-3.0.4/gcc/config/rs6000/vxppc.h +--- gcc-3.0.4.orig/gcc/config/rs6000/vxppc.h 2000-11-03 00:29:12.000000000 +0100 ++++ gcc-3.0.4/gcc/config/rs6000/vxppc.h 2017-11-06 09:46:39.911182137 +0100 +@@ -41,7 +41,7 @@ + + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "\ +--D__vxworks -D__vxworks__ -Asystem=vxworks -Asystem=embedded \ ++-D__vxworks -D__vxworks__ -D__VXVARGS__ -Asystem=vxworks -Asystem=embedded \ + -Acpu=powerpc -Amachine=powerpc" + + /* Don't define _LITTLE_ENDIAN or _BIG_ENDIAN */ +Binary files gcc-3.0.4.orig/gcc/config/rs6000/.vxppc.h.swp and gcc-3.0.4/gcc/config/rs6000/.vxppc.h.swp differ +diff -ruNb gcc-3.0.4.orig/gcc/fixinc/inclhack.def gcc-3.0.4/gcc/fixinc/inclhack.def +--- gcc-3.0.4.orig/gcc/fixinc/inclhack.def 2001-12-13 03:20:27.000000000 +0100 ++++ gcc-3.0.4/gcc/fixinc/inclhack.def 2017-11-06 09:46:22.431216101 +0100 +@@ -3255,6 +3255,35 @@ + "#endif /* __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__ */\n"; + }; + ++/* ++ * Fix VxWorks varargs header ++ */ ++fix = { ++ hackname = vxworks_varargs_problem; ++ files = arch/ppc/toolPpc.h; ++ select = "GNU C varargs support for the PowerPC with V.4 calling sequence"; ++ ++ sed = "/\\/\\* GNU C varargs support for the PowerPC with V.4 calling sequence \\*\\//a\\\n" ++ "#ifdef __VXVARGS__\\\n" ++ "#include \\\n" ++ "#else /* !defined(__VXVARGS__) */\\\n"; ++ ++ sed = "/\\/\\* END CYGNUS LOCAL Waiting for 2.7.1 to unfreeze \\*\\//i\\\n" ++ "#endif /* !defined(__VXVARGS__) */\\\n"; ++}; ++ ++/* ++ * That last fix wont even work unless we make archPpc.h use the default ++ * search path when it includes toolPpc.h ++ * ++ */ ++fix = { ++ hackname = vxworks_arch_includepath; ++ files = arch/ppc/archPpc.h; ++ select = 'include.*"toolPpc.h"'; ++ sed = "s,\"toolPpc.h\",,"; ++}; ++ + + /* + * Fix VxWorks to not require including . diff --git a/SOURCES/vx-ppc-binutils-2.10.diff b/SOURCES/vx-ppc-binutils-2.10.diff new file mode 100755 index 0000000..acafd12 --- /dev/null +++ b/SOURCES/vx-ppc-binutils-2.10.diff @@ -0,0 +1,920 @@ +diff -c3rpN binutils-2.10.orig/bfd/elf32-ppc.c binutils-2.10/bfd/elf32-ppc.c +*** binutils-2.10.orig/bfd/elf32-ppc.c Wed Mar 1 19:40:54 2000 +--- binutils-2.10/bfd/elf32-ppc.c Wed Jun 6 01:40:50 2001 +*************** ppc_elf_relocate_section (output_bfd, in +*** 2953,2958 **** +--- 2953,2960 ---- + asection *sec = (asection *)0; + struct elf_link_hash_entry *h = (struct elf_link_hash_entry *)0; + const char *sym_name = (const char *)0; ++ /* WRS_LOCAL */ ++ int update_data = 0; + reloc_howto_type *howto; + unsigned long r_symndx; + bfd_vma relocation; +*************** ppc_elf_relocate_section (output_bfd, in +*** 2981,2992 **** + if (r_symndx < symtab_hdr->sh_info) + { + sym = local_syms + r_symndx; +! if ((unsigned)ELF_ST_TYPE (sym->st_info) == STT_SECTION) + { + sec = local_sections[r_symndx]; +! addend = rel->r_addend += sec->output_offset + sym->st_value; + } + } + + #ifdef DEBUG + fprintf (stderr, "\ttype = %s (%d), symbol index = %ld, offset = %ld, addend = %ld\n", +--- 2983,3009 ---- + if (r_symndx < symtab_hdr->sh_info) + { + sym = local_syms + r_symndx; +! if (((unsigned)ELF_ST_TYPE (sym->st_info) == STT_SECTION) +! || (input_section->flags & SEC_DEBUGGING)) + { + sec = local_sections[r_symndx]; +! rel->r_addend += sec->output_offset + sym->st_value; +! /* WRS_LOCAL begin: */ +! /* It safe to put real offset into .debug* sections +! since it will be overwritten at final link. But +! DWARF debug info will be correct even when +! linking is relocatable. +! */ +! if ((input_section->flags & SEC_DEBUGGING) == 0) +! addend = rel->r_addend; +! else +! update_data = 1; +! /* WRS_LOCAL end; */ +! + } + } ++ else ++ update_data = (input_section->flags & SEC_DEBUGGING) != 0; + + #ifdef DEBUG + fprintf (stderr, "\ttype = %s (%d), symbol index = %ld, offset = %ld, addend = %ld\n", +*************** ppc_elf_relocate_section (output_bfd, in +*** 2996,3002 **** + (long)offset, + (long)addend); + #endif +! continue; + } + + /* This is a final link. */ +--- 3013,3020 ---- + (long)offset, + (long)addend); + #endif +! if (!update_data) /* WRS_LOCAL */ +! continue; + } + + /* This is a final link. */ +diff -c3rpN binutils-2.10.orig/bfd/vms-tir.c binutils-2.10/bfd/vms-tir.c +*** binutils-2.10.orig/bfd/vms-tir.c Mon Jul 12 11:30:15 1999 +--- binutils-2.10/bfd/vms-tir.c Wed Jun 6 01:41:04 2001 +*************** _bfd_vms_write_tir (abfd, objtype) +*** 2115,2121 **** + { + + #if VMS_DEBUG +! _bfd_vms_debug (4, "writing %d. section '%s' (%d bytes)\n", section->index, section->name, (int)(section->_raw_size)); + #endif + + if (section->flags & SEC_RELOC) +--- 2115,2121 ---- + { + + #if VMS_DEBUG +! _bfd_vms_debug (4, "writing %d. section '%s' (%d bytes)\n", section->index, section->name, (int)(section->_raw_size)); + #endif + + if (section->flags & SEC_RELOC) +diff -c3rpN binutils-2.10.orig/binutils/stabs.c binutils-2.10/binutils/stabs.c +*** binutils-2.10.orig/binutils/stabs.c Fri Jan 14 23:10:21 2000 +--- binutils-2.10/binutils/stabs.c Wed Jun 6 01:41:12 2001 +*************** +*** 40,57 **** + #include "aout/aout64.h" + #include "aout/stab_gnu.h" + +- #ifndef DIR_SEPARATOR +- #ifdef _WIN32 +- #define DIR_SEPARATOR '\\' +- #else +- #define DIR_SEPARATOR '/' +- #endif +- #endif +- + /* The number of predefined XCOFF types. */ + + #define XCOFF_TYPE_COUNT 34 + + /* This structure is used as a handle so that the stab parsing doesn't + need to use any static variables. */ + +--- 40,55 ---- + #include "aout/aout64.h" + #include "aout/stab_gnu.h" + + /* The number of predefined XCOFF types. */ + + #define XCOFF_TYPE_COUNT 34 + ++ /* Correctly handle absolute filename detection in cp/xref.c */ ++ #define IS_ABSOLUTE_PATH(NAME) \ ++ (((NAME)[0] == '/') || ((NAME)[0] == '\\') || \ ++ (((NAME)[0] >= 'A') && ((NAME)[0] <= 'z') && ((NAME)[1] == ':'))) ++ ++ + /* This structure is used as a handle so that the stab parsing doesn't + need to use any static variables. */ + +*************** parse_stab (dhandle, handle, type, desc, +*** 568,579 **** + + f = info->so_string; + +! if ( (string[0] == '/') +! || (string[0] == DIR_SEPARATOR) +! || ( (DIR_SEPARATOR == '\\') +! && (string[1] == ':') +! && ( (string[2] == DIR_SEPARATOR) +! || (string[2] == '/')))) + info->so_string = xstrdup (string); + else + info->so_string = concat (info->so_string, string, +--- 566,572 ---- + + f = info->so_string; + +! if (IS_ABSOLUTE_PATH (string)) + info->so_string = xstrdup (string); + else + info->so_string = concat (info->so_string, string, +*************** parse_stab (dhandle, handle, type, desc, +*** 706,711 **** +--- 699,705 ---- + case N_OBJ: + case N_ENDM: + case N_MAIN: ++ case N_WARNING: + break; + } + +diff -c3rpN binutils-2.10.orig/gas/config/obj-elf.c binutils-2.10/gas/config/obj-elf.c +*** binutils-2.10.orig/gas/config/obj-elf.c Mon Feb 28 04:17:36 2000 +--- binutils-2.10/gas/config/obj-elf.c Wed Jun 6 01:41:25 2001 +*************** +*** 23,28 **** +--- 23,29 ---- + #include "as.h" + #include "subsegs.h" + #include "obstack.h" ++ #include "struc-symbol.h" + + #ifndef ECOFF_DEBUGGING + #define ECOFF_DEBUGGING 0 +diff -c3rpN binutils-2.10.orig/gas/config/tc-ppc.c binutils-2.10/gas/config/tc-ppc.c +*** binutils-2.10.orig/gas/config/tc-ppc.c Sun Apr 2 07:27:51 2000 +--- binutils-2.10/gas/config/tc-ppc.c Wed Jun 6 01:41:32 2001 +*************** ppc_elf_lcomm(xxx) +*** 1413,1418 **** +--- 1413,1423 ---- + *pfrag = 0; + S_SET_SIZE (symbolP, size); + S_SET_SEGMENT (symbolP, bss_section); ++ /* WRS LOCAL */ ++ #ifdef OBJ_ELF ++ /* obj-elf.c sets object-type for .comm - do it for .lcomm too. */ ++ symbol_get_bfdsym (symbolP)->flags |= BSF_OBJECT; ++ #endif + subseg_set (old_sec, old_subsec); + demand_empty_rest_of_line (); + } +diff -c3rpN binutils-2.10.orig/gas/read.c binutils-2.10/gas/read.c +*** binutils-2.10.orig/gas/read.c Sun Mar 26 15:47:33 2000 +--- binutils-2.10/gas/read.c Wed Jun 6 01:41:45 2001 +*************** s_lcomm_internal (needs_align, bytes_p) +*** 2106,2111 **** +--- 2106,2116 ---- + #ifdef S_SET_SIZE + S_SET_SIZE (symbolP, temp); + #endif ++ /* WRS LOCAL */ ++ #ifdef OBJ_ELF ++ /* obj-elf.c sets object-type for .comm - do it for .lcomm too. */ ++ symbol_get_bfdsym (symbolP)->flags |= BSF_OBJECT; ++ #endif + } + else + as_bad (_("Ignoring attempt to re-define symbol `%s'."), +diff -c3rpN binutils-2.10.orig/ld/lexsup.c binutils-2.10/ld/lexsup.c +*** binutils-2.10.orig/ld/lexsup.c Mon May 15 03:21:03 2000 +--- binutils-2.10/ld/lexsup.c Wed Jun 6 01:43:31 2001 +*************** static const struct ld_option ld_options +*** 372,377 **** +--- 372,548 ---- + + #define OPTION_COUNT ((int) (sizeof ld_options / sizeof ld_options[0])) + ++ /* fileargs.h - routines to expand command line @ references ++ ++ The idea here is that wherever you can put a file name on ++ a command line you should be able to substitute a reference ++ to a list of files of the form @. Here ++ contains a list of newline seperated files. ++ Trailing whitespace on each line is ignored. ++ ++ For example ++ ++ ar mylib.a @myfiles ++ */ ++ ++ /* a file_list is simply a linked list of file names ++ ++ as usual an object, flist, of type file_list is an "iterator" ++ that points into the list: the file name at that point is ++ flist -> str; the iterator can be advanced one step with ++ flist = flist -> next; advancing one step past the final ++ node results in (!flist). */ ++ ++ typedef struct tag_file_list_node ++ { ++ struct tag_file_list_node *next; ++ char *str; ++ ++ } file_list_node, *file_list; ++ ++ ++ /* take a command line argument which can either be a filename ++ or an @ reference and returns a file list in which any @ reference ++ has been expanded. */ ++ ++ extern file_list get_file_list_from_arg (char *arg); ++ ++ /* takes an array of names and returns an array in which ++ @ references have been expanded. */ ++ ++ extern char **expand_file_list (char **files); ++ ++ ++ /* fileargs.c ++ */ ++ ++ #include ++ extern char *program_name; ++ ++ static file_list file_list_create_node (char *str) ++ { ++ file_list flist_node_ptr = xmalloc (sizeof (file_list_node)); ++ flist_node_ptr -> next = 0; ++ flist_node_ptr -> str = str; ++ return flist_node_ptr; ++ } ++ ++ /* take a command line argument which can either be a filename ++ or an @ reference and returns a file list in which any @ reference ++ has been expanded. */ ++ ++ file_list ++ get_file_list_from_arg (char *arg) ++ { ++ if (arg [0] != '@') ++ { ++ /* its just an ordinary file name */ ++ return file_list_create_node (arg); ++ } ++ { ++ /* its an @ reference */ ++ file_list flist = 0, flist_end = 0; ++ FILE * fp; ++ static char buffer [2048]; ++ ++ /* open the file we get by omitting the leading @ */ ++ if ((fp = fopen (&arg[1], "r")) == 0) ++ { ++ fprintf (stderr, ++ "%s : Couldn't expand @ reference - file (%s) doesn't exist.\n", program_name, &arg [1]); ++ xexit (1); ++ } ++ ++ /* read a line at a time */ ++ while (fgets (buffer, sizeof (buffer) -1, fp)) ++ { ++ char *p , *fname; ++ /* remove trailing whitespace */ ++ ++ /* start from the terminating null */ ++ p = buffer + strlen (buffer); ++ ++ /* step backwards until we hit the beginning or something ++ that isn't a null or whitespace */ ++ for (; p != buffer && (*p == '\0' || isspace (*p)); --p); ++ ++ /* p now points to what ought to be the last character in ++ the string. Terminate it. */ ++ *++p = '\0'; ++ ++ /* put the filename somewhere permanent */ ++ fname = xmalloc (strlen (buffer) + 1); ++ strcpy (fname, buffer); ++ ++ /* add it to the list. Keep track of the start and end ++ of the list */ ++ ++ if (flist_end) ++ { ++ /* this isn't the first node */ ++ flist_end -> next = file_list_create_node (fname); ++ flist_end = flist_end -> next; ++ } ++ else ++ { ++ /* this is the first node */ ++ flist = flist_end = file_list_create_node (fname); ++ } ++ } ++ fclose (fp); ++ return flist; ++ } ++ } ++ ++ /* takes an array of names and returns an array in which ++ @ references have been expanded. */ ++ ++ char **expand_file_list (char **files) ++ { ++ /* the beginning and end of the list we're going to build */ ++ file_list flist = 0, flist_end = 0; ++ ++ int i; ++ if (!files) return 0; ++ /* step through the array, expanding @ references as we find them */ ++ for (i = 0; files[i]; ++i) ++ { ++ if (flist_end) ++ { ++ /* this isn't the first node */ ++ flist_end -> next = get_file_list_from_arg (files[i]); ++ } ++ else ++ { ++ /* this is the first node */ ++ flist = flist_end = get_file_list_from_arg(files[i]); ++ } ++ /* flist_end now points to just before the first node in the ++ newly added list */ ++ ++ /* find end of new list */ ++ while (flist_end -> next) flist_end = flist_end -> next; ++ } ++ { ++ /* count the number of files in the list we've built */ ++ int nfiles = 0; ++ file_list node; ++ for (node = flist; node; node = node -> next) ++ ++nfiles; ++ ++ /* allocate space for an array large enough to contain these files */ ++ files = xmalloc (sizeof (char *) * (nfiles + 1)); ++ ++ /* copy the files from the list to the array */ ++ for (i = 0, node = flist; i != nfiles; node = node -> next, ++i) ++ files [i] = node -> str; ++ ++ files[i] = 0; ++ } ++ return files; ++ } ++ ++ + /* Test STRING for containing a string of digits that form a number + between MIN and MAX. The return value is the number or ERR. */ + +*************** parse_args (argc, argv) +*** 521,528 **** + program_name); + xexit (1); + case 1: /* File name. */ +! lang_add_input_file (optarg, lang_input_file_is_file_enum, + (char *) NULL); + break; + + case OPTION_IGNORE: +--- 692,706 ---- + program_name); + xexit (1); + case 1: /* File name. */ +! { +! file_list flist = get_file_list_from_arg (optarg); +! for (; flist; flist = flist -> next) +! { +! lang_add_input_file (flist -> str, +! lang_input_file_is_file_enum, + (char *) NULL); ++ } ++ } + break; + + case OPTION_IGNORE: +Binary files binutils-2.10.orig/ld/testsuite/ld-versados/t1-1.ro and binutils-2.10/ld/testsuite/ld-versados/t1-1.ro differ +diff -c3rpN binutils-2.10.orig/ld/testsuite/ld-versados/t1.ook binutils-2.10/ld/testsuite/ld-versados/t1.ook +*** binutils-2.10.orig/ld/testsuite/ld-versados/t1.ook Mon May 3 08:29:09 1999 +--- binutils-2.10/ld/testsuite/ld-versados/t1.ook Wed Jun 6 01:43:51 2001 +*************** +*** 1,133 **** +! S00C000074312E6F75742E6F6BC0 +! S118000000000A205341464553544F52452041202020202052BE +! S118001531332E33202020202020205231332E32202020202077 +! S118002A202000B5E86600B5E9B11DA15B9900001F0000000A50 +! S118003F640000003E0000005C00A800BA00F000040001000251 +! S1180054000000000000000000000006004031CF52544C4942D0 +! S1180069434F4E0004E5EC52544C4942434F4E0004E5ED5254F0 +! S118007E4C4942434F4E004031D252544C4942434F4E00000A08 +! S11800937D52544C49425354520010A4A852544C494246494CAD +! S11800A8000200B5E86D0000016000B5E873000002540002006A +! S11800BDB5E937534146455052494E5420000006000200080079 +! S11800D20000034200B5E86E494E4954534146455354000002C9 +! S11800E71800000E00000009020030000000004E56FFD8BA8FDB +! S11800FC63062E4E6100001641FA003243EEFFD8702612D85149 +! S1180111C8FFFC4E5E4E752B57FFF22F3C0000000A6000000259 +! S11801263B6F0002FFF62F2D00382F2D00344E4C4E4A434F50E7 +! S118013B5952494748542054656C65666F6E204142204C204D6B +! S1180150204572696373736F6E2C2031393933004E56FFFCBAB5 +! S11801658F63042E4E61AC202E000C06800000000C4E7656807C +! S118017A4E760280FFFFFFFC4AD56604610000B02D40FFFC200B +! S118018F6C003A2208242C003694814E7604820000000C4E76D2 +! S11801A44AD566046100008EB0826E0C0CAE00000001000C6CEB +! S11801B900000C207C0000000061000060206C003A200866046C +! S11801CE610000762208D2AEFFFC68046100005C2081216E0043 +! S11801E3100004216E000C0008220806810000000C68046100C2 +! S11801F800402D4100142950003A206C003A24086604610000BC +! S118020D3A429042A8000442A800084E5E225F285F508F4EE922 +! S118022200022B5FFFF24E5ED1DF285F2F082B48FFF2D0D04EDA +! S1180237D02B57FFF22F3C0000000E6000FEE22B57FFF22F3CD4 +! S118024C000000106000FED44E56FFFCBA8F63062E4E6100FE2B +! S1180261B82D6C0032FFFC600000122B5FFFF24FEEFFFC42AEF1 +! S1180276FFFC600000824AAEFFFC6700007A206EFFFC200866A7 +! S118028B00000461B622280004B2AE001067000062220802810B +! S11802A0000000034A8166402208226C003A2409B2826E3426B6 +! S11802B510280806840000000C68046100FF76B6846D2026101B +! S11802CA280896844E7604830000000C4E764AD566046100FFCD +! S11802DF5AB6A800086C0000046182206EFFFC20086604610077 +! S11802F4FF522D50FFFC60804AAEFFFC6700002C206EFFFC2019 +! S11803090866046100FF38226E000C22A80008220806810000B2 +! S118031E000C68046100FF142D4100146000000C206E000C4210 +! S11803339042AE00144E5E205F285F508F4ED04FEDFF00707F44 +! S1180348204F425851C8FFFC486DFF081F3C00043F3C00019F49 +! S118035DFC0000000C224F45FA04FE22DA22DA22DA266C00281F +! S11803722F0C286C002C4EAB0068486DFFB8486DFFB42F0C20E7 +! S11803876C0000286C00044E909FFC000000522F2DFFC62F0C32 +! S118039C206C0008286C000C4E907052266C00204EAB001E416A +! S11803B1FA04BE266C00204EAB007E266C00204EAB009E41EDD7 +! S11803C6FFBA266C00204EAB007E266C00204EAB009E1F3C0098 +! S11803DB283F3C0001266C00204EAB009E9FFC00000052302DD2 +! S11803F0FFCA48C02F002F0C206C0008286C000C4E90705226BF +! S11804056C00204EAB001E266C00204EAB009E41FA045E266CC3 +! S118041A00204EAB007E266C00204EAB009E41EDFF9E70162672 +! S118042F6C00204EAB00CA600000162B5FFFF24FEDFF002B7C92 +! S118044400000001FFB4600003E4486DFF089FFC0000005220DB +! S11804594F43EDFF9E3019725092406F024241D04130C06F0A23 +! S118046E5340E24030D951C8FFFC9FFC00000052224F45FA0303 +! S1180483F632DA266C00282F0C286C002C4EAB0050FFAA486D02 +! S1180498FF08266C00282F0C286C002C4EAB00A0FF9642ADFF73 +! S11804AD002B6C0032FF04487A03C43F3CFFFF486DFF08266C1A +! S11804C200282F0C286C002C4EAB00C0FF70486DFF08266C0088 +! S11804D7282F0C286C002C4EAB00A4FF5C600000782B5FFFF29E +! S11804EC4FEDFF00487A03BA3F3CFFFF486DFF08266C00282F1F +! S11805010C286C002C4EAB00C0FF349FFC00000052206DFF04AC +! S118051620082F002F0C206C0010286C00144E902F0F3F3CFF60 +! S118052BFF486DFF08266C00282F0C286C002C4EAB00C0FF008F +! S1180540DFFC00000052486DFF08266C00282F0C286C002C4EB6 +! S1180555AB00A4FEE6600001F0206DFF042008660261804A902E +! S118056A6700016A22100281000000034A81664A2210242C00F1 +! S118057F3604820000000C68046100FCAEB2826E3422102408F0 +! S118059406820000000C68046100FC9AB2826D202210240892A6 +! S11805A9824E7604810000000C4E764AD566046100FC7EB2A8E0 +! S11805BE00086C0000066100FF22206DFF04200866046100FFA6 +! S11805D31622280008D2ADFF0068046100FC582B41FF009FFC02 +! S11805E80000005224082F022F0C206C0010286C00144E902FBF +! S11805FD0F3F3C000C486DFF08266C00282F0C286C002C4EABE5 +! S118061200C0FE2ADFFC00000052206DFF04200866046100FE39 +! S1180627C22F2800043F3C000C486DFF08266C00282F0C286CD1 +! S118063C002C4EAB00BCFDFC206DFF04200866046100FE9A2F81 +! S11806512800083F3C000C486DFF08266C00282F0C286C002C68 +! S11806664EAB00BCFDD49FFC00000052206DFF04200866046185 +! S118067B00FE6C22102F012F0C206C0010286C00144E902F0FFF +! S11806903F3C000C486DFF08266C00282F0C286C002C4EAB0060 +! S11806A5C0FD98DFFC00000052486DFF08266C00282F0C286C75 +! S11806BA002C4EAB00A4FD7E206DFF04200866046100FE1C2B1B +! S11806CF50FF046000FE8A206C003AB1EDFF046700006C487ADB +! S11806E401E83F3CFFFF486DFF08266C00282F0C286C002C4EDC +! S11806F9AB00C0FD429FFC00000052206DFF0420082F002F0C2F +! S118070E206C0010286C00144E902F0F3F3CFFFF486DFF082617 +! S11807236C00282F0C286C002C4EAB00C0FD0EDFFC000000523D +! S1180738486DFF08266C00282F0C286C002C4EAB00A4FCF44862 +! S118074D7A01983F3CFFFF486DFF08266C00282F0C286C002C96 +! S11807624EAB00C0FCD8486DFF08266C00282F0C286C002C4E32 +! S1180777AB00A4FCC4487A016A3F3CFFFF486DFF08266C00283E +! S118078C2F0C286C002C4EAB00C0FCA8486DFF08266C00282F57 +! S11807A10C286C002C4EAB00A4FC94206DFF0420080680000008 +! S11807B600184E76222C003692804E760281FFFFFFFC4AD566F3 +! S11807CB046100FA6A2F013F3C000C486DFF08266C00282F0CE4 +! S11807E0286C002C4EAB00BCFC562F2DFF003F3C000C486DFFA3 +! S11807F508266C00282F0C286C002C4EAB00BCFC3A486DFF0887 +! S118080A266C00282F0C286C002C4EAB00A4FC26486DFF081F86 +! S118081F3C0001266C00282F0C286C002C4EAB0054486DFFB815 +! S1180834486DFFB42F0C206C0018286C001C4E90486DFF0842D8 +! S118084927266C00282F0C286C002C4EAB005442A72F2D0038F0 +! S118085E2F2D00344E4A000A4631202020202020202000023A9C +! S11808733A0002293A0000003020202020204164647265737337 +! S1180888202020204964656E746974792020202020202020533A +! S118089D697A6520202020202020204E657874001D496E7661B0 +! S11808B26C6964207365676D656E74207374617274696E672035 +! S11808C761743A202000185365676D656E74206C69737420637F +! S11808DC6F727275707465643A2000000018202020417661693B +! S11808F16C61626C652020202020202020557365644FEDFFF230 +! S11809069FFC0000000A6100015641EC003020DF20DF30DF20F1 +! S118091B2C003256804E760280FFFFFFFC4AD566046100F90A63 +! S1180930294000322940003A6000003E2B5FFFF24FEDFFF2200A +! S11809452C003256804E760280FFFFFFFC4AD566046100F8E064 +! S118095A2940003A206C003A220866046100F8DE429042A80094 +! S118096F0442A800086000009E4A2C00306700001A206C003A8E +! S11809842008660261B2429042A8000442A800086000007E2007 +! S11809996C003A20086602619A4A906700006E221002810000B0 +! S11809AE00034A81664A2210242C003604820000000C6804619B +! S11809C300F874B2826E342210240806820000000C680461001A +! S11809D8F860B2826D202210240892824E7604810000000C4ED8 +! S11809ED764AD566046100F844B2A800086C0000066100FF3CE5 +! S1180A02206C003A200866046100FF302950003A608442A72F44 +! S1180A172D00382F2D00344E4A4E560000518F42A71F3C000E63 +! S1180A2C4267487A0012426742272F3C00B5E86E4E49000E50B7 +! S1180A418F4E5E205F285F4EE80002207C0000000060042B5F99 +! S1180A56FFF24E5ED1DF285F2F08D0D04ED043FA0004D3FC00AE +! S1180A6B02704E2F49000A43FA0004D3FC000000402F49000662 +! S1180A8041FA0004D1FCFFFFF57A202800566600002222099201 +! S1180A95882141005642812448D25AB5C96DFA4441D368005AAE +! S1110AAA1F7C000100044E75422F00044E759F +! S9030000FC +--- 1,133 ---- +! S00C000074312E6F75742E6F6BC0 +! S118000000000A205341464553544F52452041202020202052BE +! S118001531332E33202020202020205231332E32202020202077 +! S118002A202000B5E86600B5E9B11DA15B9900001F0000000A50 +! S118003F640000003E0000005C00A800BA00F000040001000251 +! S1180054000000000000000000000006004031CF52544C4942D0 +! S1180069434F4E0004E5EC52544C4942434F4E0004E5ED5254F0 +! S118007E4C4942434F4E004031D252544C4942434F4E00000A08 +! S11800937D52544C49425354520010A4A852544C494246494CAD +! S11800A8000200B5E86D0000016000B5E873000002540002006A +! S11800BDB5E937534146455052494E5420000006000200080079 +! S11800D20000034200B5E86E494E4954534146455354000002C9 +! S11800E71800000E00000009020030000000004E56FFD8BA8FDB +! S11800FC63062E4E6100001641FA003243EEFFD8702612D85149 +! S1180111C8FFFC4E5E4E752B57FFF22F3C0000000A6000000259 +! S11801263B6F0002FFF62F2D00382F2D00344E4C4E4A434F50E7 +! S118013B5952494748542054656C65666F6E204142204C204D6B +! S1180150204572696373736F6E2C2031393933004E56FFFCBAB5 +! S11801658F63042E4E61AC202E000C06800000000C4E7656807C +! S118017A4E760280FFFFFFFC4AD56604610000B02D40FFFC200B +! S118018F6C003A2208242C003694814E7604820000000C4E76D2 +! S11801A44AD566046100008EB0826E0C0CAE00000001000C6CEB +! S11801B900000C207C0000000061000060206C003A200866046C +! S11801CE610000762208D2AEFFFC68046100005C2081216E0043 +! S11801E3100004216E000C0008220806810000000C68046100C2 +! S11801F800402D4100142950003A206C003A24086604610000BC +! S118020D3A429042A8000442A800084E5E225F285F508F4EE922 +! S118022200022B5FFFF24E5ED1DF285F2F082B48FFF2D0D04EDA +! S1180237D02B57FFF22F3C0000000E6000FEE22B57FFF22F3CD4 +! S118024C000000106000FED44E56FFFCBA8F63062E4E6100FE2B +! S1180261B82D6C0032FFFC600000122B5FFFF24FEEFFFC42AEF1 +! S1180276FFFC600000824AAEFFFC6700007A206EFFFC200866A7 +! S118028B00000461B622280004B2AE001067000062220802810B +! S11802A0000000034A8166402208226C003A2409B2826E3426B6 +! S11802B510280806840000000C68046100FF76B6846D2026101B +! S11802CA280896844E7604830000000C4E764AD566046100FFCD +! S11802DF5AB6A800086C0000046182206EFFFC20086604610077 +! S11802F4FF522D50FFFC60804AAEFFFC6700002C206EFFFC2019 +! S11803090866046100FF38226E000C22A80008220806810000B2 +! S118031E000C68046100FF142D4100146000000C206E000C4210 +! S11803339042AE00144E5E205F285F508F4ED04FEDFF00707F44 +! S1180348204F425851C8FFFC486DFF081F3C00043F3C00019F49 +! S118035DFC0000000C224F45FA04FE22DA22DA22DA266C00281F +! S11803722F0C286C002C4EAB0068486DFFB8486DFFB42F0C20E7 +! S11803876C0000286C00044E909FFC000000522F2DFFC62F0C32 +! S118039C206C0008286C000C4E907052266C00204EAB001E416A +! S11803B1FA04BE266C00204EAB007E266C00204EAB009E41EDD7 +! S11803C6FFBA266C00204EAB007E266C00204EAB009E1F3C0098 +! S11803DB283F3C0001266C00204EAB009E9FFC00000052302DD2 +! S11803F0FFCA48C02F002F0C206C0008286C000C4E90705226BF +! S11804056C00204EAB001E266C00204EAB009E41FA045E266CC3 +! S118041A00204EAB007E266C00204EAB009E41EDFF9E70162672 +! S118042F6C00204EAB00CA600000162B5FFFF24FEDFF002B7C92 +! S118044400000001FFB4600003E4486DFF089FFC0000005220DB +! S11804594F43EDFF9E3019725092406F024241D04130C06F0A23 +! S118046E5340E24030D951C8FFFC9FFC00000052224F45FA0303 +! S1180483F632DA266C00282F0C286C002C4EAB0050FFAA486D02 +! S1180498FF08266C00282F0C286C002C4EAB00A0FF9642ADFF73 +! S11804AD002B6C0032FF04487A03C43F3CFFFF486DFF08266C1A +! S11804C200282F0C286C002C4EAB00C0FF70486DFF08266C0088 +! S11804D7282F0C286C002C4EAB00A4FF5C600000782B5FFFF29E +! S11804EC4FEDFF00487A03BA3F3CFFFF486DFF08266C00282F1F +! S11805010C286C002C4EAB00C0FF349FFC00000052206DFF04AC +! S118051620082F002F0C206C0010286C00144E902F0F3F3CFF60 +! S118052BFF486DFF08266C00282F0C286C002C4EAB00C0FF008F +! S1180540DFFC00000052486DFF08266C00282F0C286C002C4EB6 +! S1180555AB00A4FEE6600001F0206DFF042008660261804A902E +! S118056A6700016A22100281000000034A81664A2210242C00F1 +! S118057F3604820000000C68046100FCAEB2826E3422102408F0 +! S118059406820000000C68046100FC9AB2826D202210240892A6 +! S11805A9824E7604810000000C4E764AD566046100FC7EB2A8E0 +! S11805BE00086C0000066100FF22206DFF04200866046100FFA6 +! S11805D31622280008D2ADFF0068046100FC582B41FF009FFC02 +! S11805E80000005224082F022F0C206C0010286C00144E902FBF +! S11805FD0F3F3C000C486DFF08266C00282F0C286C002C4EABE5 +! S118061200C0FE2ADFFC00000052206DFF04200866046100FE39 +! S1180627C22F2800043F3C000C486DFF08266C00282F0C286CD1 +! S118063C002C4EAB00BCFDFC206DFF04200866046100FE9A2F81 +! S11806512800083F3C000C486DFF08266C00282F0C286C002C68 +! S11806664EAB00BCFDD49FFC00000052206DFF04200866046185 +! S118067B00FE6C22102F012F0C206C0010286C00144E902F0FFF +! S11806903F3C000C486DFF08266C00282F0C286C002C4EAB0060 +! S11806A5C0FD98DFFC00000052486DFF08266C00282F0C286C75 +! S11806BA002C4EAB00A4FD7E206DFF04200866046100FE1C2B1B +! S11806CF50FF046000FE8A206C003AB1EDFF046700006C487ADB +! S11806E401E83F3CFFFF486DFF08266C00282F0C286C002C4EDC +! S11806F9AB00C0FD429FFC00000052206DFF0420082F002F0C2F +! S118070E206C0010286C00144E902F0F3F3CFFFF486DFF082617 +! S11807236C00282F0C286C002C4EAB00C0FD0EDFFC000000523D +! S1180738486DFF08266C00282F0C286C002C4EAB00A4FCF44862 +! S118074D7A01983F3CFFFF486DFF08266C00282F0C286C002C96 +! S11807624EAB00C0FCD8486DFF08266C00282F0C286C002C4E32 +! S1180777AB00A4FCC4487A016A3F3CFFFF486DFF08266C00283E +! S118078C2F0C286C002C4EAB00C0FCA8486DFF08266C00282F57 +! S11807A10C286C002C4EAB00A4FC94206DFF0420080680000008 +! S11807B600184E76222C003692804E760281FFFFFFFC4AD566F3 +! S11807CB046100FA6A2F013F3C000C486DFF08266C00282F0CE4 +! S11807E0286C002C4EAB00BCFC562F2DFF003F3C000C486DFFA3 +! S11807F508266C00282F0C286C002C4EAB00BCFC3A486DFF0887 +! S118080A266C00282F0C286C002C4EAB00A4FC26486DFF081F86 +! S118081F3C0001266C00282F0C286C002C4EAB0054486DFFB815 +! S1180834486DFFB42F0C206C0018286C001C4E90486DFF0842D8 +! S118084927266C00282F0C286C002C4EAB005442A72F2D0038F0 +! S118085E2F2D00344E4A000A4631202020202020202000023A9C +! S11808733A0002293A0000003020202020204164647265737337 +! S1180888202020204964656E746974792020202020202020533A +! S118089D697A6520202020202020204E657874001D496E7661B0 +! S11808B26C6964207365676D656E74207374617274696E672035 +! S11808C761743A202000185365676D656E74206C69737420637F +! S11808DC6F727275707465643A2000000018202020417661693B +! S11808F16C61626C652020202020202020557365644FEDFFF230 +! S11809069FFC0000000A6100015641EC003020DF20DF30DF20F1 +! S118091B2C003256804E760280FFFFFFFC4AD566046100F90A63 +! S1180930294000322940003A6000003E2B5FFFF24FEDFFF2200A +! S11809452C003256804E760280FFFFFFFC4AD566046100F8E064 +! S118095A2940003A206C003A220866046100F8DE429042A80094 +! S118096F0442A800086000009E4A2C00306700001A206C003A8E +! S11809842008660261B2429042A8000442A800086000007E2007 +! S11809996C003A20086602619A4A906700006E221002810000B0 +! S11809AE00034A81664A2210242C003604820000000C6804619B +! S11809C300F874B2826E342210240806820000000C680461001A +! S11809D8F860B2826D202210240892824E7604810000000C4ED8 +! S11809ED764AD566046100F844B2A800086C0000066100FF3CE5 +! S1180A02206C003A200866046100FF302950003A608442A72F44 +! S1180A172D00382F2D00344E4A4E560000518F42A71F3C000E63 +! S1180A2C4267487A0012426742272F3C00B5E86E4E49000E50B7 +! S1180A418F4E5E205F285F4EE80002207C0000000060042B5F99 +! S1180A56FFF24E5ED1DF285F2F08D0D04ED043FA0004D3FC00AE +! S1180A6B02704E2F49000A43FA0004D3FC000000402F49000662 +! S1180A8041FA0004D1FCFFFFF57A202800566600002222099201 +! S1180A95882141005642812448D25AB5C96DFA4441D368005AAE +! S1110AAA1F7C000100044E75422F00044E759F +! S9030000FC +Binary files binutils-2.10.orig/ld/testsuite/ld-versados/t2-3.ro and binutils-2.10/ld/testsuite/ld-versados/t2-3.ro differ +diff -c3rpN binutils-2.10.orig/ld/testsuite/ld-versados/t2.ook binutils-2.10/ld/testsuite/ld-versados/t2.ook +*** binutils-2.10.orig/ld/testsuite/ld-versados/t2.ook Mon May 3 08:29:09 1999 +--- binutils-2.10/ld/testsuite/ld-versados/t2.ook Wed Jun 6 01:43:51 2001 +*************** +*** 1,99 **** +! S0120000696E6974746573745F6570632E7372CF +! S118000000000000494E495454455354202050413035202052AB +! S118001531332E33202020202020205231332E32202020202077 +! S118002A202000934B5B00B5E6C11B089DD600005400000005F9 +! S118003F5A00000048005C00A60000010A0126000400010002CB +! S1180054009000000000000000000002004020200000494F5F8A +! S11800695245534552564152544C4942434F4E0040484501003B +! S118007E505F414C4C202020202052544C4942434F4E010000E3 +! S118009300009C01000000000000085345504152415445000852 +! S11800A80008004031CF52544C4942434F4E0004E5EC52544CD3 +! S11800BD4942434F4E00B5E86D5341464553544F5200004F28D7 +! S11800D253595354454D494D00B5E8735341464553544F520023 +! S11800E74031D252544C4942434F4E00000A7D52544C49425309 +! S11800FC54520010A4A852544C494246494C000100B5E6C049EC +! S11801114E495454455354202000000616020008000000023210 +! S11801260048000000004E56FFF0BA8F63062E4E610000BC4159 +! S118013BFA00F443EEFFF032D82D7C00000001FFFC206E000858 +! S118015020086604610000BA222EFFFC53814A816C046100002E +! S11801659E2248D3E9FFFC41F01800B3C863EE4A1066000006E7 +! S118017A6000006241EEFFF0266C00384EAB007E206E00082095 +! S118018F0866046100007C222EFFFC53814A816C0461000060ED +! S11801A42248D3E9FFFC41F01800B3C863EE1F103F3C0001263B +! S11801B96C00384EAB009E41EEFFF0700C266C00384EAB00CACB +! S11801CE52AEFFFC0CAE0000000AFFFC6F00FF7041EEFFF0431F +! S11801E3EE000C22D822D822D84E5E205F588F4ED02B57FFF278 +! S11801F82F3C0000000A6000001E2B57FFF22F3C0000000F60AE +! S118020D0000102B57FFF22F3C00000010600000023B6F0002CC +! S1180222FFF62F2D00382F2D00344E4C4E4A00004FEDFEEA2034 +! S11802373C0000008A204F425851C8FFFC486DFEEA1F3C0004CF +! S118024C3F3C00019FFC0000000C224F45FA02D422DA22DA22D6 +! S1180261DA266C00402F0C286C00444EAB0068486DFFB8486D43 +! S1180276FFB42F0C206C0008286C000C4E909FFC000000522F53 +! S118028B2DFFC62F0C206C0010286C00144E907052266C00387F +! S11802A04EAB001E41FA0294266C00384EAB007E266C00384E04 +! S11802B5AB009E41EDFFBA266C00384EAB007E266C00384EABFC +! S11802CA009E1F3C00283F3C0001266C00384EAB009E9FFC0082 +! S11802DF000052302DFFCA48C02F002F0C206C0010286C0014D8 +! S11802F44E907052266C00384EAB001E266C00384EAB009E41CE +! S1180309FA0234266C00384EAB007E266C00384EAB009E41EDDB +! S118031EFF807016266C00384EAB00CA9FFC0000000E61000228 +! S11803332841EDFF9E20DF20DF20DF30DF4A2DFF9E6700003AFD +! S1180348598F2F2DFFA02F2DFFA82F0C206C0018286C001C4ED9 +! S118035D9001B82B5FFF9A2F2DFF9A2F2DFFA42F2DFFA82F0CE9 +! S1180372206C0020286C00244E9060000034598F2F2DFFA04871 +! S11803876DFFA82F0C206C0028286C002C4E902B5FFF962F2D41 +! S118039CFFA42F2DFF962F2DFFA82F0C206C0020286C00244EC4 +! S11803B190486DFEEA9FFC00000052204F43EDFF8030197250F0 +! S11803C692406F024241D04130C06F0A5340E24030D951C8FF08 +! S11803DBFC9FFC00000052224F45FA015C32DA266C00402F0CFA +! S11803F0286C00444EAB0050012C486DFEEA266C00402F0C28D4 +! S11804056C00444EAB00A00118487A01343F3CFFFF486DFEEA6F +! S118041A266C00402F0C286C00444EAB00C000FC486DFEEA266C +! S118042F6C00402F0C286C00444EAB00A400E842ADFFB02B7C2B +! S118044400000001FFAC598F2F2DFFAC6100017E2B5FFFB02BC0 +! S118045940FFB02F2DFFAC3F3C000A486DFEEA266C00402F0C65 +! S118046E286C00444EAB00BC00AE9FFC0000000C2F2DFFB06127 +! S118048300FCA82F0F3F3C000A486DFEEA266C00402F0C286CBB +! S118049800444EAB00C00086DFFC0000000C486DFEEA266C00B2 +! S11804AD402F0C286C00444EAB00A4006C52ADFFAC0CAD000077 +! S11804C2000AFFAC6F82486DFEEA1F3C0001266C00402F0C284D +! S11804D76C00444EAB0054486DFFB8486DFFB42F0C206C003044 +! S11804EC286C00344E90486DFEEA4227266C00402F0C286C00AA +! S1180501444EAB005442A72F2D00382F2D00344E4A2B57FFF238 +! S11805162F3C0000000C6000FD002B57FFF22F3C000000646056 +! S118052B00FCF2000A4631202020202020202000023A3A0002D0 +! S1180540293A000000142020202020204361736520202020521D +! S11805556573756C7441FA0004D1FCFFFFFAA02028003C43FAFB +! S118056A0004D3FC000001D645FA0004D5FC0000025E260A58D2 +! S118057F8AD0885580222800566600002E2408265AD5B0B8008F +! S1180594B5C06DF6220992882141005642812648D25BB7C96D2E +! S11805A9FA4441D368005A123C00016000000442411F4100048B +! S11805BE2F68003400062F49000A96892F43000E4E754E56FFCC +! S11805D3F0202E000847FA0004D7FC000001A6220B41FA00049E +! S11805E8D1FC000001B62D58FFF02D58FFF42D58FFF82D50FF92 +! S11805FDFC53807408B4806500012C41FA0004D1FC0000000EBA +! S1180612D080303008004EFB00020012002200320042004800DC +! S118062758006C00A000DC41FA0004D1FC0000011820106000C5 +! S118063C010247FA0004D7FC0000010C200B600000F241FA00C5 +! S118065104D1FC000001102010600000E22001600000DC47FA9E +! S11806660004D7FC00000120200B600000CC43FA0004D3FC001C +! S118067B0000FA41E9000C2010600000B8242EFFF447FA000464 +! S1180690D7FC000000FEB48B6600001247FA0004D7FC000001B0 +! S11806A514200B6000009447FA0004D7FC0000010A200B60005B +! S11806BA008441FA0004D1FC0000008A205047FA0004D7FC0085 +! S11806CF000082B1CB6600001247FA0004D7FC000000E0200B79 +! S11806E46000005847FA0004D7FC000000D2200B600000484147 +! S11806F9FA0004D1FC0000004E43FA0004D3FC0000003EB3D0FE +! S118070E6600001247FA0004D7FC000000AE200B6000001E47A4 +! S1180723FA0004D7FC000000A6200B6000000E47FA0004D7FC95 +! S118073800000098200B4E5E4E740004000053756E65000000D8 +! S118074D0007464F74746F00000000000A0000000C50656C6CFD +! S118076265000000075E5374696E61004B6172696E00000000C0 +! S11807770500000768000000030000076E5075747465004B61BF +! S118078C6C6C65005374696E613100004B6172696E31000000C1 +! S11807A1000033000007900000001F0000079878797A7A0000D2 +! S11807B64F6C6C650000370038005065746572005376756C6C19 +! S11807CB6F00003900536C75740000000000000000074C000072 +! S11507E007640000077800000780000007A4000007AC34 +! S9030000FC +--- 1,99 ---- +! S0120000696E6974746573745F6570632E7372CF +! S118000000000000494E495454455354202050413035202052AB +! S118001531332E33202020202020205231332E32202020202077 +! S118002A202000934B5B00B5E6C11B089DD600005400000005F9 +! S118003F5A00000048005C00A60000010A0126000400010002CB +! S1180054009000000000000000000002004020200000494F5F8A +! S11800695245534552564152544C4942434F4E0040484501003B +! S118007E505F414C4C202020202052544C4942434F4E010000E3 +! S118009300009C01000000000000085345504152415445000852 +! S11800A80008004031CF52544C4942434F4E0004E5EC52544CD3 +! S11800BD4942434F4E00B5E86D5341464553544F5200004F28D7 +! S11800D253595354454D494D00B5E8735341464553544F520023 +! S11800E74031D252544C4942434F4E00000A7D52544C49425309 +! S11800FC54520010A4A852544C494246494C000100B5E6C049EC +! S11801114E495454455354202000000616020008000000023210 +! S11801260048000000004E56FFF0BA8F63062E4E610000BC4159 +! S118013BFA00F443EEFFF032D82D7C00000001FFFC206E000858 +! S118015020086604610000BA222EFFFC53814A816C046100002E +! S11801659E2248D3E9FFFC41F01800B3C863EE4A1066000006E7 +! S118017A6000006241EEFFF0266C00384EAB007E206E00082095 +! S118018F0866046100007C222EFFFC53814A816C0461000060ED +! S11801A42248D3E9FFFC41F01800B3C863EE1F103F3C0001263B +! S11801B96C00384EAB009E41EEFFF0700C266C00384EAB00CACB +! S11801CE52AEFFFC0CAE0000000AFFFC6F00FF7041EEFFF0431F +! S11801E3EE000C22D822D822D84E5E205F588F4ED02B57FFF278 +! S11801F82F3C0000000A6000001E2B57FFF22F3C0000000F60AE +! S118020D0000102B57FFF22F3C00000010600000023B6F0002CC +! S1180222FFF62F2D00382F2D00344E4C4E4A00004FEDFEEA2034 +! S11802373C0000008A204F425851C8FFFC486DFEEA1F3C0004CF +! S118024C3F3C00019FFC0000000C224F45FA02D422DA22DA22D6 +! S1180261DA266C00402F0C286C00444EAB0068486DFFB8486D43 +! S1180276FFB42F0C206C0008286C000C4E909FFC000000522F53 +! S118028B2DFFC62F0C206C0010286C00144E907052266C00387F +! S11802A04EAB001E41FA0294266C00384EAB007E266C00384E04 +! S11802B5AB009E41EDFFBA266C00384EAB007E266C00384EABFC +! S11802CA009E1F3C00283F3C0001266C00384EAB009E9FFC0082 +! S11802DF000052302DFFCA48C02F002F0C206C0010286C0014D8 +! S11802F44E907052266C00384EAB001E266C00384EAB009E41CE +! S1180309FA0234266C00384EAB007E266C00384EAB009E41EDDB +! S118031EFF807016266C00384EAB00CA9FFC0000000E61000228 +! S11803332841EDFF9E20DF20DF20DF30DF4A2DFF9E6700003AFD +! S1180348598F2F2DFFA02F2DFFA82F0C206C0018286C001C4ED9 +! S118035D9001B82B5FFF9A2F2DFF9A2F2DFFA42F2DFFA82F0CE9 +! S1180372206C0020286C00244E9060000034598F2F2DFFA04871 +! S11803876DFFA82F0C206C0028286C002C4E902B5FFF962F2D41 +! S118039CFFA42F2DFF962F2DFFA82F0C206C0020286C00244EC4 +! S11803B190486DFEEA9FFC00000052204F43EDFF8030197250F0 +! S11803C692406F024241D04130C06F0A5340E24030D951C8FF08 +! S11803DBFC9FFC00000052224F45FA015C32DA266C00402F0CFA +! S11803F0286C00444EAB0050012C486DFEEA266C00402F0C28D4 +! S11804056C00444EAB00A00118487A01343F3CFFFF486DFEEA6F +! S118041A266C00402F0C286C00444EAB00C000FC486DFEEA266C +! S118042F6C00402F0C286C00444EAB00A400E842ADFFB02B7C2B +! S118044400000001FFAC598F2F2DFFAC6100017E2B5FFFB02BC0 +! S118045940FFB02F2DFFAC3F3C000A486DFEEA266C00402F0C65 +! S118046E286C00444EAB00BC00AE9FFC0000000C2F2DFFB06127 +! S118048300FCA82F0F3F3C000A486DFEEA266C00402F0C286CBB +! S118049800444EAB00C00086DFFC0000000C486DFEEA266C00B2 +! S11804AD402F0C286C00444EAB00A4006C52ADFFAC0CAD000077 +! S11804C2000AFFAC6F82486DFEEA1F3C0001266C00402F0C284D +! S11804D76C00444EAB0054486DFFB8486DFFB42F0C206C003044 +! S11804EC286C00344E90486DFEEA4227266C00402F0C286C00AA +! S1180501444EAB005442A72F2D00382F2D00344E4A2B57FFF238 +! S11805162F3C0000000C6000FD002B57FFF22F3C000000646056 +! S118052B00FCF2000A4631202020202020202000023A3A0002D0 +! S1180540293A000000142020202020204361736520202020521D +! S11805556573756C7441FA0004D1FCFFFFFAA02028003C43FAFB +! S118056A0004D3FC000001D645FA0004D5FC0000025E260A58D2 +! S118057F8AD0885580222800566600002E2408265AD5B0B8008F +! S1180594B5C06DF6220992882141005642812648D25BB7C96D2E +! S11805A9FA4441D368005A123C00016000000442411F4100048B +! S11805BE2F68003400062F49000A96892F43000E4E754E56FFCC +! S11805D3F0202E000847FA0004D7FC000001A6220B41FA00049E +! S11805E8D1FC000001B62D58FFF02D58FFF42D58FFF82D50FF92 +! S11805FDFC53807408B4806500012C41FA0004D1FC0000000EBA +! S1180612D080303008004EFB00020012002200320042004800DC +! S118062758006C00A000DC41FA0004D1FC0000011820106000C5 +! S118063C010247FA0004D7FC0000010C200B600000F241FA00C5 +! S118065104D1FC000001102010600000E22001600000DC47FA9E +! S11806660004D7FC00000120200B600000CC43FA0004D3FC001C +! S118067B0000FA41E9000C2010600000B8242EFFF447FA000464 +! S1180690D7FC000000FEB48B6600001247FA0004D7FC000001B0 +! S11806A514200B6000009447FA0004D7FC0000010A200B60005B +! S11806BA008441FA0004D1FC0000008A205047FA0004D7FC0085 +! S11806CF000082B1CB6600001247FA0004D7FC000000E0200B79 +! S11806E46000005847FA0004D7FC000000D2200B600000484147 +! S11806F9FA0004D1FC0000004E43FA0004D3FC0000003EB3D0FE +! S118070E6600001247FA0004D7FC000000AE200B6000001E47A4 +! S1180723FA0004D7FC000000A6200B6000000E47FA0004D7FC95 +! S118073800000098200B4E5E4E740004000053756E65000000D8 +! S118074D0007464F74746F00000000000A0000000C50656C6CFD +! S118076265000000075E5374696E61004B6172696E00000000C0 +! S11807770500000768000000030000076E5075747465004B61BF +! S118078C6C6C65005374696E613100004B6172696E31000000C1 +! S11807A1000033000007900000001F0000079878797A7A0000D2 +! S11807B64F6C6C650000370038005065746572005376756C6C19 +! S11807CB6F00003900536C75740000000000000000074C000072 +! S11507E007640000077800000780000007A4000007AC34 +! S9030000FC +diff -c3rpN binutils-2.10.orig/ltmain.sh binutils-2.10/ltmain.sh +*** binutils-2.10.orig/ltmain.sh Sun Feb 27 16:46:19 2000 +--- binutils-2.10/ltmain.sh Wed Jun 6 01:44:01 2001 +*************** static const void *lt_preloaded_setup() +*** 2639,2645 **** + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. +! *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; +--- 2639,2645 ---- + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. +! *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; diff --git a/SOURCES/vx-ppc-gcc.2.95.3.diff b/SOURCES/vx-ppc-gcc.2.95.3.diff new file mode 100755 index 0000000..1c5c8f9 --- /dev/null +++ b/SOURCES/vx-ppc-gcc.2.95.3.diff @@ -0,0 +1,25289 @@ +diff -c3rpN gcc-2.95.3.orig/gcc/ChangeLog gcc-2.95.4/gcc/ChangeLog +*** gcc-2.95.3.orig/gcc/ChangeLog Fri Mar 16 12:52:02 2001 +--- gcc-2.95.4/gcc/ChangeLog Wed Jun 6 01:36:07 2001 +*************** +*** 1,3 **** +--- 1,129 ---- ++ 2001-04-06 Bernd Schmidt ++ ++ 2000-10-17 Franz Sirl ++ * function.c (locate_and_pad_parm): Don't align stack unconditionally. ++ ++ Thu Oct 28 10:20:02 1999 Geoffrey Keating ++ * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG ++ of the function return register into a plain REG until ++ after function inlining is done. ++ ++ 2001-04-04 Bernd Schmidt ++ ++ Fri Nov 5 10:07:25 1999 Nick Clifton ++ * function.c (is_addressof): New function. Returns true if ++ the given piece of RTL is an ADDRESSOF. ++ (purge_addressof_1): Make boolean. Return false if the ++ ADDRESSOFs could not be purged. ++ (purge_addressof): If ADDRESSOFs could not be purged from the ++ notes attached to an insn, remove the offending note(s), ++ unless they are attached to a libcall. ++ ++ 2001-04-03 Bernd Schmidt ++ ++ 2001-03-16 Jakub Jelinek ++ * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined. ++ Remove ia32 linux PIC kludge and move it... ++ * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here. ++ ++ * loop.c (combine_movables): Restrict combinations of constants with ++ different modes so that we don't introduce SUBREGs into memory ++ addresses. ++ ++ 2001-02-02 Philip Blundell ++ * arm/linux-elf.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define. ++ (UNIQUE_SECTION): Define. ++ ++ Wed Aug 25 15:27:22 1999 Gavin Romig-Koch ++ * combine.c (nonzero_bits) : Allow single-ly set registers to be ++ anywere in the function only if they are pseudos and set before ++ being used (not live at the start of the function). ++ (num_sign_bit_copies) : Same. ++ (get_last_value_validate) : Same. ++ (get_last_value) : Same. ++ ++ Fri Mar 3 12:49:28 2000 J"orn Rennecke ++ * reload1.c (reload_combine_note_use): Handle return register USEs. ++ REG case: Handle multi-hard-register hard regs. ++ ++ 2001-03-30 Bernd Schmidt ++ ++ * jump.c (delete_barrier_successors): Fix error in last change. ++ ++ * reload1.c (delete_output_reload): Call eliminate_regs on substed. ++ (reload_as_needed): Call update_eliminable_offsets a bit later. ++ ++ * final.c (cleanup_subreg_operands): Also clean up inside MEMs. ++ ++ Mon Oct 4 02:31:20 1999 Mark Mitchell ++ * mips.md: Define conditional move patterns for floating point ++ operands and DI mode conditions. ++ ++ 2000-11-25 Jakub Jelinek ++ * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint. ++ Handle CONST_INT as second argument. ++ ++ 2001-03-28 Bernd Schmidt ++ ++ * flow.c (propagate_block): When trying to delete a case vector, cope ++ if its label has LABEL_PRESERVE_P set. ++ * jump.c (jump_optimize_1): Move call to delete_barrier_successors to ++ a point where JUMP_LABELS and LABEL_NUSES are set up properly. ++ (delete_barrier_successors): If deleting a table jump, delete the case ++ vector as well. ++ * varasm.c (force_const_mem): If we have a label, set LABEL_PRESERVE_P ++ so it won't get deleted. ++ ++ Tue Mar 20 18:31:48 2001 Kaveh R. Ghazi ++ ++ 1999-11-30 Kaveh R. Ghazi ++ * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an ++ integer constant does not match the traditional type, limit the ++ warnings to cases where the base of the type is ten. ++ ++ * invoke.texi (-Wtraditional): Document it. ++ ++ 2001-03-20 David O'Brien ++ ++ from 2000-07-12 Zack Weinberg ++ * final.c (profile_function): Do not emit profile counters in ++ the data section, if NO_PROFILE_COUNTERS is defined. ++ * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for ++ FUNCTION_PROFILER. ++ ++ from 2000-10-02 David O'Brien ++ * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define. ++ ++ 2001-03-19 Bernd Schmidt ++ ++ * version.c: Bump. ++ ++ 2000-01-18 Martin v. Löwis ++ * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST. ++ (RESTORE_WARN_FLAGS): Unpack it. ++ Change semantic type of extension to ttype. ++ * c-common.c (split_specs_attrs): Expect an INTEGER_CST. ++ * c-parse.y, c-parse.c, objc/objc-parse.y, ++ objc/objc-parse.c: Regenerate. ++ ++ Wed Sep 1 09:12:02 1999 Jim Kingdon ++ * c-parse.in: save and restore warn_pointer_arith on __extension__ ++ along with pedantic. ++ (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added. ++ Set the type of extension to itype rather than $1 kludge. ++ * extend.texi (Alternate Keywords): Adjust documentation. ++ ++ Bring back the sjlj eh fixes. ++ * expr.c (expand_builtin_setjmp_setup): New. ++ (expand_builtin_setjmp_receiver): New. ++ (expand_builtin_setjmp): Split out _setup and _receiver functions. ++ Move argument parsing in from ... ++ (expand_builtin): ... here. ++ * except.c (receive_exception_label): Branch around receiver ++ unless new-style exceptions. Call expand_builtin_setjmp_receiver. ++ (start_dynamic_handler): Call expand_builtin_setjmp_setup. ++ * expr.h: Update builtin setjmp decls. ++ + Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. +diff -c3rpN gcc-2.95.3.orig/gcc/c-common.c gcc-2.95.4/gcc/c-common.c +*** gcc-2.95.3.orig/gcc/c-common.c Tue Sep 7 09:11:16 1999 +--- gcc-2.95.4/gcc/c-common.c Wed Jun 6 01:36:02 2001 +*************** split_specs_attrs (specs_attrs, declspec +*** 965,970 **** +--- 965,979 ---- + { + tree t, s, a, next, specs, attrs; + ++ /* This can happen after an __extension__ in pedantic mode. */ ++ if (specs_attrs != NULL_TREE ++ && TREE_CODE (specs_attrs) == INTEGER_CST) ++ { ++ *declspecs = NULL_TREE; ++ *prefix_attributes = NULL_TREE; ++ return; ++ } ++ + /* This can happen in c++ (eg: decl: typespec initdecls ';'). */ + if (specs_attrs != NULL_TREE + && TREE_CODE (specs_attrs) != TREE_LIST) +diff -c3rpN gcc-2.95.3.orig/gcc/c-gperf.h gcc-2.95.4/gcc/c-gperf.h +*** gcc-2.95.3.orig/gcc/c-gperf.h Wed Mar 31 08:43:52 1999 +--- gcc-2.95.4/gcc/c-gperf.h Wed Jun 6 01:36:02 2001 +*************** +*** 1,5 **** + /* C code produced by gperf version 2.7.1 (19981006 egcs) */ +! /* Command-line: gperf -L C -F , 0, 0 -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$ ./c-parse.gperf */ + /* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */ + struct resword { const char *name; short token; enum rid rid; }; + +--- 1,5 ---- + /* C code produced by gperf version 2.7.1 (19981006 egcs) */ +! /* Command-line: gperf -L C -F , 0, 0 -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$ /gcc.dev/gcc-2.95.4/gcc/c-parse.gperf */ + /* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */ + struct resword { const char *name; short token; enum rid rid; }; + +diff -c3rpN gcc-2.95.3.orig/gcc/c-lex.c gcc-2.95.4/gcc/c-lex.c +*** gcc-2.95.3.orig/gcc/c-lex.c Sat Mar 20 19:21:23 1999 +--- gcc-2.95.4/gcc/c-lex.c Wed Jun 6 01:36:02 2001 +*************** yylex () +*** 1812,1818 **** + + type = flag_traditional ? traditional_type : ansi_type; + +! if (warn_traditional && traditional_type != ansi_type) + { + if (TYPE_PRECISION (traditional_type) + != TYPE_PRECISION (ansi_type)) +--- 1812,1822 ---- + + type = flag_traditional ? traditional_type : ansi_type; + +! /* We assume that constants specified in a non-decimal +! base are bit patterns, and that the programmer really +! meant what they wrote. */ +! if (warn_traditional && base == 10 +! && traditional_type != ansi_type) + { + if (TYPE_PRECISION (traditional_type) + != TYPE_PRECISION (ansi_type)) +diff -c3rpN gcc-2.95.3.orig/gcc/c-parse.c gcc-2.95.4/gcc/c-parse.c +*** gcc-2.95.3.orig/gcc/c-parse.c Mon Apr 26 23:35:53 1999 +--- gcc-2.95.4/gcc/c-parse.c Wed Jun 6 01:36:02 2001 +*************** +*** 1,69 **** + + /* A Bison parser, made from c-parse.y +! by GNU Bison version 1.25 +! */ + + #define YYBISON 1 /* Identify Bison output. */ + +! #define IDENTIFIER 258 +! #define TYPENAME 259 +! #define SCSPEC 260 +! #define TYPESPEC 261 +! #define TYPE_QUAL 262 +! #define CONSTANT 263 +! #define STRING 264 +! #define ELLIPSIS 265 +! #define SIZEOF 266 +! #define ENUM 267 +! #define STRUCT 268 +! #define UNION 269 +! #define IF 270 +! #define ELSE 271 +! #define WHILE 272 +! #define DO 273 +! #define FOR 274 +! #define SWITCH 275 +! #define CASE 276 +! #define DEFAULT 277 +! #define BREAK 278 +! #define CONTINUE 279 +! #define RETURN 280 +! #define GOTO 281 +! #define ASM_KEYWORD 282 +! #define TYPEOF 283 +! #define ALIGNOF 284 +! #define ATTRIBUTE 285 +! #define EXTENSION 286 +! #define LABEL 287 +! #define REALPART 288 +! #define IMAGPART 289 +! #define ASSIGN 290 +! #define OROR 291 +! #define ANDAND 292 +! #define EQCOMPARE 293 +! #define ARITHCOMPARE 294 +! #define LSHIFT 295 +! #define RSHIFT 296 +! #define UNARY 297 +! #define PLUSPLUS 298 +! #define MINUSMINUS 299 +! #define HYPERUNARY 300 +! #define POINTSAT 301 +! #define INTERFACE 302 +! #define IMPLEMENTATION 303 +! #define END 304 +! #define SELECTOR 305 +! #define DEFS 306 +! #define ENCODE 307 +! #define CLASSNAME 308 +! #define PUBLIC 309 +! #define PRIVATE 310 +! #define PROTECTED 311 +! #define PROTOCOL 312 +! #define OBJECTNAME 313 +! #define CLASS 314 +! #define ALIAS 315 +! #define OBJC_STRING 316 + + #line 56 "c-parse.y" + +--- 1,68 ---- + + /* A Bison parser, made from c-parse.y +! by GNU Bison version 1.28 */ + + #define YYBISON 1 /* Identify Bison output. */ + +! #define IDENTIFIER 257 +! #define TYPENAME 258 +! #define SCSPEC 259 +! #define TYPESPEC 260 +! #define TYPE_QUAL 261 +! #define CONSTANT 262 +! #define STRING 263 +! #define ELLIPSIS 264 +! #define SIZEOF 265 +! #define ENUM 266 +! #define STRUCT 267 +! #define UNION 268 +! #define IF 269 +! #define ELSE 270 +! #define WHILE 271 +! #define DO 272 +! #define FOR 273 +! #define SWITCH 274 +! #define CASE 275 +! #define DEFAULT 276 +! #define BREAK 277 +! #define CONTINUE 278 +! #define RETURN 279 +! #define GOTO 280 +! #define ASM_KEYWORD 281 +! #define TYPEOF 282 +! #define ALIGNOF 283 +! #define ATTRIBUTE 284 +! #define EXTENSION 285 +! #define LABEL 286 +! #define REALPART 287 +! #define IMAGPART 288 +! #define ASSIGN 289 +! #define OROR 290 +! #define ANDAND 291 +! #define EQCOMPARE 292 +! #define ARITHCOMPARE 293 +! #define LSHIFT 294 +! #define RSHIFT 295 +! #define UNARY 296 +! #define PLUSPLUS 297 +! #define MINUSMINUS 298 +! #define HYPERUNARY 299 +! #define POINTSAT 300 +! #define INTERFACE 301 +! #define IMPLEMENTATION 302 +! #define END 303 +! #define SELECTOR 304 +! #define DEFS 305 +! #define ENCODE 306 +! #define CLASSNAME 307 +! #define PUBLIC 308 +! #define PRIVATE 309 +! #define PROTECTED 310 +! #define PROTOCOL 311 +! #define OBJECTNAME 312 +! #define CLASS 313 +! #define ALIAS 314 +! #define OBJC_STRING 315 + + #line 56 "c-parse.y" + +*************** static tree declspec_stack; +*** 119,124 **** +--- 118,134 ---- + /* 1 if we explained undeclared var errors. */ + static int undeclared_variable_notice; + ++ /* For __extension__, save/restore the warning flags which are ++ controlled by __extension__. */ ++ #define SAVE_WARN_FLAGS() \ ++ build_int_2 (pedantic | (warn_pointer_arith << 1), 0) ++ #define RESTORE_WARN_FLAGS(tval) \ ++ do { \ ++ int val = TREE_INT_CST_LOW (tval); \ ++ pedantic = val & 1; \ ++ warn_pointer_arith = (val >> 1) & 1; \ ++ } while (0) ++ + + /* Tell yyparse how to print a token's value, if yydebug is set. */ + +*************** extern void yyprint PROTO ((FILE *, in +*** 138,144 **** + #define YYFLAG -32768 + #define YYNTBASE 84 + +! #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241) + + static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +--- 148,154 ---- + #define YYFLAG -32768 + #define YYNTBASE 84 + +! #define YYTRANSLATE(x) ((unsigned)(x) <= 315 ? yytranslate[x] : 241) + + static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +*************** static const char yytranslate[] = { +*** 166,178 **** + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +! 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, +! 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, +! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, +! 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, +! 39, 40, 44, 45, 46, 47, 53, 54, 55, 56, +! 57, 61, 62, 63, 64, 65, 66, 67, 68, 69, +! 70, 71, 72, 73, 74, 75 + }; + + #if YYDEBUG != 0 +--- 176,188 ---- + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +! 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, +! 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, +! 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, +! 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, +! 40, 44, 45, 46, 47, 53, 54, 55, 56, 57, +! 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +! 71, 72, 73, 74, 75 + }; + + #if YYDEBUG != 0 +*************** static const short yyrhs[] = { -1, +*** 357,403 **** + + #if YYDEBUG != 0 + static const short yyrline[] = { 0, +! 233, 238, 252, 254, 254, 255, 257, 259, 260, 268, +! 272, 283, 288, 293, 295, 297, 298, 299, 304, 311, +! 313, 318, 323, 329, 331, 336, 341, 347, 349, 354, +! 361, 363, 366, 368, 370, 372, 374, 376, 378, 382, +! 386, 389, 392, 395, 399, 401, 404, 407, 411, 439, +! 445, 448, 451, 454, 456, 460, 464, 468, 470, 473, +! 477, 504, 506, 508, 510, 512, 514, 516, 518, 520, +! 522, 524, 526, 528, 530, 534, 536, 540, 542, 545, +! 549, 551, 558, 561, 569, 580, 679, 680, 682, 688, +! 690, 704, 727, 729, 731, 735, 741, 743, 748, 750, +! 755, 757, 758, 768, 773, 775, 776, 777, 784, 790, +! 795, 798, 806, 811, 813, 814, 815, 822, 833, 837, +! 843, 848, 853, 858, 860, 862, 871, 874, 878, 880, +! 882, 887, 891, 894, 898, 901, 903, 915, 918, 920, +! 922, 926, 930, 932, 935, 948, 951, 955, 957, 965, +! 966, 967, 971, 973, 979, 980, 981, 984, 986, 989, +! 991, 994, 997, 1003, 1010, 1012, 1019, 1026, 1029, 1036, +! 1039, 1043, 1046, 1050, 1055, 1058, 1062, 1065, 1067, 1069, +! 1071, 1078, 1080, 1081, 1082, 1087, 1089, 1094, 1102, 1107, +! 1111, 1114, 1116, 1121, 1123, 1124, 1127, 1127, 1130, 1133, +! 1135, 1137, 1140, 1142, 1145, 1151, 1153, 1157, 1168, 1176, +! 1180, 1191, 1199, 1206, 1208, 1213, 1216, 1221, 1223, 1225, +! 1232, 1234, 1242, 1248, 1253, 1255, 1257, 1264, 1266, 1272, +! 1278, 1280, 1282, 1287, 1289, 1296, 1298, 1301, 1304, 1308, +! 1311, 1315, 1318, 1322, 1327, 1329, 1333, 1335, 1337, 1339, +! 1343, 1345, 1348, 1351, 1354, 1357, 1361, 1363, 1366, 1368, +! 1373, 1376, 1381, 1383, 1385, 1399, 1406, 1411, 1417, 1422, +! 1424, 1429, 1431, 1435, 1439, 1443, 1453, 1455, 1460, 1465, +! 1468, 1472, 1475, 1479, 1482, 1485, 1488, 1492, 1495, 1499, +! 1503, 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1521, 1529, +! 1537, 1539, 1541, 1545, 1547, 1550, 1553, 1564, 1566, 1571, +! 1573, 1576, 1590, 1593, 1596, 1598, 1600, 1608, 1616, 1627, +! 1632, 1635, 1649, 1658, 1662, 1666, 1670, 1676, 1680, 1685, +! 1688, 1693, 1696, 1697, 1714, 1719, 1722, 1734, 1736, 1746, +! 1756, 1757, 1765, 1768, 1780, 1784, 1801, 1811, 1820, 1825, +! 1830, 1835, 1839, 1843, 1854, 1861, 1868, 1875, 1886, 1892, +! 1895, 1900, 1923, 1957, 1988, 2019, 2034, 2048, 2052, 2056, +! 2059, 2064, 2066, 2069, 2071, 2075, 2080, 2083, 2089, 2094, +! 2099, 2101, 2110, 2111, 2117, 2119, 2129, 2131, 2135, 2138, +! 2144, 2154, 2163, 2172, 2182, 2196, 2201, 2206, 2208, 2217, +! 2220, 2225, 2228, 2232 + }; + #endif + +--- 367,413 ---- + + #if YYDEBUG != 0 + static const short yyrline[] = { 0, +! 244, 249, 263, 265, 265, 266, 268, 270, 271, 279, +! 283, 294, 299, 304, 306, 308, 309, 310, 315, 322, +! 324, 329, 334, 340, 342, 347, 352, 358, 360, 365, +! 372, 374, 377, 379, 381, 383, 385, 387, 389, 393, +! 397, 400, 403, 406, 410, 412, 415, 418, 422, 450, +! 456, 459, 462, 465, 467, 471, 475, 479, 481, 484, +! 488, 515, 517, 519, 521, 523, 525, 527, 529, 531, +! 533, 535, 537, 539, 541, 545, 547, 551, 553, 556, +! 560, 562, 569, 572, 580, 591, 690, 691, 693, 699, +! 701, 715, 738, 740, 742, 746, 752, 754, 759, 761, +! 766, 768, 769, 779, 784, 786, 787, 788, 795, 801, +! 806, 809, 817, 822, 824, 825, 826, 833, 844, 848, +! 854, 859, 864, 869, 871, 873, 882, 885, 889, 891, +! 893, 898, 902, 905, 909, 912, 914, 926, 929, 931, +! 933, 937, 941, 943, 946, 959, 962, 966, 968, 976, +! 977, 978, 982, 984, 990, 991, 992, 995, 997, 1000, +! 1002, 1005, 1008, 1014, 1021, 1023, 1030, 1037, 1040, 1047, +! 1050, 1054, 1057, 1061, 1066, 1069, 1073, 1076, 1078, 1080, +! 1082, 1089, 1091, 1092, 1093, 1098, 1100, 1105, 1113, 1118, +! 1122, 1125, 1127, 1132, 1134, 1135, 1138, 1138, 1141, 1144, +! 1146, 1148, 1151, 1153, 1156, 1162, 1164, 1168, 1179, 1187, +! 1191, 1202, 1210, 1217, 1219, 1224, 1227, 1232, 1234, 1236, +! 1243, 1245, 1253, 1259, 1264, 1266, 1268, 1275, 1277, 1283, +! 1289, 1291, 1293, 1298, 1300, 1307, 1309, 1312, 1315, 1319, +! 1322, 1326, 1329, 1333, 1338, 1340, 1344, 1346, 1348, 1350, +! 1354, 1356, 1359, 1362, 1365, 1368, 1372, 1374, 1377, 1379, +! 1384, 1387, 1392, 1394, 1396, 1410, 1417, 1422, 1428, 1433, +! 1435, 1440, 1442, 1446, 1450, 1454, 1464, 1466, 1471, 1476, +! 1479, 1483, 1486, 1490, 1493, 1496, 1499, 1503, 1506, 1510, +! 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1532, 1540, +! 1548, 1550, 1552, 1556, 1558, 1561, 1564, 1575, 1577, 1582, +! 1584, 1587, 1601, 1604, 1607, 1609, 1611, 1619, 1627, 1638, +! 1643, 1646, 1660, 1669, 1673, 1677, 1681, 1687, 1691, 1696, +! 1699, 1704, 1707, 1708, 1725, 1730, 1733, 1745, 1747, 1757, +! 1767, 1768, 1776, 1779, 1791, 1795, 1812, 1822, 1831, 1836, +! 1841, 1846, 1850, 1854, 1865, 1872, 1879, 1886, 1897, 1903, +! 1906, 1911, 1934, 1968, 1999, 2030, 2045, 2059, 2063, 2067, +! 2070, 2075, 2077, 2080, 2082, 2086, 2091, 2094, 2100, 2105, +! 2110, 2112, 2121, 2122, 2128, 2130, 2140, 2142, 2146, 2149, +! 2155, 2165, 2174, 2183, 2193, 2207, 2212, 2217, 2219, 2228, +! 2231, 2236, 2239, 2243 + }; + #endif + +*************** static const short yycheck[] = { 38, +*** 1205,1211 **** + 50, 51, 52 + }; + /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +! #line 3 "/usr/lib/bison.simple" + + /* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. +--- 1215,1222 ---- + 50, 51, 52 + }; + /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +! #line 3 "/usr/share/bison.simple" +! /* This file comes from bison-1.28. */ + + /* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. +*************** static const short yycheck[] = { 38, +*** 1222,1267 **** + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + + /* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +! #ifndef alloca + #ifdef __GNUC__ + #define alloca __builtin_alloca + #else /* not GNU C. */ +! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) + #include + #else /* not sparc */ +! #if defined (MSDOS) && !defined (__TURBOC__) + #include + #else /* not MSDOS, or __TURBOC__ */ + #if defined(_AIX) +! #include + #pragma alloca +! #else /* not MSDOS, __TURBOC__, or _AIX */ +! #ifdef __hpux +! #ifdef __cplusplus +! extern "C" { +! void *alloca (unsigned int); +! }; +! #else /* not __cplusplus */ +! void *alloca (); +! #endif /* not __cplusplus */ + #endif /* __hpux */ + #endif /* not _AIX */ + #endif /* not MSDOS, or __TURBOC__ */ +! #endif /* not sparc. */ +! #endif /* not GNU C. */ +! #endif /* alloca not defined. */ + +! /* This is the parser code that is written into each bison parser +! when the %semantic_parser declaration is not specified in the grammar. +! It was written by Richard Stallman by simplifying the hairy parser +! used when %semantic_parser is specified. */ + + /* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action +--- 1233,1298 ---- + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +! Foundation, Inc., 59 Temple Place - Suite 330, +! Boston, MA 02111-1307, USA. */ + + /* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +! /* This is the parser code that is written into each bison parser +! when the %semantic_parser declaration is not specified in the grammar. +! It was written by Richard Stallman by simplifying the hairy parser +! used when %semantic_parser is specified. */ +! +! #ifndef YYSTACK_USE_ALLOCA +! #ifdef alloca +! #define YYSTACK_USE_ALLOCA +! #else /* alloca not defined */ + #ifdef __GNUC__ ++ #define YYSTACK_USE_ALLOCA + #define alloca __builtin_alloca + #else /* not GNU C. */ +! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +! #define YYSTACK_USE_ALLOCA + #include + #else /* not sparc */ +! /* We think this test detects Watcom and Microsoft C. */ +! /* This used to test MSDOS, but that is a bad idea +! since that symbol is in the user namespace. */ +! #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +! #if 0 /* No need for malloc.h, which pollutes the namespace; +! instead, just don't use alloca. */ + #include ++ #endif + #else /* not MSDOS, or __TURBOC__ */ + #if defined(_AIX) +! /* I don't know what this was needed for, but it pollutes the namespace. +! So I turned it off. rms, 2 May 1997. */ +! /* #include */ + #pragma alloca +! #define YYSTACK_USE_ALLOCA +! #else /* not MSDOS, or __TURBOC__, or _AIX */ +! #if 0 +! #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, +! and on HPUX 10. Eventually we can turn this on. */ +! #define YYSTACK_USE_ALLOCA +! #define alloca __builtin_alloca + #endif /* __hpux */ ++ #endif + #endif /* not _AIX */ + #endif /* not MSDOS, or __TURBOC__ */ +! #endif /* not sparc */ +! #endif /* not GNU C */ +! #endif /* alloca not defined */ +! #endif /* YYSTACK_USE_ALLOCA not defined */ + +! #ifdef YYSTACK_USE_ALLOCA +! #define YYSTACK_ALLOC alloca +! #else +! #define YYSTACK_ALLOC malloc +! #endif + + /* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action +*************** void *alloca (); +*** 1271,1278 **** + #define yyclearin (yychar = YYEMPTY) + #define YYEMPTY -2 + #define YYEOF 0 +! #define YYACCEPT return(0) +! #define YYABORT return(1) + #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. + This remains here temporarily to ease the +--- 1302,1309 ---- + #define yyclearin (yychar = YYEMPTY) + #define YYEMPTY -2 + #define YYEOF 0 +! #define YYACCEPT goto yyacceptlab +! #define YYABORT goto yyabortlab + #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. + This remains here temporarily to ease the +*************** int yydebug; /* nonzero means print p +*** 1353,1364 **** + #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_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) + #else /* not GNU C or C++ */ +--- 1384,1395 ---- + #ifndef YYMAXDEPTH + #define YYMAXDEPTH 10000 + #endif + ++ /* Define __yy_memcpy. Note that the size argument ++ should be passed with type unsigned int, because that is what the non-GCC ++ definitions require. With GCC, __builtin_memcpy takes an arg ++ of type size_t, but it can handle unsigned int. */ ++ + #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ + #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) + #else /* not GNU C or C++ */ +*************** static void +*** 1370,1376 **** + __yy_memcpy (to, from, count) + char *to; + char *from; +! int count; + { + register char *f = from; + register char *t = to; +--- 1401,1407 ---- + __yy_memcpy (to, from, count) + char *to; + char *from; +! unsigned int count; + { + register char *f = from; + register char *t = to; +*************** __yy_memcpy (to, from, count) +*** 1385,1394 **** + /* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ + static void +! __yy_memcpy (char *to, char *from, int count) + { +- register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) +--- 1416,1425 ---- + /* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ + static void +! __yy_memcpy (char *to, char *from, unsigned int count) + { + register char *t = to; ++ register char *f = from; + register int i = count; + + while (i-- > 0) +*************** __yy_memcpy (char *to, char *from, int c +*** 1398,1404 **** + #endif + #endif + +! #line 196 "/usr/lib/bison.simple" + + /* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. +--- 1429,1435 ---- + #endif + #endif + +! #line 217 "/usr/share/bison.simple" + + /* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. +*************** __yy_memcpy (char *to, char *from, int c +*** 1419,1424 **** +--- 1450,1464 ---- + #define YYPARSE_PARAM_DECL + #endif /* not YYPARSE_PARAM */ + ++ /* Prevent warning if -Wstrict-prototypes. */ ++ #ifdef __GNUC__ ++ #ifdef YYPARSE_PARAM ++ int yyparse (void *); ++ #else ++ int yyparse (void); ++ #endif ++ #endif ++ + int + yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +*************** yyparse(YYPARSE_PARAM_ARG) +*** 1447,1452 **** +--- 1487,1493 ---- + #endif + + int yystacksize = YYINITDEPTH; ++ int yyfree_stacks = 0; + + #ifdef YYPURE + int yychar; +*************** yynewstate: +*** 1531,1548 **** + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +! yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); +! __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); +! yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); +! __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); + #ifdef YYLSP_NEEDED +! yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); +! __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); + #endif + #endif /* no yyoverflow */ + +--- 1572,1603 ---- + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); ++ if (yyfree_stacks) ++ { ++ free (yyss); ++ free (yyvs); ++ #ifdef YYLSP_NEEDED ++ free (yyls); ++ #endif ++ } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +! #ifndef YYSTACK_USE_ALLOCA +! yyfree_stacks = 1; +! #endif +! yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); +! __yy_memcpy ((char *)yyss, (char *)yyss1, +! size * (unsigned int) sizeof (*yyssp)); +! yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); +! __yy_memcpy ((char *)yyvs, (char *)yyvs1, +! size * (unsigned int) sizeof (*yyvsp)); + #ifdef YYLSP_NEEDED +! yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); +! __yy_memcpy ((char *)yyls, (char *)yyls1, +! size * (unsigned int) sizeof (*yylsp)); + #endif + #endif /* no yyoverflow */ + +*************** yyreduce: +*** 1703,1716 **** + switch (yyn) { + + case 1: +! #line 234 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids an empty source file"); + finish_file (); + ; + break;} + case 2: +! #line 239 "c-parse.y" + { + /* In case there were missing closebraces, + get us back to the global binding level. */ +--- 1758,1771 ---- + switch (yyn) { + + case 1: +! #line 245 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids an empty source file"); + finish_file (); + ; + break;} + case 2: +! #line 250 "c-parse.y" + { + /* In case there were missing closebraces, + get us back to the global binding level. */ +*************** case 2: +*** 1720,1734 **** + ; + break;} + case 3: +! #line 253 "c-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 5: +! #line 254 "c-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 9: +! #line 261 "c-parse.y" + { STRIP_NOPS (yyvsp[-2].ttype); + if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) +--- 1775,1789 ---- + ; + break;} + case 3: +! #line 264 "c-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 5: +! #line 265 "c-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 9: +! #line 272 "c-parse.y" + { STRIP_NOPS (yyvsp[-2].ttype); + if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) +*************** case 9: +*** 1738,1748 **** + error ("argument of `asm' is not a constant string"); ; + break;} + case 10: +! #line 269 "c-parse.y" +! { pedantic = yyvsp[-1].itype; ; + break;} + case 11: +! #line 274 "c-parse.y" + { if (pedantic) + error ("ANSI C forbids data definition with no type or storage class"); + else if (!flag_traditional) +--- 1793,1803 ---- + error ("argument of `asm' is not a constant string"); ; + break;} + case 10: +! #line 280 "c-parse.y" +! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 11: +! #line 285 "c-parse.y" + { if (pedantic) + error ("ANSI C forbids data definition with no type or storage class"); + else if (!flag_traditional) +*************** case 11: +*** 1754,1798 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 12: +! #line 284 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 13: +! #line 289 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 14: +! #line 294 "c-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 15: +! #line 296 "c-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 18: +! #line 300 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; + break;} + case 19: +! #line 306 "c-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 20: +! #line 311 "c-parse.y" + { store_parm_decls (); ; + break;} + case 21: +! #line 313 "c-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 1809,1853 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 12: +! #line 295 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 13: +! #line 300 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 14: +! #line 305 "c-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 15: +! #line 307 "c-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 18: +! #line 311 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; + break;} + case 19: +! #line 317 "c-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 20: +! #line 322 "c-parse.y" + { store_parm_decls (); ; + break;} + case 21: +! #line 324 "c-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 21: +*** 1800,1824 **** + resume_momentary (yyvsp[-5].itype); ; + break;} + case 22: +! #line 319 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 23: +! #line 324 "c-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 24: +! #line 329 "c-parse.y" + { store_parm_decls (); ; + break;} + case 25: +! #line 331 "c-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 1855,1879 ---- + resume_momentary (yyvsp[-5].itype); ; + break;} + case 22: +! #line 330 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 23: +! #line 335 "c-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 24: +! #line 340 "c-parse.y" + { store_parm_decls (); ; + break;} + case 25: +! #line 342 "c-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 25: +*** 1826,1850 **** + resume_momentary (yyvsp[-5].itype); ; + break;} + case 26: +! #line 337 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 27: +! #line 342 "c-parse.y" + { if (! start_function (NULL_TREE, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 28: +! #line 347 "c-parse.y" + { store_parm_decls (); ; + break;} + case 29: +! #line 349 "c-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 1881,1905 ---- + resume_momentary (yyvsp[-5].itype); ; + break;} + case 26: +! #line 348 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 27: +! #line 353 "c-parse.y" + { if (! start_function (NULL_TREE, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 28: +! #line 358 "c-parse.y" + { store_parm_decls (); ; + break;} + case 29: +! #line 360 "c-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 29: +*** 1852,1923 **** + resume_momentary (yyvsp[-5].itype); ; + break;} + case 30: +! #line 355 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 33: +! #line 367 "c-parse.y" + { yyval.code = ADDR_EXPR; ; + break;} + case 34: +! #line 369 "c-parse.y" + { yyval.code = NEGATE_EXPR; ; + break;} + case 35: +! #line 371 "c-parse.y" + { yyval.code = CONVERT_EXPR; ; + break;} + case 36: +! #line 373 "c-parse.y" + { yyval.code = PREINCREMENT_EXPR; ; + break;} + case 37: +! #line 375 "c-parse.y" + { yyval.code = PREDECREMENT_EXPR; ; + break;} + case 38: +! #line 377 "c-parse.y" + { yyval.code = BIT_NOT_EXPR; ; + break;} + case 39: +! #line 379 "c-parse.y" + { yyval.code = TRUTH_NOT_EXPR; ; + break;} + case 40: +! #line 383 "c-parse.y" + { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; + break;} + case 41: +! #line 388 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 43: +! #line 394 "c-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 44: +! #line 396 "c-parse.y" + { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 46: +! #line 402 "c-parse.y" + { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; + break;} + case 47: +! #line 405 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! pedantic = yyvsp[-1].itype; ; + break;} + case 48: +! #line 408 "c-parse.y" + { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); + overflow_warning (yyval.ttype); ; + break;} + case 49: +! #line 412 "c-parse.y" + { tree label = lookup_label (yyvsp[0].ttype); + if (pedantic) + pedwarn ("ANSI C forbids `&&'"); +--- 1907,1978 ---- + resume_momentary (yyvsp[-5].itype); ; + break;} + case 30: +! #line 366 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 33: +! #line 378 "c-parse.y" + { yyval.code = ADDR_EXPR; ; + break;} + case 34: +! #line 380 "c-parse.y" + { yyval.code = NEGATE_EXPR; ; + break;} + case 35: +! #line 382 "c-parse.y" + { yyval.code = CONVERT_EXPR; ; + break;} + case 36: +! #line 384 "c-parse.y" + { yyval.code = PREINCREMENT_EXPR; ; + break;} + case 37: +! #line 386 "c-parse.y" + { yyval.code = PREDECREMENT_EXPR; ; + break;} + case 38: +! #line 388 "c-parse.y" + { yyval.code = BIT_NOT_EXPR; ; + break;} + case 39: +! #line 390 "c-parse.y" + { yyval.code = TRUTH_NOT_EXPR; ; + break;} + case 40: +! #line 394 "c-parse.y" + { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; + break;} + case 41: +! #line 399 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 43: +! #line 405 "c-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 44: +! #line 407 "c-parse.y" + { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 46: +! #line 413 "c-parse.y" + { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; + break;} + case 47: +! #line 416 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 48: +! #line 419 "c-parse.y" + { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); + overflow_warning (yyval.ttype); ; + break;} + case 49: +! #line 423 "c-parse.y" + { tree label = lookup_label (yyvsp[0].ttype); + if (pedantic) + pedwarn ("ANSI C forbids `&&'"); +*************** case 49: +*** 1932,1938 **** + ; + break;} + case 50: +! #line 440 "c-parse.y" + { skip_evaluation--; + if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF + && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) +--- 1987,1993 ---- + ; + break;} + case 50: +! #line 451 "c-parse.y" + { skip_evaluation--; + if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF + && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) +*************** case 50: +*** 1940,1988 **** + yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; + break;} + case 51: +! #line 446 "c-parse.y" + { skip_evaluation--; + yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 52: +! #line 449 "c-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; + break;} + case 53: +! #line 452 "c-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 54: +! #line 455 "c-parse.y" + { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 55: +! #line 457 "c-parse.y" + { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 56: +! #line 461 "c-parse.y" + { skip_evaluation++; ; + break;} + case 57: +! #line 465 "c-parse.y" + { skip_evaluation++; ; + break;} + case 59: +! #line 471 "c-parse.y" + { tree type = groktypename (yyvsp[-2].ttype); + yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; + break;} + case 60: +! #line 474 "c-parse.y" + { start_init (NULL_TREE, NULL, 0); + yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); + really_start_incremental_init (yyvsp[-2].ttype); ; + break;} + case 61: +! #line 478 "c-parse.y" + { char *name; + tree result = pop_init_level (0); + tree type = yyvsp[-5].ttype; +--- 1995,2043 ---- + yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; + break;} + case 51: +! #line 457 "c-parse.y" + { skip_evaluation--; + yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 52: +! #line 460 "c-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; + break;} + case 53: +! #line 463 "c-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 54: +! #line 466 "c-parse.y" + { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 55: +! #line 468 "c-parse.y" + { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 56: +! #line 472 "c-parse.y" + { skip_evaluation++; ; + break;} + case 57: +! #line 476 "c-parse.y" + { skip_evaluation++; ; + break;} + case 59: +! #line 482 "c-parse.y" + { tree type = groktypename (yyvsp[-2].ttype); + yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; + break;} + case 60: +! #line 485 "c-parse.y" + { start_init (NULL_TREE, NULL, 0); + yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); + really_start_incremental_init (yyvsp[-2].ttype); ; + break;} + case 61: +! #line 489 "c-parse.y" + { char *name; + tree result = pop_init_level (0); + tree type = yyvsp[-5].ttype; +*************** case 61: +*** 2009,2098 **** + ; + break;} + case 63: +! #line 507 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 64: +! #line 509 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 65: +! #line 511 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 66: +! #line 513 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 67: +! #line 515 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 68: +! #line 517 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 69: +! #line 519 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 70: +! #line 521 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 71: +! #line 523 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 72: +! #line 525 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 73: +! #line 527 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 74: +! #line 529 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 75: +! #line 531 "c-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 76: +! #line 534 "c-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; + yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 77: +! #line 537 "c-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 78: +! #line 540 "c-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; + yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 79: +! #line 543 "c-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 80: +! #line 546 "c-parse.y" + { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) + - (yyvsp[-4].ttype == boolean_false_node)); ; + break;} + case 81: +! #line 549 "c-parse.y" + { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 82: +! #line 552 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); + /* Make sure first operand is calculated only once. */ +--- 2064,2153 ---- + ; + break;} + case 63: +! #line 518 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 64: +! #line 520 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 65: +! #line 522 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 66: +! #line 524 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 67: +! #line 526 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 68: +! #line 528 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 69: +! #line 530 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 70: +! #line 532 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 71: +! #line 534 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 72: +! #line 536 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 73: +! #line 538 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 74: +! #line 540 "c-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 75: +! #line 542 "c-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 76: +! #line 545 "c-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; + yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 77: +! #line 548 "c-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 78: +! #line 551 "c-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; + yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 79: +! #line 554 "c-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 80: +! #line 557 "c-parse.y" + { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) + - (yyvsp[-4].ttype == boolean_false_node)); ; + break;} + case 81: +! #line 560 "c-parse.y" + { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 82: +! #line 563 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); + /* Make sure first operand is calculated only once. */ +*************** case 82: +*** 2101,2112 **** + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 83: +! #line 559 "c-parse.y" + { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 84: +! #line 562 "c-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); + class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); +--- 2156,2167 ---- + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 83: +! #line 570 "c-parse.y" + { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 84: +! #line 573 "c-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); + class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); +*************** case 84: +*** 2116,2122 **** + ; + break;} + case 85: +! #line 570 "c-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); + /* This inhibits warnings in truthvalue_conversion. */ +--- 2171,2177 ---- + ; + break;} + case 85: +! #line 581 "c-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); + /* This inhibits warnings in truthvalue_conversion. */ +*************** case 85: +*** 2127,2133 **** + ; + break;} + case 86: +! #line 582 "c-parse.y" + { + yyval.ttype = lastiddecl; + if (!yyval.ttype || yyval.ttype == error_mark_node) +--- 2182,2188 ---- + ; + break;} + case 86: +! #line 593 "c-parse.y" + { + yyval.ttype = lastiddecl; + if (!yyval.ttype || yyval.ttype == error_mark_node) +*************** case 86: +*** 2227,2237 **** + ; + break;} + case 88: +! #line 681 "c-parse.y" + { yyval.ttype = combine_strings (yyvsp[0].ttype); ; + break;} + case 89: +! #line 683 "c-parse.y" + { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); + if (class == 'e' || class == '1' + || class == '2' || class == '<') +--- 2282,2292 ---- + ; + break;} + case 88: +! #line 692 "c-parse.y" + { yyval.ttype = combine_strings (yyvsp[0].ttype); ; + break;} + case 89: +! #line 694 "c-parse.y" + { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); + if (class == 'e' || class == '1' + || class == '2' || class == '<') +*************** case 89: +*** 2239,2249 **** + yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 90: +! #line 689 "c-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 91: +! #line 691 "c-parse.y" + { if (current_function_decl == 0) + { + error ("braced-group within expression allowed only inside a function"); +--- 2294,2304 ---- + yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 90: +! #line 700 "c-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 91: +! #line 702 "c-parse.y" + { if (current_function_decl == 0) + { + error ("braced-group within expression allowed only inside a function"); +*************** case 91: +*** 2259,2265 **** + yyval.ttype = expand_start_stmt_expr (); ; + break;} + case 92: +! #line 705 "c-parse.y" + { tree rtl_exp; + if (pedantic) + pedwarn ("ANSI C forbids braced-groups within expressions"); +--- 2314,2320 ---- + yyval.ttype = expand_start_stmt_expr (); ; + break;} + case 92: +! #line 716 "c-parse.y" + { tree rtl_exp; + if (pedantic) + pedwarn ("ANSI C forbids braced-groups within expressions"); +*************** case 92: +*** 2284,2304 **** + ; + break;} + case 93: +! #line 728 "c-parse.y" + { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 94: +! #line 730 "c-parse.y" + { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 95: +! #line 732 "c-parse.y" + { + yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 96: +! #line 736 "c-parse.y" + { + tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); + +--- 2339,2359 ---- + ; + break;} + case 93: +! #line 739 "c-parse.y" + { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 94: +! #line 741 "c-parse.y" + { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 95: +! #line 743 "c-parse.y" + { + yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 96: +! #line 747 "c-parse.y" + { + tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); + +*************** case 96: +*** 2306,2361 **** + ; + break;} + case 97: +! #line 742 "c-parse.y" + { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 98: +! #line 744 "c-parse.y" + { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 100: +! #line 751 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 103: +! #line 760 "c-parse.y" + { c_mark_varargs (); + if (pedantic) + pedwarn ("ANSI C does not permit use of `varargs.h'"); ; + break;} + case 104: +! #line 770 "c-parse.y" + { ; + break;} + case 109: +! #line 786 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 110: +! #line 791 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 111: +! #line 796 "c-parse.y" + { shadow_tag_warned (yyvsp[-1].ttype, 1); + pedwarn ("empty declaration"); ; + break;} + case 112: +! #line 799 "c-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 113: +! #line 808 "c-parse.y" + { ; + break;} + case 118: +! #line 823 "c-parse.y" + { yyval.itype = suspend_momentary (); + pending_xref_error (); + declspec_stack = tree_cons (prefix_attributes, +--- 2361,2416 ---- + ; + break;} + case 97: +! #line 753 "c-parse.y" + { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 98: +! #line 755 "c-parse.y" + { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 100: +! #line 762 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 103: +! #line 771 "c-parse.y" + { c_mark_varargs (); + if (pedantic) + pedwarn ("ANSI C does not permit use of `varargs.h'"); ; + break;} + case 104: +! #line 781 "c-parse.y" + { ; + break;} + case 109: +! #line 797 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 110: +! #line 802 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 111: +! #line 807 "c-parse.y" + { shadow_tag_warned (yyvsp[-1].ttype, 1); + pedwarn ("empty declaration"); ; + break;} + case 112: +! #line 810 "c-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 113: +! #line 819 "c-parse.y" + { ; + break;} + case 118: +! #line 834 "c-parse.y" + { yyval.itype = suspend_momentary (); + pending_xref_error (); + declspec_stack = tree_cons (prefix_attributes, +*************** case 118: +*** 2365,2495 **** + ¤t_declspecs, &prefix_attributes); ; + break;} + case 119: +! #line 834 "c-parse.y" + { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ; + break;} + case 120: +! #line 839 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 121: +! #line 844 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 122: +! #line 849 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 123: +! #line 854 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 124: +! #line 859 "c-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 125: +! #line 861 "c-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 126: +! #line 863 "c-parse.y" +! { pedantic = yyvsp[-1].itype; ; + break;} + case 127: +! #line 873 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 128: +! #line 875 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 129: +! #line 879 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 130: +! #line 881 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 131: +! #line 883 "c-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 132: +! #line 888 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 133: +! #line 893 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 134: +! #line 895 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 135: +! #line 900 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 136: +! #line 902 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 137: +! #line 904 "c-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 138: +! #line 917 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 139: +! #line 919 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; + break;} + case 140: +! #line 921 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 141: +! #line 923 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 142: +! #line 928 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 143: +! #line 931 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 144: +! #line 933 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 145: +! #line 936 "c-parse.y" + { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); +--- 2420,2550 ---- + ¤t_declspecs, &prefix_attributes); ; + break;} + case 119: +! #line 845 "c-parse.y" + { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ; + break;} + case 120: +! #line 850 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 121: +! #line 855 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 122: +! #line 860 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 123: +! #line 865 "c-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 124: +! #line 870 "c-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 125: +! #line 872 "c-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 126: +! #line 874 "c-parse.y" +! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 127: +! #line 884 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 128: +! #line 886 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 129: +! #line 890 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 130: +! #line 892 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 131: +! #line 894 "c-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 132: +! #line 899 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 133: +! #line 904 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 134: +! #line 906 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 135: +! #line 911 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 136: +! #line 913 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 137: +! #line 915 "c-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 138: +! #line 928 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 139: +! #line 930 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; + break;} + case 140: +! #line 932 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 141: +! #line 934 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 142: +! #line 939 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 143: +! #line 942 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 144: +! #line 944 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 145: +! #line 947 "c-parse.y" + { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); +*************** case 145: +*** 2497,2634 **** + TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; + break;} + case 146: +! #line 950 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 147: +! #line 952 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 148: +! #line 956 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 149: +! #line 958 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 152: +! #line 968 "c-parse.y" + { /* For a typedef name, record the meaning, not the name. + In case of `foo foo, bar;'. */ + yyval.ttype = lookup_name (yyvsp[0].ttype); ; + break;} + case 153: +! #line 972 "c-parse.y" + { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; + break;} + case 154: +! #line 974 "c-parse.y" + { yyval.ttype = groktypename (yyvsp[-1].ttype); ; + break;} + case 162: +! #line 996 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 163: +! #line 998 "c-parse.y" + { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 164: +! #line 1005 "c-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 165: +! #line 1010 "c-parse.y" + { finish_init (); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 166: +! #line 1013 "c-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); + ; + break;} + case 167: +! #line 1021 "c-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 168: +! #line 1026 "c-parse.y" + { finish_init (); + decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 169: +! #line 1030 "c-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 170: +! #line 1038 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 171: +! #line 1040 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 172: +! #line 1045 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 173: +! #line 1047 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 174: +! #line 1052 "c-parse.y" + { yyval.ttype = yyvsp[-2].ttype; ; + break;} + case 175: +! #line 1057 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 176: +! #line 1059 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 177: +! #line 1064 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 178: +! #line 1066 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 179: +! #line 1068 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; + break;} + case 180: +! #line 1070 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; + break;} + case 181: +! #line 1072 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 187: +! #line 1090 "c-parse.y" + { really_start_incremental_init (NULL_TREE); + /* Note that the call to clear_momentary + is in process_init_element. */ + push_momentary (); ; + break;} + case 188: +! #line 1095 "c-parse.y" + { yyval.ttype = pop_init_level (0); + if (yyval.ttype == error_mark_node + && ! (yychar == STRING || yychar == CONSTANT)) +--- 2552,2689 ---- + TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; + break;} + case 146: +! #line 961 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 147: +! #line 963 "c-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 148: +! #line 967 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 149: +! #line 969 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 152: +! #line 979 "c-parse.y" + { /* For a typedef name, record the meaning, not the name. + In case of `foo foo, bar;'. */ + yyval.ttype = lookup_name (yyvsp[0].ttype); ; + break;} + case 153: +! #line 983 "c-parse.y" + { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; + break;} + case 154: +! #line 985 "c-parse.y" + { yyval.ttype = groktypename (yyvsp[-1].ttype); ; + break;} + case 162: +! #line 1007 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 163: +! #line 1009 "c-parse.y" + { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 164: +! #line 1016 "c-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 165: +! #line 1021 "c-parse.y" + { finish_init (); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 166: +! #line 1024 "c-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); + ; + break;} + case 167: +! #line 1032 "c-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 168: +! #line 1037 "c-parse.y" + { finish_init (); + decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 169: +! #line 1041 "c-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 170: +! #line 1049 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 171: +! #line 1051 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 172: +! #line 1056 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 173: +! #line 1058 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 174: +! #line 1063 "c-parse.y" + { yyval.ttype = yyvsp[-2].ttype; ; + break;} + case 175: +! #line 1068 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 176: +! #line 1070 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 177: +! #line 1075 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 178: +! #line 1077 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 179: +! #line 1079 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; + break;} + case 180: +! #line 1081 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; + break;} + case 181: +! #line 1083 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 187: +! #line 1101 "c-parse.y" + { really_start_incremental_init (NULL_TREE); + /* Note that the call to clear_momentary + is in process_init_element. */ + push_momentary (); ; + break;} + case 188: +! #line 1106 "c-parse.y" + { yyval.ttype = pop_init_level (0); + if (yyval.ttype == error_mark_node + && ! (yychar == STRING || yychar == CONSTANT)) +*************** case 188: +*** 2637,2680 **** + pop_momentary_nofree (); ; + break;} + case 189: +! #line 1103 "c-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 190: +! #line 1109 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids empty initializer braces"); ; + break;} + case 196: +! #line 1125 "c-parse.y" + { set_init_label (yyvsp[-1].ttype); ; + break;} + case 199: +! #line 1132 "c-parse.y" + { push_init_level (0); ; + break;} + case 200: +! #line 1134 "c-parse.y" + { process_init_element (pop_init_level (0)); ; + break;} + case 201: +! #line 1136 "c-parse.y" + { process_init_element (yyvsp[0].ttype); ; + break;} + case 205: +! #line 1147 "c-parse.y" + { set_init_label (yyvsp[0].ttype); ; + break;} + case 206: +! #line 1152 "c-parse.y" + { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 207: +! #line 1154 "c-parse.y" + { set_init_index (yyvsp[-1].ttype, NULL_TREE); ; + break;} + case 208: +! #line 1159 "c-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +--- 2692,2735 ---- + pop_momentary_nofree (); ; + break;} + case 189: +! #line 1114 "c-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 190: +! #line 1120 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids empty initializer braces"); ; + break;} + case 196: +! #line 1136 "c-parse.y" + { set_init_label (yyvsp[-1].ttype); ; + break;} + case 199: +! #line 1143 "c-parse.y" + { push_init_level (0); ; + break;} + case 200: +! #line 1145 "c-parse.y" + { process_init_element (pop_init_level (0)); ; + break;} + case 201: +! #line 1147 "c-parse.y" + { process_init_element (yyvsp[0].ttype); ; + break;} + case 205: +! #line 1158 "c-parse.y" + { set_init_label (yyvsp[0].ttype); ; + break;} + case 206: +! #line 1163 "c-parse.y" + { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 207: +! #line 1165 "c-parse.y" + { set_init_index (yyvsp[-1].ttype, NULL_TREE); ; + break;} + case 208: +! #line 1170 "c-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +*************** case 208: +*** 2685,2700 **** + reinit_parse_for_function (); ; + break;} + case 209: +! #line 1168 "c-parse.y" + { store_parm_decls (); ; + break;} + case 210: +! #line 1176 "c-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 211: +! #line 1182 "c-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +--- 2740,2755 ---- + reinit_parse_for_function (); ; + break;} + case 209: +! #line 1179 "c-parse.y" + { store_parm_decls (); ; + break;} + case 210: +! #line 1187 "c-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 211: +! #line 1193 "c-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +*************** case 211: +*** 2705,2915 **** + reinit_parse_for_function (); ; + break;} + case 212: +! #line 1191 "c-parse.y" + { store_parm_decls (); ; + break;} + case 213: +! #line 1199 "c-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 216: +! #line 1215 "c-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 217: +! #line 1217 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 218: +! #line 1222 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 219: +! #line 1224 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 220: +! #line 1226 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 221: +! #line 1233 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 223: +! #line 1244 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 224: +! #line 1249 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE); + if (! flag_isoc9x) + error ("`[*]' in parameter declaration only allowed in ISO C 9x"); + ; + break;} + case 225: +! #line 1254 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 226: +! #line 1256 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 227: +! #line 1258 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 228: +! #line 1265 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 230: +! #line 1274 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 231: +! #line 1279 "c-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 232: +! #line 1281 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 233: +! #line 1283 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE); + if (! flag_isoc9x) + error ("`[*]' in parameter declaration only allowed in ISO C 9x"); + ; + break;} + case 234: +! #line 1288 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 235: +! #line 1290 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 236: +! #line 1297 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 238: +! #line 1303 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 239: +! #line 1305 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 240: +! #line 1310 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 241: +! #line 1312 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 242: +! #line 1317 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 243: +! #line 1319 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 244: +! #line 1324 "c-parse.y" + { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); + /* Start scope of tag before parsing components. */ + ; + break;} + case 245: +! #line 1328 "c-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 246: +! #line 1330 "c-parse.y" + { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 247: +! #line 1334 "c-parse.y" + { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; + break;} + case 248: +! #line 1336 "c-parse.y" + { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; + break;} + case 249: +! #line 1338 "c-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 250: +! #line 1340 "c-parse.y" + { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 251: +! #line 1344 "c-parse.y" + { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; + break;} + case 252: +! #line 1346 "c-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (yyvsp[-1].ttype); ; + break;} + case 253: +! #line 1349 "c-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 254: +! #line 1352 "c-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (NULL_TREE); ; + break;} + case 255: +! #line 1355 "c-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 256: +! #line 1358 "c-parse.y" + { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; + break;} + case 260: +! #line 1369 "c-parse.y" + { if (pedantic && ! flag_isoc9x) + pedwarn ("comma at end of enumerator list"); ; + break;} + case 261: +! #line 1375 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 262: +! #line 1377 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + pedwarn ("no semicolon at end of struct or union"); ; + break;} + case 263: +! #line 1382 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 264: +! #line 1384 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; + break;} + case 265: +! #line 1386 "c-parse.y" + { if (pedantic) + pedwarn ("extra semicolon in struct or union specified"); ; + break;} + case 266: +! #line 1401 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 2760,2970 ---- + reinit_parse_for_function (); ; + break;} + case 212: +! #line 1202 "c-parse.y" + { store_parm_decls (); ; + break;} + case 213: +! #line 1210 "c-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 216: +! #line 1226 "c-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 217: +! #line 1228 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 218: +! #line 1233 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 219: +! #line 1235 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 220: +! #line 1237 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 221: +! #line 1244 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 223: +! #line 1255 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 224: +! #line 1260 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE); + if (! flag_isoc9x) + error ("`[*]' in parameter declaration only allowed in ISO C 9x"); + ; + break;} + case 225: +! #line 1265 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 226: +! #line 1267 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 227: +! #line 1269 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 228: +! #line 1276 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 230: +! #line 1285 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 231: +! #line 1290 "c-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 232: +! #line 1292 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 233: +! #line 1294 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE); + if (! flag_isoc9x) + error ("`[*]' in parameter declaration only allowed in ISO C 9x"); + ; + break;} + case 234: +! #line 1299 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 235: +! #line 1301 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 236: +! #line 1308 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 238: +! #line 1314 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 239: +! #line 1316 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 240: +! #line 1321 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 241: +! #line 1323 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 242: +! #line 1328 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 243: +! #line 1330 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 244: +! #line 1335 "c-parse.y" + { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); + /* Start scope of tag before parsing components. */ + ; + break;} + case 245: +! #line 1339 "c-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 246: +! #line 1341 "c-parse.y" + { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 247: +! #line 1345 "c-parse.y" + { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; + break;} + case 248: +! #line 1347 "c-parse.y" + { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; + break;} + case 249: +! #line 1349 "c-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 250: +! #line 1351 "c-parse.y" + { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 251: +! #line 1355 "c-parse.y" + { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; + break;} + case 252: +! #line 1357 "c-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (yyvsp[-1].ttype); ; + break;} + case 253: +! #line 1360 "c-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 254: +! #line 1363 "c-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (NULL_TREE); ; + break;} + case 255: +! #line 1366 "c-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 256: +! #line 1369 "c-parse.y" + { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; + break;} + case 260: +! #line 1380 "c-parse.y" + { if (pedantic && ! flag_isoc9x) + pedwarn ("comma at end of enumerator list"); ; + break;} + case 261: +! #line 1386 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 262: +! #line 1388 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + pedwarn ("no semicolon at end of struct or union"); ; + break;} + case 263: +! #line 1393 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 264: +! #line 1395 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; + break;} + case 265: +! #line 1397 "c-parse.y" + { if (pedantic) + pedwarn ("extra semicolon in struct or union specified"); ; + break;} + case 266: +! #line 1412 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 266: +*** 2917,2930 **** + resume_momentary (yyvsp[-1].itype); ; + break;} + case 267: +! #line 1407 "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 268: +! #line 1412 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 2972,2985 ---- + resume_momentary (yyvsp[-1].itype); ; + break;} + case 267: +! #line 1418 "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 268: +! #line 1423 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 268: +*** 2932,3075 **** + resume_momentary (yyvsp[-1].itype); ; + break;} + case 269: +! #line 1418 "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 270: +! #line 1423 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 271: +! #line 1425 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! pedantic = yyvsp[-1].itype; ; + break;} + case 273: +! #line 1432 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 274: +! #line 1437 "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, prefix_attributes); ; + break;} + case 275: +! #line 1441 "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, prefix_attributes); ; + break;} + case 276: +! #line 1444 "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, prefix_attributes); ; + break;} + case 278: +! #line 1456 "c-parse.y" + { if (yyvsp[-2].ttype == error_mark_node) + yyval.ttype = yyvsp[-2].ttype; + else + yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; + break;} + case 279: +! #line 1461 "c-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 280: +! #line 1467 "c-parse.y" + { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 281: +! #line 1469 "c-parse.y" + { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 282: +! #line 1474 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 283: +! #line 1476 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 284: +! #line 1481 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 286: +! #line 1487 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 287: +! #line 1489 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 288: +! #line 1494 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 289: +! #line 1496 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 290: +! #line 1501 "c-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 291: +! #line 1504 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 292: +! #line 1506 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 293: +! #line 1508 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 294: +! #line 1510 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 295: +! #line 1512 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 296: +! #line 1514 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 297: +! #line 1516 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 298: +! #line 1518 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; + break;} + case 299: +! #line 1522 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 300: +! #line 1531 "c-parse.y" + { + if (pedantic && yyvsp[0].ends_in_label) + pedwarn ("ANSI C forbids label at end of compound statement"); + ; + break;} + case 302: +! #line 1540 "c-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 303: +! #line 1542 "c-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 307: +! #line 1554 "c-parse.y" + { emit_line_note (input_filename, lineno); + pushlevel (0); + clear_last_expr (); +--- 2987,3130 ---- + resume_momentary (yyvsp[-1].itype); ; + break;} + case 269: +! #line 1429 "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 270: +! #line 1434 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 271: +! #line 1436 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 273: +! #line 1443 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 274: +! #line 1448 "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, prefix_attributes); ; + break;} + case 275: +! #line 1452 "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, prefix_attributes); ; + break;} + case 276: +! #line 1455 "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, prefix_attributes); ; + break;} + case 278: +! #line 1467 "c-parse.y" + { if (yyvsp[-2].ttype == error_mark_node) + yyval.ttype = yyvsp[-2].ttype; + else + yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; + break;} + case 279: +! #line 1472 "c-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 280: +! #line 1478 "c-parse.y" + { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 281: +! #line 1480 "c-parse.y" + { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 282: +! #line 1485 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 283: +! #line 1487 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 284: +! #line 1492 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 286: +! #line 1498 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 287: +! #line 1500 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 288: +! #line 1505 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 289: +! #line 1507 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 290: +! #line 1512 "c-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 291: +! #line 1515 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 292: +! #line 1517 "c-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 293: +! #line 1519 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 294: +! #line 1521 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 295: +! #line 1523 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 296: +! #line 1525 "c-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 297: +! #line 1527 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 298: +! #line 1529 "c-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; + break;} + case 299: +! #line 1533 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 300: +! #line 1542 "c-parse.y" + { + if (pedantic && yyvsp[0].ends_in_label) + pedwarn ("ANSI C forbids label at end of compound statement"); + ; + break;} + case 302: +! #line 1551 "c-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 303: +! #line 1553 "c-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 307: +! #line 1565 "c-parse.y" + { emit_line_note (input_filename, lineno); + pushlevel (0); + clear_last_expr (); +*************** case 307: +*** 3078,3089 **** + ; + break;} + case 309: +! #line 1567 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids label declarations"); ; + break;} + case 312: +! #line 1578 "c-parse.y" + { tree link; + for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) + { +--- 3133,3144 ---- + ; + break;} + case 309: +! #line 1578 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids label declarations"); ; + break;} + case 312: +! #line 1589 "c-parse.y" + { tree link; + for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) + { +*************** case 312: +*** 3094,3112 **** + ; + break;} + case 313: +! #line 1592 "c-parse.y" + {; + break;} + case 315: +! #line 1596 "c-parse.y" + { compstmt_count++; ; + break;} + case 316: +! #line 1599 "c-parse.y" + { yyval.ttype = convert (void_type_node, integer_zero_node); ; + break;} + case 317: +! #line 1601 "c-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), 1, 0); + yyval.ttype = poplevel (1, 1, 0); +--- 3149,3167 ---- + ; + break;} + case 313: +! #line 1603 "c-parse.y" + {; + break;} + case 315: +! #line 1607 "c-parse.y" + { compstmt_count++; ; + break;} + case 316: +! #line 1610 "c-parse.y" + { yyval.ttype = convert (void_type_node, integer_zero_node); ; + break;} + case 317: +! #line 1612 "c-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), 1, 0); + yyval.ttype = poplevel (1, 1, 0); +*************** case 317: +*** 3116,3122 **** + pop_momentary (); ; + break;} + case 318: +! #line 1609 "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); +--- 3171,3177 ---- + pop_momentary (); ; + break;} + case 318: +! #line 1620 "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); +*************** case 318: +*** 3126,3132 **** + pop_momentary (); ; + break;} + case 319: +! #line 1617 "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); +--- 3181,3187 ---- + pop_momentary (); ; + break;} + case 319: +! #line 1628 "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); +*************** case 319: +*** 3136,3142 **** + pop_momentary (); ; + break;} + case 322: +! #line 1637 "c-parse.y" + { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, + compstmt_count); +--- 3191,3197 ---- + pop_momentary (); ; + break;} + case 322: +! #line 1648 "c-parse.y" + { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, + compstmt_count); +*************** case 322: +*** 3146,3152 **** + position_after_white_space (); ; + break;} + case 323: +! #line 1651 "c-parse.y" + { stmt_count++; + compstmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); +--- 3201,3207 ---- + position_after_white_space (); ; + break;} + case 323: +! #line 1662 "c-parse.y" + { stmt_count++; + compstmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); +*************** case 323: +*** 3156,3198 **** + position_after_white_space (); ; + break;} + case 324: +! #line 1659 "c-parse.y" + { expand_loop_continue_here (); ; + break;} + case 325: +! #line 1663 "c-parse.y" + { yyval.filename = input_filename; ; + break;} + case 326: +! #line 1667 "c-parse.y" + { yyval.lineno = lineno; ; + break;} + case 327: +! #line 1672 "c-parse.y" + { ; + break;} + case 328: +! #line 1677 "c-parse.y" + { ; + break;} + case 329: +! #line 1682 "c-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 330: +! #line 1687 "c-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 331: +! #line 1689 "c-parse.y" + { yyval.ends_in_label = 1; ; + break;} + case 332: +! #line 1695 "c-parse.y" + { stmt_count++; ; + break;} + case 334: +! #line 1698 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + /* It appears that this should not be done--that a non-lvalue array +--- 3211,3253 ---- + position_after_white_space (); ; + break;} + case 324: +! #line 1670 "c-parse.y" + { expand_loop_continue_here (); ; + break;} + case 325: +! #line 1674 "c-parse.y" + { yyval.filename = input_filename; ; + break;} + case 326: +! #line 1678 "c-parse.y" + { yyval.lineno = lineno; ; + break;} + case 327: +! #line 1683 "c-parse.y" + { ; + break;} + case 328: +! #line 1688 "c-parse.y" + { ; + break;} + case 329: +! #line 1693 "c-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 330: +! #line 1698 "c-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 331: +! #line 1700 "c-parse.y" + { yyval.ends_in_label = 1; ; + break;} + case 332: +! #line 1706 "c-parse.y" + { stmt_count++; ; + break;} + case 334: +! #line 1709 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + /* It appears that this should not be done--that a non-lvalue array +*************** case 334: +*** 3211,3229 **** + clear_momentary (); ; + break;} + case 335: +! #line 1715 "c-parse.y" + { c_expand_start_else (); + yyvsp[-1].itype = stmt_count; + position_after_white_space (); ; + break;} + case 336: +! #line 1719 "c-parse.y" + { c_expand_end_cond (); + if (extra_warnings && stmt_count == yyvsp[-3].itype) + warning ("empty body in an else-statement"); ; + break;} + case 337: +! #line 1723 "c-parse.y" + { c_expand_end_cond (); + /* This warning is here instead of in simple_if, because we + do not want a warning if an empty if is followed by an +--- 3266,3284 ---- + clear_momentary (); ; + break;} + case 335: +! #line 1726 "c-parse.y" + { c_expand_start_else (); + yyvsp[-1].itype = stmt_count; + position_after_white_space (); ; + break;} + case 336: +! #line 1730 "c-parse.y" + { c_expand_end_cond (); + if (extra_warnings && stmt_count == yyvsp[-3].itype) + warning ("empty body in an else-statement"); ; + break;} + case 337: +! #line 1734 "c-parse.y" + { c_expand_end_cond (); + /* This warning is here instead of in simple_if, because we + do not want a warning if an empty if is followed by an +*************** case 337: +*** 3234,3244 **** + "empty body in an if-statement"); ; + break;} + case 338: +! #line 1735 "c-parse.y" + { c_expand_end_cond (); ; + break;} + case 339: +! #line 1737 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); + /* The emit_nop used to come before emit_line_note, +--- 3289,3299 ---- + "empty body in an if-statement"); ; + break;} + case 338: +! #line 1746 "c-parse.y" + { c_expand_end_cond (); ; + break;} + case 339: +! #line 1748 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); + /* The emit_nop used to come before emit_line_note, +*************** case 339: +*** 3250,3256 **** + emit_nop (); ; + break;} + case 340: +! #line 1747 "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. */ +--- 3305,3311 ---- + emit_nop (); ; + break;} + case 340: +! #line 1758 "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. */ +*************** case 340: +*** 3261,3271 **** + position_after_white_space (); ; + break;} + case 341: +! #line 1756 "c-parse.y" + { expand_end_loop (); ; + break;} + case 342: +! #line 1759 "c-parse.y" + { emit_line_note (input_filename, lineno); + expand_exit_loop_if_false (NULL_PTR, + truthvalue_conversion (yyvsp[-2].ttype)); +--- 3316,3326 ---- + position_after_white_space (); ; + break;} + case 341: +! #line 1767 "c-parse.y" + { expand_end_loop (); ; + break;} + case 342: +! #line 1770 "c-parse.y" + { emit_line_note (input_filename, lineno); + expand_exit_loop_if_false (NULL_PTR, + truthvalue_conversion (yyvsp[-2].ttype)); +*************** case 342: +*** 3273,3284 **** + clear_momentary (); ; + break;} + case 343: +! #line 1766 "c-parse.y" + { expand_end_loop (); + clear_momentary (); ; + break;} + case 344: +! #line 1770 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + /* See comment in `while' alternative, above. */ +--- 3328,3339 ---- + clear_momentary (); ; + break;} + case 343: +! #line 1777 "c-parse.y" + { expand_end_loop (); + clear_momentary (); ; + break;} + case 344: +! #line 1781 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + /* See comment in `while' alternative, above. */ +*************** case 344: +*** 3291,3302 **** + ; + break;} + case 345: +! #line 1782 "c-parse.y" + { yyvsp[0].lineno = lineno; + yyval.filename = input_filename; ; + break;} + case 346: +! #line 1785 "c-parse.y" + { + /* Start the loop. Doing this after parsing + all the expressions ensures we will end the loop. */ +--- 3346,3357 ---- + ; + break;} + case 345: +! #line 1793 "c-parse.y" + { yyvsp[0].lineno = lineno; + yyval.filename = input_filename; ; + break;} + case 346: +! #line 1796 "c-parse.y" + { + /* Start the loop. Doing this after parsing + all the expressions ensures we will end the loop. */ +*************** case 346: +*** 3314,3320 **** + position_after_white_space (); ; + break;} + case 347: +! #line 1801 "c-parse.y" + { /* Emit the increment expression, with a line number. */ + emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); + expand_loop_continue_here (); +--- 3369,3375 ---- + position_after_white_space (); ; + break;} + case 347: +! #line 1812 "c-parse.y" + { /* Emit the increment expression, with a line number. */ + emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); + expand_loop_continue_here (); +*************** case 347: +*** 3327,3333 **** + expand_end_loop (); ; + break;} + case 348: +! #line 1812 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_case (yyvsp[-1].ttype); +--- 3382,3388 ---- + expand_end_loop (); ; + break;} + case 348: +! #line 1823 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_case (yyvsp[-1].ttype); +*************** case 348: +*** 3337,3343 **** + position_after_white_space (); ; + break;} + case 349: +! #line 1820 "c-parse.y" + { expand_end_case (yyvsp[-3].ttype); + if (yychar == CONSTANT || yychar == STRING) + pop_momentary_nofree (); +--- 3392,3398 ---- + position_after_white_space (); ; + break;} + case 349: +! #line 1831 "c-parse.y" + { expand_end_case (yyvsp[-3].ttype); + if (yychar == CONSTANT || yychar == STRING) + pop_momentary_nofree (); +*************** case 349: +*** 3345,3377 **** + pop_momentary (); ; + break;} + case 350: +! #line 1826 "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 351: +! #line 1831 "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 352: +! #line 1836 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + c_expand_return (NULL_TREE); ; + break;} + case 353: +! #line 1840 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); + c_expand_return (yyvsp[-1].ttype); ; + break;} + case 354: +! #line 1844 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); + STRIP_NOPS (yyvsp[-2].ttype); +--- 3400,3432 ---- + pop_momentary (); ; + break;} + case 350: +! #line 1837 "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 351: +! #line 1842 "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 352: +! #line 1847 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + c_expand_return (NULL_TREE); ; + break;} + case 353: +! #line 1851 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); + c_expand_return (yyvsp[-1].ttype); ; + break;} + case 354: +! #line 1855 "c-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); + STRIP_NOPS (yyvsp[-2].ttype); +*************** case 354: +*** 3383,3389 **** + error ("argument of `asm' is not a constant string"); ; + break;} + case 355: +! #line 1855 "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, +--- 3438,3444 ---- + error ("argument of `asm' is not a constant string"); ; + break;} + case 355: +! #line 1866 "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, +*************** case 355: +*** 3391,3397 **** + input_filename, lineno); ; + break;} + case 356: +! #line 1862 "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, +--- 3446,3452 ---- + input_filename, lineno); ; + break;} + case 356: +! #line 1873 "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, +*************** case 356: +*** 3399,3405 **** + input_filename, lineno); ; + break;} + case 357: +! #line 1870 "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, +--- 3454,3460 ---- + input_filename, lineno); ; + break;} + case 357: +! #line 1881 "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, +*************** case 357: +*** 3407,3413 **** + input_filename, lineno); ; + break;} + case 358: +! #line 1876 "c-parse.y" + { tree decl; + stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); +--- 3462,3468 ---- + input_filename, lineno); ; + break;} + case 358: +! #line 1887 "c-parse.y" + { tree decl; + stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); +*************** case 358: +*** 3420,3426 **** + ; + break;} + case 359: +! #line 1887 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids `goto *expr;'"); + stmt_count++; +--- 3475,3481 ---- + ; + break;} + case 359: +! #line 1898 "c-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids `goto *expr;'"); + stmt_count++; +*************** case 359: +*** 3428,3434 **** + expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; + break;} + case 362: +! #line 1902 "c-parse.y" + { + /* The value returned by this action is */ + /* 1 if everything is OK */ +--- 3483,3489 ---- + expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; + break;} + case 362: +! #line 1913 "c-parse.y" + { + /* The value returned by this action is */ + /* 1 if everything is OK */ +*************** case 362: +*** 3451,3464 **** + ; + break;} + case 363: +! #line 1923 "c-parse.y" + { + if (yyvsp[-1].itype) + iterator_for_loop_end (yyvsp[-3].ttype); + ; + break;} + case 364: +! #line 1958 "c-parse.y" + { register tree value = check_case_value (yyvsp[-1].ttype); + register tree label + = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); +--- 3506,3519 ---- + ; + break;} + case 363: +! #line 1934 "c-parse.y" + { + if (yyvsp[-1].itype) + iterator_for_loop_end (yyvsp[-3].ttype); + ; + break;} + case 364: +! #line 1969 "c-parse.y" + { register tree value = check_case_value (yyvsp[-1].ttype); + register tree label + = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); +*************** case 364: +*** 3491,3497 **** + position_after_white_space (); ; + break;} + case 365: +! #line 1989 "c-parse.y" + { register tree value1 = check_case_value (yyvsp[-3].ttype); + register tree value2 = check_case_value (yyvsp[-1].ttype); + register tree label +--- 3546,3552 ---- + position_after_white_space (); ; + break;} + case 365: +! #line 2000 "c-parse.y" + { register tree value1 = check_case_value (yyvsp[-3].ttype); + register tree value2 = check_case_value (yyvsp[-1].ttype); + register tree label +*************** case 365: +*** 3524,3530 **** + position_after_white_space (); ; + break;} + case 366: +! #line 2020 "c-parse.y" + { + tree duplicate; + register tree label +--- 3579,3585 ---- + position_after_white_space (); ; + break;} + case 366: +! #line 2031 "c-parse.y" + { + tree duplicate; + register tree label +*************** case 366: +*** 3541,3547 **** + position_after_white_space (); ; + break;} + case 367: +! #line 2035 "c-parse.y" + { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); + stmt_count++; + emit_nop (); +--- 3596,3602 ---- + position_after_white_space (); ; + break;} + case 367: +! #line 2046 "c-parse.y" + { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); + stmt_count++; + emit_nop (); +*************** case 367: +*** 3553,3604 **** + position_after_white_space (); ; + break;} + case 368: +! #line 2050 "c-parse.y" + { emit_line_note (input_filename, lineno); + yyval.ttype = NULL_TREE; ; + break;} + case 369: +! #line 2053 "c-parse.y" + { emit_line_note (input_filename, lineno); ; + break;} + case 370: +! #line 2058 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 372: +! #line 2065 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 375: +! #line 2072 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 376: +! #line 2077 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 377: +! #line 2082 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; + break;} + case 378: +! #line 2084 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; + break;} + case 379: +! #line 2090 "c-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (0); ; + break;} + case 380: +! #line 2094 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 382: +! #line 2102 "c-parse.y" + { tree parm; + if (pedantic) + pedwarn ("ANSI C forbids forward parameter declarations"); +--- 3608,3659 ---- + position_after_white_space (); ; + break;} + case 368: +! #line 2061 "c-parse.y" + { emit_line_note (input_filename, lineno); + yyval.ttype = NULL_TREE; ; + break;} + case 369: +! #line 2064 "c-parse.y" + { emit_line_note (input_filename, lineno); ; + break;} + case 370: +! #line 2069 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 372: +! #line 2076 "c-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 375: +! #line 2083 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 376: +! #line 2088 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 377: +! #line 2093 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; + break;} + case 378: +! #line 2095 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; + break;} + case 379: +! #line 2101 "c-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (0); ; + break;} + case 380: +! #line 2105 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 382: +! #line 2113 "c-parse.y" + { tree parm; + if (pedantic) + pedwarn ("ANSI C forbids forward parameter declarations"); +*************** case 382: +*** 3608,3626 **** + clear_parm_order (); ; + break;} + case 383: +! #line 2110 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 384: +! #line 2112 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; + break;} + case 385: +! #line 2118 "c-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 386: +! #line 2120 "c-parse.y" + { yyval.ttype = get_parm_info (0); + /* Gcc used to allow this as an extension. However, it does + not work for all targets, and thus has been disabled. +--- 3663,3681 ---- + clear_parm_order (); ; + break;} + case 383: +! #line 2121 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 384: +! #line 2123 "c-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; + break;} + case 385: +! #line 2129 "c-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 386: +! #line 2131 "c-parse.y" + { yyval.ttype = get_parm_info (0); + /* Gcc used to allow this as an extension. However, it does + not work for all targets, and thus has been disabled. +*************** case 386: +*** 3632,3654 **** + ; + break;} + case 387: +! #line 2130 "c-parse.y" + { yyval.ttype = get_parm_info (1); ; + break;} + case 388: +! #line 2132 "c-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 389: +! #line 2137 "c-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 390: +! #line 2139 "c-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 391: +! #line 2146 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 3687,3709 ---- + ; + break;} + case 387: +! #line 2141 "c-parse.y" + { yyval.ttype = get_parm_info (1); ; + break;} + case 388: +! #line 2143 "c-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 389: +! #line 2148 "c-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 390: +! #line 2150 "c-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 391: +! #line 2157 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 391: +*** 3659,3665 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 392: +! #line 2155 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 3714,3720 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 392: +! #line 2166 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 392: +*** 3670,3676 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 393: +! #line 2164 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 3725,3731 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 393: +! #line 2175 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 393: +*** 3681,3687 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 394: +! #line 2173 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 3736,3742 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 394: +! #line 2184 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 394: +*** 3692,3698 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 395: +! #line 2183 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 3747,3753 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 395: +! #line 2194 "c-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 395: +*** 3703,3721 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 396: +! #line 2197 "c-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (1); ; + break;} + case 397: +! #line 2201 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 399: +! #line 2209 "c-parse.y" + { tree t; + for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) + if (TREE_VALUE (t) == NULL_TREE) +--- 3758,3776 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 396: +! #line 2208 "c-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (1); ; + break;} + case 397: +! #line 2212 "c-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 399: +! #line 2220 "c-parse.y" + { tree t; + for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) + if (TREE_VALUE (t) == NULL_TREE) +*************** case 399: +*** 3723,3751 **** + yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 400: +! #line 2219 "c-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 401: +! #line 2221 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 402: +! #line 2227 "c-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 403: +! #line 2229 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 404: +! #line 2234 "c-parse.y" +! { yyval.itype = pedantic; +! pedantic = 0; ; + break;} + } + /* the action file gets copied in in place of this dollarsign */ +! #line 498 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +--- 3778,3807 ---- + yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 400: +! #line 2230 "c-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 401: +! #line 2232 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 402: +! #line 2238 "c-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 403: +! #line 2240 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 404: +! #line 2245 "c-parse.y" +! { yyval.ttype = SAVE_WARN_FLAGS(); +! pedantic = 0; +! warn_pointer_arith = 0; ; + break;} + } + /* the action file gets copied in in place of this dollarsign */ +! #line 543 "/usr/share/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +*************** yyerrhandle: +*** 3940,3945 **** + + yystate = yyn; + goto yynewstate; + } +! #line 2238 "c-parse.y" + +--- 3996,4025 ---- + + yystate = yyn; + goto yynewstate; ++ ++ yyacceptlab: ++ /* YYACCEPT comes here. */ ++ if (yyfree_stacks) ++ { ++ free (yyss); ++ free (yyvs); ++ #ifdef YYLSP_NEEDED ++ free (yyls); ++ #endif ++ } ++ return 0; ++ ++ yyabortlab: ++ /* YYABORT comes here. */ ++ if (yyfree_stacks) ++ { ++ free (yyss); ++ free (yyvs); ++ #ifdef YYLSP_NEEDED ++ free (yyls); ++ #endif ++ } ++ return 1; + } +! #line 2250 "c-parse.y" + +diff -c3rpN gcc-2.95.3.orig/gcc/c-parse.h gcc-2.95.4/gcc/c-parse.h +*** gcc-2.95.3.orig/gcc/c-parse.h Fri Mar 16 14:13:48 2001 +--- gcc-2.95.4/gcc/c-parse.h Wed Jun 6 01:36:02 2001 +*************** +*** 1,64 **** + typedef union {long itype; tree ttype; enum tree_code code; + char *filename; int lineno; int ends_in_label; } YYSTYPE; +! #define IDENTIFIER 258 +! #define TYPENAME 259 +! #define SCSPEC 260 +! #define TYPESPEC 261 +! #define TYPE_QUAL 262 +! #define CONSTANT 263 +! #define STRING 264 +! #define ELLIPSIS 265 +! #define SIZEOF 266 +! #define ENUM 267 +! #define STRUCT 268 +! #define UNION 269 +! #define IF 270 +! #define ELSE 271 +! #define WHILE 272 +! #define DO 273 +! #define FOR 274 +! #define SWITCH 275 +! #define CASE 276 +! #define DEFAULT 277 +! #define BREAK 278 +! #define CONTINUE 279 +! #define RETURN 280 +! #define GOTO 281 +! #define ASM_KEYWORD 282 +! #define TYPEOF 283 +! #define ALIGNOF 284 +! #define ATTRIBUTE 285 +! #define EXTENSION 286 +! #define LABEL 287 +! #define REALPART 288 +! #define IMAGPART 289 +! #define ASSIGN 290 +! #define OROR 291 +! #define ANDAND 292 +! #define EQCOMPARE 293 +! #define ARITHCOMPARE 294 +! #define LSHIFT 295 +! #define RSHIFT 296 +! #define UNARY 297 +! #define PLUSPLUS 298 +! #define MINUSMINUS 299 +! #define HYPERUNARY 300 +! #define POINTSAT 301 +! #define INTERFACE 302 +! #define IMPLEMENTATION 303 +! #define END 304 +! #define SELECTOR 305 +! #define DEFS 306 +! #define ENCODE 307 +! #define CLASSNAME 308 +! #define PUBLIC 309 +! #define PRIVATE 310 +! #define PROTECTED 311 +! #define PROTOCOL 312 +! #define OBJECTNAME 313 +! #define CLASS 314 +! #define ALIAS 315 +! #define OBJC_STRING 316 + + + extern YYSTYPE yylval; +--- 1,64 ---- + typedef union {long itype; tree ttype; enum tree_code code; + char *filename; int lineno; int ends_in_label; } YYSTYPE; +! #define IDENTIFIER 257 +! #define TYPENAME 258 +! #define SCSPEC 259 +! #define TYPESPEC 260 +! #define TYPE_QUAL 261 +! #define CONSTANT 262 +! #define STRING 263 +! #define ELLIPSIS 264 +! #define SIZEOF 265 +! #define ENUM 266 +! #define STRUCT 267 +! #define UNION 268 +! #define IF 269 +! #define ELSE 270 +! #define WHILE 271 +! #define DO 272 +! #define FOR 273 +! #define SWITCH 274 +! #define CASE 275 +! #define DEFAULT 276 +! #define BREAK 277 +! #define CONTINUE 278 +! #define RETURN 279 +! #define GOTO 280 +! #define ASM_KEYWORD 281 +! #define TYPEOF 282 +! #define ALIGNOF 283 +! #define ATTRIBUTE 284 +! #define EXTENSION 285 +! #define LABEL 286 +! #define REALPART 287 +! #define IMAGPART 288 +! #define ASSIGN 289 +! #define OROR 290 +! #define ANDAND 291 +! #define EQCOMPARE 292 +! #define ARITHCOMPARE 293 +! #define LSHIFT 294 +! #define RSHIFT 295 +! #define UNARY 296 +! #define PLUSPLUS 297 +! #define MINUSMINUS 298 +! #define HYPERUNARY 299 +! #define POINTSAT 300 +! #define INTERFACE 301 +! #define IMPLEMENTATION 302 +! #define END 303 +! #define SELECTOR 304 +! #define DEFS 305 +! #define ENCODE 306 +! #define CLASSNAME 307 +! #define PUBLIC 308 +! #define PRIVATE 309 +! #define PROTECTED 310 +! #define PROTOCOL 311 +! #define OBJECTNAME 312 +! #define CLASS 313 +! #define ALIAS 314 +! #define OBJC_STRING 315 + + + extern YYSTYPE yylval; +diff -c3rpN gcc-2.95.3.orig/gcc/c-parse.in gcc-2.95.4/gcc/c-parse.in +*** gcc-2.95.3.orig/gcc/c-parse.in Mon Apr 26 23:35:50 1999 +--- gcc-2.95.4/gcc/c-parse.in Wed Jun 6 01:36:03 2001 +*************** end ifc +*** 186,192 **** + %type init maybeasm + %type asm_operands nonnull_asm_operands asm_operand asm_clobbers + %type maybe_attribute attributes attribute attribute_list attrib +! %type any_word + + %type compstmt + +--- 186,192 ---- + %type init maybeasm + %type asm_operands nonnull_asm_operands asm_operand asm_clobbers + %type maybe_attribute attributes attribute attribute_list attrib +! %type any_word extension + + %type compstmt + +*************** static tree declspec_stack; +*** 247,252 **** +--- 247,263 ---- + /* 1 if we explained undeclared var errors. */ + static int undeclared_variable_notice; + ++ /* For __extension__, save/restore the warning flags which are ++ controlled by __extension__. */ ++ #define SAVE_WARN_FLAGS() \ ++ build_int_2 (pedantic | (warn_pointer_arith << 1), 0) ++ #define RESTORE_WARN_FLAGS(tval) \ ++ do { \ ++ int val = TREE_INT_CST_LOW (tval); \ ++ pedantic = val & 1; \ ++ warn_pointer_arith = (val >> 1) & 1; \ ++ } while (0) ++ + ifobjc + /* Objective-C specific information */ + +*************** end ifobjc +*** 307,313 **** + else + error ("argument of `asm' is not a constant string"); } + | extension extdef +! { pedantic = $1; } + ; + + datadef: +--- 318,324 ---- + else + error ("argument of `asm' is not a constant string"); } + | extension extdef +! { RESTORE_WARN_FLAGS ($1); } + ; + + datadef: +*************** unary_expr: +*** 448,454 **** + /* __extension__ turns off -pedantic for following primary. */ + | extension cast_expr %prec UNARY + { $$ = $2; +! pedantic = $1; } + | unop cast_expr %prec UNARY + { $$ = build_unary_op ($1, $2, 0); + overflow_warning ($$); } +--- 459,465 ---- + /* __extension__ turns off -pedantic for following primary. */ + | extension cast_expr %prec UNARY + { $$ = $2; +! RESTORE_WARN_FLAGS ($1); } + | unop cast_expr %prec UNARY + { $$ = build_unary_op ($1, $2, 0); + overflow_warning ($$); } +*************** decl: +*** 1015,1021 **** + | declmods ';' + { pedwarn ("empty declaration"); } + | extension decl +! { pedantic = $1; } + ; + + /* Declspecs which contain at least one type specifier or typedef name. +--- 1026,1032 ---- + | declmods ';' + { pedwarn ("empty declaration"); } + | extension decl +! { RESTORE_WARN_FLAGS ($1); } + ; + + /* Declspecs which contain at least one type specifier or typedef name. +*************** component_decl: +*** 1614,1620 **** + { $$ = NULL_TREE; } + | extension component_decl + { $$ = $2; +! pedantic = $1; } + ; + + components: +--- 1625,1631 ---- + { $$ = NULL_TREE; } + | extension component_decl + { $$ = $2; +! RESTORE_WARN_FLAGS ($1); } + ; + + components: +*************** identifiers_or_typenames: +*** 2426,2433 **** + + extension: + EXTENSION +! { $$ = pedantic; +! pedantic = 0; } + ; + + ifobjc +--- 2437,2445 ---- + + extension: + EXTENSION +! { $$ = SAVE_WARN_FLAGS(); +! pedantic = 0; +! warn_pointer_arith = 0; } + ; + + ifobjc +diff -c3rpN gcc-2.95.3.orig/gcc/c-parse.y gcc-2.95.4/gcc/c-parse.y +*** gcc-2.95.3.orig/gcc/c-parse.y Mon Apr 26 23:35:51 1999 +--- gcc-2.95.4/gcc/c-parse.y Wed Jun 6 01:36:03 2001 +*************** char *language_string = "GNU C"; +*** 174,180 **** + %type init maybeasm + %type asm_operands nonnull_asm_operands asm_operand asm_clobbers + %type maybe_attribute attributes attribute attribute_list attrib +! %type any_word + + %type compstmt + +--- 174,180 ---- + %type init maybeasm + %type asm_operands nonnull_asm_operands asm_operand asm_clobbers + %type maybe_attribute attributes attribute attribute_list attrib +! %type any_word extension + + %type compstmt + +*************** static tree declspec_stack; +*** 222,227 **** +--- 222,238 ---- + /* 1 if we explained undeclared var errors. */ + static int undeclared_variable_notice; + ++ /* For __extension__, save/restore the warning flags which are ++ controlled by __extension__. */ ++ #define SAVE_WARN_FLAGS() \ ++ build_int_2 (pedantic | (warn_pointer_arith << 1), 0) ++ #define RESTORE_WARN_FLAGS(tval) \ ++ do { \ ++ int val = TREE_INT_CST_LOW (tval); \ ++ pedantic = val & 1; \ ++ warn_pointer_arith = (val >> 1) & 1; \ ++ } while (0) ++ + + /* Tell yyparse how to print a token's value, if yydebug is set. */ + +*************** extdef: +*** 266,272 **** + else + error ("argument of `asm' is not a constant string"); } + | extension extdef +! { pedantic = $1; } + ; + + datadef: +--- 277,283 ---- + else + error ("argument of `asm' is not a constant string"); } + | extension extdef +! { RESTORE_WARN_FLAGS ($1); } + ; + + datadef: +*************** unary_expr: +*** 403,409 **** + /* __extension__ turns off -pedantic for following primary. */ + | extension cast_expr %prec UNARY + { $$ = $2; +! pedantic = $1; } + | unop cast_expr %prec UNARY + { $$ = build_unary_op ($1, $2, 0); + overflow_warning ($$); } +--- 414,420 ---- + /* __extension__ turns off -pedantic for following primary. */ + | extension cast_expr %prec UNARY + { $$ = $2; +! RESTORE_WARN_FLAGS ($1); } + | unop cast_expr %prec UNARY + { $$ = build_unary_op ($1, $2, 0); + overflow_warning ($$); } +*************** decl: +*** 860,866 **** + | declmods ';' + { pedwarn ("empty declaration"); } + | extension decl +! { pedantic = $1; } + ; + + /* Declspecs which contain at least one type specifier or typedef name. +--- 871,877 ---- + | declmods ';' + { pedwarn ("empty declaration"); } + | extension decl +! { RESTORE_WARN_FLAGS ($1); } + ; + + /* Declspecs which contain at least one type specifier or typedef name. +*************** component_decl: +*** 1423,1429 **** + { $$ = NULL_TREE; } + | extension component_decl + { $$ = $2; +! pedantic = $1; } + ; + + components: +--- 1434,1440 ---- + { $$ = NULL_TREE; } + | extension component_decl + { $$ = $2; +! RESTORE_WARN_FLAGS ($1); } + ; + + components: +*************** identifiers_or_typenames: +*** 2231,2238 **** + + extension: + EXTENSION +! { $$ = pedantic; +! pedantic = 0; } + ; + + %% +--- 2242,2250 ---- + + extension: + EXTENSION +! { $$ = SAVE_WARN_FLAGS(); +! pedantic = 0; +! warn_pointer_arith = 0; } + ; + + %% +diff -c3rpN gcc-2.95.3.orig/gcc/cccp.c gcc-2.95.4/gcc/cccp.c +*** gcc-2.95.3.orig/gcc/cccp.c Thu Jan 25 14:03:00 2001 +--- gcc-2.95.4/gcc/cccp.c Wed Jun 6 01:36:03 2001 +*************** +*** 1,6 **** + /* C Compatible Compiler Preprocessor (CCCP) + Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +! 1999, 2000 Free Software Foundation, Inc. + Written by Paul Rubin, June 1986 + Adapted to ANSI C, Richard Stallman, Jan 1987 + +--- 1,6 ---- + /* C Compatible Compiler Preprocessor (CCCP) + Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +! 1999, 2000, 2001 Free Software Foundation, Inc. + Written by Paul Rubin, June 1986 + Adapted to ANSI C, Richard Stallman, Jan 1987 + +*************** typedef unsigned char U_CHAR; +*** 58,67 **** + #endif + + /* By default, the suffix for object files is ".o". */ +! #ifdef OBJECT_SUFFIX +! # define HAVE_OBJECT_SUFFIX + #else +! # define OBJECT_SUFFIX ".o" + #endif + + /* VMS-specific definitions */ +--- 58,67 ---- + #endif + + /* By default, the suffix for object files is ".o". */ +! #ifdef TARGET_OBJECT_SUFFIX +! # define HAVE_TARGET_OBJECT_SUFFIX + #else +! # define TARGET_OBJECT_SUFFIX ".o" + #endif + + /* VMS-specific definitions */ +*************** main (argc, argv) +*** 2028,2034 **** + q = p + (len - 4); + + /* Supply our own suffix. */ +! strcpy (q, OBJECT_SUFFIX); + + deps_output (p, ':'); + deps_output (in_fname, ' '); +--- 2028,2034 ---- + q = p + (len - 4); + + /* Supply our own suffix. */ +! strcpy (q, TARGET_OBJECT_SUFFIX); + + deps_output (p, ':'); + deps_output (in_fname, ' '); +diff -c3rpN gcc-2.95.3.orig/gcc/collect2.c gcc-2.95.4/gcc/collect2.c +*** gcc-2.95.3.orig/gcc/collect2.c Thu Jan 25 14:03:01 2001 +--- gcc-2.95.4/gcc/collect2.c Wed Jun 6 01:36:07 2001 +*************** +*** 1,7 **** + /* Collect static initialization info into data structures that can be + traversed by C++ initialization and finalization routines. +! Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +! Free Software Foundation, Inc. + Contributed by Chris Smith (csmith@convex.com). + Heavily modified by Michael Meissner (meissner@cygnus.com), + Per Bothner (bothner@cygnus.com), and John Gilmore (gnu@cygnus.com). +--- 1,7 ---- + /* Collect static initialization info into data structures that can be + traversed by C++ initialization and finalization routines. +! Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +! 2001 Free Software Foundation, Inc. + Contributed by Chris Smith (csmith@convex.com). + Heavily modified by Michael Meissner (meissner@cygnus.com), + Per Bothner (bothner@cygnus.com), and John Gilmore (gnu@cygnus.com). +*************** find_a_file (pprefix, name) +*** 815,822 **** + if (debug) + fprintf (stderr, "Looking for '%s'\n", name); + +! #ifdef EXECUTABLE_SUFFIX +! len += strlen (EXECUTABLE_SUFFIX); + #endif + + temp = xmalloc (len); +--- 815,822 ---- + if (debug) + fprintf (stderr, "Looking for '%s'\n", name); + +! #ifdef HOST_EXECUTABLE_SUFFIX +! len += strlen (HOST_EXECUTABLE_SUFFIX); + #endif + + temp = xmalloc (len); +*************** find_a_file (pprefix, name) +*** 839,849 **** + return temp; + } + +! #ifdef EXECUTABLE_SUFFIX + /* Some systems have a suffix for executable files. + So try appending that. */ + strcpy (temp, name); +! strcat (temp, EXECUTABLE_SUFFIX); + + if (access (temp, X_OK) == 0) + return temp; +--- 839,849 ---- + return temp; + } + +! #ifdef HOST_EXECUTABLE_SUFFIX + /* Some systems have a suffix for executable files. + So try appending that. */ + strcpy (temp, name); +! strcat (temp, HOST_EXECUTABLE_SUFFIX); + + if (access (temp, X_OK) == 0) + return temp; +*************** find_a_file (pprefix, name) +*** 861,870 **** + if (access (temp, X_OK) == 0) + return temp; + +! #ifdef EXECUTABLE_SUFFIX + /* Some systems have a suffix for executable files. + So try appending that. */ +! strcat (temp, EXECUTABLE_SUFFIX); + + if (access (temp, X_OK) == 0) + return temp; +--- 861,870 ---- + if (access (temp, X_OK) == 0) + return temp; + +! #ifdef HOST_EXECUTABLE_SUFFIX + /* Some systems have a suffix for executable files. + So try appending that. */ +! strcat (temp, HOST_EXECUTABLE_SUFFIX); + + if (access (temp, X_OK) == 0) + return temp; +diff -c3rpN gcc-2.95.3.orig/gcc/combine.c gcc-2.95.4/gcc/combine.c +*** gcc-2.95.3.orig/gcc/combine.c Thu Jan 25 14:03:01 2001 +--- gcc-2.95.4/gcc/combine.c Wed Jun 6 01:36:08 2001 +*************** nonzero_bits (x, mode) +*** 7580,7587 **** + + if (reg_last_set_value[REGNO (x)] != 0 + && reg_last_set_mode[REGNO (x)] == mode +! && (REG_N_SETS (REGNO (x)) == 1 +! || reg_last_set_label[REGNO (x)] == label_tick) + && INSN_CUID (reg_last_set[REGNO (x)]) < subst_low_cuid) + return reg_last_set_nonzero_bits[REGNO (x)]; + +--- 7580,7590 ---- + + if (reg_last_set_value[REGNO (x)] != 0 + && reg_last_set_mode[REGNO (x)] == mode +! && (reg_last_set_label[REGNO (x)] == label_tick +! || (REGNO (x) >= FIRST_PSEUDO_REGISTER +! && REG_N_SETS (REGNO (x)) == 1 +! && ! REGNO_REG_SET_P (BASIC_BLOCK (0)->global_live_at_start, +! REGNO (x)))) + && INSN_CUID (reg_last_set[REGNO (x)]) < subst_low_cuid) + return reg_last_set_nonzero_bits[REGNO (x)]; + +*************** num_sign_bit_copies (x, mode) +*** 7970,7977 **** + + if (reg_last_set_value[REGNO (x)] != 0 + && reg_last_set_mode[REGNO (x)] == mode +! && (REG_N_SETS (REGNO (x)) == 1 +! || reg_last_set_label[REGNO (x)] == label_tick) + && INSN_CUID (reg_last_set[REGNO (x)]) < subst_low_cuid) + return reg_last_set_sign_bit_copies[REGNO (x)]; + +--- 7973,7983 ---- + + if (reg_last_set_value[REGNO (x)] != 0 + && reg_last_set_mode[REGNO (x)] == mode +! && (reg_last_set_label[REGNO (x)] == label_tick +! || (REGNO (x) >= FIRST_PSEUDO_REGISTER +! && REG_N_SETS (REGNO (x)) == 1 +! && ! REGNO_REG_SET_P (BASIC_BLOCK (0)->global_live_at_start, +! REGNO (x)))) + && INSN_CUID (reg_last_set[REGNO (x)]) < subst_low_cuid) + return reg_last_set_sign_bit_copies[REGNO (x)]; + +*************** get_last_value_validate (loc, insn, tick +*** 10819,10827 **** + + for (j = regno; j < endregno; j++) + if (reg_last_set_invalid[j] +! /* If this is a pseudo-register that was only set once, it is +! always valid. */ +! || (! (regno >= FIRST_PSEUDO_REGISTER && REG_N_SETS (regno) == 1) + && reg_last_set_label[j] > tick)) + { + if (replace) +--- 10825,10835 ---- + + for (j = regno; j < endregno; j++) + if (reg_last_set_invalid[j] +! /* If this is a pseudo-register that was only set once and not +! live at the beginning of the function, it is always valid. */ +! || (! (regno >= FIRST_PSEUDO_REGISTER +! && REG_N_SETS (regno) == 1 +! && ! REGNO_REG_SET_P (BASIC_BLOCK (0)->global_live_at_start, regno)) + && reg_last_set_label[j] > tick)) + { + if (replace) +*************** get_last_value (x) +*** 10880,10891 **** + regno = REGNO (x); + value = reg_last_set_value[regno]; + +! /* If we don't have a value or if it isn't for this basic block, +! return 0. */ + + if (value == 0 +! || (REG_N_SETS (regno) != 1 +! && reg_last_set_label[regno] != label_tick)) + return 0; + + /* If the value was set in a later insn than the ones we are processing, +--- 10888,10908 ---- + regno = REGNO (x); + value = reg_last_set_value[regno]; + +! /* If we don't have a value, or if it isn't for this basic block and +! it's either a hard register, set more than once, or it's a live +! at the beginning of the function, return 0. +! +! Because if it's not live at the beginnning of the function then the reg +! is always set before being used (is never used without being set). +! And, if it's set only once, and it's always set before use, then all +! uses must have the same last value, even if it's not from this basic +! block. */ + + if (value == 0 +! || (reg_last_set_label[regno] != label_tick +! && (regno < FIRST_PSEUDO_REGISTER +! || REG_N_SETS (regno) != 1 +! || REGNO_REG_SET_P (BASIC_BLOCK (0)->global_live_at_start, regno)))) + return 0; + + /* If the value was set in a later insn than the ones we are processing, +diff -c3rpN gcc-2.95.3.orig/gcc/config/alpha/vms.h gcc-2.95.4/gcc/config/alpha/vms.h +*** gcc-2.95.3.orig/gcc/config/alpha/vms.h Mon Jun 21 21:15:14 1999 +--- gcc-2.95.4/gcc/config/alpha/vms.h Wed Jun 6 01:36:11 2001 +*************** +*** 1,5 **** + /* Output variables, constants and external declarations, for GNU compiler. +! Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,5 ---- + /* Output variables, constants and external declarations, for GNU compiler. +! Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** the Free Software Foundation, 59 Temple +*** 19,24 **** +--- 19,27 ---- + Boston, MA 02111-1307, USA. */ + + #define OPEN_VMS 1 ++ ++ #define TARGET_OBJECT_SUFFIX ".obj" ++ #define TARGET_EXECUTABLE_SUFFIX ".exe" + + /* This enables certain macros in alpha.h, which will make an indirect + reference to an external symbol an invalid address. This needs to be +diff -c3rpN gcc-2.95.3.orig/gcc/config/alpha/xm-vms.h gcc-2.95.4/gcc/config/alpha/xm-vms.h +*** gcc-2.95.3.orig/gcc/config/alpha/xm-vms.h Wed Dec 16 21:01:15 1998 +--- gcc-2.95.4/gcc/config/alpha/xm-vms.h Wed Jun 6 01:36:12 2001 +*************** +*** 1,5 **** + /* Configuration for GNU C-compiler for openVMS/Alpha. +! Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Contributed by Klaus Kaempf (kkaempf@progis.de). + + This file is part of GNU CC. +--- 1,5 ---- + /* Configuration for GNU C-compiler for openVMS/Alpha. +! Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc. + Contributed by Klaus Kaempf (kkaempf@progis.de). + + This file is part of GNU CC. +*************** extern void *alloca (size_t); +*** 89,93 **** + extern char *alloca (unsigned int); + #endif + +! #define OBJECT_SUFFIX ".obj" +! #define EXECUTABLE_SUFFIX ".exe" +--- 89,93 ---- + extern char *alloca (unsigned int); + #endif + +! #define HOST_OBJECT_SUFFIX ".obj" +! #define HOST_EXECUTABLE_SUFFIX ".exe" +diff -c3rpN gcc-2.95.3.orig/gcc/config/arm/linux-elf.h gcc-2.95.4/gcc/config/arm/linux-elf.h +*** gcc-2.95.3.orig/gcc/config/arm/linux-elf.h Thu Jan 25 14:03:29 2001 +--- gcc-2.95.4/gcc/config/arm/linux-elf.h Wed Jun 6 01:36:14 2001 +*************** const_section () \ +*** 223,228 **** +--- 223,266 ---- + go into the const section. */ + #define SELECT_RTX_SECTION(MODE,RTX) const_section () + ++ #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) ++ #define UNIQUE_SECTION_P(DECL) (DECL_ONE_ONLY (DECL)) ++ ++ #define UNIQUE_SECTION(DECL, RELOC) \ ++ do \ ++ { \ ++ int len; \ ++ char *name; \ ++ char *string; \ ++ char *prefix; \ ++ \ ++ name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \ ++ \ ++ if (! DECL_ONE_ONLY (DECL)) \ ++ { \ ++ prefix = "."; \ ++ if (TREE_CODE (DECL) == FUNCTION_DECL) \ ++ prefix = ".text."; \ ++ else if (DECL_READONLY_SECTION (DECL, RELOC)) \ ++ prefix = ".rodata."; \ ++ else \ ++ prefix = ".data."; \ ++ } \ ++ else if (TREE_CODE (DECL) == FUNCTION_DECL) \ ++ prefix = ".gnu.linkonce.t."; \ ++ else if (DECL_READONLY_SECTION (DECL, RELOC)) \ ++ prefix = ".gnu.linkonce.r."; \ ++ else \ ++ prefix = ".gnu.linkonce.d."; \ ++ \ ++ len = strlen (name) + strlen (prefix); \ ++ string = alloca (len + 1); \ ++ sprintf (string, "%s%s", prefix, name); \ ++ \ ++ DECL_SECTION_NAME (DECL) = build_string (len, string); \ ++ } \ ++ while (0) ++ + /* On svr4, we *do* have support for the .init and .fini sections, and we + can put stuff in there to be executed before and after `main'. We let + crtstuff.c and other files know this by defining the following symbols. +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/cygwin.h gcc-2.95.4/gcc/config/i386/cygwin.h +*** gcc-2.95.3.orig/gcc/config/i386/cygwin.h Mon Jun 21 05:54:43 1999 +--- gcc-2.95.4/gcc/config/i386/cygwin.h Wed Jun 6 01:36:23 2001 +*************** +*** 2,8 **** + hosting on Windows NT 3.x, using a Unix style C library and tools, + as distinct from winnt.h, which is used to build GCC for use with a + windows style library and tool set and uses the Microsoft tools. +! Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 2,9 ---- + hosting on Windows NT 3.x, using a Unix style C library and tools, + as distinct from winnt.h, which is used to build GCC for use with a + windows style library and tool set and uses the Microsoft tools. +! Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001 Free Software +! Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 26,31 **** +--- 27,34 ---- + #define DBX_DEBUGGING_INFO + #define SDB_DEBUGGING_INFO + #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG ++ ++ #define TARGET_EXECUTABLE_SUFFIX ".exe" + + #include "i386/gas.h" + #include "dbxcoff.h" +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/freebsd-elf.h gcc-2.95.4/gcc/config/i386/freebsd-elf.h +*** gcc-2.95.3.orig/gcc/config/i386/freebsd-elf.h Mon Dec 18 14:05:58 2000 +--- gcc-2.95.4/gcc/config/i386/freebsd-elf.h Wed Jun 6 01:36:23 2001 +*************** Boston, MA 02111-1307, USA. */ +*** 135,140 **** +--- 135,143 ---- + : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \ + : (-1)) + ++ #undef NO_PROFILE_COUNTERS ++ #define NO_PROFILE_COUNTERS ++ + /* Tell final.c that we don't need a label passed to mcount. */ + + #undef FUNCTION_PROFILER +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/linux.h gcc-2.95.4/gcc/config/i386/linux.h +*** gcc-2.95.3.orig/gcc/config/i386/linux.h Thu Apr 8 01:32:13 1999 +--- gcc-2.95.4/gcc/config/i386/linux.h Wed Jun 6 01:36:25 2001 +*************** Boston, MA 02111-1307, USA. */ +*** 234,236 **** +--- 234,254 ---- + } \ + } while (0) + #endif ++ ++ #if defined(__PIC__) && defined (USE_GNULIBC_1) ++ /* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr, ++ __environ and atexit (). We have to make sure they are in the .dynsym ++ section. We accomplish it by making a dummy call here. This ++ code is never reached. */ ++ ++ #define CRT_END_INIT_DUMMY \ ++ do \ ++ { \ ++ extern void *___brk_addr; \ ++ extern char **__environ; \ ++ \ ++ ___brk_addr = __environ; \ ++ atexit (0); \ ++ } \ ++ while (0) ++ #endif +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/mingw32.h gcc-2.95.4/gcc/config/i386/mingw32.h +*** gcc-2.95.3.orig/gcc/config/i386/mingw32.h Mon Apr 12 19:18:06 1999 +--- gcc-2.95.4/gcc/config/i386/mingw32.h Wed Jun 6 01:36:25 2001 +*************** +*** 2,8 **** + hosting on Windows32, using GNU tools and the Windows32 API Library, + as distinct from winnt.h, which is used to build GCC for use with a + windows style library and tool set and uses the Microsoft tools. +! Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 2,8 ---- + hosting on Windows32, using GNU tools and the Windows32 API Library, + as distinct from winnt.h, which is used to build GCC for use with a + windows style library and tool set and uses the Microsoft tools. +! Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 25,30 **** +--- 25,32 ---- + specs. */ + + #include "i386/cygwin.h" ++ ++ #define TARGET_EXECUTABLE_SUFFIX ".exe" + + /* Please keep changes to CPP_PREDEFINES in sync with i386/crtdll. The + only difference between the two should be __MSVCRT__ needed to +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/xm-cygwin.h gcc-2.95.4/gcc/config/i386/xm-cygwin.h +*** gcc-2.95.3.orig/gcc/config/i386/xm-cygwin.h Thu Apr 22 15:40:55 1999 +--- gcc-2.95.4/gcc/config/i386/xm-cygwin.h Wed Jun 6 01:36:32 2001 +*************** +*** 1,6 **** + /* Configuration for GNU C-compiler for hosting on Windows NT. + using a unix style C library. +! Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,7 ---- + /* Configuration for GNU C-compiler for hosting on Windows NT. + using a unix style C library. +! Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001 Free Software +! Foundation, Inc. + + This file is part of GNU CC. + +*************** along with GNU CC; see the file COPYING. +*** 19,25 **** + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +! #define EXECUTABLE_SUFFIX ".exe" + #define NO_SYS_SIGLIST 1 + + /* We support both "/" and "\" since everybody tests both but we +--- 20,26 ---- + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +! #define HOST_EXECUTABLE_SUFFIX ".exe" + #define NO_SYS_SIGLIST 1 + + /* We support both "/" and "\" since everybody tests both but we +*************** Boston, MA 02111-1307, USA. */ +*** 31,56 **** + #define DIR_SEPARATOR '/' + #define DIR_SEPARATOR_2 '\\' + +! /* Convert win32 style path lists to POSIX style for consistency. */ + #undef GET_ENV_PATH_LIST + #define GET_ENV_PATH_LIST(VAR,NAME) \ + do { \ + char *_epath; \ +! char *_posixepath; \ +! _epath = _posixepath = getenv (NAME); \ +! /* if we have a posix path list, convert to posix path list */ \ +! if (_epath != NULL && *_epath != 0 \ +! && ! cygwin_posix_path_list_p (_epath)) \ + { \ +! char *p; \ +! _posixepath = (char *) xmalloc \ + (cygwin_win32_to_posix_path_list_buf_size (_epath)); \ +! cygwin_win32_to_posix_path_list (_epath, _posixepath); \ + } \ +! (VAR) = _posixepath; \ + } while (0) + +! #define PATH_SEPARATOR ':' + + /* This is needed so that protoize will compile. */ + #ifndef POSIX +--- 32,157 ---- + #define DIR_SEPARATOR '/' + #define DIR_SEPARATOR_2 '\\' + +! /* Get path lists and convert it to Posix or Win32 style. */ +! /* Posix is default unless FORCE_DOS_PATH_STYLE defined. */ +! +! #ifdef CYGWIN_USES_DOS_PATHS +! #define HAVE_DOS_BASED_FILESYSTEM +! #define FORCE_DOS_PATH_STYLE 1 +! #endif +! #ifdef CYGWIN_VXWORKS_PATHS +! #define SYNTHETIC_VXWORKS_PREFIXES +! #endif +! +! +! #ifdef FORCE_DOS_PATH_STYLE +! +! #define PATH_SEPARATOR ';' +! +! #else +! +! #define FORCE_DOS_PATH_STYLE 0 +! #define PATH_SEPARATOR ':' +! +! #endif +! + #undef GET_ENV_PATH_LIST ++ #ifdef __CYGWIN32__ ++ ++ #define CONVERT_PATH(VAR,NAME) \ ++ do { \ ++ char *_epath; \ ++ char *_resultepath; \ ++ _epath = _resultepath = NAME; \ ++ if (_epath != NULL && *_epath != 0) \ ++ if (FORCE_DOS_PATH_STYLE) { \ ++ if ( cygwin32_posix_path_list_p (_epath)) \ ++ { \ ++ _resultepath = (char *) xmalloc \ ++ (cygwin32_posix_to_win32_path_list_buf_size (_epath)); \ ++ cygwin32_posix_to_win32_path_list (_epath, _resultepath); \ ++ } \ ++ } else \ ++ if ( !cygwin32_posix_path_list_p (_epath)) \ ++ { \ ++ _resultepath = (char *) xmalloc \ ++ (cygwin32_win32_to_posix_path_list_buf_size (_epath)); \ ++ cygwin32_win32_to_posix_path_list (_epath, _resultepath); \ ++ } \ ++ (VAR) = _resultepath; \ ++ } while (0) ++ + #define GET_ENV_PATH_LIST(VAR,NAME) \ + do { \ + char *_epath; \ +! char *_resultepath; \ +! _epath = _resultepath = getenv (NAME); \ +! if (_epath != NULL && *_epath != 0) \ +! if (FORCE_DOS_PATH_STYLE) { \ +! if ( cygwin32_posix_path_list_p (_epath)) \ +! { \ +! _resultepath = (char *) xmalloc \ +! (cygwin32_posix_to_win32_path_list_buf_size (_epath)); \ +! cygwin32_posix_to_win32_path_list (_epath, _resultepath); \ +! } \ +! } else \ +! if ( !cygwin32_posix_path_list_p (_epath)) \ + { \ +! _resultepath = (char *) xmalloc \ +! (cygwin32_win32_to_posix_path_list_buf_size (_epath)); \ +! cygwin32_win32_to_posix_path_list (_epath, _resultepath); \ +! } \ +! (VAR) = _resultepath; \ +! } while (0) +! +! #else +! +! #define CONVERT_PATH(VAR,NAME)\ +! do { \ +! char *_epath; \ +! char *_resultepath; \ +! _epath = _resultepath = NAME; \ +! if (_epath != NULL && *_epath != 0) \ +! if (FORCE_DOS_PATH_STYLE) { \ +! if ( cygwin_posix_path_list_p (_epath)) \ +! { \ +! _resultepath = (char *) xmalloc \ +! (cygwin_posix_to_win32_path_list_buf_size (_epath)); \ +! cygwin_posix_to_win32_path_list (_epath, _resultepath); \ +! } \ +! } else \ +! if ( !cygwin_posix_path_list_p (_epath)) \ +! { \ +! _resultepath = (char *) xmalloc \ + (cygwin_win32_to_posix_path_list_buf_size (_epath)); \ +! cygwin_win32_to_posix_path_list (_epath, _resultepath); \ + } \ +! (VAR) = _resultepath; \ + } while (0) + +! #define GET_ENV_PATH_LIST(VAR,NAME) \ +! do { \ +! char *_epath; \ +! char *_resultepath; \ +! _epath = _resultepath = getenv (NAME); \ +! if (_epath != NULL && *_epath != 0) \ +! if (FORCE_DOS_PATH_STYLE) { \ +! if ( cygwin_posix_path_list_p (_epath)) \ +! { \ +! _resultepath = (char *) xmalloc \ +! (cygwin_posix_to_win32_path_list_buf_size (_epath)); \ +! cygwin_posix_to_win32_path_list (_epath, _resultepath); \ +! } \ +! } else \ +! if ( !cygwin_posix_path_list_p (_epath)) \ +! { \ +! _resultepath = (char *) xmalloc \ +! (cygwin_win32_to_posix_path_list_buf_size (_epath)); \ +! cygwin_win32_to_posix_path_list (_epath, _resultepath); \ +! } \ +! (VAR) = _resultepath; \ +! } while (0) +! #endif + + /* This is needed so that protoize will compile. */ + #ifndef POSIX +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/xm-djgpp.h gcc-2.95.4/gcc/config/i386/xm-djgpp.h +*** gcc-2.95.3.orig/gcc/config/i386/xm-djgpp.h Mon Jun 21 06:24:33 1999 +--- gcc-2.95.4/gcc/config/i386/xm-djgpp.h Wed Jun 6 01:36:32 2001 +*************** +*** 1,5 **** + /* Configuration for GNU C-compiler for Intel 80386 running DJGPP. +! Copyright (C) 1988, 1996, 1998, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,5 ---- + /* Configuration for GNU C-compiler for Intel 80386 running DJGPP. +! Copyright (C) 1988, 1996, 1998, 1999, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 25,31 **** + /* Use semicolons to separate elements of a path. */ + #define PATH_SEPARATOR ';' + +! #define EXECUTABLE_SUFFIX ".exe" + + /* Even though we support "/", allow "\" since everybody tests both. */ + #define DIR_SEPARATOR '/' +--- 25,31 ---- + /* Use semicolons to separate elements of a path. */ + #define PATH_SEPARATOR ';' + +! #define HOST_EXECUTABLE_SUFFIX ".exe" + + /* Even though we support "/", allow "\" since everybody tests both. */ + #define DIR_SEPARATOR '/' +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/xm-dos.h gcc-2.95.4/gcc/config/i386/xm-dos.h +*** gcc-2.95.3.orig/gcc/config/i386/xm-dos.h Sat Apr 10 05:27:12 1999 +--- gcc-2.95.4/gcc/config/i386/xm-dos.h Wed Jun 6 01:36:33 2001 +*************** +*** 1,5 **** + /* Configuration for GNU C-compiler for Intel 80386 running DOS. +! Copyright (C) 1998, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,5 ---- + /* Configuration for GNU C-compiler for Intel 80386 running DOS. +! Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 31,37 **** + #define HAVE_DOS_BASED_FILE_SYSTEM + + /* Suffix for executable file names. */ +! #define EXECUTABLE_SUFFIX ".exe" + + #define MKTEMP_EACH_FILE 1 + +--- 31,37 ---- + #define HAVE_DOS_BASED_FILE_SYSTEM + + /* Suffix for executable file names. */ +! #define HOST_EXECUTABLE_SUFFIX ".exe" + + #define MKTEMP_EACH_FILE 1 + +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/xm-mingw32.h gcc-2.95.4/gcc/config/i386/xm-mingw32.h +*** gcc-2.95.3.orig/gcc/config/i386/xm-mingw32.h Sat Apr 10 05:27:13 1999 +--- gcc-2.95.4/gcc/config/i386/xm-mingw32.h Wed Jun 6 01:36:33 2001 +*************** +*** 1,6 **** + /* Configuration for GNU C-compiler for hosting on Windows32. + using GNU tools and the Windows32 API Library. +! Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,6 ---- + /* Configuration for GNU C-compiler for hosting on Windows32. + using GNU tools and the Windows32 API Library. +! Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 42,48 **** + like Cygwin does. */ + #define HAVE_DOS_BASED_FILE_SYSTEM + +! #define EXECUTABLE_SUFFIX ".exe" + + #undef PATH_SEPARATOR + #define PATH_SEPARATOR ';' +--- 42,48 ---- + like Cygwin does. */ + #define HAVE_DOS_BASED_FILE_SYSTEM + +! #define HOST_EXECUTABLE_SUFFIX ".exe" + + #undef PATH_SEPARATOR + #define PATH_SEPARATOR ';' +diff -c3rpN gcc-2.95.3.orig/gcc/config/i386/xm-os2.h gcc-2.95.4/gcc/config/i386/xm-os2.h +*** gcc-2.95.3.orig/gcc/config/i386/xm-os2.h Sat Apr 10 05:27:14 1999 +--- gcc-2.95.4/gcc/config/i386/xm-os2.h Wed Jun 6 01:36:33 2001 +*************** +*** 1,6 **** + /* Configuration for GNU compiler + for an Intel i386 or later processor running OS/2 2.x. +! Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999 Free Software Foundation, Inc. + Contributed by Samuel Figueroa (figueroa@apple.com) + + This file is part of GNU CC. +--- 1,7 ---- + /* Configuration for GNU compiler + for an Intel i386 or later processor running OS/2 2.x. +! Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2001 Free Software +! Foundation, Inc. + Contributed by Samuel Figueroa (figueroa@apple.com) + + This file is part of GNU CC. +*************** int spawnvp (int modeflag, char *path, c +*** 61,71 **** + /* Allow handling of drive names. */ + #define HAVE_DOS_BASED_FILE_SYSTEM + +! #define EXECUTABLE_SUFFIX ".exe" + + /* The EMX compiler uses regular .o files */ + #ifndef __EMX__ +! #define OBJECT_SUFFIX ".obj" + #endif + + /* This is required to make temporary file names unique on file +--- 62,72 ---- + /* Allow handling of drive names. */ + #define HAVE_DOS_BASED_FILE_SYSTEM + +! #define HOST_EXECUTABLE_SUFFIX ".exe" + + /* The EMX compiler uses regular .o files */ + #ifndef __EMX__ +! #define HOST_OBJECT_SUFFIX ".obj" + #endif + + /* This is required to make temporary file names unique on file +diff -c3rpN gcc-2.95.3.orig/gcc/config/m68k/mot3300-crt0.S gcc-2.95.4/gcc/config/m68k/mot3300-crt0.S +*** gcc-2.95.3.orig/gcc/config/m68k/mot3300-crt0.S Wed Dec 16 21:07:03 1998 +--- gcc-2.95.4/gcc/config/m68k/mot3300-crt0.S Wed Jun 6 01:36:42 2001 +*************** __stop_monitor: +*** 93,98 **** + COMM splimit%,4 + COMM environ,4 + +! IDENT ("$Id: mot3300-crt0.S,v 1.1.1.2 1998/01/14 19:39:06 law Exp $") + IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)") + IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)") +--- 93,98 ---- + COMM splimit%,4 + COMM environ,4 + +! IDENT ("$Id: mot3300-crt0.S,v 1.2 1998/12/16 21:07:03 law Exp $") + IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)") + IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)") +diff -c3rpN gcc-2.95.3.orig/gcc/config/m68k/mot3300Mcrt0.S gcc-2.95.4/gcc/config/m68k/mot3300Mcrt0.S +*** gcc-2.95.3.orig/gcc/config/m68k/mot3300Mcrt0.S Wed Dec 16 21:07:05 1998 +--- gcc-2.95.4/gcc/config/m68k/mot3300Mcrt0.S Wed Jun 6 01:36:42 2001 +*************** LOCAL_LABEL(endofstart): +*** 137,142 **** + COMM environ,4 + COMM _countbase,4 + +! IDENT ("$Id: mot3300Mcrt0.S,v 1.1.1.2 1998/01/14 19:39:08 law Exp $") + IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)") + IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)") +--- 137,142 ---- + COMM environ,4 + COMM _countbase,4 + +! IDENT ("$Id: mot3300Mcrt0.S,v 1.2 1998/12/16 21:07:05 law Exp $") + IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)") + IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)") +diff -c3rpN gcc-2.95.3.orig/gcc/config/m88k/dgux.h gcc-2.95.4/gcc/config/m88k/dgux.h +*** gcc-2.95.3.orig/gcc/config/m88k/dgux.h Wed Dec 16 21:08:12 1998 +--- gcc-2.95.4/gcc/config/m88k/dgux.h Wed Jun 6 01:36:47 2001 +*************** Boston, MA 02111-1307, USA. */ +*** 30,36 **** + (TARGET_SVR4 ? DWARF_DEBUG : SDB_DEBUG) + + #ifndef VERSION_INFO2 +! #define VERSION_INFO2 "$Revision: 1.3 $" + #endif + #ifndef NO_BUGS + #define AS_BUG_IMMEDIATE_LABEL +--- 30,36 ---- + (TARGET_SVR4 ? DWARF_DEBUG : SDB_DEBUG) + + #ifndef VERSION_INFO2 +! #define VERSION_INFO2 "$Revision: 1.4 $" + #endif + #ifndef NO_BUGS + #define AS_BUG_IMMEDIATE_LABEL +diff -c3rpN gcc-2.95.3.orig/gcc/config/m88k/m88k.h gcc-2.95.4/gcc/config/m88k/m88k.h +*** gcc-2.95.3.orig/gcc/config/m88k/m88k.h Wed Dec 16 21:08:23 1998 +--- gcc-2.95.4/gcc/config/m88k/m88k.h Wed Jun 6 01:36:48 2001 +*************** extern char * reg_names[]; +*** 198,210 **** + Redefined in sysv4.h, and luna.h. */ + #define VERSION_INFO1 "m88k, " + #ifndef VERSION_INFO2 +! #define VERSION_INFO2 "$Revision: 1.11 $" + #endif + + #ifndef VERSION_STRING + #define VERSION_STRING version_string + #ifdef __STDC__ +! #define TM_RCS_ID "@(#)" __FILE__ " $Revision: 1.11 $ " __DATE__ + #else + #define TM_RCS_ID "$What: <@(#) m88k.h,v 1.1.1.2.2.2> $" + #endif /* __STDC__ */ +--- 198,210 ---- + Redefined in sysv4.h, and luna.h. */ + #define VERSION_INFO1 "m88k, " + #ifndef VERSION_INFO2 +! #define VERSION_INFO2 "$Revision: 1.12 $" + #endif + + #ifndef VERSION_STRING + #define VERSION_STRING version_string + #ifdef __STDC__ +! #define TM_RCS_ID "@(#)" __FILE__ " $Revision: 1.12 $ " __DATE__ + #else + #define TM_RCS_ID "$What: <@(#) m88k.h,v 1.1.1.2.2.2> $" + #endif /* __STDC__ */ +diff -c3rpN gcc-2.95.3.orig/gcc/config/mips/mips.md gcc-2.95.4/gcc/config/mips/mips.md +*** gcc-2.95.3.orig/gcc/config/mips/mips.md Tue Jun 29 02:59:20 1999 +--- gcc-2.95.4/gcc/config/mips/mips.md Wed Jun 6 01:36:52 2001 +*************** move\\t%0,%z4\\n\\ +*** 10086,10091 **** +--- 10086,10106 ---- + (define_insn "" + [(set (match_operand:SF 0 "register_operand" "=f,f") + (if_then_else:SF ++ (match_operator 4 "equality_op" ++ [(match_operand:DI 1 "se_register_operand" "d,d") ++ (const_int 0)]) ++ (match_operand:SF 2 "register_operand" "f,0") ++ (match_operand:SF 3 "register_operand" "0,f")))] ++ "mips_isa >= 4 && TARGET_HARD_FLOAT" ++ "@ ++ mov%B4.s\\t%0,%2,%1 ++ mov%b4.s\\t%0,%3,%1" ++ [(set_attr "type" "move") ++ (set_attr "mode" "SF")]) ++ ++ (define_insn "" ++ [(set (match_operand:SF 0 "register_operand" "=f,f") ++ (if_then_else:SF + (match_operator 3 "equality_op" [(match_operand:CC 4 + "register_operand" + "z,z") +*************** move\\t%0,%z4\\n\\ +*** 10104,10109 **** +--- 10119,10139 ---- + (if_then_else:DF + (match_operator 4 "equality_op" + [(match_operand:SI 1 "register_operand" "d,d") ++ (const_int 0)]) ++ (match_operand:DF 2 "register_operand" "f,0") ++ (match_operand:DF 3 "register_operand" "0,f")))] ++ "mips_isa >= 4 && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" ++ "@ ++ mov%B4.d\\t%0,%2,%1 ++ mov%b4.d\\t%0,%3,%1" ++ [(set_attr "type" "move") ++ (set_attr "mode" "DF")]) ++ ++ (define_insn "" ++ [(set (match_operand:DF 0 "register_operand" "=f,f") ++ (if_then_else:DF ++ (match_operator 4 "equality_op" ++ [(match_operand:DI 1 "se_register_operand" "d,d") + (const_int 0)]) + (match_operand:DF 2 "register_operand" "f,0") + (match_operand:DF 3 "register_operand" "0,f")))] +diff -c3rpN gcc-2.95.3.orig/gcc/config/msdos/configur.bat gcc-2.95.4/gcc/config/msdos/configur.bat +*** gcc-2.95.3.orig/gcc/config/msdos/configur.bat Wed Dec 16 21:10:28 1998 +--- gcc-2.95.4/gcc/config/msdos/configur.bat Wed Jun 6 01:36:58 2001 +*************** +*** 1,47 **** +! @echo off +! echo Configuring GCC for go32 +! rem This batch file assumes a unix-type "sed" program +! +! if not exist config\msdos\configure.bat chdir ..\.. +! +! update config\i386\xm-dos.h config.h +! update config\i386\xm-dos.h hconfig.h +! update config\i386\xm-dos.h tconfig.h +! update config\i386\go32.h tm.h +! update config\i386\i386.md md +! update config\i386\i386.c aux-output.c +! +! echo # Makefile generated by "configure.bat"> Makefile +! echo all.dos: cccp cc1 cc1obj xgcc libgcc.a s-objlist >> Makefile +! sed -f config/msdos/top.sed Makefile.in >> Makefile +! +! set LANG= +! +! if not exist ada\make-lang.in goto no_ada +! sed -f config/msdos/top.sed ada\make-lang.in >> Makefile +! sed -f config/msdos/top.sed ada\makefile.in > ada\Makefile +! set LANG=%LANG% ada.& +! :no_ada +! +! if not exist cp\make-lang.in goto no_cp +! sed -f config/msdos/top.sed cp\make-lang.in >> Makefile +! sed -f config/msdos/top.sed cp\makefile.in > cp\Makefile +! set LANG=%LANG% c++.& +! :no_cp +! +! echo lang.mostlyclean: %LANG% | sed "s/&/mostlyclean/g" >> Makefile +! echo lang.clean: %LANG% | sed "s/&/clean/g" >> Makefile +! echo lang.distclean: %LANG% | sed "s/&/distclean/g" >> Makefile +! echo lang.maintainer-clean: %LANG% | sed "s/&/maintainer-clean/g" >> Makefile +! echo /* options.h */ > options.h +! if exist cp\lang-options.h echo #include "cp/lang-options.h" >> options.h +! if exist ada\lang-options.h echo #include "ada/lang-options.h" >> options.h +! if exist f\lang-options.h echo #include "f/lang-options.h" >> options.h +! echo /* specs.h */ > specs.h +! if exist cp\lang-specs.h echo #include "cp/lang-specs.h" >> specs.h +! if exist ada\lang-specs.h echo #include "ada/lang-specs.h" >> specs.h +! if exist f\lang-specs.h echo #include "f/lang-specs.h" >> specs.h +! +! echo #define MULTILIB_SELECT ". ;" > multilib.h1 +! update multilib.h1 multilib.h +! del multilib.h1 +--- 1,47 ---- +! @echo off +! echo Configuring GCC for go32 +! rem This batch file assumes a unix-type "sed" program +! +! if not exist config\msdos\configure.bat chdir ..\.. +! +! update config\i386\xm-dos.h config.h +! update config\i386\xm-dos.h hconfig.h +! update config\i386\xm-dos.h tconfig.h +! update config\i386\go32.h tm.h +! update config\i386\i386.md md +! update config\i386\i386.c aux-output.c +! +! echo # Makefile generated by "configure.bat"> Makefile +! echo all.dos: cccp cc1 cc1obj xgcc libgcc.a s-objlist >> Makefile +! sed -f config/msdos/top.sed Makefile.in >> Makefile +! +! set LANG= +! +! if not exist ada\make-lang.in goto no_ada +! sed -f config/msdos/top.sed ada\make-lang.in >> Makefile +! sed -f config/msdos/top.sed ada\makefile.in > ada\Makefile +! set LANG=%LANG% ada.& +! :no_ada +! +! if not exist cp\make-lang.in goto no_cp +! sed -f config/msdos/top.sed cp\make-lang.in >> Makefile +! sed -f config/msdos/top.sed cp\makefile.in > cp\Makefile +! set LANG=%LANG% c++.& +! :no_cp +! +! echo lang.mostlyclean: %LANG% | sed "s/&/mostlyclean/g" >> Makefile +! echo lang.clean: %LANG% | sed "s/&/clean/g" >> Makefile +! echo lang.distclean: %LANG% | sed "s/&/distclean/g" >> Makefile +! echo lang.maintainer-clean: %LANG% | sed "s/&/maintainer-clean/g" >> Makefile +! echo /* options.h */ > options.h +! if exist cp\lang-options.h echo #include "cp/lang-options.h" >> options.h +! if exist ada\lang-options.h echo #include "ada/lang-options.h" >> options.h +! if exist f\lang-options.h echo #include "f/lang-options.h" >> options.h +! echo /* specs.h */ > specs.h +! if exist cp\lang-specs.h echo #include "cp/lang-specs.h" >> specs.h +! if exist ada\lang-specs.h echo #include "ada/lang-specs.h" >> specs.h +! if exist f\lang-specs.h echo #include "f/lang-specs.h" >> specs.h +! +! echo #define MULTILIB_SELECT ". ;" > multilib.h1 +! update multilib.h1 multilib.h +! del multilib.h1 +diff -c3rpN gcc-2.95.3.orig/gcc/config/msdos/libgcc.mak gcc-2.95.4/gcc/config/msdos/libgcc.mak +*** gcc-2.95.3.orig/gcc/config/msdos/libgcc.mak Wed Dec 16 21:10:29 1998 +--- gcc-2.95.4/gcc/config/msdos/libgcc.mak Wed Jun 6 01:36:58 2001 +*************** +*** 1,14 **** +! # Build libgcc.a +! +! libgcc.a : libgcc1.c libgcc2.c mklibgcc +! ./mklibgcc -c +! ./mklibgcc '$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES)' libgcc1.c $(LIB1FUNCS) +! ./mklibgcc '$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES)' libgcc2.c $(LIB2FUNCS) +! -command /c mklibnow.bat +! -command /c del libgcc.a +! ar rvs libgcc.a lgcctmp/*.o +! +! mklibgcc : config/msdos/mklibgcc.c +! gcc $(CFLAGS) $^ -o $@ +! +! +--- 1,14 ---- +! # Build libgcc.a +! +! libgcc.a : libgcc1.c libgcc2.c mklibgcc +! ./mklibgcc -c +! ./mklibgcc '$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES)' libgcc1.c $(LIB1FUNCS) +! ./mklibgcc '$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES)' libgcc2.c $(LIB2FUNCS) +! -command /c mklibnow.bat +! -command /c del libgcc.a +! ar rvs libgcc.a lgcctmp/*.o +! +! mklibgcc : config/msdos/mklibgcc.c +! gcc $(CFLAGS) $^ -o $@ +! +! +diff -c3rpN gcc-2.95.3.orig/gcc/config/msdos/mklibgcc.c gcc-2.95.4/gcc/config/msdos/mklibgcc.c +*** gcc-2.95.3.orig/gcc/config/msdos/mklibgcc.c Wed Dec 16 21:10:30 1998 +--- gcc-2.95.4/gcc/config/msdos/mklibgcc.c Wed Jun 6 01:36:58 2001 +*************** +*** 1,98 **** +! #include +! #include +! #include +! +! char *skips[] = { +! "__main", +! "_ctors", +! "_exit", +! "_ctor_list", +! "_dtor_list", +! 0 +! }; +! +! int +! do_clean() +! { +! DIR *dir; +! struct dirent *de; +! remove("mklibnow.bat"); +! +! dir = opendir("lgcctmp"); +! if (!dir) +! return 0; +! while ((de=readdir(dir))) +! { +! char buf[30]; +! if (de->d_name[0] == '.') +! continue; +! sprintf(buf, "lgcctmp/%s", de->d_name); +! unlink(buf); +! } +! closedir(dir); +! return 0; +! } +! +! int +! main(int argc, char **argv) +! { +! char *cc = argv[1]; +! char *csrc=argv[2]; +! int i; +! FILE *batfile; +! FILE *cfile; +! +! if (argc > 1 && strcmp(argv[1], "-c")==0) +! return do_clean(); +! +! mkdir("lgcctmp", 0755); +! +! batfile = fopen("mklibnow.bat", "a"); +! if (!batfile) +! { +! perror("mklibnow.bat"); +! return 1; +! } +! fprintf(batfile, "@echo off\n"); +! +! for (i=3; i +! #include +! #include +! +! char *skips[] = { +! "__main", +! "_ctors", +! "_exit", +! "_ctor_list", +! "_dtor_list", +! 0 +! }; +! +! int +! do_clean() +! { +! DIR *dir; +! struct dirent *de; +! remove("mklibnow.bat"); +! +! dir = opendir("lgcctmp"); +! if (!dir) +! return 0; +! while ((de=readdir(dir))) +! { +! char buf[30]; +! if (de->d_name[0] == '.') +! continue; +! sprintf(buf, "lgcctmp/%s", de->d_name); +! unlink(buf); +! } +! closedir(dir); +! return 0; +! } +! +! int +! main(int argc, char **argv) +! { +! char *cc = argv[1]; +! char *csrc=argv[2]; +! int i; +! FILE *batfile; +! FILE *cfile; +! +! if (argc > 1 && strcmp(argv[1], "-c")==0) +! return do_clean(); +! +! mkdir("lgcctmp", 0755); +! +! batfile = fopen("mklibnow.bat", "a"); +! if (!batfile) +! { +! perror("mklibnow.bat"); +! return 1; +! } +! fprintf(batfile, "@echo off\n"); +! +! for (i=3; i= FIRST_PSEUDO_REGISTER)); + } + +- + /* Return 1 if the operand is a SYMBOL_REF for a function known to be in + this file and the function is not weakly defined. */ + +--- 1193,1198 ---- +*************** current_file_function_operand (op, mode) +*** 1202,1213 **** + register rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; + { +! return (GET_CODE (op) == SYMBOL_REF +! && (SYMBOL_REF_FLAG (op) +! || (op == XEXP (DECL_RTL (current_function_decl), 0) +! && !DECL_WEAK (current_function_decl)))); +! } + + + /* Return 1 if this operand is a valid input for a move insn. */ + +--- 1201,1218 ---- + register rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; + { +! if (GET_CODE(op) != SYMBOL_REF) +! return 0; +! +! if (op == XEXP (DECL_RTL (current_function_decl), 0) +! && !DECL_WEAK (current_function_decl)) +! { +! SYMBOL_REF_FLAG(op) = 1; +! return 1; +! } + ++ return SYMBOL_REF_FLAG (op) != 0; ++ } + + /* Return 1 if this operand is a valid input for a move insn. */ + +*************** init_cumulative_args (cum, fntype, libna +*** 1381,1386 **** +--- 1386,1394 ---- + if (cum->call_cookie & CALL_LONG) + fprintf (stderr, " longcall,"); + ++ if (cum->call_cookie & CALL_SHORT) ++ fprintf (stderr, " shortcall,"); ++ + fprintf (stderr, " proto = %d, nargs = %d\n", + cum->prototype, cum->nargs_prototype); + } +*************** function_arg_padding (mode, type) +*** 1419,1425 **** + + Windows NT wants anything >= 8 bytes to be double word aligned. + +! V.4 wants long longs to be double word aligned. */ + + int + function_arg_boundary (mode, type) +--- 1427,1434 ---- + + Windows NT wants anything >= 8 bytes to be double word aligned. + +! V.4 wants long longs to be double word aligned. +! WRS272 does not align DFmode to 64 */ + + int + function_arg_boundary (mode, type) +*************** function_arg_boundary (mode, type) +*** 1427,1433 **** + tree type; + { + if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) +! && (mode == DImode || mode == DFmode)) + return 64; + + if (DEFAULT_ABI != ABI_NT || TARGET_64BIT) +--- 1436,1442 ---- + tree type; + { + if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) +! && (mode == DImode || ((!TARGET_VXCOMPAT272) && mode == DFmode))) + return 64; + + if (DEFAULT_ABI != ABI_NT || TARGET_64BIT) +*************** function_arg_advance (cum, mode, type, n +*** 1461,1467 **** + cum->fregno++; + else + { +! if (mode == DFmode) + cum->words += cum->words & 1; + cum->words += RS6000_ARG_SIZE (mode, type, 1); + } +--- 1470,1477 ---- + cum->fregno++; + else + { +! /* DFmode is 32-, not 64- aligned on stack in 272 abi */ +! if (mode == DFmode && (!TARGET_VXCOMPAT272)) + cum->words += cum->words & 1; + cum->words += RS6000_ARG_SIZE (mode, type, 1); + } +*************** rs6000_valid_type_attribute_p (type, att +*** 5676,5681 **** +--- 5686,5695 ---- + if (is_attribute_p ("longcall", identifier)) + return (args == NULL_TREE); + ++ /* Shortcall overrides implicit longcalls */ ++ if (is_attribute_p ("shortcall", identifier)) ++ return (args == NULL_TREE); ++ + if (DEFAULT_ABI == ABI_NT) + { + /* Stdcall attribute says callee is responsible for popping arguments +*************** rs6000_dll_import_ref (call_ref) +*** 5775,5780 **** +--- 5789,5816 ---- + return reg2; + } + ++ /* A C expression whose value is nonzero if a 32 bit "longcall" should be ++ generated for this call. We generate a longcall if the function ++ is not declared __attribute__ ((shortcall), AND: ++ (i) the function is declared __attribute__ ((longcall)), or ++ (ii) -mlongcall is enabled and we don't know for sure that the target ++ function is declared in this file ++ This function will typically be called by C fragments in the machine ++ description file. call_ref and call_cookie will correspond to ++ matched rtl operands. ++ */ ++ ++ int ++ rs6000_is_longcall_p (call_ref, call_cookie) ++ rtx call_ref; ++ int call_cookie; ++ { ++ return !(call_cookie & CALL_SHORT) && ++ ((call_cookie & CALL_LONG) || ++ (TARGET_LONGCALL && ++ !current_file_function_operand (call_ref, VOIDmode))); ++ } ++ + /* Return a reference suitable for calling a function with the longcall attribute. */ + struct rtx_def * + rs6000_longcall_ref (call_ref) +*************** rs6000_encode_section_info (decl) +*** 5890,5898 **** + if (TREE_CODE (decl) == FUNCTION_DECL) + { + rtx sym_ref = XEXP (DECL_RTL (decl), 0); + if ((TREE_ASM_WRITTEN (decl) || ! TREE_PUBLIC (decl)) + && !DECL_WEAK (decl)) +! SYMBOL_REF_FLAG (sym_ref) = 1; + + if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_NT) + { +--- 5926,5935 ---- + if (TREE_CODE (decl) == FUNCTION_DECL) + { + rtx sym_ref = XEXP (DECL_RTL (decl), 0); ++ + if ((TREE_ASM_WRITTEN (decl) || ! TREE_PUBLIC (decl)) + && !DECL_WEAK (decl)) +! SYMBOL_REF_FLAG (sym_ref) = 1; + + if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_NT) + { +diff -c3rpN gcc-2.95.3.orig/gcc/config/rs6000/rs6000.h gcc-2.95.4/gcc/config/rs6000/rs6000.h +*** gcc-2.95.3.orig/gcc/config/rs6000/rs6000.h Wed Mar 22 18:54:05 2000 +--- gcc-2.95.4/gcc/config/rs6000/rs6000.h Wed Jun 6 01:37:07 2001 +*************** +*** 1,5 **** + /* Definitions of target machine for GNU compiler, for IBM RS/6000. +! Copyright (C) 1992, 93-8, 1999 Free Software Foundation, Inc. + Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + This file is part of GNU CC. +--- 1,5 ---- + /* Definitions of target machine for GNU compiler, for IBM RS/6000. +! Copyright (C) 1992, 93-8, 1999, 2001 Free Software Foundation, Inc. + Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + This file is part of GNU CC. +*************** Boston, MA 02111-1307, USA. */ +*** 52,58 **** + + #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_cpu)" + +! /* Common CPP definitions used by CPP_SPEC among the various targets + for handling -mcpu=xxx switches. */ + #define CPP_CPU_SPEC \ + "%{!mcpu*: \ +--- 52,58 ---- + + #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_cpu)" + +! /* Common CPP definitions used by CPP_SPEC amongst the various targets + for handling -mcpu=xxx switches. */ + #define CPP_CPU_SPEC \ + "%{!mcpu*: \ +*************** Boston, MA 02111-1307, USA. */ +*** 108,114 **** + #define CPP_SYSV_DEFAULT_SPEC "" + #endif + +! /* Common ASM definitions used by ASM_SPEC among the various targets + for handling -mcpu=xxx switches. */ + #define ASM_CPU_SPEC \ + "%{!mcpu*: \ +--- 108,114 ---- + #define CPP_SYSV_DEFAULT_SPEC "" + #endif + +! /* Common ASM definitions used by ASM_SPEC amongst the various targets + for handling -mcpu=xxx switches. */ + #define ASM_CPU_SPEC \ + "%{!mcpu*: \ +*************** extern int target_flags; +*** 279,284 **** +--- 279,294 ---- + /* Disable fused multiply/add operations */ + #define MASK_NO_FUSED_MADD 0x00020000 + ++ /* Use a conservative heuristic to determine whether to ++ make a direct (26 bit) call or an indirect (32 bit) call: ++ We make a longcall unless the target function is declared ++ static, or its definition has already been seen, or ++ it is declared with the attribute "shortcall" . ++ An underlying assumption is that individual translation ++ units span less than 32MB so that it is always safe ++ to make direct calls to functions in the same module. */ ++ #define MASK_LONGCALL 0x00080000 ++ + #define TARGET_POWER (target_flags & MASK_POWER) + #define TARGET_POWER2 (target_flags & MASK_POWER2) + #define TARGET_POWERPC (target_flags & MASK_POWERPC) +*************** extern int target_flags; +*** 297,307 **** +--- 307,319 ---- + #define TARGET_STRING_SET (target_flags & MASK_STRING_SET) + #define TARGET_NO_UPDATE (target_flags & MASK_NO_UPDATE) + #define TARGET_NO_FUSED_MADD (target_flags & MASK_NO_FUSED_MADD) ++ #define TARGET_VXCOMPAT272 (FALSE) + + #define TARGET_32BIT (! TARGET_64BIT) + #define TARGET_HARD_FLOAT (! TARGET_SOFT_FLOAT) + #define TARGET_UPDATE (! TARGET_NO_UPDATE) + #define TARGET_FUSED_MADD (! TARGET_NO_FUSED_MADD) ++ #define TARGET_LONGCALL (target_flags & MASK_LONGCALL) + + /* Pseudo target to indicate whether the object format is ELF + (to get around not having conditional compilation in the md file) */ +*************** extern int target_flags; +*** 390,395 **** +--- 402,409 ---- + {"no-update", MASK_NO_UPDATE}, \ + {"fused-madd", - MASK_NO_FUSED_MADD}, \ + {"no-fused-madd", MASK_NO_FUSED_MADD}, \ ++ {"longcall", MASK_LONGCALL}, \ ++ {"no-longcall", - MASK_LONGCALL}, \ + SUBTARGET_SWITCHES \ + {"", TARGET_DEFAULT}} + +*************** extern int rs6000_sysv_varargs_p; +*** 1407,1412 **** +--- 1421,1427 ---- + #define CALL_V4_CLEAR_FP_ARGS 0x00000002 /* V.4, no FP args passed */ + #define CALL_V4_SET_FP_ARGS 0x00000004 /* V.4, FP args were passed */ + #define CALL_LONG 0x00000008 /* always call indirect */ ++ #define CALL_SHORT 0x00000010 /* always call direct */ + + /* Define cutoff for using external functions to save floating point */ + #define FP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) == 62 || (FIRST_REG) == 63) +*************** extern int toc_initialized; +*** 2620,2631 **** + + The csect for the function will have already been created by the + `text_section' call previously done. We do have to go back to that +! csect, however. */ + + /* ??? What do the 16 and 044 in the .function line really mean? */ + + #define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \ +! { if (TREE_PUBLIC (DECL)) \ + { \ + fputs ("\t.globl .", FILE); \ + RS6000_OUTPUT_BASENAME (FILE, NAME); \ +--- 2635,2654 ---- + + The csect for the function will have already been created by the + `text_section' call previously done. We do have to go back to that +! csect, however. +! +! We also record the fact that the function exists in the current +! compilation unit and so can be reached by a short branch by +! setting SYMBOL_REF_FLAG. */ + + /* ??? What do the 16 and 044 in the .function line really mean? */ + + #define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \ +! { \ +! rtx sym_ref = XEXP (DECL_RTL (DECL), 0); \ +! if (!DECL_WEAK (DECL)) \ +! SYMBOL_REF_FLAG (sym_ref) = 1; \ +! if (TREE_PUBLIC (DECL)) \ + { \ + fputs ("\t.globl .", FILE); \ + RS6000_OUTPUT_BASENAME (FILE, NAME); \ +*************** extern int rs6000_valid_decl_attribute_p +*** 3326,3331 **** +--- 3349,3355 ---- + extern int rs6000_valid_type_attribute_p (); + extern void rs6000_set_default_type_attributes (); + extern struct rtx_def *rs6000_dll_import_ref (); ++ extern int rs6000_is_longcall_p (); + extern struct rtx_def *rs6000_longcall_ref (); + extern int function_arg_padding (); + extern void toc_section (); +diff -c3rpN gcc-2.95.3.orig/gcc/config/rs6000/rs6000.md gcc-2.95.4/gcc/config/rs6000/rs6000.md +*** gcc-2.95.3.orig/gcc/config/rs6000/rs6000.md Thu Jan 25 14:03:35 2001 +--- gcc-2.95.4/gcc/config/rs6000/rs6000.md Wed Jun 6 01:37:07 2001 +*************** +*** 6184,6190 **** + reg. So expand it. */ + if (GET_CODE (operands[0]) == SUBREG + && GET_CODE (SUBREG_REG (operands[0])) == REG +! && REGNO (SUBREG_REG (operands[0])) < FIRST_PSEUDO_REGISTER) + operands[0] = alter_subreg (operands[0]); + if (GET_CODE (operands[1]) == SUBREG + && GET_CODE (SUBREG_REG (operands[1])) == REG +--- 6184,6192 ---- + reg. So expand it. */ + if (GET_CODE (operands[0]) == SUBREG + && GET_CODE (SUBREG_REG (operands[0])) == REG +! && REGNO (SUBREG_REG (operands[0])) < FIRST_PSEUDO_REGISTER +! && (! REG_FUNCTION_VALUE_P (SUBREG_REG (operands[0])) +! || ! rtx_equal_function_value_matters)) + operands[0] = alter_subreg (operands[0]); + if (GET_CODE (operands[1]) == SUBREG + && GET_CODE (SUBREG_REG (operands[1])) == REG +*************** +*** 8048,8053 **** +--- 8050,8057 ---- + "" + " + { ++ int is_longcall; ++ + if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != CONST_INT) + abort (); + +*************** +*** 8061,8070 **** + operands[2] = GEN_INT ((int)CALL_NORMAL); + } + +! if (GET_CODE (operands[0]) != SYMBOL_REF +! || (INTVAL (operands[2]) & CALL_LONG) != 0) + { +! if (INTVAL (operands[2]) & CALL_LONG) + operands[0] = rs6000_longcall_ref (operands[0]); + + if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_SOLARIS) +--- 8065,8075 ---- + operands[2] = GEN_INT ((int)CALL_NORMAL); + } + +! is_longcall = rs6000_is_longcall_p(operands[0], INTVAL(operands[2])); +! +! if (GET_CODE (operands[0]) != SYMBOL_REF || is_longcall) + { +! if (is_longcall) + operands[0] = rs6000_longcall_ref (operands[0]); + + if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_SOLARIS) +*************** +*** 8110,8115 **** +--- 8115,8122 ---- + "" + " + { ++ int is_longcall; ++ + if (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != CONST_INT) + abort (); + +*************** +*** 8123,8137 **** + operands[3] = GEN_INT ((int)CALL_NORMAL); + } + +! if (GET_CODE (operands[1]) != SYMBOL_REF +! || (INTVAL (operands[3]) & CALL_LONG) != 0) + { +! if (INTVAL (operands[3]) & CALL_LONG) + operands[1] = rs6000_longcall_ref (operands[1]); + + if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_SOLARIS) + emit_call_insn (gen_call_value_indirect_sysv (operands[0], operands[1], +! operands[2], operands[3])); + else + { + rtx toc_reg = gen_rtx_REG (Pmode, 2); +--- 8130,8145 ---- + operands[3] = GEN_INT ((int)CALL_NORMAL); + } + +! is_longcall = rs6000_is_longcall_p(operands[1], INTVAL(operands[3])); +! +! if (GET_CODE (operands[1]) != SYMBOL_REF || is_longcall) + { +! if (is_longcall) + operands[1] = rs6000_longcall_ref (operands[1]); + + if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_SOLARIS) + emit_call_insn (gen_call_value_indirect_sysv (operands[0], operands[1], +! operands[2], operands[3])); + else + { + rtx toc_reg = gen_rtx_REG (Pmode, 2); +*************** +*** 8177,8183 **** + (match_operand 1 "" "g,g")) + (use (match_operand:SI 2 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 3 "=l,l"))] +! "(INTVAL (operands[2]) & CALL_LONG) == 0" + "* + { + if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) +--- 8185,8191 ---- + (match_operand 1 "" "g,g")) + (use (match_operand:SI 2 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 3 "=l,l"))] +! "!rs6000_is_longcall_p(operands[0], INTVAL (operands[2]))" + "* + { + if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) +*************** +*** 8196,8202 **** + (match_operand 1 "" "g,g")) + (use (match_operand:SI 2 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 3 "=l,l"))] +! "TARGET_64BIT && (INTVAL (operands[2]) & CALL_LONG) == 0" + "* + { + if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) +--- 8204,8210 ---- + (match_operand 1 "" "g,g")) + (use (match_operand:SI 2 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 3 "=l,l"))] +! "TARGET_64BIT && !rs6000_is_longcall_p(operands[0], INTVAL (operands[2]))" + "* + { + if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) +*************** +*** 8216,8222 **** + (match_operand 2 "" "g,g"))) + (use (match_operand:SI 3 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 4 "=l,l"))] +! "(INTVAL (operands[3]) & CALL_LONG) == 0" + "* + { + if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) +--- 8224,8230 ---- + (match_operand 2 "" "g,g"))) + (use (match_operand:SI 3 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 4 "=l,l"))] +! "!rs6000_is_longcall_p(operands[1], INTVAL (operands[3]))" + "* + { + if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) +*************** +*** 8237,8243 **** + (match_operand 2 "" "g,g"))) + (use (match_operand:SI 3 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 4 "=l,l"))] +! "TARGET_64BIT && (INTVAL (operands[3]) & CALL_LONG) == 0" + "* + { + if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) +--- 8245,8251 ---- + (match_operand 2 "" "g,g"))) + (use (match_operand:SI 3 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 4 "=l,l"))] +! "TARGET_64BIT && !rs6000_is_longcall_p(operands[1], INTVAL (operands[3]))" + "* + { + if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) +*************** +*** 8312,8318 **** + (use (match_operand:SI 2 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 3 "=l,l"))] + "(DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) +! && (INTVAL (operands[2]) & CALL_LONG) == 0" + "* + { + /* Indirect calls should go through call_indirect */ +--- 8320,8326 ---- + (use (match_operand:SI 2 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 3 "=l,l"))] + "(DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) +! && !rs6000_is_longcall_p(operands[0], INTVAL (operands[2]))" + "* + { + /* Indirect calls should go through call_indirect */ +*************** +*** 8387,8393 **** + (use (match_operand:SI 3 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 4 "=l,l"))] + "(DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) +! && (INTVAL (operands[3]) & CALL_LONG) == 0" + "* + { + /* This should be handled by call_value_indirect */ +--- 8395,8401 ---- + (use (match_operand:SI 3 "immediate_operand" "O,n")) + (clobber (match_scratch:SI 4 "=l,l"))] + "(DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) +! && !rs6000_is_longcall_p(operands[1], INTVAL (operands[3]))" + "* + { + /* This should be handled by call_value_indirect */ +diff -c3rpN gcc-2.95.3.orig/gcc/config/rs6000/sysv4.h gcc-2.95.4/gcc/config/rs6000/sysv4.h +*** gcc-2.95.3.orig/gcc/config/rs6000/sysv4.h Thu Jan 25 14:03:37 2001 +--- gcc-2.95.4/gcc/config/rs6000/sysv4.h Wed Jun 6 01:37:07 2001 +*************** +*** 1,5 **** + /* Target definitions for GNU compiler for PowerPC running System V.4 +! Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Contributed by Cygnus Support. + + This file is part of GNU CC. +--- 1,6 ---- + /* Target definitions for GNU compiler for PowerPC running System V.4 +! Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software +! Foundation, Inc. + Contributed by Cygnus Support. + + This file is part of GNU CC. +*************** do { \ +*** 184,190 **** + else \ + error ("Bad value for -msdata=%s", rs6000_sdata_name); \ + } \ +! else if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \ + { \ + rs6000_sdata = SDATA_DATA; \ + rs6000_sdata_name = "data"; \ +--- 185,191 ---- + else \ + error ("Bad value for -msdata=%s", rs6000_sdata_name); \ + } \ +! else if (!TARGET_VXCOMPAT272 && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)) \ + { \ + rs6000_sdata = SDATA_DATA; \ + rs6000_sdata_name = "data"; \ +diff -c3rpN gcc-2.95.3.orig/gcc/config/rs6000/t-ppcgas-vx gcc-2.95.4/gcc/config/rs6000/t-ppcgas-vx +*** gcc-2.95.3.orig/gcc/config/rs6000/t-ppcgas-vx Thu Jan 1 00:00:00 1970 +--- gcc-2.95.4/gcc/config/rs6000/t-ppcgas-vx Wed Jun 6 01:37:08 2001 +*************** +*** 0 **** +--- 1,10 ---- ++ # PowerPC embedded support with gas. ++ # Build libgcc.a with different options. ++ ++ MULTILIB_OPTIONS = msoft-float ++ ++ MULTILIB_DIRNAMES = nof ++ ++ MULTILIB_EXTRA_OPTS = mno-eabi mstrict-align mbig mcall-sysv mlongcall ++ MULTILIB_EXCEPTIONS = ++ MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} +diff -c3rpN gcc-2.95.3.orig/gcc/config/rs6000/vxppc.h gcc-2.95.4/gcc/config/rs6000/vxppc.h +*** gcc-2.95.3.orig/gcc/config/rs6000/vxppc.h Mon May 17 01:30:56 1999 +--- gcc-2.95.4/gcc/config/rs6000/vxppc.h Wed Jun 6 01:37:09 2001 +*************** +*** 1,5 **** + /* Definitions of target machine for GNU compiler. Vxworks PowerPC version. +! Copyright (C) 1996 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,5 ---- + /* Definitions of target machine for GNU compiler. Vxworks PowerPC version. +! Copyright (C) 1996, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 20,25 **** +--- 20,27 ---- + + /* This file just exists to give specs for the PowerPC running on VxWorks. */ + ++ #define SDATA_DEFAULT_SIZE 0 ++ + #include "rs6000/sysv4.h" + + /* ??? This file redefines CPP_SPEC which is wrong. It should instead define +*************** Boston, MA 02111-1307, USA. */ +*** 29,34 **** +--- 31,37 ---- + + #undef CPP_SPEC + #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) %(cpp_endian) %(cpp_cpu) \ ++ %{mrelocatable: -D_RELOCATABLE} \ + %{mads: %(cpp_os_ads) } \ + %{myellowknife: %(cpp_os_yellowknife) } \ + %{mmvme: %(cpp_os_mvme) } \ +*************** Boston, MA 02111-1307, USA. */ +*** 47,59 **** + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "\ + -D__vxworks -Asystem(vxworks) -Asystem(embedded) \ +! -Acpu(powerpc) -Amachine(powerpc)" + + /* VxWorks does all the library stuff itself. */ + + #undef LIB_SPEC + #define LIB_SPEC "" + + /* VxWorks uses object files, not loadable images. make linker just + combine objects. */ + +--- 50,73 ---- + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "\ + -D__vxworks -Asystem(vxworks) -Asystem(embedded) \ +! -Acpu(powerpc) -Amachine(powerpc) -D__PPC__ -D__VXVARGS__" +! +! /* This option makes gcc emit code that uses the variant (partial) +! implementation of eabi that was current at the time of 2.7.2 */ +! +! #undef TARGET_VXCOMPAT272 +! #define TARGET_VXCOMPAT272 (1) /* Fix double alignment to only four bytes */ + + /* VxWorks does all the library stuff itself. */ + + #undef LIB_SPEC + #define LIB_SPEC "" + ++ /* Brad M. Garcia's patch for making operator new work */ ++ ++ #undef SIZE_TYPE ++ #define SIZE_TYPE "unsigned int" ++ + /* VxWorks uses object files, not loadable images. make linker just + combine objects. */ + +*************** Boston, MA 02111-1307, USA. */ +*** 69,73 **** +--- 83,122 ---- + #define ENDFILE_SPEC "" + + /* We use stabs-in-elf for debugging */ ++ + #undef PREFERRED_DEBUGGING_TYPE + #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG ++ ++ /* But, to make this work, we have to output the stabs for the function ++ name *first*... */ ++ ++ #define DBX_FUNCTION_FIRST ++ ++ /* More backward compatibility patches: we undef these two in ++ order to force the compiler to output our static constructors ++ and destructors in the fashion to which it is accustomed.... */ ++ ++ #undef ASM_OUTPUT_CONSTRUCTOR ++ #undef ASM_OUTPUT_DESTRUCTOR ++ ++ /* And this puts $ signs into the static object c/d-tors that ++ need to be found by WRS munch. It also makes libgcc symbols ++ match WRS symbols */ ++ ++ #undef NO_DOLLAR_IN_LABEL ++ ++ /* The default definitions of these duplicate an endian define ++ that WRS include in their system header files so remove it */ ++ ++ #undef CPP_ENDIAN_BIG_SPEC ++ #define CPP_ENDIAN_BIG_SPEC "-D__BIG_ENDIAN__ -Amachine(bigendian)" ++ ++ #undef CPP_ENDIAN_LITTLE_SPEC ++ #define CPP_ENDIAN_LITTLE_SPEC "-D__LITTLE_ENDIAN__ -Amachine(littleendian)" ++ ++ /* Work under DOS ? */ ++ #define CYGWIN_USES_DOS_PATHS ++ #define CYGWIN_VXWORKS_PATHS ++ ++ /* WRS runtime does not need a separate math library. */ ++ #define MATH_LIBRARY "" +diff -c3rpN gcc-2.95.3.orig/gcc/config/rs6000/xm-cygwin.h gcc-2.95.4/gcc/config/rs6000/xm-cygwin.h +*** gcc-2.95.3.orig/gcc/config/rs6000/xm-cygwin.h Wed Dec 16 21:12:47 1998 +--- gcc-2.95.4/gcc/config/rs6000/xm-cygwin.h Wed Jun 6 01:37:10 2001 +*************** +*** 1 **** +! #define EXECUTABLE_SUFFIX ".exe" +--- 1 ---- +! #define HOST_EXECUTABLE_SUFFIX ".exe" +diff -c3rpN gcc-2.95.3.orig/gcc/config/sparc/sparc.md gcc-2.95.4/gcc/config/sparc/sparc.md +*** gcc-2.95.3.orig/gcc/config/sparc/sparc.md Thu Jan 25 14:03:37 2001 +--- gcc-2.95.4/gcc/config/sparc/sparc.md Wed Jun 6 01:37:14 2001 +*************** +*** 5211,5217 **** + (define_insn "muldi3_v8plus" + [(set (match_operand:DI 0 "register_operand" "=r,h") + (mult:DI (match_operand:DI 1 "arith_double_operand" "%r,0") +! (match_operand:DI 2 "arith_double_operand" "rHI,rHI"))) + (clobber (match_scratch:SI 3 "=&h,X")) + (clobber (match_scratch:SI 4 "=&h,X"))] + "TARGET_V8PLUS" +--- 5211,5217 ---- + (define_insn "muldi3_v8plus" + [(set (match_operand:DI 0 "register_operand" "=r,h") + (mult:DI (match_operand:DI 1 "arith_double_operand" "%r,0") +! (match_operand:DI 2 "arith_double_operand" "rI,rI"))) + (clobber (match_scratch:SI 3 "=&h,X")) + (clobber (match_scratch:SI 4 "=&h,X"))] + "TARGET_V8PLUS" +*************** +*** 5221,5226 **** +--- 5221,5233 ---- + output_asm_insn (\"srl\\t%L1, 0, %L1\", operands); + if (which_alternative == 1) + output_asm_insn (\"sllx\\t%H1, 32, %H1\", operands); ++ if (GET_CODE (operands[2]) == CONST_INT) ++ { ++ if (which_alternative == 1) ++ return \"or\\t%L1, %H1, %H1\\n\\tmulx\\t%H1, %2, %L0\;srlx\\t%L0, 32, %H0\"; ++ else ++ return \"sllx\\t%H1, 32, %3\\n\\tor\\t%L1, %3, %3\\n\\tmulx\\t%3, %2, %3\\n\\tsrlx\\t%3, 32, %H0\\n\\tmov\\t%3, %L0\"; ++ } + if (sparc_check_64 (operands[2], insn) <= 0) + output_asm_insn (\"srl\\t%L2, 0, %L2\", operands); + if (which_alternative == 1) +diff -c3rpN gcc-2.95.3.orig/gcc/config/vax/vms.h gcc-2.95.4/gcc/config/vax/vms.h +*** gcc-2.95.3.orig/gcc/config/vax/vms.h Wed Dec 16 21:14:29 1998 +--- gcc-2.95.4/gcc/config/vax/vms.h Wed Jun 6 01:37:19 2001 +*************** +*** 1,5 **** + /* Output variables, constants and external declarations, for GNU compiler. +! Copyright (C) 1988, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,6 ---- + /* Output variables, constants and external declarations, for GNU compiler. +! Copyright (C) 1988, 1994, 1995, 1996, 1997, 2001 Free Software +! Foundation, Inc. + + This file is part of GNU CC. + +*************** the Free Software Foundation, 59 Temple +*** 19,24 **** +--- 20,28 ---- + Boston, MA 02111-1307, USA. */ + + #define VMS_TARGET ++ ++ #define TARGET_EXECUTABLE_SUFFIX ".exe" ++ #define TARGET_OBJECT_SUFFIX ".obj" + + /* This enables certain macros in vax.h, which will make an indirect + reference to an external symbol an invalid address. This needs to be +diff -c3rpN gcc-2.95.3.orig/gcc/config/vax/xm-vms.h gcc-2.95.4/gcc/config/vax/xm-vms.h +*** gcc-2.95.3.orig/gcc/config/vax/xm-vms.h Wed Dec 16 21:14:33 1998 +--- gcc-2.95.4/gcc/config/vax/xm-vms.h Wed Jun 6 01:37:20 2001 +*************** +*** 1,5 **** + /* Configuration for GNU C-compiler for Vax. +! Copyright (C) 1987, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,6 ---- + /* Configuration for GNU C-compiler for Vax. +! Copyright (C) 1987, 1994, 1995, 1996, 1997, 2001 Free Software +! Foundation, Inc. + + This file is part of GNU CC. + +*************** Boston, MA 02111-1307, USA. */ +*** 71,76 **** +--- 72,80 ---- + #define X_OK 1 + #define F_OK 0 + #endif ++ ++ #define HOST_EXECUTABLE_SUFFIX ".exe" ++ #define HOST_OBJECT_SUFFIX ".obj" + + #define GCC_INCLUDE_DIR "///not used with VMS///" /* nonsense string for now */ + +diff -c3rpN gcc-2.95.3.orig/gcc/config/winnt/xm-winnt.h gcc-2.95.4/gcc/config/winnt/xm-winnt.h +*** gcc-2.95.3.orig/gcc/config/winnt/xm-winnt.h Sat Apr 10 05:27:16 1999 +--- gcc-2.95.4/gcc/config/winnt/xm-winnt.h Wed Jun 6 01:37:21 2001 +*************** +*** 1,5 **** + /* Configuration for GNU compiler for processor running Windows NT 3.x. +! Copyright (C) 1993, 1995, 1997, 1999 Free Software Foundation, Inc. + Contributed by Douglas B. Rupp (drupp@cs.washington.edu) + + This file is part of GNU CC. +--- 1,5 ---- + /* Configuration for GNU compiler for processor running Windows NT 3.x. +! Copyright (C) 1993, 1995, 1997, 1999, 2001 Free Software Foundation, Inc. + Contributed by Douglas B. Rupp (drupp@cs.washington.edu) + + This file is part of GNU CC. +*************** Boston, MA 02111-1307, USA. */ +*** 44,51 **** + #define NO_SYS_SIGLIST 1 + #define kill(a,b) raise(b) + +! #define OBJECT_SUFFIX ".obj" +! #define EXECUTABLE_SUFFIX ".exe" + #define PATH_SEPARATOR ';' + + #define DIR_SEPARATOR '\\' +--- 44,51 ---- + #define NO_SYS_SIGLIST 1 + #define kill(a,b) raise(b) + +! #define HOST_OBJECT_SUFFIX ".obj" +! #define HOST_EXECUTABLE_SUFFIX ".exe" + #define PATH_SEPARATOR ';' + + #define DIR_SEPARATOR '\\' +diff -c3rpN gcc-2.95.3.orig/gcc/configure gcc-2.95.4/gcc/configure +*** gcc-2.95.3.orig/gcc/configure Fri Mar 16 14:13:48 2001 +--- gcc-2.95.4/gcc/configure Wed Jun 6 01:37:23 2001 +*************** else +*** 1311,1317 **** + fi + + # Find some useful tools +! for ac_prog in gawk mawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +--- 1311,1317 ---- + fi + + # Find some useful tools +! for ac_prog in mawk gawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +*************** for machine in $build $host $target; do +*** 5162,5168 **** + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + tm_file=rs6000/vxppc.h +! tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + extra_headers=ppc-asm.h + thread_file='vxworks' + ;; +--- 5162,5168 ---- + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + tm_file=rs6000/vxppc.h +! tmake_file="rs6000/t-ppcgas-vx rs6000/t-ppccomm" + extra_headers=ppc-asm.h + thread_file='vxworks' + ;; +diff -c3rpN gcc-2.95.3.orig/gcc/configure.bat gcc-2.95.4/gcc/configure.bat +*** gcc-2.95.3.orig/gcc/configure.bat Wed Dec 16 20:54:20 1998 +--- gcc-2.95.4/gcc/configure.bat Wed Jun 6 01:37:23 2001 +*************** +*** 1,21 **** +! @echo off +! if %1.==go32. goto call_go32 +! if %1.==winnt. goto call_winnt +! echo Usage: configure go32 or configure winnt cpu +! goto END +! +! :call_go32 +! call config\msdos\configure %1 %2 %3 %4 +! goto END +! +! :call_winnt +! if %2.==i386. goto really_call_winnt +! if %2.==alpha. goto really_call_winnt +! echo Usage: configure winnt i386 or configure winnt alpha +! goto END +! :really_call_winnt +! call config\winnt\config-nt %1 %2 %3 %4 +! goto END +! +! :END + +--- 1,21 ---- +! @echo off +! if %1.==go32. goto call_go32 +! if %1.==winnt. goto call_winnt +! echo Usage: configure go32 or configure winnt cpu +! goto END +! +! :call_go32 +! call config\msdos\configure %1 %2 %3 %4 +! goto END +! +! :call_winnt +! if %2.==i386. goto really_call_winnt +! if %2.==alpha. goto really_call_winnt +! echo Usage: configure winnt i386 or configure winnt alpha +! goto END +! :really_call_winnt +! call config\winnt\config-nt %1 %2 %3 %4 +! goto END +! +! :END + +diff -c3rpN gcc-2.95.3.orig/gcc/configure.in gcc-2.95.4/gcc/configure.in +*** gcc-2.95.3.orig/gcc/configure.in Thu Jan 25 14:03:02 2001 +--- gcc-2.95.4/gcc/configure.in Wed Jun 6 01:37:23 2001 +*************** changequote([,])dnl +*** 2846,2852 **** + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + tm_file=rs6000/vxppc.h +! tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + extra_headers=ppc-asm.h + thread_file='vxworks' + ;; +--- 2846,2852 ---- + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + tm_file=rs6000/vxppc.h +! tmake_file="rs6000/t-ppcgas-vx rs6000/t-ppccomm" + extra_headers=ppc-asm.h + thread_file='vxworks' + ;; +diff -c3rpN gcc-2.95.3.orig/gcc/cppinit.c gcc-2.95.4/gcc/cppinit.c +*** gcc-2.95.3.orig/gcc/cppinit.c Thu Jan 25 14:03:03 2001 +--- gcc-2.95.4/gcc/cppinit.c Wed Jun 6 01:37:31 2001 +*************** +*** 1,6 **** + /* CPP Library. + Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +! 1999, 2000 Free Software Foundation, Inc. + Contributed by Per Bothner, 1994-95. + Based on CCCP program by Paul Rubin, June 1986 + Adapted to ANSI C, Richard Stallman, Jan 1987 +--- 1,6 ---- + /* CPP Library. + Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +! 1999, 2000, 2001 Free Software Foundation, Inc. + Contributed by Per Bothner, 1994-95. + Based on CCCP program by Paul Rubin, June 1986 + Adapted to ANSI C, Richard Stallman, Jan 1987 +*************** static char *known_suffixes[] = +*** 93,103 **** + NULL + }; + +! #ifndef OBJECT_SUFFIX + # ifdef VMS +! # define OBJECT_SUFFIX ".obj" + # else +! # define OBJECT_SUFFIX ".o" + # endif + #endif + +--- 93,103 ---- + NULL + }; + +! #ifndef TARGET_OBJECT_SUFFIX + # ifdef VMS +! # define TARGET_OBJECT_SUFFIX ".obj" + # else +! # define TARGET_OBJECT_SUFFIX ".o" + # endif + #endif + +*************** initialize_dependency_output (pfile) +*** 752,758 **** + } + + /* Supply our own suffix. */ +! strcpy (q, OBJECT_SUFFIX); + + deps_output (pfile, p, ':'); + deps_output (pfile, opts->in_fname, ' '); +--- 752,758 ---- + } + + /* Supply our own suffix. */ +! strcpy (q, TARGET_OBJECT_SUFFIX); + + deps_output (pfile, p, ':'); + deps_output (pfile, opts->in_fname, ' '); +diff -c3rpN gcc-2.95.3.orig/gcc/crtstuff.c gcc-2.95.4/gcc/crtstuff.c +*** gcc-2.95.3.orig/gcc/crtstuff.c Tue Mar 23 00:43:51 1999 +--- gcc-2.95.4/gcc/crtstuff.c Wed Jun 6 01:37:32 2001 +*************** init_dummy (void) +*** 380,398 **** + #endif + asm (TEXT_SECTION_ASM_OP); + +! /* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr, +! __environ and atexit (). We have to make sure they are in the .dynsym +! section. We accomplish it by making a dummy call here. This +! code is never reached. */ +! +! #if defined(__linux__) && defined(__PIC__) && defined(__i386__) +! { +! extern void *___brk_addr; +! extern char **__environ; +! +! ___brk_addr = __environ; +! atexit (); +! } + #endif + } + +--- 380,387 ---- + #endif + asm (TEXT_SECTION_ASM_OP); + +! #ifdef CRT_END_INIT_DUMMY +! CRT_END_INIT_DUMMY; + #endif + } + +diff -c3rpN gcc-2.95.3.orig/gcc/cse.c gcc-2.95.4/gcc/cse.c +*** gcc-2.95.3.orig/gcc/cse.c Thu Jan 25 14:03:03 2001 +--- gcc-2.95.4/gcc/cse.c Wed Jun 6 01:37:32 2001 +*************** static void check_fold_consts PROTO((PTR +*** 695,702 **** + static struct cse_reg_info* get_cse_reg_info PROTO((int)); + static void free_cse_reg_info PROTO((splay_tree_value)); + static void flush_hash_table PROTO((void)); +- +- extern int rtx_equal_function_value_matters; + + /* Dump the expressions in the equivalence class indicated by CLASSP. + This function is used only for debugging. */ +--- 695,700 ---- +diff -c3rpN gcc-2.95.3.orig/gcc/except.c gcc-2.95.4/gcc/except.c +*** gcc-2.95.3.orig/gcc/except.c Mon Feb 19 14:01:59 2001 +--- gcc-2.95.4/gcc/except.c Wed Jun 6 01:37:35 2001 +*************** static void +*** 723,743 **** + receive_exception_label (handler_label) + rtx handler_label; + { + emit_label (handler_label); +! +! #ifdef HAVE_exception_receiver + if (! exceptions_via_longjmp) +! if (HAVE_exception_receiver) +! emit_insn (gen_exception_receiver ()); + #endif +- + #ifdef HAVE_nonlocal_goto_receiver +! if (! exceptions_via_longjmp) +! if (HAVE_nonlocal_goto_receiver) +! emit_insn (gen_nonlocal_goto_receiver ()); + #endif +! } + + + struct func_eh_entry + { +--- 723,763 ---- + receive_exception_label (handler_label) + rtx handler_label; + { ++ rtx around_label = NULL_RTX; ++ ++ if (! flag_new_exceptions || exceptions_via_longjmp) ++ { ++ around_label = gen_label_rtx (); ++ emit_jump (around_label); ++ emit_barrier (); ++ } ++ + emit_label (handler_label); +! + if (! exceptions_via_longjmp) +! { +! #ifdef HAVE_exception_receiver +! if (HAVE_exception_receiver) +! emit_insn (gen_exception_receiver ()); +! else + #endif + #ifdef HAVE_nonlocal_goto_receiver +! if (HAVE_nonlocal_goto_receiver) +! emit_insn (gen_nonlocal_goto_receiver ()); +! else + #endif +! { /* Nothing */ } +! } +! else +! { +! #ifndef DONT_USE_BUILTIN_SETJMP +! expand_builtin_setjmp_receiver (handler_label); +! #endif +! } + ++ if (around_label) ++ emit_label (around_label); ++ } + + struct func_eh_entry + { +*************** static void +*** 1320,1326 **** + start_dynamic_handler () + { + rtx dhc, dcc; +! rtx x, arg, buf; + int size; + + #ifndef DONT_USE_BUILTIN_SETJMP +--- 1340,1346 ---- + start_dynamic_handler () + { + rtx dhc, dcc; +! rtx arg, buf; + int size; + + #ifndef DONT_USE_BUILTIN_SETJMP +*************** start_dynamic_handler () +*** 1362,1379 **** + buf = plus_constant (XEXP (arg, 0), GET_MODE_SIZE (Pmode)*2); + + #ifdef DONT_USE_BUILTIN_SETJMP +- x = emit_library_call_value (setjmp_libfunc, NULL_RTX, 1, SImode, 1, +- buf, Pmode); +- /* If we come back here for a catch, transfer control to the handler. */ +- jumpif_rtx (x, ehstack.top->entry->exception_handler_label); +- #else + { +! /* A label to continue execution for the no exception case. */ +! rtx noex = gen_label_rtx(); +! x = expand_builtin_setjmp (buf, NULL_RTX, noex, +! ehstack.top->entry->exception_handler_label); +! emit_label (noex); + } + #endif + + /* We are committed to this, so update the handler chain. */ +--- 1382,1398 ---- + buf = plus_constant (XEXP (arg, 0), GET_MODE_SIZE (Pmode)*2); + + #ifdef DONT_USE_BUILTIN_SETJMP + { +! rtx x; +! x = emit_library_call_value (setjmp_libfunc, NULL_RTX, LCT_CONST, +! TYPE_MODE (integer_type_node), 1, +! buf, Pmode); +! /* If we come back here for a catch, transfer control to the handler. */ +! jumpif_rtx (x, ehstack.top->entry->exception_handler_label); + } ++ #else ++ expand_builtin_setjmp_setup (buf, ++ ehstack.top->entry->exception_handler_label); + #endif + + /* We are committed to this, so update the handler chain. */ +diff -c3rpN gcc-2.95.3.orig/gcc/expr.c gcc-2.95.4/gcc/expr.c +*** gcc-2.95.3.orig/gcc/expr.c Mon Feb 19 14:02:00 2001 +--- gcc-2.95.4/gcc/expr.c Wed Jun 6 01:37:36 2001 +*************** static rtx expand_builtin PROTO((tree, r +*** 192,197 **** +--- 192,198 ---- + static int apply_args_size PROTO((void)); + static int apply_result_size PROTO((void)); + static rtx result_vector PROTO((int, rtx)); ++ static rtx expand_builtin_setjmp PROTO((tree, rtx)); + static rtx expand_builtin_apply_args PROTO((void)); + static rtx expand_builtin_apply PROTO((rtx, rtx, rtx)); + static void expand_builtin_return PROTO((rtx)); +*************** expand_builtin_return_addr (fndecl_code, +*** 8544,8587 **** + return tem; + } + +! /* __builtin_setjmp is passed a pointer to an array of five words (not +! all will be used on all machines). It operates similarly to the C +! library function of the same name, but is more efficient. Much of +! the code below (and for longjmp) is copied from the handling of +! non-local gotos. +! +! NOTE: This is intended for use by GNAT and the exception handling +! scheme in the compiler and will only work in the method used by +! them. */ + +! rtx +! expand_builtin_setjmp (buf_addr, target, first_label, next_label) + rtx buf_addr; +! rtx target; +! rtx first_label, next_label; + { +- rtx lab1 = gen_label_rtx (); + enum machine_mode sa_mode = STACK_SAVEAREA_MODE (SAVE_NONLOCAL); +- enum machine_mode value_mode; + rtx stack_save; + +- value_mode = TYPE_MODE (integer_type_node); +- + #ifdef POINTERS_EXTEND_UNSIGNED + buf_addr = convert_memory_address (Pmode, buf_addr); + #endif + + buf_addr = force_reg (Pmode, buf_addr); + +- if (target == 0 || GET_CODE (target) != REG +- || REGNO (target) < FIRST_PSEUDO_REGISTER) +- target = gen_reg_rtx (value_mode); +- + emit_queue (); + +! /* We store the frame pointer and the address of lab1 in the buffer +! and use the rest of it for the stack save area, which is +! machine-dependent. */ + + #ifndef BUILTIN_SETJMP_FRAME_VALUE + #define BUILTIN_SETJMP_FRAME_VALUE virtual_stack_vars_rtx +--- 8545,8573 ---- + return tem; + } + +! /* Construct the leading half of a __builtin_setjmp call. Control will +! return to RECEIVER_LABEL. This is used directly by sjlj exception +! handling code. */ + +! void +! expand_builtin_setjmp_setup (buf_addr, receiver_label) + rtx buf_addr; +! rtx receiver_label; + { + enum machine_mode sa_mode = STACK_SAVEAREA_MODE (SAVE_NONLOCAL); + rtx stack_save; + + #ifdef POINTERS_EXTEND_UNSIGNED + buf_addr = convert_memory_address (Pmode, buf_addr); + #endif + + buf_addr = force_reg (Pmode, buf_addr); + + emit_queue (); + +! /* We store the frame pointer and the address of receiver_label in +! the buffer and use the rest of it for the stack save area, which +! is machine-dependent. */ + + #ifndef BUILTIN_SETJMP_FRAME_VALUE + #define BUILTIN_SETJMP_FRAME_VALUE virtual_stack_vars_rtx +*************** expand_builtin_setjmp (buf_addr, target, +*** 8593,8599 **** + (gen_rtx_MEM (Pmode, + plus_constant (buf_addr, + GET_MODE_SIZE (Pmode)))), +! force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, lab1))); + + stack_save = gen_rtx_MEM (sa_mode, + plus_constant (buf_addr, +--- 8579,8585 ---- + (gen_rtx_MEM (Pmode, + plus_constant (buf_addr, + GET_MODE_SIZE (Pmode)))), +! force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, receiver_label))); + + stack_save = gen_rtx_MEM (sa_mode, + plus_constant (buf_addr, +*************** expand_builtin_setjmp (buf_addr, target, +*** 8606,8625 **** + emit_insn (gen_builtin_setjmp_setup (buf_addr)); + #endif + +! /* Set TARGET to zero and branch to the first-time-through label. */ +! emit_move_insn (target, const0_rtx); +! emit_jump_insn (gen_jump (first_label)); +! emit_barrier (); +! emit_label (lab1); +! +! /* Tell flow about the strange goings on. Putting `lab1' on +! `nonlocal_goto_handler_labels' to indicates that function +! calls may traverse the arc back to this label. */ + + current_function_has_nonlocal_label = 1; +! nonlocal_goto_handler_labels = +! gen_rtx_EXPR_LIST (VOIDmode, lab1, nonlocal_goto_handler_labels); + + /* Clobber the FP when we get here, so we have to make sure it's + marked as used by this function. */ + emit_insn (gen_rtx_USE (VOIDmode, hard_frame_pointer_rtx)); +--- 8592,8613 ---- + emit_insn (gen_builtin_setjmp_setup (buf_addr)); + #endif + +! /* Tell optimize_save_area_alloca that extra work is going to +! need to go on during alloca. */ +! current_function_calls_setjmp = 1; + ++ /* Set this so all the registers get saved in our frame; we need to be ++ able to copy the saved values for any registers from frames we unwind. */ + current_function_has_nonlocal_label = 1; +! } +! +! /* Construct the trailing part of a __builtin_setjmp call. +! This is used directly by sjlj exception handling code. */ + ++ void ++ expand_builtin_setjmp_receiver (receiver_label) ++ rtx receiver_label ATTRIBUTE_UNUSED; ++ { + /* Clobber the FP when we get here, so we have to make sure it's + marked as used by this function. */ + emit_insn (gen_rtx_USE (VOIDmode, hard_frame_pointer_rtx)); +*************** expand_builtin_setjmp (buf_addr, target, +*** 8666,8672 **** + + #ifdef HAVE_builtin_setjmp_receiver + if (HAVE_builtin_setjmp_receiver) +! emit_insn (gen_builtin_setjmp_receiver (lab1)); + else + #endif + #ifdef HAVE_nonlocal_goto_receiver +--- 8654,8660 ---- + + #ifdef HAVE_builtin_setjmp_receiver + if (HAVE_builtin_setjmp_receiver) +! emit_insn (gen_builtin_setjmp_receiver (receiver_label)); + else + #endif + #ifdef HAVE_nonlocal_goto_receiver +*************** expand_builtin_setjmp (buf_addr, target, +*** 8678,8687 **** + ; /* Nothing */ + } + +! /* Set TARGET, and branch to the next-time-through label. */ +! emit_move_insn (target, const1_rtx); +! emit_jump_insn (gen_jump (next_label)); + emit_barrier (); + + return target; + } +--- 8666,8731 ---- + ; /* Nothing */ + } + +! /* @@@ This is a kludge. Not all machine descriptions define a blockage +! insn, but we must not allow the code we just generated to be reordered +! by scheduling. Specifically, the update of the frame pointer must +! happen immediately, not later. So emit an ASM_INPUT to act as blockage +! insn. */ +! emit_insn (gen_rtx_ASM_INPUT (VOIDmode, "")); +! } +! +! +! /* __builtin_setjmp is passed a pointer to an array of five words (not +! all will be used on all machines). It operates similarly to the C +! library function of the same name, but is more efficient. Much of +! the code below (and for longjmp) is copied from the handling of +! non-local gotos. +! +! NOTE: This is intended for use by GNAT and the exception handling +! scheme in the compiler and will only work in the method used by +! them. */ +! +! static rtx +! expand_builtin_setjmp (arglist, target) +! tree arglist; +! rtx target; +! { +! rtx buf_addr, next_lab, cont_lab; +! +! if (arglist == 0 +! || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != POINTER_TYPE) +! return NULL_RTX; +! +! if (target == 0 || GET_CODE (target) != REG +! || REGNO (target) < FIRST_PSEUDO_REGISTER) +! target = gen_reg_rtx (TYPE_MODE (integer_type_node)); +! +! buf_addr = expand_expr (TREE_VALUE (arglist), NULL_RTX, VOIDmode, 0); +! +! next_lab = gen_label_rtx (); +! cont_lab = gen_label_rtx (); +! +! expand_builtin_setjmp_setup (buf_addr, next_lab); +! +! /* Set TARGET to zero and branch to the continue label. */ +! emit_move_insn (target, const0_rtx); +! emit_jump_insn (gen_jump (cont_lab)); + emit_barrier (); ++ emit_label (next_lab); ++ ++ expand_builtin_setjmp_receiver (next_lab); ++ ++ /* Set TARGET to one. */ ++ emit_move_insn (target, const1_rtx); ++ emit_label (cont_lab); ++ ++ /* Tell flow about the strange goings on. Putting `next_lab' on ++ `nonlocal_goto_handler_labels' to indicates that function ++ calls may traverse the arc back to this label. */ ++ ++ current_function_has_nonlocal_label = 1; ++ nonlocal_goto_handler_labels ++ = gen_rtx_EXPR_LIST (VOIDmode, next_lab, nonlocal_goto_handler_labels); + + return target; + } +*************** expand_builtin (exp, target, subtarget, +*** 9703,9720 **** + #endif + + case BUILT_IN_SETJMP: +! if (arglist == 0 +! || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != POINTER_TYPE) +! break; +! else +! { +! rtx buf_addr = expand_expr (TREE_VALUE (arglist), subtarget, +! VOIDmode, 0); +! rtx lab = gen_label_rtx (); +! rtx ret = expand_builtin_setjmp (buf_addr, target, lab, lab); +! emit_label (lab); +! return ret; +! } + + /* __builtin_longjmp is passed a pointer to an array of five words. + It's similar to the C library longjmp function but works with +--- 9747,9756 ---- + #endif + + case BUILT_IN_SETJMP: +! target = expand_builtin_setjmp (arglist, target); +! if (target) +! return target; +! break; + + /* __builtin_longjmp is passed a pointer to an array of five words. + It's similar to the C library longjmp function but works with +diff -c3rpN gcc-2.95.3.orig/gcc/expr.h gcc-2.95.4/gcc/expr.h +*** gcc-2.95.3.orig/gcc/expr.h Mon Feb 19 14:02:02 2001 +--- gcc-2.95.4/gcc/expr.h Wed Jun 6 01:37:36 2001 +*************** extern rtx store_expr PROTO((tree, rtx, +*** 831,837 **** + Useful after calling expand_expr with 1 as sum_ok. */ + extern rtx force_operand PROTO((rtx, rtx)); + +! extern rtx expand_builtin_setjmp PROTO((rtx, rtx, rtx, rtx)); + + #ifdef TREE_CODE + /* Generate code for computing expression EXP. +--- 831,838 ---- + Useful after calling expand_expr with 1 as sum_ok. */ + extern rtx force_operand PROTO((rtx, rtx)); + +! extern void expand_builtin_setjmp_setup PARAMS ((rtx, rtx)); +! extern void expand_builtin_setjmp_receiver PARAMS ((rtx)); + + #ifdef TREE_CODE + /* Generate code for computing expression EXP. +diff -c3rpN gcc-2.95.3.orig/gcc/f/version.c gcc-2.95.4/gcc/f/version.c +*** gcc-2.95.3.orig/gcc/f/version.c Fri Mar 16 12:52:16 2001 +--- gcc-2.95.4/gcc/f/version.c Wed Jun 6 01:37:50 2001 +*************** +*** 1 **** +! const char *ffe_version_string = "0.5.25 20010315 (release)"; +--- 1 ---- +! const char *ffe_version_string = "0.5.25 20010319 (prerelease)"; +diff -c3rpN gcc-2.95.3.orig/gcc/final.c gcc-2.95.4/gcc/final.c +*** gcc-2.95.3.orig/gcc/final.c Mon Mar 12 12:07:59 2001 +--- gcc-2.95.4/gcc/final.c Wed Jun 6 01:37:51 2001 +*************** static void +*** 1701,1707 **** +--- 1701,1709 ---- + profile_function (file) + FILE *file; + { ++ #ifndef NO_PROFILE_COUNTERS + int align = MIN (BIGGEST_ALIGNMENT, LONG_TYPE_SIZE); ++ #endif + #if defined(ASM_OUTPUT_REG_PUSH) + #if defined(STRUCT_VALUE_INCOMING_REGNUM) || defined(STRUCT_VALUE_REGNUM) + int sval = current_function_returns_struct; +*************** profile_function (file) +*** 1711,1720 **** +--- 1713,1724 ---- + #endif + #endif /* ASM_OUTPUT_REG_PUSH */ + ++ #ifndef NO_PROFILE_COUNTERS + data_section (); + ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT)); + ASM_OUTPUT_INTERNAL_LABEL (file, "LP", profile_label_no); + assemble_integer (const0_rtx, LONG_TYPE_SIZE / BITS_PER_UNIT, 1); ++ #endif + + function_section (current_function_decl); + +*************** cleanup_subreg_operands (insn) +*** 3043,3049 **** + if (GET_CODE (recog_operand[i]) == SUBREG) + recog_operand[i] = alter_subreg (recog_operand[i]); + else if (GET_CODE (recog_operand[i]) == PLUS +! || GET_CODE (recog_operand[i]) == MULT) + recog_operand[i] = walk_alter_subreg (recog_operand[i]); + } + +--- 3047,3054 ---- + if (GET_CODE (recog_operand[i]) == SUBREG) + recog_operand[i] = alter_subreg (recog_operand[i]); + else if (GET_CODE (recog_operand[i]) == PLUS +! || GET_CODE (recog_operand[i]) == MULT +! || GET_CODE (recog_operand[i]) == MEM) + recog_operand[i] = walk_alter_subreg (recog_operand[i]); + } + +*************** cleanup_subreg_operands (insn) +*** 3052,3058 **** + if (GET_CODE (*recog_dup_loc[i]) == SUBREG) + *recog_dup_loc[i] = alter_subreg (*recog_dup_loc[i]); + else if (GET_CODE (*recog_dup_loc[i]) == PLUS +! || GET_CODE (*recog_dup_loc[i]) == MULT) + *recog_dup_loc[i] = walk_alter_subreg (*recog_dup_loc[i]); + } + } +--- 3057,3064 ---- + if (GET_CODE (*recog_dup_loc[i]) == SUBREG) + *recog_dup_loc[i] = alter_subreg (*recog_dup_loc[i]); + else if (GET_CODE (*recog_dup_loc[i]) == PLUS +! || GET_CODE (*recog_dup_loc[i]) == MULT +! || GET_CODE (*recog_dup_loc[i]) == MEM) + *recog_dup_loc[i] = walk_alter_subreg (*recog_dup_loc[i]); + } + } +diff -c3rpN gcc-2.95.3.orig/gcc/fixinc/inclhack.def gcc-2.95.4/gcc/fixinc/inclhack.def +*** gcc-2.95.3.orig/gcc/fixinc/inclhack.def Fri Aug 13 08:44:06 1999 +--- gcc-2.95.4/gcc/fixinc/inclhack.def Wed Jun 6 01:37:54 2001 +*************** fix = { +*** 2234,2239 **** +--- 2234,2281 ---- + "#endif\n"; + }; + ++ /* ++ * Fix VxWorks varargs header ++ */ ++ fix = { ++ hackname = vxworks_varargs_problem; ++ files = arch/ppc/toolPpc.h; ++ select = "GNU C varargs support for the PowerPC with V.4 calling sequence"; ++ ++ sed = "/\\/\\* GNU C varargs support for the PowerPC with V.4 calling sequence \\*\\//a\\\n" ++ "#ifdef __VXVARGS__\\\n" ++ "#include \\\n" ++ "#else /* !defined(__VXVARGS__) */\\\n"; ++ ++ sed = "/\\/\\* END CYGNUS LOCAL Waiting for 2.7.1 to unfreeze \\*\\//i\\\n" ++ "#endif /* !defined(__VXVARGS__) */\\\n"; ++ }; ++ ++ ++ /* ++ * Fix VxWorks varargs header ++ */ ++ fix = { ++ hackname = vxworks_stdio-lock_cxx_compat; ++ files = stdio-lock.h; ++ select = "^[ \\t]*#[ \\t]*define[ \\t]*_IO_lock_initializer[ \\t]*_IO_lock_t[ \\t]*()"; ++ ++ sed = "s,^[ \\t]*#[ \\t]*define[ \\t]*_IO_lock_initializer[ \\t]*_IO_lock_t[ \\t]*()," ++ "#ifndef __cplusplus\\\n#define _IO_lock_initializer { 0UL }\\\n#else\\\n#define _IO_lock_initializer _IO_lock_t ()\\\n#endif\\\n,"; ++ }; ++ ++ ++ /* ++ * That last fix won't even work unless we make archPpc.h use the default ++ * search path when it includes toolPpc.h ++ * ++ */ ++ fix = { ++ hackname = vxworks_arch_includepath; ++ files = arch/ppc/archPpc.h; ++ select = 'include.*"toolPpc.h"'; ++ sed = "s,\"toolPpc.h\",,"; ++ }; + + /* + * Fix VxWorks to not require including . +*************** fix = { +*** 2252,2263 **** + fix = { + hackname = vxworks_needs_vxworks; + files = sys/stat.h; +! test = " -r types/vxTypesOld.h"; +! test = " -n \"`egrep '#include' $file`\""; +! test = " -n \"`egrep ULONG $file`\""; +! select = "#[ \t]define[ \t][ \t]*__INCstath"; + +! sed = "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n" + "#include \n"; + }; + +--- 2294,2302 ---- + fix = { + hackname = vxworks_needs_vxworks; + files = sys/stat.h; +! select = "#[ \t]*define[ \t][ \t]*__INCstath"; + +! sed = "/#[ \t]*define[ \t][ \t]*__INCstath/a\\\n" + "#include \n"; + }; + +diff -c3rpN gcc-2.95.3.orig/gcc/flow.c gcc-2.95.4/gcc/flow.c +*** gcc-2.95.3.orig/gcc/flow.c Thu Jan 25 14:03:08 2001 +--- gcc-2.95.4/gcc/flow.c Wed Jun 6 01:37:55 2001 +*************** propagate_block (old, first, last, final +*** 2744,2758 **** + { + if (REG_NOTE_KIND (inote) == REG_LABEL) + { + rtx label = XEXP (inote, 0); + rtx next; + LABEL_NUSES (label)--; + + /* If this label was attached to an ADDR_VEC, it's + safe to delete the ADDR_VEC. In fact, it's pretty much + mandatory to delete it, because the ADDR_VEC may + be referencing labels that no longer exist. */ +! if (LABEL_NUSES (label) == 0 + && (next = next_nonnote_insn (label)) != NULL + && GET_CODE (next) == JUMP_INSN + && (GET_CODE (PATTERN (next)) == ADDR_VEC +--- 2744,2766 ---- + { + if (REG_NOTE_KIND (inote) == REG_LABEL) + { ++ int n_forced; + rtx label = XEXP (inote, 0); + rtx next; + LABEL_NUSES (label)--; + ++ /* The label may be forced if it has been put in the ++ constant pool. We can't delete it in this case, but ++ we still must discard a jump table following it. */ ++ n_forced = 0; ++ if (LABEL_PRESERVE_P (label)) ++ n_forced++; ++ + /* If this label was attached to an ADDR_VEC, it's + safe to delete the ADDR_VEC. In fact, it's pretty much + mandatory to delete it, because the ADDR_VEC may + be referencing labels that no longer exist. */ +! if (LABEL_NUSES (label) == n_forced + && (next = next_nonnote_insn (label)) != NULL + && GET_CODE (next) == JUMP_INSN + && (GET_CODE (PATTERN (next)) == ADDR_VEC +diff -c3rpN gcc-2.95.3.orig/gcc/function.c gcc-2.95.4/gcc/function.c +*** gcc-2.95.3.orig/gcc/function.c Thu Jan 25 14:03:15 2001 +--- gcc-2.95.4/gcc/function.c Wed Jun 6 01:37:57 2001 +*************** static int *record_insns PROTO((rtx)); +*** 513,520 **** + static int contains PROTO((rtx, int *)); + #endif /* HAVE_prologue || HAVE_epilogue */ + static void put_addressof_into_stack PROTO((rtx, struct hash_table *)); +! static void purge_addressof_1 PROTO((rtx *, rtx, int, int, + struct hash_table *)); + static struct hash_entry *insns_for_mem_newfunc PROTO((struct hash_entry *, + struct hash_table *, + hash_table_key)); +--- 513,521 ---- + static int contains PROTO((rtx, int *)); + #endif /* HAVE_prologue || HAVE_epilogue */ + static void put_addressof_into_stack PROTO((rtx, struct hash_table *)); +! static boolean purge_addressof_1 PROTO((rtx *, rtx, int, int, + struct hash_table *)); ++ static int is_addressof PROTO ((rtx *, void *)); + static struct hash_entry *insns_for_mem_newfunc PROTO((struct hash_entry *, + struct hash_table *, + hash_table_key)); +*************** static rtx purge_addressof_replacements; +*** 3055,3063 **** + + /* Helper function for purge_addressof. See if the rtx expression at *LOC + in INSN needs to be changed. If FORCE, always put any ADDRESSOFs into +! the stack. */ + +! static void + purge_addressof_1 (loc, insn, force, store, ht) + rtx *loc; + rtx insn; +--- 3056,3065 ---- + + /* Helper function for purge_addressof. See if the rtx expression at *LOC + in INSN needs to be changed. If FORCE, always put any ADDRESSOFs into +! the stack. If the function returns FALSE then the replacement could not +! be made. */ + +! static boolean + purge_addressof_1 (loc, insn, force, store, ht) + rtx *loc; + rtx insn; +*************** purge_addressof_1 (loc, insn, force, sto +*** 3068,3080 **** + RTX_CODE code; + int i, j; + char *fmt; + + /* Re-start here to avoid recursion in common cases. */ + restart: + + x = *loc; + if (x == 0) +! return; + + code = GET_CODE (x); + +--- 3070,3083 ---- + RTX_CODE code; + int i, j; + char *fmt; ++ boolean result = true; + + /* Re-start here to avoid recursion in common cases. */ + restart: + + x = *loc; + if (x == 0) +! return true; + + code = GET_CODE (x); + +*************** purge_addressof_1 (loc, insn, force, sto +*** 3087,3093 **** + + if (validate_change (insn, loc, sub, 0) + || validate_replace_rtx (x, sub, insn)) +! return; + + start_sequence (); + sub = force_operand (sub, NULL_RTX); +--- 3090,3096 ---- + + if (validate_change (insn, loc, sub, 0) + || validate_replace_rtx (x, sub, insn)) +! return true; + + start_sequence (); + sub = force_operand (sub, NULL_RTX); +*************** purge_addressof_1 (loc, insn, force, sto +*** 3098,3104 **** + insns = gen_sequence (); + end_sequence (); + emit_insn_before (insns, insn); +! return; + } + else if (code == MEM && GET_CODE (XEXP (x, 0)) == ADDRESSOF && ! force) + { +--- 3101,3107 ---- + insns = gen_sequence (); + end_sequence (); + emit_insn_before (insns, insn); +! return true; + } + else if (code == MEM && GET_CODE (XEXP (x, 0)) == ADDRESSOF && ! force) + { +*************** purge_addressof_1 (loc, insn, force, sto +*** 3117,3123 **** + && (MEM_VOLATILE_P (x) || GET_MODE (x) == BLKmode)) + { + put_addressof_into_stack (XEXP (x, 0), ht); +! return; + } + else if (GET_CODE (sub) == REG && GET_MODE (x) != GET_MODE (sub)) + { +--- 3120,3126 ---- + && (MEM_VOLATILE_P (x) || GET_MODE (x) == BLKmode)) + { + put_addressof_into_stack (XEXP (x, 0), ht); +! return true; + } + else if (GET_CODE (sub) == REG && GET_MODE (x) != GET_MODE (sub)) + { +*************** purge_addressof_1 (loc, insn, force, sto +*** 3136,3142 **** + if (rtx_equal_p (x, XEXP (tem, 0))) + { + *loc = XEXP (XEXP (tem, 1), 0); +! return; + } + + /* See comment for purge_addressof_replacements. */ +--- 3139,3145 ---- + if (rtx_equal_p (x, XEXP (tem, 0))) + { + *loc = XEXP (XEXP (tem, 1), 0); +! return true; + } + + /* See comment for purge_addressof_replacements. */ +*************** purge_addressof_1 (loc, insn, force, sto +*** 3176,3186 **** + z = gen_lowpart (GET_MODE (x), z); + + *loc = z; +! return; + } + +! /* There should always be such a replacement. */ +! abort (); + } + + size_x = GET_MODE_BITSIZE (GET_MODE (x)); +--- 3179,3195 ---- + z = gen_lowpart (GET_MODE (x), z); + + *loc = z; +! return true; + } + +! /* Sometimes we may not be able to find the replacement. For +! example when the original insn was a MEM in a wider mode, +! and the note is part of a sign extension of a narrowed +! version of that MEM. Gcc testcase compile/990829-1.c can +! generate an example of this siutation. Rather than complain +! we return false, which will prompt our caller to remove the +! offending note. */ +! return false; + } + + size_x = GET_MODE_BITSIZE (GET_MODE (x)); +*************** purge_addressof_1 (loc, insn, force, sto +*** 3266,3272 **** + purge_bitfield_addressof_replacements)); + + /* We replaced with a reg -- all done. */ +! return; + } + } + else if (validate_change (insn, loc, sub, 0)) +--- 3275,3281 ---- + purge_bitfield_addressof_replacements)); + + /* We replaced with a reg -- all done. */ +! return true; + } + } + else if (validate_change (insn, loc, sub, 0)) +*************** purge_addressof_1 (loc, insn, force, sto +*** 3283,3295 **** + if (rtx_equal_p (XEXP (x, 0), XEXP (tem, 0))) + { + XEXP (XEXP (tem, 1), 0) = sub; +! return; + } + purge_addressof_replacements + = gen_rtx (EXPR_LIST, VOIDmode, XEXP (x, 0), + gen_rtx_EXPR_LIST (VOIDmode, sub, + purge_addressof_replacements)); +! return; + } + goto restart; + } +--- 3292,3304 ---- + if (rtx_equal_p (XEXP (x, 0), XEXP (tem, 0))) + { + XEXP (XEXP (tem, 1), 0) = sub; +! return true; + } + purge_addressof_replacements + = gen_rtx (EXPR_LIST, VOIDmode, XEXP (x, 0), + gen_rtx_EXPR_LIST (VOIDmode, sub, + purge_addressof_replacements)); +! return true; + } + goto restart; + } +*************** purge_addressof_1 (loc, insn, force, sto +*** 3299,3311 **** + else if (code == ADDRESSOF) + { + put_addressof_into_stack (x, ht); +! return; + } + else if (code == SET) + { +! purge_addressof_1 (&SET_DEST (x), insn, force, 1, ht); +! purge_addressof_1 (&SET_SRC (x), insn, force, 0, ht); +! return; + } + + /* Scan all subexpressions. */ +--- 3308,3320 ---- + else if (code == ADDRESSOF) + { + put_addressof_into_stack (x, ht); +! return true; + } + else if (code == SET) + { +! result = purge_addressof_1 (&SET_DEST (x), insn, force, 1, ht); +! result &= purge_addressof_1 (&SET_SRC (x), insn, force, 0, ht); +! return result; + } + + /* Scan all subexpressions. */ +*************** purge_addressof_1 (loc, insn, force, sto +*** 3313,3323 **** + for (i = 0; i < GET_RTX_LENGTH (code); i++, fmt++) + { + if (*fmt == 'e') +! purge_addressof_1 (&XEXP (x, i), insn, force, 0, ht); + else if (*fmt == 'E') + for (j = 0; j < XVECLEN (x, i); j++) +! purge_addressof_1 (&XVECEXP (x, i, j), insn, force, 0, ht); + } + } + + /* Return a new hash table entry in HT. */ +--- 3322,3334 ---- + for (i = 0; i < GET_RTX_LENGTH (code); i++, fmt++) + { + if (*fmt == 'e') +! result &= purge_addressof_1 (&XEXP (x, i), insn, force, 0, ht); + else if (*fmt == 'E') + for (j = 0; j < XVECLEN (x, i); j++) +! result &= purge_addressof_1 (&XVECEXP (x, i, j), insn, force, 0, ht); + } ++ ++ return result; + } + + /* Return a new hash table entry in HT. */ +*************** compute_insns_for_mem (insns, last_insn, +*** 3437,3442 **** +--- 3448,3463 ---- + } + } + ++ /* Helper function for purge_addressof called through for_each_rtx. ++ Returns true iff the rtl is an ADDRESSOF. */ ++ static int ++ is_addressof (rtl, data) ++ rtx * rtl; ++ void * data ATTRIBUTE_UNUSED; ++ { ++ return GET_CODE (* rtl) == ADDRESSOF; ++ } ++ + /* Eliminate all occurrences of ADDRESSOF from INSNS. Elide any remaining + (MEM (ADDRESSOF)) patterns, and force any needed registers into the + stack. */ +*************** purge_addressof (insns) +*** 3465,3473 **** + if (GET_CODE (insn) == INSN || GET_CODE (insn) == JUMP_INSN + || GET_CODE (insn) == CALL_INSN) + { +! purge_addressof_1 (&PATTERN (insn), insn, +! asm_noperands (PATTERN (insn)) > 0, 0, &ht); +! purge_addressof_1 (®_NOTES (insn), NULL_RTX, 0, 0, &ht); + } + + /* Clean up. */ +--- 3486,3515 ---- + if (GET_CODE (insn) == INSN || GET_CODE (insn) == JUMP_INSN + || GET_CODE (insn) == CALL_INSN) + { +! if (! purge_addressof_1 (&PATTERN (insn), insn, +! asm_noperands (PATTERN (insn)) > 0, 0, &ht)) +! /* If we could not replace the ADDRESSOFs in the insn, +! something is wrong. */ +! abort (); +! +! if (! purge_addressof_1 (®_NOTES (insn), NULL_RTX, 0, 0, &ht)) +! { +! /* If we could not replace the ADDRESSOFs in the insn's notes, +! we can just remove the offending notes instead. */ +! rtx note; +! +! for (note = REG_NOTES (insn); note; note = XEXP (note, 1)) +! { +! /* If we find a REG_RETVAL note then the insn is a libcall. +! Such insns must have REG_EQUAL notes as well, in order +! for later passes of the compiler to work. So it is not +! safe to delete the notes here, and instead we abort. */ +! if (REG_NOTE_KIND (note) == REG_RETVAL) +! abort (); +! if (for_each_rtx (& note, is_addressof, NULL)) +! remove_note (insn, note); +! } +! } + } + + /* Clean up. */ +*************** locate_and_pad_parm (passed_mode, type, +*** 5292,5298 **** + - offset_ptr->constant); + } + #else /* !ARGS_GROW_DOWNWARD */ +! pad_to_arg_alignment (initial_offset_ptr, boundary); + *offset_ptr = *initial_offset_ptr; + + #ifdef PUSH_ROUNDING +--- 5334,5351 ---- + - offset_ptr->constant); + } + #else /* !ARGS_GROW_DOWNWARD */ +! if (!in_regs +! #ifdef REG_PARM_STACK_SPACE +! || REG_PARM_STACK_SPACE (fndecl) > 0 +! #else +! /* For the gcc-2_95-branch we want to make sure not to break something +! on platforms which pass argument in registers but don't define +! REG_PARM_STACK_SPACE. So we force the original behaviour here. */ +! || 1 +! #endif +! ) +! pad_to_arg_alignment (initial_offset_ptr, boundary); +! + *offset_ptr = *initial_offset_ptr; + + #ifdef PUSH_ROUNDING +diff -c3rpN gcc-2.95.3.orig/gcc/gcc.1 gcc-2.95.4/gcc/gcc.1 +*** gcc-2.95.3.orig/gcc/gcc.1 Wed Jun 2 02:41:52 1999 +--- gcc-2.95.4/gcc/gcc.1 Wed Jun 6 01:37:57 2001 +*************** +*** 20,26 **** + .if n .sp + .if t .sp 0.4 + .. +! .Id $Id: gcc.1,v 1.9 1998/12/16 20:55:57 law Exp $ + .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools" + .SH NAME + gcc, g++ \- GNU project C and C++ Compiler (gcc-2.95) +--- 20,26 ---- + .if n .sp + .if t .sp 0.4 + .. +! .Id $Id: gcc.1,v 1.9.8.1 1999/06/02 01:41:52 law Exp $ + .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools" + .SH NAME + gcc, g++ \- GNU project C and C++ Compiler (gcc-2.95) +diff -c3rpN gcc-2.95.3.orig/gcc/gcc.c gcc-2.95.4/gcc/gcc.c +*** gcc-2.95.3.orig/gcc/gcc.c Thu Jan 25 14:03:16 2001 +--- gcc-2.95.4/gcc/gcc.c Wed Jun 6 01:37:57 2001 +*************** +*** 1,6 **** + /* Compiler driver program that can handle many languages. + Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +! 2000 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,6 ---- + /* Compiler driver program that can handle many languages. + Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +! 2000, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** compilation is specified by a string cal +*** 44,61 **** + #define exit __posix_exit + #endif + +! /* By default there is no special suffix for executables. */ +! #ifdef EXECUTABLE_SUFFIX +! #define HAVE_EXECUTABLE_SUFFIX + #else +! #define EXECUTABLE_SUFFIX "" + #endif + +! /* By default, the suffix for object files is ".o". */ +! #ifdef OBJECT_SUFFIX +! #define HAVE_OBJECT_SUFFIX + #else +! #define OBJECT_SUFFIX ".o" + #endif + + /* By default, colon separates directories in a path. */ +--- 44,69 ---- + #define exit __posix_exit + #endif + +! /* By default there is no special suffix for target executables. */ +! /* FIXME: when autoconf is fixed, remove the host check - dj */ +! #if defined(TARGET_EXECUTABLE_SUFFIX) && defined(HOST_EXECUTABLE_SUFFIX) +! #define HAVE_TARGET_EXECUTABLE_SUFFIX + #else +! #define TARGET_EXECUTABLE_SUFFIX "" + #endif + +! /* By default there is no special suffix for host executables. */ +! #ifdef HOST_EXECUTABLE_SUFFIX +! #define HAVE_HOST_EXECUTABLE_SUFFIX + #else +! #define HOST_EXECUTABLE_SUFFIX "" +! #endif +! +! /* By default, the suffix for target object files is ".o". */ +! #ifdef TARGET_OBJECT_SUFFIX +! #define HAVE_TARGET_OBJECT_SUFFIX +! #else +! #define TARGET_OBJECT_SUFFIX ".o" + #endif + + /* By default, colon separates directories in a path. */ +*************** compilation is specified by a string cal +*** 75,80 **** +--- 83,96 ---- + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) + #endif /* DIR_SEPARATOR_2 */ + ++ #ifndef VMS ++ /* FIXME: the location independence code for VMS is hairier than this, ++ and hasn't been written. */ ++ #ifndef DIR_UP ++ #define DIR_UP ".." ++ #endif /* DIR_UP */ ++ #endif /* VMS */ ++ + static char dir_separator_str[] = {DIR_SEPARATOR, 0}; + + #define obstack_chunk_alloc xmalloc +*************** extern char *version_string; +*** 173,178 **** +--- 189,199 ---- + struct path_prefix; + + static void init_spec PROTO((void)); ++ #ifndef VMS ++ static char **split_directories PARAMS ((const char *, int *)); ++ static void free_split_directories PARAMS ((char **)); ++ static char *make_relative_prefix PARAMS ((const char *, const char *, const char *)); ++ #endif /* VMS */ + static void read_specs PROTO((const char *, int)); + static void set_spec PROTO((const char *, const char *)); + static struct compiler *lookup_compiler PROTO((const char *, size_t, const char *)); +*************** static struct user_specs *user_specs_hea +*** 538,544 **** + #endif + + +! #ifdef HAVE_EXECUTABLE_SUFFIX + /* This defines which switches stop a full compilation. */ + #define DEFAULT_SWITCH_CURTAILS_COMPILATION(CHAR) \ + ((CHAR) == 'c' || (CHAR) == 'S') +--- 559,565 ---- + #endif + + +! #ifdef HAVE_TARGET_EXECUTABLE_SUFFIX + /* This defines which switches stop a full compilation. */ + #define DEFAULT_SWITCH_CURTAILS_COMPILATION(CHAR) \ + ((CHAR) == 'c' || (CHAR) == 'S') +*************** static const char *just_machine_suffix = +*** 1361,1366 **** +--- 1382,1390 ---- + + static const char *gcc_exec_prefix; + ++ static const char *wind_host_type = 0; ++ static const char *wind_base = 0; ++ + /* Default prefixes to attach to command names. */ + + #ifdef CROSS_COMPILE /* Don't use these prefixes for a cross compiler. */ +*************** static const char *standard_startfile_pr +*** 1399,1404 **** +--- 1423,1433 ---- + static const char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX; + static const char *tooldir_prefix; + ++ #ifndef STANDARD_BINDIR_PREFIX ++ #define STANDARD_BINDIR_PREFIX "/usr/local/bin" ++ #endif ++ static const char *standard_bindir_prefix = STANDARD_BINDIR_PREFIX; ++ + /* Subdirectory to use for locating libraries. Set by + set_multilib_dir based on the compilation options. */ + +*************** putenv (str) +*** 1879,1884 **** +--- 1908,2151 ---- + + #endif /* HAVE_PUTENV */ + ++ #ifndef VMS ++ ++ /* FIXME: the location independence code for VMS is hairier than this, ++ and hasn't been written. */ ++ ++ /* Split a filename into component directories. */ ++ ++ static char ** ++ split_directories (name, ptr_num_dirs) ++ const char *name; ++ int *ptr_num_dirs; ++ { ++ int num_dirs = 0; ++ char **dirs; ++ const char *p, *q; ++ int ch; ++ ++ /* Count the number of directories. Special case MSDOS disk names as part ++ of the initial directory. */ ++ p = name; ++ #ifdef HAVE_DOS_BASED_FILE_SYSTEM ++ if (name[1] == ':' && IS_DIR_SEPARATOR (name[2])) ++ { ++ p += 3; ++ num_dirs++; ++ } ++ #endif /* HAVE_DOS_BASED_FILE_SYSTEM */ ++ ++ while ((ch = *p++) != '\0') ++ { ++ if (IS_DIR_SEPARATOR (ch)) ++ { ++ num_dirs++; ++ while (IS_DIR_SEPARATOR (*p)) ++ p++; ++ } ++ } ++ ++ dirs = (char **) xmalloc (sizeof (char *) * (num_dirs + 2)); ++ ++ /* Now copy the directory parts. */ ++ num_dirs = 0; ++ p = name; ++ #ifdef HAVE_DOS_BASED_FILE_SYSTEM ++ if (name[1] == ':' && IS_DIR_SEPARATOR (name[2])) ++ { ++ dirs[num_dirs++] = save_string (p, 3); ++ p += 3; ++ } ++ #endif /* HAVE_DOS_BASED_FILE_SYSTEM */ ++ ++ q = p; ++ while ((ch = *p++) != '\0') ++ { ++ if (IS_DIR_SEPARATOR (ch)) ++ { ++ while (IS_DIR_SEPARATOR (*p)) ++ p++; ++ ++ dirs[num_dirs++] = save_string (q, p - q); ++ q = p; ++ } ++ } ++ ++ if (p - 1 - q > 0) ++ dirs[num_dirs++] = save_string (q, p - 1 - q); ++ ++ dirs[num_dirs] = NULL_PTR; ++ if (ptr_num_dirs) ++ *ptr_num_dirs = num_dirs; ++ ++ return dirs; ++ } ++ ++ /* Release storage held by split directories. */ ++ ++ static void ++ free_split_directories (dirs) ++ char **dirs; ++ { ++ int i = 0; ++ ++ while (dirs[i] != NULL_PTR) ++ free (dirs[i++]); ++ ++ free ((char *)dirs); ++ } ++ ++ /* Given three strings PROGNAME, BIN_PREFIX, PREFIX, return a string that gets ++ to PREFIX starting with the directory portion of PROGNAME and a relative ++ pathname of the difference between BIN_PREFIX and PREFIX. ++ ++ For example, if BIN_PREFIX is /alpha/beta/gamma/gcc/delta, PREFIX is ++ /alpha/beta/gamma/omega/, and PROGNAME is /red/green/blue/gcc, then this ++ function will return /red/green/blue/../omega. ++ ++ If no relative prefix can be found, return NULL. */ ++ ++ static char * ++ make_relative_prefix (progname, bin_prefix, prefix) ++ const char *progname; ++ const char *bin_prefix; ++ const char *prefix; ++ { ++ char **prog_dirs, **bin_dirs, **prefix_dirs; ++ int prog_num, bin_num, prefix_num, std_loc_p; ++ int i, n, common; ++ ++ prog_dirs = split_directories (progname, &prog_num); ++ bin_dirs = split_directories (bin_prefix, &bin_num); ++ ++ /* If there is no full pathname, try to find the program by checking in each ++ of the directories specified in the PATH environment variable. */ ++ if (prog_num == 1) ++ { ++ char *temp; ++ ++ GET_ENV_PATH_LIST (temp, "PATH"); ++ if (temp) ++ { ++ char *startp, *endp; ++ char *nstore = (char *) alloca (strlen (temp) + strlen (progname) + 1); ++ ++ startp = endp = temp; ++ while (1) ++ { ++ if (*endp == PATH_SEPARATOR || *endp == 0) ++ { ++ if (endp == startp) ++ { ++ nstore[0] = '.'; ++ nstore[1] = DIR_SEPARATOR; ++ nstore[2] = '\0'; ++ } ++ else ++ { ++ strncpy (nstore, startp, endp-startp); ++ if (! IS_DIR_SEPARATOR (endp[-1])) ++ { ++ nstore[endp-startp] = DIR_SEPARATOR; ++ nstore[endp-startp+1] = 0; ++ } ++ else ++ nstore[endp-startp] = 0; ++ } ++ strcat (nstore, progname); ++ if (! access (nstore, X_OK) ++ #ifdef HAVE_EXECUTABLE_SUFFIX ++ || ! access (strcat (nstore, EXECUTABLE_SUFFIX), X_OK) ++ #endif ++ ) ++ { ++ free_split_directories (prog_dirs); ++ progname = nstore; ++ prog_dirs = split_directories (progname, &prog_num); ++ break; ++ } ++ ++ if (*endp == 0) ++ break; ++ endp = startp = endp + 1; ++ } ++ else ++ endp++; ++ } ++ } ++ } ++ ++ /* Remove the program name from comparison of directory names. */ ++ prog_num--; ++ ++ /* Determine if the compiler is installed in the standard location, and if ++ so, we don't need to specify relative directories. Also, if argv[0] ++ doesn't contain any directory specifiers, there is not much we can do. */ ++ std_loc_p = 0; ++ if (prog_num == bin_num) ++ { ++ for (i = 0; i < bin_num; i++) ++ { ++ if (strcmp (prog_dirs[i], bin_dirs[i]) != 0) ++ break; ++ } ++ ++ if (prog_num <= 0 || i == bin_num) ++ { ++ std_loc_p = 1; ++ free_split_directories (prog_dirs); ++ free_split_directories (bin_dirs); ++ prog_dirs = bin_dirs = (char **)0; ++ return NULL_PTR; ++ } ++ } ++ ++ prefix_dirs = split_directories (prefix, &prefix_num); ++ ++ /* Find how many directories are in common between bin_prefix & prefix. */ ++ n = (prefix_num < bin_num) ? prefix_num : bin_num; ++ for (common = 0; common < n; common++) ++ { ++ if (strcmp (bin_dirs[common], prefix_dirs[common]) != 0) ++ break; ++ } ++ ++ /* If there are no common directories, there can be no relative prefix. */ ++ if (common == 0) ++ { ++ free_split_directories (prog_dirs); ++ free_split_directories (bin_dirs); ++ free_split_directories (prefix_dirs); ++ return NULL_PTR; ++ } ++ ++ /* Build up the pathnames in argv[0]. */ ++ for (i = 0; i < prog_num; i++) ++ obstack_grow (&obstack, prog_dirs[i], strlen (prog_dirs[i])); ++ ++ /* Now build up the ..'s. */ ++ for (i = common; i < n; i++) ++ { ++ obstack_grow (&obstack, DIR_UP, sizeof (DIR_UP)-1); ++ obstack_1grow (&obstack, DIR_SEPARATOR); ++ } ++ ++ /* Put in directories to move over to prefix. */ ++ for (i = common; i < prefix_num; i++) ++ obstack_grow (&obstack, prefix_dirs[i], strlen (prefix_dirs[i])); ++ ++ free_split_directories (prog_dirs); ++ free_split_directories (bin_dirs); ++ free_split_directories (prefix_dirs); ++ ++ obstack_1grow (&obstack, '\0'); ++ return obstack_finish (&obstack); ++ } ++ #endif /* VMS */ ++ ++ ++ + + /* Build a list of search directories from PATHS. + PREFIX is a string to prepend to the list. +*************** find_a_file (pprefix, name, mode) +*** 1966,1972 **** + int mode; + { + char *temp; +! const char *file_suffix = ((mode & X_OK) != 0 ? EXECUTABLE_SUFFIX : ""); + struct prefix_list *pl; + int len = pprefix->max_len + strlen (name) + strlen (file_suffix) + 1; + +--- 2233,2239 ---- + int mode; + { + char *temp; +! const char *file_suffix = ((mode & X_OK) != 0 ? HOST_EXECUTABLE_SUFFIX : ""); + struct prefix_list *pl; + int len = pprefix->max_len + strlen (name) + strlen (file_suffix) + 1; + +*************** static int warn_std; +*** 2405,2411 **** + static int *warn_std_ptr = 0; + + +! #if defined(HAVE_OBJECT_SUFFIX) || defined(HAVE_EXECUTABLE_SUFFIX) + + /* Convert NAME to a new name if it is the standard suffix. DO_EXE + is true if we should look for an executable suffix as well. */ +--- 2672,2678 ---- + static int *warn_std_ptr = 0; + + +! #if defined(HAVE_TARGET_OBJECT_SUFFIX) || defined(HAVE_TARGET_EXECUTABLE_SUFFIX) + + /* Convert NAME to a new name if it is the standard suffix. DO_EXE + is true if we should look for an executable suffix as well. */ +*************** convert_filename (name, do_exe) +*** 2423,2444 **** + + len = strlen (name); + +! #ifdef HAVE_OBJECT_SUFFIX +! /* Convert x.o to x.obj if OBJECT_SUFFIX is ".obj". */ + if (len > 2 + && name[len - 2] == '.' + && name[len - 1] == 'o') + { + obstack_grow (&obstack, name, len - 2); +! obstack_grow0 (&obstack, OBJECT_SUFFIX, strlen (OBJECT_SUFFIX)); + name = obstack_finish (&obstack); + } + #endif + +! #ifdef HAVE_EXECUTABLE_SUFFIX + /* If there is no filetype, make it the executable suffix (which includes + the "."). But don't get confused if we have just "-o". */ +! if (! do_exe || EXECUTABLE_SUFFIX[0] == 0 || (len == 2 && name[0] == '-')) + return name; + + for (i = len - 1; i >= 0; i--) +--- 2690,2711 ---- + + len = strlen (name); + +! #ifdef HAVE_TARGET_OBJECT_SUFFIX +! /* Convert x.o to x.obj if HAVE_TARGET_OBJECT_SUFFIX is ".obj". */ + if (len > 2 + && name[len - 2] == '.' + && name[len - 1] == 'o') + { + obstack_grow (&obstack, name, len - 2); +! obstack_grow0 (&obstack, TARGET_OBJECT_SUFFIX, strlen (TARGET_OBJECT_SUFFIX)); + name = obstack_finish (&obstack); + } + #endif + +! #ifdef HAVE_TARGET_EXECUTABLE_SUFFIX + /* If there is no filetype, make it the executable suffix (which includes + the "."). But don't get confused if we have just "-o". */ +! if (! do_exe || TARGET_EXECUTABLE_SUFFIX[0] == 0 || (len == 2 && name[0] == '-')) + return name; + + for (i = len - 1; i >= 0; i--) +*************** convert_filename (name, do_exe) +*** 2450,2456 **** + return name; + + obstack_grow (&obstack, name, len); +! obstack_grow0 (&obstack, EXECUTABLE_SUFFIX, strlen (EXECUTABLE_SUFFIX)); + name = obstack_finish (&obstack); + #endif + +--- 2717,2723 ---- + return name; + + obstack_grow (&obstack, name, len); +! obstack_grow0 (&obstack, TARGET_EXECUTABLE_SUFFIX, strlen (TARGET_EXECUTABLE_SUFFIX)); + name = obstack_finish (&obstack); + #endif + +*************** process_command (argc, argv) +*** 2599,2605 **** + } + } + +! /* Set up the default search paths. */ + + if (gcc_exec_prefix) + { +--- 2866,2924 ---- + } + } + +! /* Set up the default search paths. If there is no GCC_EXEC_PREFIX, +! see if we can create it from the pathname specified in argv[0]. */ +! +! /* Bodges here for VxWorks compiler */ +! #ifdef SYNTHETIC_VXWORKS_PREFIXES +! GET_ENV_PATH_LIST (wind_base, "WIND_BASE"); +! GET_ENV_PATH_LIST (wind_host_type, "WIND_HOST_TYPE"); +! if (wind_base && wind_host_type && *wind_base &&*wind_host_type) +! { +! char *temp; +! temp = concat (wind_base, dir_separator_str, "host", +! dir_separator_str, wind_host_type, dir_separator_str, NULL); +! #ifdef __CYGWIN32__ +! CONVERT_PATH (tooldir_base_prefix, temp); +! #else +! tooldir_base_prefix = temp; +! #endif +! temp = concat (wind_base, dir_separator_str, "host", +! dir_separator_str, wind_host_type, dir_separator_str, "lib", +! dir_separator_str, "gcc-lib", dir_separator_str, NULL); +! #ifdef __CYGWIN32__ +! CONVERT_PATH (gcc_exec_prefix, temp); +! #else +! gcc_exec_prefix = temp; +! #endif +! temp = concat (wind_base, dir_separator_str, "host", +! dir_separator_str, wind_host_type, dir_separator_str, "lib", +! dir_separator_str, "gcc-lib", dir_separator_str, NULL); +! #ifdef __CYGWIN32__ +! CONVERT_PATH (standard_exec_prefix, temp); +! #else +! standard_exec_prefix = temp; +! #endif +! } +! #endif +! +! +! #ifndef VMS +! /* FIXME: make_relative_prefix doesn't yet work for VMS. */ +! if (!gcc_exec_prefix) +! { +! char* program_name; +! #ifdef __CYGWIN32__ +! CONVERT_PATH(program_name, argv[0]); +! #else +! program_name = argv[0]; +! #endif +! gcc_exec_prefix = make_relative_prefix (program_name, standard_bindir_prefix, +! standard_exec_prefix); +! if (gcc_exec_prefix) +! putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL_PTR)); +! } +! #endif + + if (gcc_exec_prefix) + { +*************** process_command (argc, argv) +*** 2994,3000 **** + + case 'o': + have_o = 1; +! #if defined(HAVE_EXECUTABLE_SUFFIX) + if (! have_c) + { + int skip; +--- 3313,3319 ---- + + case 'o': + have_o = 1; +! #if defined(HAVE_TARGET_EXECUTABLE_SUFFIX) + if (! have_c) + { + int skip; +*************** process_command (argc, argv) +*** 3023,3029 **** + } + } + #endif +! #if defined(HAVE_EXECUTABLE_SUFFIX) || defined(HAVE_OBJECT_SUFFIX) + if (p[1] == 0) + argv[i+1] = convert_filename (argv[i+1], ! have_c); + else +--- 3342,3348 ---- + } + } + #endif +! #if defined(HAVE_TARGET_EXECUTABLE_SUFFIX) || defined(HAVE_TARGET_OBJECT_SUFFIX) + if (p[1] == 0) + argv[i+1] = convert_filename (argv[i+1], ! have_c); + else +*************** process_command (argc, argv) +*** 3079,3084 **** +--- 3398,3404 ---- + directories, so that we can search both the user specified directory + and the standard place. */ + ++ #ifndef SYNTHETIC_VXWORKS_PREFIXES + if (!IS_DIR_SEPARATOR (*tooldir_prefix)) + { + if (gcc_exec_prefix) +*************** process_command (argc, argv) +*** 3101,3106 **** +--- 3421,3427 ---- + dir_separator_str, spec_version, + dir_separator_str, tooldir_prefix, NULL_PTR); + } ++ #endif + + add_prefix (&exec_prefixes, + concat (tooldir_prefix, "bin", dir_separator_str, NULL_PTR), +*************** process_command (argc, argv) +*** 3287,3293 **** + } + else + { +! #ifdef HAVE_OBJECT_SUFFIX + argv[i] = convert_filename (argv[i], 0); + #endif + +--- 3608,3614 ---- + } + else + { +! #ifdef HAVE_TARGET_OBJECT_SUFFIX + argv[i] = convert_filename (argv[i], 0); + #endif + +*************** do_spec_1 (spec, inswitch, soft_matched_ +*** 3660,3667 **** + /* We don't support extra suffix characters after %O. */ + if (*p == '.' || ISALPHA ((unsigned char)*p)) + abort (); +! suffix = OBJECT_SUFFIX; +! suffix_length = strlen (OBJECT_SUFFIX); + } + else + { +--- 3981,3988 ---- + /* We don't support extra suffix characters after %O. */ + if (*p == '.' || ISALPHA ((unsigned char)*p)) + abort (); +! suffix = TARGET_OBJECT_SUFFIX; +! suffix_length = strlen (TARGET_OBJECT_SUFFIX); + } + else + { +*************** do_spec_1 (spec, inswitch, soft_matched_ +*** 3756,3762 **** + } + + case 'O': +! obstack_grow (&obstack, OBJECT_SUFFIX, strlen (OBJECT_SUFFIX)); + arg_going = 1; + break; + +--- 4077,4083 ---- + } + + case 'O': +! obstack_grow (&obstack, TARGET_OBJECT_SUFFIX, strlen (TARGET_OBJECT_SUFFIX)); + arg_going = 1; + break; + +diff -c3rpN gcc-2.95.3.orig/gcc/gcc.texi gcc-2.95.4/gcc/gcc.texi +*** gcc-2.95.3.orig/gcc/gcc.texi Thu Jan 25 14:03:16 2001 +--- gcc-2.95.4/gcc/gcc.texi Wed Jun 6 01:37:58 2001 +*************** character constant specifying that chara +*** 3847,3863 **** + names, the character you specify will be used. GCC will test for + both slash and the character you specify when parsing filenames. + +! @findex OBJECT_SUFFIX +! @item OBJECT_SUFFIX + Define this macro to be a C string representing the suffix for object +! files on your machine. If you do not define this macro, GCC will use +! @samp{.o} as the suffix for object files. + +! @findex EXECUTABLE_SUFFIX +! @item EXECUTABLE_SUFFIX +! Define this macro to be a C string representing the suffix for executable +! files on your machine. If you do not define this macro, GCC will use +! the null string as the suffix for object files. + + @findex COLLECT_EXPORT_LIST + @item COLLECT_EXPORT_LIST +--- 3847,3864 ---- + names, the character you specify will be used. GCC will test for + both slash and the character you specify when parsing filenames. + +! @findex HOST_OBJECT_SUFFIX +! @item HOST_OBJECT_SUFFIX + Define this macro to be a C string representing the suffix for object +! files on your host machine (@file{xm-@var{machine}.h}). If you do not define this +! macro, GCC will use @samp{.o} as the suffix for object files. + +! @findex HOST_EXECUTABLE_SUFFIX +! @item HOST_EXECUTABLE_SUFFIX +! Define this macro to be a C string representing the suffix for +! executable files on your host machine (@file{xm-@var{machine}.h}). If you do not +! define this macro, GCC will use the null string as the suffix for +! executable files. + + @findex COLLECT_EXPORT_LIST + @item COLLECT_EXPORT_LIST +diff -c3rpN gcc-2.95.3.orig/gcc/invoke.texi gcc-2.95.4/gcc/invoke.texi +*** gcc-2.95.3.orig/gcc/invoke.texi Thu Jan 25 14:03:17 2001 +--- gcc-2.95.4/gcc/invoke.texi Wed Jun 6 01:38:10 2001 +*************** A @code{switch} statement has an operand +*** 1694,1699 **** +--- 1694,1705 ---- + @item + A non-@code{static} function declaration follows a @code{static} one. + This construct is not accepted by some traditional C compilers. ++ ++ @item ++ The ANSI type of an integer constant has a different width or signedness ++ from its traditional type. This warning is only issued if the base of ++ the constant is ten. I.e. hexadecimal or octal values, which typically ++ represent bit patterns, are not warned about. + @end itemize + + @item -Wundef +diff -c3rpN gcc-2.95.3.orig/gcc/java/lang.c gcc-2.95.4/gcc/java/lang.c +*** gcc-2.95.3.orig/gcc/java/lang.c Fri May 14 14:44:09 1999 +--- gcc-2.95.4/gcc/java/lang.c Wed Jun 6 01:38:13 2001 +*************** +*** 1,5 **** + /* Java(TM) language-specific utility routines. +! Copyright (C) 1996, 97-98, 1999 Free Software Foundation, Inc. + + This file is part of GNU CC. + +--- 1,5 ---- + /* Java(TM) language-specific utility routines. +! Copyright (C) 1996, 97-98, 1999, 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + +*************** The Free Software Foundation is independ +*** 34,41 **** + #include "flags.h" + #include "xref.h" + +! #ifndef OBJECT_SUFFIX +! # define OBJECT_SUFFIX ".o" + #endif + + /* Table indexed by tree code giving a string containing a character +--- 34,41 ---- + #include "flags.h" + #include "xref.h" + +! #ifndef TARGET_OBJECT_SUFFIX +! # define TARGET_OBJECT_SUFFIX ".o" + #endif + + /* Table indexed by tree code giving a string containing a character +*************** init_parse (filename) +*** 278,284 **** + else + { + char *buf = (char *) xmalloc (dot - filename + +! 3 + sizeof (OBJECT_SUFFIX)); + strncpy (buf, filename, dot - filename); + + /* If emitting class files, we might have multiple +--- 278,284 ---- + else + { + char *buf = (char *) xmalloc (dot - filename + +! 3 + sizeof (TARGET_OBJECT_SUFFIX)); + strncpy (buf, filename, dot - filename); + + /* If emitting class files, we might have multiple +*************** init_parse (filename) +*** 289,295 **** + jcf_dependency_set_target (NULL); + else + { +! strcpy (buf + (dot - filename), OBJECT_SUFFIX); + jcf_dependency_set_target (buf); + } + +--- 289,295 ---- + jcf_dependency_set_target (NULL); + else + { +! strcpy (buf + (dot - filename), TARGET_OBJECT_SUFFIX); + jcf_dependency_set_target (buf); + } + +diff -c3rpN gcc-2.95.3.orig/gcc/jump.c gcc-2.95.4/gcc/jump.c +*** gcc-2.95.3.orig/gcc/jump.c Thu Oct 21 07:24:03 1999 +--- gcc-2.95.4/gcc/jump.c Wed Jun 6 01:38:15 2001 +*************** jump_optimize_1 (f, cross_jump, noop_mov +*** 200,207 **** + if (flag_exceptions && cross_jump) + init_insn_eh_region (f, max_uid); + +- delete_barrier_successors (f); +- + /* Leave some extra room for labels and duplicate exit test insns + we make. */ + max_jump_chain = max_uid * 14 / 10; +--- 200,205 ---- +*************** jump_optimize_1 (f, cross_jump, noop_mov +*** 224,229 **** +--- 222,229 ---- + for (insn = exception_handler_labels; insn; insn = XEXP (insn, 1)) + LABEL_NUSES (XEXP (insn, 0))++; + ++ delete_barrier_successors (f); ++ + /* Quit now if we just wanted to rebuild the JUMP_LABEL and REG_LABEL + notes and recompute LABEL_NUSES. */ + if (mark_labels_only) +*************** delete_barrier_successors (f) +*** 2139,2145 **** + insn = NEXT_INSN (insn); + while (insn != 0 && GET_CODE (insn) != CODE_LABEL) + { +! if (GET_CODE (insn) == NOTE + && NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_END) + insn = NEXT_INSN (insn); + else +--- 2139,2162 ---- + insn = NEXT_INSN (insn); + while (insn != 0 && GET_CODE (insn) != CODE_LABEL) + { +! if (GET_CODE (insn) == JUMP_INSN) +! { +! /* Detect when we're deleting a tablejump; get rid of +! the jump table as well. */ +! rtx next1 = next_nonnote_insn (insn); +! rtx next2 = next1 ? next_nonnote_insn (next1) : 0; +! if (next2 && GET_CODE (next1) == CODE_LABEL +! && GET_CODE (next2) == JUMP_INSN +! && (GET_CODE (PATTERN (next2)) == ADDR_VEC +! || GET_CODE (PATTERN (next2)) == ADDR_DIFF_VEC)) +! { +! delete_insn (insn); +! insn = next2; +! } +! else +! insn = delete_insn (insn); +! } +! else if (GET_CODE (insn) == NOTE + && NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_END) + insn = NEXT_INSN (insn); + else +diff -c3rpN gcc-2.95.3.orig/gcc/just-fixinc gcc-2.95.4/gcc/just-fixinc +*** gcc-2.95.3.orig/gcc/just-fixinc Wed Dec 16 20:57:01 1998 +--- gcc-2.95.4/gcc/just-fixinc Wed Jun 6 01:38:15 2001 +*************** +*** 1,5 **** + #!/bin/sh +! # $Id: just-fixinc,v 1.2 1998/04/03 16:35:58 law Exp $ + # This script exists for use after installing + # the GCC binaries from a distribution tape/CD-ROM. + # Use it *after* copying the directory of binaries +--- 1,5 ---- + #!/bin/sh +! # $Id: just-fixinc,v 1.3 1998/12/16 20:57:01 law Exp $ + # This script exists for use after installing + # the GCC binaries from a distribution tape/CD-ROM. + # Use it *after* copying the directory of binaries +diff -c3rpN gcc-2.95.3.orig/gcc/libgcc2.c gcc-2.95.4/gcc/libgcc2.c +*** gcc-2.95.3.orig/gcc/libgcc2.c Fri Jun 11 04:11:43 1999 +--- gcc-2.95.4/gcc/libgcc2.c Wed Jun 6 01:38:16 2001 +*************** Boston, MA 02111-1307, USA. */ +*** 63,68 **** +--- 63,71 ---- + #if defined(CROSS_COMPILE) && !defined(inhibit_libc) + #define inhibit_libc + #endif ++ #if defined (__vxworks) ++ #undef inhibit_libc ++ #endif + + /* Permit the tm.h file to select the endianness to use just for this + file. This is used when the endianness is determined when the +diff -c3rpN gcc-2.95.3.orig/gcc/loop.c gcc-2.95.4/gcc/loop.c +*** gcc-2.95.3.orig/gcc/loop.c Thu Jan 25 14:03:18 2001 +--- gcc-2.95.4/gcc/loop.c Wed Jun 6 01:38:16 2001 +*************** combine_movables (movables, nregs) +*** 1481,1490 **** + width as M1. The check for integer is redundant, but + safe, since the only case of differing destination + modes with equal sources is when both sources are +! VOIDmode, i.e., CONST_INT. */ + (GET_MODE (m->set_dest) == GET_MODE (m1->set_dest) + || (GET_MODE_CLASS (GET_MODE (m->set_dest)) == MODE_INT + && GET_MODE_CLASS (GET_MODE (m1->set_dest)) == MODE_INT + && (GET_MODE_BITSIZE (GET_MODE (m->set_dest)) + >= GET_MODE_BITSIZE (GET_MODE (m1->set_dest))))) + /* See if the source of M1 says it matches M. */ +--- 1481,1496 ---- + width as M1. The check for integer is redundant, but + safe, since the only case of differing destination + modes with equal sources is when both sources are +! VOIDmode, i.e., CONST_INT. +! +! For 2.95, don't do this if the mode of M1 is Pmode. +! This prevents us from substituting SUBREGs for REGs +! in memory accesses; not all targets are prepared to +! handle this properly. */ + (GET_MODE (m->set_dest) == GET_MODE (m1->set_dest) + || (GET_MODE_CLASS (GET_MODE (m->set_dest)) == MODE_INT + && GET_MODE_CLASS (GET_MODE (m1->set_dest)) == MODE_INT ++ && GET_MODE (m1->set_dest) != Pmode + && (GET_MODE_BITSIZE (GET_MODE (m->set_dest)) + >= GET_MODE_BITSIZE (GET_MODE (m1->set_dest))))) + /* See if the source of M1 says it matches M. */ +diff -c3rpN gcc-2.95.3.orig/gcc/mkinstalldirs gcc-2.95.4/gcc/mkinstalldirs +*** gcc-2.95.3.orig/gcc/mkinstalldirs Thu Dec 17 06:43:04 1998 +--- gcc-2.95.4/gcc/mkinstalldirs Wed Jun 6 01:38:18 2001 +*************** +*** 4,10 **** + # Created: 1993-05-16 + # Public domain + +! # $Id: mkinstalldirs,v 1.1 1998/05/19 07:09:56 drepper Exp $ + + errstatus=0 + +--- 4,10 ---- + # Created: 1993-05-16 + # Public domain + +! # $Id: mkinstalldirs,v 1.1 1998/12/17 06:43:04 law Exp $ + + errstatus=0 + +diff -c3rpN gcc-2.95.3.orig/gcc/objc/objc-parse.c gcc-2.95.4/gcc/objc/objc-parse.c +*** gcc-2.95.3.orig/gcc/objc/objc-parse.c Fri Mar 16 14:13:48 2001 +--- gcc-2.95.4/gcc/objc/objc-parse.c Wed Jun 6 01:38:19 2001 +*************** +*** 1,69 **** + + /* A Bison parser, made from objc-parse.y +! by GNU Bison version 1.25 +! */ + + #define YYBISON 1 /* Identify Bison output. */ + +! #define IDENTIFIER 258 +! #define TYPENAME 259 +! #define SCSPEC 260 +! #define TYPESPEC 261 +! #define TYPE_QUAL 262 +! #define CONSTANT 263 +! #define STRING 264 +! #define ELLIPSIS 265 +! #define SIZEOF 266 +! #define ENUM 267 +! #define STRUCT 268 +! #define UNION 269 +! #define IF 270 +! #define ELSE 271 +! #define WHILE 272 +! #define DO 273 +! #define FOR 274 +! #define SWITCH 275 +! #define CASE 276 +! #define DEFAULT 277 +! #define BREAK 278 +! #define CONTINUE 279 +! #define RETURN 280 +! #define GOTO 281 +! #define ASM_KEYWORD 282 +! #define TYPEOF 283 +! #define ALIGNOF 284 +! #define ATTRIBUTE 285 +! #define EXTENSION 286 +! #define LABEL 287 +! #define REALPART 288 +! #define IMAGPART 289 +! #define ASSIGN 290 +! #define OROR 291 +! #define ANDAND 292 +! #define EQCOMPARE 293 +! #define ARITHCOMPARE 294 +! #define LSHIFT 295 +! #define RSHIFT 296 +! #define UNARY 297 +! #define PLUSPLUS 298 +! #define MINUSMINUS 299 +! #define HYPERUNARY 300 +! #define POINTSAT 301 +! #define INTERFACE 302 +! #define IMPLEMENTATION 303 +! #define END 304 +! #define SELECTOR 305 +! #define DEFS 306 +! #define ENCODE 307 +! #define CLASSNAME 308 +! #define PUBLIC 309 +! #define PRIVATE 310 +! #define PROTECTED 311 +! #define PROTOCOL 312 +! #define OBJECTNAME 313 +! #define CLASS 314 +! #define ALIAS 315 +! #define OBJC_STRING 316 + + #line 33 "objc-parse.y" + +--- 1,68 ---- + + /* A Bison parser, made from objc-parse.y +! by GNU Bison version 1.28 */ + + #define YYBISON 1 /* Identify Bison output. */ + +! #define IDENTIFIER 257 +! #define TYPENAME 258 +! #define SCSPEC 259 +! #define TYPESPEC 260 +! #define TYPE_QUAL 261 +! #define CONSTANT 262 +! #define STRING 263 +! #define ELLIPSIS 264 +! #define SIZEOF 265 +! #define ENUM 266 +! #define STRUCT 267 +! #define UNION 268 +! #define IF 269 +! #define ELSE 270 +! #define WHILE 271 +! #define DO 272 +! #define FOR 273 +! #define SWITCH 274 +! #define CASE 275 +! #define DEFAULT 276 +! #define BREAK 277 +! #define CONTINUE 278 +! #define RETURN 279 +! #define GOTO 280 +! #define ASM_KEYWORD 281 +! #define TYPEOF 282 +! #define ALIGNOF 283 +! #define ATTRIBUTE 284 +! #define EXTENSION 285 +! #define LABEL 286 +! #define REALPART 287 +! #define IMAGPART 288 +! #define ASSIGN 289 +! #define OROR 290 +! #define ANDAND 291 +! #define EQCOMPARE 292 +! #define ARITHCOMPARE 293 +! #define LSHIFT 294 +! #define RSHIFT 295 +! #define UNARY 296 +! #define PLUSPLUS 297 +! #define MINUSMINUS 298 +! #define HYPERUNARY 299 +! #define POINTSAT 300 +! #define INTERFACE 301 +! #define IMPLEMENTATION 302 +! #define END 303 +! #define SELECTOR 304 +! #define DEFS 305 +! #define ENCODE 306 +! #define CLASSNAME 307 +! #define PUBLIC 308 +! #define PRIVATE 309 +! #define PROTECTED 310 +! #define PROTOCOL 311 +! #define OBJECTNAME 312 +! #define CLASS 313 +! #define ALIAS 314 +! #define OBJC_STRING 315 + + #line 33 "objc-parse.y" + +*************** static tree declspec_stack; +*** 120,125 **** +--- 119,135 ---- + /* 1 if we explained undeclared var errors. */ + static int undeclared_variable_notice; + ++ /* For __extension__, save/restore the warning flags which are ++ controlled by __extension__. */ ++ #define SAVE_WARN_FLAGS() \ ++ build_int_2 (pedantic | (warn_pointer_arith << 1), 0) ++ #define RESTORE_WARN_FLAGS(tval) \ ++ do { \ ++ int val = TREE_INT_CST_LOW (tval); \ ++ pedantic = val & 1; \ ++ warn_pointer_arith = (val >> 1) & 1; \ ++ } while (0) ++ + /* Objective-C specific information */ + + tree objc_interface_context; +*************** extern void yyprint PROTO ((FILE *, in +*** 150,156 **** + #define YYFLAG -32768 + #define YYNTBASE 84 + +! #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 311) + + static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +--- 160,166 ---- + #define YYFLAG -32768 + #define YYNTBASE 84 + +! #define YYTRANSLATE(x) ((unsigned)(x) <= 315 ? yytranslate[x] : 311) + + static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +*************** static const char yytranslate[] = { +*** 178,190 **** + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +! 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, +! 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, +! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, +! 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, +! 39, 40, 44, 45, 46, 47, 53, 54, 55, 56, +! 57, 61, 62, 63, 64, 65, 66, 67, 68, 69, +! 70, 71, 72, 73, 74, 75 + }; + + #if YYDEBUG != 0 +--- 188,200 ---- + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +! 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, +! 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, +! 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, +! 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, +! 40, 44, 45, 46, 47, 53, 54, 55, 56, 57, +! 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +! 71, 72, 73, 74, 75 + }; + + #if YYDEBUG != 0 +*************** static const short yyrhs[] = { -1, +*** 431,493 **** + + #if YYDEBUG != 0 + static const short yyrline[] = { 0, +! 233, 238, 252, 254, 254, 255, 257, 259, 260, 261, +! 269, 273, 284, 289, 294, 296, 298, 299, 300, 305, +! 312, 314, 319, 324, 330, 332, 337, 342, 348, 350, +! 355, 362, 364, 365, 366, 369, 371, 373, 375, 377, +! 379, 381, 385, 389, 392, 395, 398, 402, 404, 407, +! 410, 414, 442, 448, 451, 454, 457, 459, 463, 467, +! 471, 473, 476, 480, 507, 509, 511, 513, 515, 517, +! 519, 521, 523, 525, 527, 529, 531, 533, 537, 539, +! 543, 545, 548, 552, 554, 561, 564, 572, 583, 743, +! 744, 746, 752, 754, 768, 791, 793, 795, 807, 821, +! 823, 825, 827, 829, 831, 833, 838, 840, 846, 848, +! 852, 854, 855, 865, 870, 872, 873, 874, 881, 887, +! 892, 895, 903, 908, 910, 911, 912, 919, 930, 934, +! 940, 945, 950, 955, 957, 959, 968, 971, 975, 977, +! 979, 984, 988, 991, 995, 998, 1000, 1012, 1015, 1017, +! 1019, 1023, 1027, 1029, 1032, 1045, 1048, 1052, 1054, 1062, +! 1063, 1064, 1068, 1070, 1075, 1077, 1079, 1085, 1086, 1087, +! 1090, 1092, 1095, 1097, 1100, 1103, 1109, 1116, 1118, 1125, +! 1132, 1135, 1142, 1145, 1149, 1152, 1156, 1161, 1164, 1168, +! 1171, 1173, 1175, 1177, 1184, 1186, 1187, 1188, 1193, 1195, +! 1200, 1208, 1213, 1217, 1220, 1222, 1227, 1229, 1230, 1233, +! 1233, 1236, 1239, 1241, 1243, 1246, 1248, 1251, 1259, 1270, +! 1278, 1282, 1293, 1301, 1308, 1310, 1315, 1318, 1323, 1325, +! 1327, 1334, 1336, 1337, 1345, 1351, 1353, 1355, 1362, 1364, +! 1370, 1376, 1378, 1380, 1382, 1389, 1391, 1394, 1397, 1401, +! 1404, 1408, 1411, 1415, 1420, 1422, 1426, 1428, 1430, 1432, +! 1436, 1438, 1441, 1444, 1447, 1450, 1454, 1456, 1459, 1461, +! 1466, 1469, 1474, 1476, 1478, 1482, 1506, 1513, 1518, 1524, +! 1529, 1531, 1536, 1538, 1542, 1546, 1550, 1560, 1562, 1567, +! 1572, 1575, 1579, 1582, 1586, 1589, 1592, 1595, 1599, 1602, +! 1606, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1628, +! 1636, 1644, 1646, 1648, 1652, 1654, 1657, 1660, 1673, 1675, +! 1680, 1682, 1685, 1699, 1702, 1705, 1707, 1709, 1717, 1725, +! 1736, 1741, 1744, 1758, 1767, 1771, 1775, 1779, 1785, 1789, +! 1794, 1797, 1802, 1805, 1806, 1823, 1828, 1831, 1843, 1845, +! 1855, 1865, 1866, 1874, 1877, 1889, 1893, 1910, 1920, 1929, +! 1934, 1939, 1944, 1948, 1952, 1963, 1970, 1977, 1984, 1995, +! 2001, 2004, 2009, 2032, 2066, 2097, 2128, 2143, 2157, 2161, +! 2165, 2168, 2173, 2175, 2178, 2180, 2184, 2189, 2192, 2198, +! 2203, 2208, 2210, 2219, 2220, 2226, 2228, 2238, 2240, 2244, +! 2247, 2253, 2263, 2272, 2281, 2291, 2305, 2310, 2315, 2317, +! 2326, 2329, 2334, 2337, 2341, 2349, 2351, 2352, 2353, 2354, +! 2355, 2369, 2372, 2376, 2382, 2388, 2395, 2400, 2406, 2413, +! 2419, 2425, 2430, 2436, 2443, 2449, 2455, 2461, 2469, 2475, +! 2481, 2489, 2496, 2502, 2511, 2518, 2526, 2531, 2534, 2544, +! 2546, 2549, 2551, 2552, 2555, 2560, 2561, 2578, 2585, 2591, +! 2595, 2598, 2599, 2602, 2610, 2616, 2625, 2635, 2642, 2646, +! 2651, 2660, 2667, 2671, 2681, 2683, 2684, 2686, 2688, 2689, +! 2690, 2691, 2693, 2695, 2698, 2706, 2713, 2713, 2720, 2726, +! 2728, 2734, 2739, 2744, 2753, 2755, 2761, 2763, 2766, 2768, +! 2769, 2770, 2773, 2779, 2781, 2785, 2788, 2795, 2801, 2806, +! 2813, 2818, 2823, 2828, 2835, 2839, 2842, 2848, 2850, 2851, +! 2852, 2855, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, +! 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, +! 2875, 2875, 2878, 2884, 2889, 2894, 2900, 2902, 2905, 2907, +! 2914, 2926, 2931, 2937, 2939, 2945, 2949, 2950, 2956, 2958, +! 2961, 2963, 2969, 2974, 2980, 2987, 2996 + }; + #endif + +--- 441,503 ---- + + #if YYDEBUG != 0 + static const short yyrline[] = { 0, +! 244, 249, 263, 265, 265, 266, 268, 270, 271, 272, +! 280, 284, 295, 300, 305, 307, 309, 310, 311, 316, +! 323, 325, 330, 335, 341, 343, 348, 353, 359, 361, +! 366, 373, 375, 376, 377, 380, 382, 384, 386, 388, +! 390, 392, 396, 400, 403, 406, 409, 413, 415, 418, +! 421, 425, 453, 459, 462, 465, 468, 470, 474, 478, +! 482, 484, 487, 491, 518, 520, 522, 524, 526, 528, +! 530, 532, 534, 536, 538, 540, 542, 544, 548, 550, +! 554, 556, 559, 563, 565, 572, 575, 583, 594, 754, +! 755, 757, 763, 765, 779, 802, 804, 806, 818, 832, +! 834, 836, 838, 840, 842, 844, 849, 851, 857, 859, +! 863, 865, 866, 876, 881, 883, 884, 885, 892, 898, +! 903, 906, 914, 919, 921, 922, 923, 930, 941, 945, +! 951, 956, 961, 966, 968, 970, 979, 982, 986, 988, +! 990, 995, 999, 1002, 1006, 1009, 1011, 1023, 1026, 1028, +! 1030, 1034, 1038, 1040, 1043, 1056, 1059, 1063, 1065, 1073, +! 1074, 1075, 1079, 1081, 1086, 1088, 1090, 1096, 1097, 1098, +! 1101, 1103, 1106, 1108, 1111, 1114, 1120, 1127, 1129, 1136, +! 1143, 1146, 1153, 1156, 1160, 1163, 1167, 1172, 1175, 1179, +! 1182, 1184, 1186, 1188, 1195, 1197, 1198, 1199, 1204, 1206, +! 1211, 1219, 1224, 1228, 1231, 1233, 1238, 1240, 1241, 1244, +! 1244, 1247, 1250, 1252, 1254, 1257, 1259, 1262, 1270, 1281, +! 1289, 1293, 1304, 1312, 1319, 1321, 1326, 1329, 1334, 1336, +! 1338, 1345, 1347, 1348, 1356, 1362, 1364, 1366, 1373, 1375, +! 1381, 1387, 1389, 1391, 1393, 1400, 1402, 1405, 1408, 1412, +! 1415, 1419, 1422, 1426, 1431, 1433, 1437, 1439, 1441, 1443, +! 1447, 1449, 1452, 1455, 1458, 1461, 1465, 1467, 1470, 1472, +! 1477, 1480, 1485, 1487, 1489, 1493, 1517, 1524, 1529, 1535, +! 1540, 1542, 1547, 1549, 1553, 1557, 1561, 1571, 1573, 1578, +! 1583, 1586, 1590, 1593, 1597, 1600, 1603, 1606, 1610, 1613, +! 1617, 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1639, +! 1647, 1655, 1657, 1659, 1663, 1665, 1668, 1671, 1684, 1686, +! 1691, 1693, 1696, 1710, 1713, 1716, 1718, 1720, 1728, 1736, +! 1747, 1752, 1755, 1769, 1778, 1782, 1786, 1790, 1796, 1800, +! 1805, 1808, 1813, 1816, 1817, 1834, 1839, 1842, 1854, 1856, +! 1866, 1876, 1877, 1885, 1888, 1900, 1904, 1921, 1931, 1940, +! 1945, 1950, 1955, 1959, 1963, 1974, 1981, 1988, 1995, 2006, +! 2012, 2015, 2020, 2043, 2077, 2108, 2139, 2154, 2168, 2172, +! 2176, 2179, 2184, 2186, 2189, 2191, 2195, 2200, 2203, 2209, +! 2214, 2219, 2221, 2230, 2231, 2237, 2239, 2249, 2251, 2255, +! 2258, 2264, 2274, 2283, 2292, 2302, 2316, 2321, 2326, 2328, +! 2337, 2340, 2345, 2348, 2352, 2361, 2363, 2364, 2365, 2366, +! 2367, 2381, 2384, 2388, 2394, 2400, 2407, 2412, 2418, 2425, +! 2431, 2437, 2442, 2448, 2455, 2461, 2467, 2473, 2481, 2487, +! 2493, 2501, 2508, 2514, 2523, 2530, 2538, 2543, 2546, 2556, +! 2558, 2561, 2563, 2564, 2567, 2572, 2573, 2590, 2597, 2603, +! 2607, 2610, 2611, 2614, 2622, 2628, 2637, 2647, 2654, 2658, +! 2663, 2672, 2679, 2683, 2693, 2695, 2696, 2698, 2700, 2701, +! 2702, 2703, 2705, 2707, 2710, 2718, 2725, 2725, 2732, 2738, +! 2740, 2746, 2751, 2756, 2765, 2767, 2773, 2775, 2778, 2780, +! 2781, 2782, 2785, 2791, 2793, 2797, 2800, 2807, 2813, 2818, +! 2825, 2830, 2835, 2840, 2847, 2851, 2854, 2860, 2862, 2863, +! 2864, 2867, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, +! 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, +! 2887, 2887, 2890, 2896, 2901, 2906, 2912, 2914, 2917, 2919, +! 2926, 2938, 2943, 2949, 2951, 2957, 2961, 2962, 2968, 2970, +! 2973, 2975, 2981, 2986, 2992, 2999, 3008 + }; + #endif + +*************** static const short yycheck[] = { 56, +*** 1675,1680 **** +--- 1685,1691 ---- + }; + /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ + #line 3 "/usr/lib/bison.simple" ++ /* This file comes from bison-1.28. */ + + /* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. +*************** static const short yycheck[] = { 56, +*** 1691,1736 **** + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + + /* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +! #ifndef alloca + #ifdef __GNUC__ + #define alloca __builtin_alloca + #else /* not GNU C. */ +! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) + #include + #else /* not sparc */ +! #if defined (MSDOS) && !defined (__TURBOC__) + #include + #else /* not MSDOS, or __TURBOC__ */ + #if defined(_AIX) +! #include + #pragma alloca +! #else /* not MSDOS, __TURBOC__, or _AIX */ +! #ifdef __hpux +! #ifdef __cplusplus +! extern "C" { +! void *alloca (unsigned int); +! }; +! #else /* not __cplusplus */ +! void *alloca (); +! #endif /* not __cplusplus */ + #endif /* __hpux */ + #endif /* not _AIX */ + #endif /* not MSDOS, or __TURBOC__ */ +! #endif /* not sparc. */ +! #endif /* not GNU C. */ +! #endif /* alloca not defined. */ + +! /* This is the parser code that is written into each bison parser +! when the %semantic_parser declaration is not specified in the grammar. +! It was written by Richard Stallman by simplifying the hairy parser +! used when %semantic_parser is specified. */ + + /* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action +--- 1702,1767 ---- + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +! Foundation, Inc., 59 Temple Place - Suite 330, +! Boston, MA 02111-1307, USA. */ + + /* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +! /* This is the parser code that is written into each bison parser +! when the %semantic_parser declaration is not specified in the grammar. +! It was written by Richard Stallman by simplifying the hairy parser +! used when %semantic_parser is specified. */ +! +! #ifndef YYSTACK_USE_ALLOCA +! #ifdef alloca +! #define YYSTACK_USE_ALLOCA +! #else /* alloca not defined */ + #ifdef __GNUC__ ++ #define YYSTACK_USE_ALLOCA + #define alloca __builtin_alloca + #else /* not GNU C. */ +! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +! #define YYSTACK_USE_ALLOCA + #include + #else /* not sparc */ +! /* We think this test detects Watcom and Microsoft C. */ +! /* This used to test MSDOS, but that is a bad idea +! since that symbol is in the user namespace. */ +! #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +! #if 0 /* No need for malloc.h, which pollutes the namespace; +! instead, just don't use alloca. */ + #include ++ #endif + #else /* not MSDOS, or __TURBOC__ */ + #if defined(_AIX) +! /* I don't know what this was needed for, but it pollutes the namespace. +! So I turned it off. rms, 2 May 1997. */ +! /* #include */ + #pragma alloca +! #define YYSTACK_USE_ALLOCA +! #else /* not MSDOS, or __TURBOC__, or _AIX */ +! #if 0 +! #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, +! and on HPUX 10. Eventually we can turn this on. */ +! #define YYSTACK_USE_ALLOCA +! #define alloca __builtin_alloca + #endif /* __hpux */ ++ #endif + #endif /* not _AIX */ + #endif /* not MSDOS, or __TURBOC__ */ +! #endif /* not sparc */ +! #endif /* not GNU C */ +! #endif /* alloca not defined */ +! #endif /* YYSTACK_USE_ALLOCA not defined */ + +! #ifdef YYSTACK_USE_ALLOCA +! #define YYSTACK_ALLOC alloca +! #else +! #define YYSTACK_ALLOC malloc +! #endif + + /* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action +*************** void *alloca (); +*** 1740,1747 **** + #define yyclearin (yychar = YYEMPTY) + #define YYEMPTY -2 + #define YYEOF 0 +! #define YYACCEPT return(0) +! #define YYABORT return(1) + #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. + This remains here temporarily to ease the +--- 1771,1778 ---- + #define yyclearin (yychar = YYEMPTY) + #define YYEMPTY -2 + #define YYEOF 0 +! #define YYACCEPT goto yyacceptlab +! #define YYABORT goto yyabortlab + #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. + This remains here temporarily to ease the +*************** int yydebug; /* nonzero means print p +*** 1822,1833 **** + #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_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) + #else /* not GNU C or C++ */ +--- 1853,1864 ---- + #ifndef YYMAXDEPTH + #define YYMAXDEPTH 10000 + #endif + ++ /* Define __yy_memcpy. Note that the size argument ++ should be passed with type unsigned int, because that is what the non-GCC ++ definitions require. With GCC, __builtin_memcpy takes an arg ++ of type size_t, but it can handle unsigned int. */ ++ + #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ + #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) + #else /* not GNU C or C++ */ +*************** static void +*** 1839,1845 **** + __yy_memcpy (to, from, count) + char *to; + char *from; +! int count; + { + register char *f = from; + register char *t = to; +--- 1870,1876 ---- + __yy_memcpy (to, from, count) + char *to; + char *from; +! unsigned int count; + { + register char *f = from; + register char *t = to; +*************** __yy_memcpy (to, from, count) +*** 1854,1863 **** + /* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ + static void +! __yy_memcpy (char *to, char *from, int count) + { +- register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) +--- 1885,1894 ---- + /* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ + static void +! __yy_memcpy (char *to, char *from, unsigned int count) + { + register char *t = to; ++ register char *f = from; + register int i = count; + + while (i-- > 0) +*************** __yy_memcpy (char *to, char *from, int c +*** 1867,1873 **** + #endif + #endif + +! #line 196 "/usr/lib/bison.simple" + + /* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. +--- 1898,1904 ---- + #endif + #endif + +! #line 217 "/usr/lib/bison.simple" + + /* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. +*************** __yy_memcpy (char *to, char *from, int c +*** 1888,1893 **** +--- 1919,1933 ---- + #define YYPARSE_PARAM_DECL + #endif /* not YYPARSE_PARAM */ + ++ /* Prevent warning if -Wstrict-prototypes. */ ++ #ifdef __GNUC__ ++ #ifdef YYPARSE_PARAM ++ int yyparse (void *); ++ #else ++ int yyparse (void); ++ #endif ++ #endif ++ + int + yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +*************** yyparse(YYPARSE_PARAM_ARG) +*** 1916,1921 **** +--- 1956,1962 ---- + #endif + + int yystacksize = YYINITDEPTH; ++ int yyfree_stacks = 0; + + #ifdef YYPURE + int yychar; +*************** yynewstate: +*** 2000,2017 **** + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +! yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); +! __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); +! yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); +! __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); + #ifdef YYLSP_NEEDED +! yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); +! __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); + #endif + #endif /* no yyoverflow */ + +--- 2041,2072 ---- + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); ++ if (yyfree_stacks) ++ { ++ free (yyss); ++ free (yyvs); ++ #ifdef YYLSP_NEEDED ++ free (yyls); ++ #endif ++ } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +! #ifndef YYSTACK_USE_ALLOCA +! yyfree_stacks = 1; +! #endif +! yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); +! __yy_memcpy ((char *)yyss, (char *)yyss1, +! size * (unsigned int) sizeof (*yyssp)); +! yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); +! __yy_memcpy ((char *)yyvs, (char *)yyvs1, +! size * (unsigned int) sizeof (*yyvsp)); + #ifdef YYLSP_NEEDED +! yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); +! __yy_memcpy ((char *)yyls, (char *)yyls1, +! size * (unsigned int) sizeof (*yylsp)); + #endif + #endif /* no yyoverflow */ + +*************** yyreduce: +*** 2172,2185 **** + switch (yyn) { + + case 1: +! #line 234 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids an empty source file"); + finish_file (); + ; + break;} + case 2: +! #line 239 "objc-parse.y" + { + /* In case there were missing closebraces, + get us back to the global binding level. */ +--- 2227,2240 ---- + switch (yyn) { + + case 1: +! #line 245 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids an empty source file"); + finish_file (); + ; + break;} + case 2: +! #line 250 "objc-parse.y" + { + /* In case there were missing closebraces, + get us back to the global binding level. */ +*************** case 2: +*** 2189,2203 **** + ; + break;} + case 3: +! #line 253 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 5: +! #line 254 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 10: +! #line 262 "objc-parse.y" + { STRIP_NOPS (yyvsp[-2].ttype); + if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) +--- 2244,2258 ---- + ; + break;} + case 3: +! #line 264 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 5: +! #line 265 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 10: +! #line 273 "objc-parse.y" + { STRIP_NOPS (yyvsp[-2].ttype); + if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) +*************** case 10: +*** 2207,2217 **** + error ("argument of `asm' is not a constant string"); ; + break;} + case 11: +! #line 270 "objc-parse.y" +! { pedantic = yyvsp[-1].itype; ; + break;} + case 12: +! #line 275 "objc-parse.y" + { if (pedantic) + error ("ANSI C forbids data definition with no type or storage class"); + else if (!flag_traditional) +--- 2262,2272 ---- + error ("argument of `asm' is not a constant string"); ; + break;} + case 11: +! #line 281 "objc-parse.y" +! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 12: +! #line 286 "objc-parse.y" + { if (pedantic) + error ("ANSI C forbids data definition with no type or storage class"); + else if (!flag_traditional) +*************** case 12: +*** 2223,2267 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 13: +! #line 285 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 14: +! #line 290 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 15: +! #line 295 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 16: +! #line 297 "objc-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 19: +! #line 301 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; + break;} + case 20: +! #line 307 "objc-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 21: +! #line 312 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 22: +! #line 314 "objc-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 2278,2322 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 13: +! #line 296 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 14: +! #line 301 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 15: +! #line 306 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 16: +! #line 308 "objc-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 19: +! #line 312 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; + break;} + case 20: +! #line 318 "objc-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 21: +! #line 323 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 22: +! #line 325 "objc-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 22: +*** 2269,2293 **** + resume_momentary (yyvsp[-5].itype); ; + break;} + case 23: +! #line 320 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 24: +! #line 325 "objc-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 25: +! #line 330 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 26: +! #line 332 "objc-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 2324,2348 ---- + resume_momentary (yyvsp[-5].itype); ; + break;} + case 23: +! #line 331 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 24: +! #line 336 "objc-parse.y" + { if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 25: +! #line 341 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 26: +! #line 343 "objc-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 26: +*** 2295,2319 **** + resume_momentary (yyvsp[-5].itype); ; + break;} + case 27: +! #line 338 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 28: +! #line 343 "objc-parse.y" + { if (! start_function (NULL_TREE, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 29: +! #line 348 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 30: +! #line 350 "objc-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 2350,2374 ---- + resume_momentary (yyvsp[-5].itype); ; + break;} + case 27: +! #line 349 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 28: +! #line 354 "objc-parse.y" + { if (! start_function (NULL_TREE, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 0)) + YYERROR1; + reinit_parse_for_function (); ; + break;} + case 29: +! #line 359 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 30: +! #line 361 "objc-parse.y" + { finish_function (0); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 30: +*** 2321,2392 **** + resume_momentary (yyvsp[-5].itype); ; + break;} + case 31: +! #line 356 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 36: +! #line 370 "objc-parse.y" + { yyval.code = ADDR_EXPR; ; + break;} + case 37: +! #line 372 "objc-parse.y" + { yyval.code = NEGATE_EXPR; ; + break;} + case 38: +! #line 374 "objc-parse.y" + { yyval.code = CONVERT_EXPR; ; + break;} + case 39: +! #line 376 "objc-parse.y" + { yyval.code = PREINCREMENT_EXPR; ; + break;} + case 40: +! #line 378 "objc-parse.y" + { yyval.code = PREDECREMENT_EXPR; ; + break;} + case 41: +! #line 380 "objc-parse.y" + { yyval.code = BIT_NOT_EXPR; ; + break;} + case 42: +! #line 382 "objc-parse.y" + { yyval.code = TRUTH_NOT_EXPR; ; + break;} + case 43: +! #line 386 "objc-parse.y" + { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; + break;} + case 44: +! #line 391 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 46: +! #line 397 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 47: +! #line 399 "objc-parse.y" + { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 49: +! #line 405 "objc-parse.y" + { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; + break;} + case 50: +! #line 408 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! pedantic = yyvsp[-1].itype; ; + break;} + case 51: +! #line 411 "objc-parse.y" + { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); + overflow_warning (yyval.ttype); ; + break;} + case 52: +! #line 415 "objc-parse.y" + { tree label = lookup_label (yyvsp[0].ttype); + if (pedantic) + pedwarn ("ANSI C forbids `&&'"); +--- 2376,2447 ---- + resume_momentary (yyvsp[-5].itype); ; + break;} + case 31: +! #line 367 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 36: +! #line 381 "objc-parse.y" + { yyval.code = ADDR_EXPR; ; + break;} + case 37: +! #line 383 "objc-parse.y" + { yyval.code = NEGATE_EXPR; ; + break;} + case 38: +! #line 385 "objc-parse.y" + { yyval.code = CONVERT_EXPR; ; + break;} + case 39: +! #line 387 "objc-parse.y" + { yyval.code = PREINCREMENT_EXPR; ; + break;} + case 40: +! #line 389 "objc-parse.y" + { yyval.code = PREDECREMENT_EXPR; ; + break;} + case 41: +! #line 391 "objc-parse.y" + { yyval.code = BIT_NOT_EXPR; ; + break;} + case 42: +! #line 393 "objc-parse.y" + { yyval.code = TRUTH_NOT_EXPR; ; + break;} + case 43: +! #line 397 "objc-parse.y" + { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; + break;} + case 44: +! #line 402 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 46: +! #line 408 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 47: +! #line 410 "objc-parse.y" + { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 49: +! #line 416 "objc-parse.y" + { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; + break;} + case 50: +! #line 419 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 51: +! #line 422 "objc-parse.y" + { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); + overflow_warning (yyval.ttype); ; + break;} + case 52: +! #line 426 "objc-parse.y" + { tree label = lookup_label (yyvsp[0].ttype); + if (pedantic) + pedwarn ("ANSI C forbids `&&'"); +*************** case 52: +*** 2401,2407 **** + ; + break;} + case 53: +! #line 443 "objc-parse.y" + { skip_evaluation--; + if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF + && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) +--- 2456,2462 ---- + ; + break;} + case 53: +! #line 454 "objc-parse.y" + { skip_evaluation--; + if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF + && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) +*************** case 53: +*** 2409,2457 **** + yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; + break;} + case 54: +! #line 449 "objc-parse.y" + { skip_evaluation--; + yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 55: +! #line 452 "objc-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; + break;} + case 56: +! #line 455 "objc-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 57: +! #line 458 "objc-parse.y" + { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 58: +! #line 460 "objc-parse.y" + { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 59: +! #line 464 "objc-parse.y" + { skip_evaluation++; ; + break;} + case 60: +! #line 468 "objc-parse.y" + { skip_evaluation++; ; + break;} + case 62: +! #line 474 "objc-parse.y" + { tree type = groktypename (yyvsp[-2].ttype); + yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; + break;} + case 63: +! #line 477 "objc-parse.y" + { start_init (NULL_TREE, NULL, 0); + yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); + really_start_incremental_init (yyvsp[-2].ttype); ; + break;} + case 64: +! #line 481 "objc-parse.y" + { char *name; + tree result = pop_init_level (0); + tree type = yyvsp[-5].ttype; +--- 2464,2512 ---- + yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; + break;} + case 54: +! #line 460 "objc-parse.y" + { skip_evaluation--; + yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 55: +! #line 463 "objc-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; + break;} + case 56: +! #line 466 "objc-parse.y" + { skip_evaluation--; + yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; + break;} + case 57: +! #line 469 "objc-parse.y" + { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 58: +! #line 471 "objc-parse.y" + { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ; + break;} + case 59: +! #line 475 "objc-parse.y" + { skip_evaluation++; ; + break;} + case 60: +! #line 479 "objc-parse.y" + { skip_evaluation++; ; + break;} + case 62: +! #line 485 "objc-parse.y" + { tree type = groktypename (yyvsp[-2].ttype); + yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; + break;} + case 63: +! #line 488 "objc-parse.y" + { start_init (NULL_TREE, NULL, 0); + yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); + really_start_incremental_init (yyvsp[-2].ttype); ; + break;} + case 64: +! #line 492 "objc-parse.y" + { char *name; + tree result = pop_init_level (0); + tree type = yyvsp[-5].ttype; +*************** case 64: +*** 2478,2567 **** + ; + break;} + case 66: +! #line 510 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 67: +! #line 512 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 68: +! #line 514 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 69: +! #line 516 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 70: +! #line 518 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 71: +! #line 520 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 72: +! #line 522 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 73: +! #line 524 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 74: +! #line 526 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 75: +! #line 528 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 76: +! #line 530 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 77: +! #line 532 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 78: +! #line 534 "objc-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 79: +! #line 537 "objc-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; + yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 80: +! #line 540 "objc-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 81: +! #line 543 "objc-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; + yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 82: +! #line 546 "objc-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 83: +! #line 549 "objc-parse.y" + { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) + - (yyvsp[-4].ttype == boolean_false_node)); ; + break;} + case 84: +! #line 552 "objc-parse.y" + { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 85: +! #line 555 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); + /* Make sure first operand is calculated only once. */ +--- 2533,2622 ---- + ; + break;} + case 66: +! #line 521 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 67: +! #line 523 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 68: +! #line 525 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 69: +! #line 527 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 70: +! #line 529 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 71: +! #line 531 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 72: +! #line 533 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 73: +! #line 535 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 74: +! #line 537 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 75: +! #line 539 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 76: +! #line 541 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 77: +! #line 543 "objc-parse.y" + { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 78: +! #line 545 "objc-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 79: +! #line 548 "objc-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; + yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 80: +! #line 551 "objc-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 81: +! #line 554 "objc-parse.y" + { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; + yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 82: +! #line 557 "objc-parse.y" + { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); + skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; + break;} + case 83: +! #line 560 "objc-parse.y" + { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) + - (yyvsp[-4].ttype == boolean_false_node)); ; + break;} + case 84: +! #line 563 "objc-parse.y" + { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 85: +! #line 566 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); + /* Make sure first operand is calculated only once. */ +*************** case 85: +*** 2570,2581 **** + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 86: +! #line 562 "objc-parse.y" + { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 87: +! #line 565 "objc-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); + class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); +--- 2625,2636 ---- + skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; + break;} + case 86: +! #line 573 "objc-parse.y" + { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; + yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 87: +! #line 576 "objc-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); + class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); +*************** case 87: +*** 2585,2591 **** + ; + break;} + case 88: +! #line 573 "objc-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); + /* This inhibits warnings in truthvalue_conversion. */ +--- 2640,2646 ---- + ; + break;} + case 88: +! #line 584 "objc-parse.y" + { char class; + yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); + /* This inhibits warnings in truthvalue_conversion. */ +*************** case 88: +*** 2596,2602 **** + ; + break;} + case 89: +! #line 585 "objc-parse.y" + { + yyval.ttype = lastiddecl; + if (!yyval.ttype || yyval.ttype == error_mark_node) +--- 2651,2657 ---- + ; + break;} + case 89: +! #line 596 "objc-parse.y" + { + yyval.ttype = lastiddecl; + if (!yyval.ttype || yyval.ttype == error_mark_node) +*************** case 89: +*** 2757,2767 **** + ; + break;} + case 91: +! #line 745 "objc-parse.y" + { yyval.ttype = combine_strings (yyvsp[0].ttype); ; + break;} + case 92: +! #line 747 "objc-parse.y" + { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); + if (class == 'e' || class == '1' + || class == '2' || class == '<') +--- 2812,2822 ---- + ; + break;} + case 91: +! #line 756 "objc-parse.y" + { yyval.ttype = combine_strings (yyvsp[0].ttype); ; + break;} + case 92: +! #line 758 "objc-parse.y" + { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); + if (class == 'e' || class == '1' + || class == '2' || class == '<') +*************** case 92: +*** 2769,2779 **** + yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 93: +! #line 753 "objc-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 94: +! #line 755 "objc-parse.y" + { if (current_function_decl == 0) + { + error ("braced-group within expression allowed only inside a function"); +--- 2824,2834 ---- + yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 93: +! #line 764 "objc-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 94: +! #line 766 "objc-parse.y" + { if (current_function_decl == 0) + { + error ("braced-group within expression allowed only inside a function"); +*************** case 94: +*** 2789,2795 **** + yyval.ttype = expand_start_stmt_expr (); ; + break;} + case 95: +! #line 769 "objc-parse.y" + { tree rtl_exp; + if (pedantic) + pedwarn ("ANSI C forbids braced-groups within expressions"); +--- 2844,2850 ---- + yyval.ttype = expand_start_stmt_expr (); ; + break;} + case 95: +! #line 780 "objc-parse.y" + { tree rtl_exp; + if (pedantic) + pedwarn ("ANSI C forbids braced-groups within expressions"); +*************** case 95: +*** 2814,2828 **** + ; + break;} + case 96: +! #line 792 "objc-parse.y" + { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 97: +! #line 794 "objc-parse.y" + { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 98: +! #line 796 "objc-parse.y" + { + if (doing_objc_thang) + { +--- 2869,2883 ---- + ; + break;} + case 96: +! #line 803 "objc-parse.y" + { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 97: +! #line 805 "objc-parse.y" + { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 98: +! #line 807 "objc-parse.y" + { + if (doing_objc_thang) + { +*************** case 98: +*** 2836,2842 **** + ; + break;} + case 99: +! #line 808 "objc-parse.y" + { + tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); + +--- 2891,2897 ---- + ; + break;} + case 99: +! #line 819 "objc-parse.y" + { + tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); + +*************** case 99: +*** 2852,2931 **** + ; + break;} + case 100: +! #line 822 "objc-parse.y" + { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 101: +! #line 824 "objc-parse.y" + { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 102: +! #line 826 "objc-parse.y" + { yyval.ttype = build_message_expr (yyvsp[0].ttype); ; + break;} + case 103: +! #line 828 "objc-parse.y" + { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ; + break;} + case 104: +! #line 830 "objc-parse.y" + { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ; + break;} + case 105: +! #line 832 "objc-parse.y" + { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ; + break;} + case 106: +! #line 834 "objc-parse.y" + { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ; + break;} + case 108: +! #line 841 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 110: +! #line 849 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 113: +! #line 857 "objc-parse.y" + { c_mark_varargs (); + if (pedantic) + pedwarn ("ANSI C does not permit use of `varargs.h'"); ; + break;} + case 114: +! #line 867 "objc-parse.y" + { ; + break;} + case 119: +! #line 883 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 120: +! #line 888 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 121: +! #line 893 "objc-parse.y" + { shadow_tag_warned (yyvsp[-1].ttype, 1); + pedwarn ("empty declaration"); ; + break;} + case 122: +! #line 896 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 123: +! #line 905 "objc-parse.y" + { ; + break;} + case 128: +! #line 920 "objc-parse.y" + { yyval.itype = suspend_momentary (); + pending_xref_error (); + declspec_stack = tree_cons (prefix_attributes, +--- 2907,2986 ---- + ; + break;} + case 100: +! #line 833 "objc-parse.y" + { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 101: +! #line 835 "objc-parse.y" + { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; + break;} + case 102: +! #line 837 "objc-parse.y" + { yyval.ttype = build_message_expr (yyvsp[0].ttype); ; + break;} + case 103: +! #line 839 "objc-parse.y" + { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ; + break;} + case 104: +! #line 841 "objc-parse.y" + { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ; + break;} + case 105: +! #line 843 "objc-parse.y" + { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ; + break;} + case 106: +! #line 845 "objc-parse.y" + { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ; + break;} + case 108: +! #line 852 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 110: +! #line 860 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 113: +! #line 868 "objc-parse.y" + { c_mark_varargs (); + if (pedantic) + pedwarn ("ANSI C does not permit use of `varargs.h'"); ; + break;} + case 114: +! #line 878 "objc-parse.y" + { ; + break;} + case 119: +! #line 894 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 120: +! #line 899 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 121: +! #line 904 "objc-parse.y" + { shadow_tag_warned (yyvsp[-1].ttype, 1); + pedwarn ("empty declaration"); ; + break;} + case 122: +! #line 907 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 123: +! #line 916 "objc-parse.y" + { ; + break;} + case 128: +! #line 931 "objc-parse.y" + { yyval.itype = suspend_momentary (); + pending_xref_error (); + declspec_stack = tree_cons (prefix_attributes, +*************** case 128: +*** 2935,3065 **** + ¤t_declspecs, &prefix_attributes); ; + break;} + case 129: +! #line 931 "objc-parse.y" + { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ; + break;} + case 130: +! #line 936 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 131: +! #line 941 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 132: +! #line 946 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 133: +! #line 951 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 134: +! #line 956 "objc-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 135: +! #line 958 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 136: +! #line 960 "objc-parse.y" +! { pedantic = yyvsp[-1].itype; ; + break;} + case 137: +! #line 970 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 138: +! #line 972 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 139: +! #line 976 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 140: +! #line 978 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 141: +! #line 980 "objc-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 142: +! #line 985 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 143: +! #line 990 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 144: +! #line 992 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 145: +! #line 997 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 146: +! #line 999 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 147: +! #line 1001 "objc-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 148: +! #line 1014 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 149: +! #line 1016 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; + break;} + case 150: +! #line 1018 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 151: +! #line 1020 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 152: +! #line 1025 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 153: +! #line 1028 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 154: +! #line 1030 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 155: +! #line 1033 "objc-parse.y" + { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); +--- 2990,3120 ---- + ¤t_declspecs, &prefix_attributes); ; + break;} + case 129: +! #line 942 "objc-parse.y" + { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ; + break;} + case 130: +! #line 947 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 131: +! #line 952 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 132: +! #line 957 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 133: +! #line 962 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-1].itype); ; + break;} + case 134: +! #line 967 "objc-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 135: +! #line 969 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 136: +! #line 971 "objc-parse.y" +! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 137: +! #line 981 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 138: +! #line 983 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 139: +! #line 987 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 140: +! #line 989 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 141: +! #line 991 "objc-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 142: +! #line 996 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 143: +! #line 1001 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 144: +! #line 1003 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 145: +! #line 1008 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 146: +! #line 1010 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 147: +! #line 1012 "objc-parse.y" + { if (extra_warnings) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); + yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 148: +! #line 1025 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 149: +! #line 1027 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; + break;} + case 150: +! #line 1029 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 151: +! #line 1031 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 152: +! #line 1036 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 153: +! #line 1039 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 154: +! #line 1041 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); + TREE_STATIC (yyval.ttype) = 1; ; + break;} + case 155: +! #line 1044 "objc-parse.y" + { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) + warning ("`%s' is not at beginning of declaration", + IDENTIFIER_POINTER (yyvsp[0].ttype)); +*************** case 155: +*** 3067,3216 **** + TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; + break;} + case 156: +! #line 1047 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 157: +! #line 1049 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 158: +! #line 1053 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 159: +! #line 1055 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 162: +! #line 1065 "objc-parse.y" + { /* For a typedef name, record the meaning, not the name. + In case of `foo foo, bar;'. */ + yyval.ttype = lookup_name (yyvsp[0].ttype); ; + break;} + case 163: +! #line 1069 "objc-parse.y" + { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 164: +! #line 1071 "objc-parse.y" + { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; + break;} + case 165: +! #line 1076 "objc-parse.y" + { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; + break;} + case 166: +! #line 1078 "objc-parse.y" + { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; + break;} + case 167: +! #line 1080 "objc-parse.y" + { yyval.ttype = groktypename (yyvsp[-1].ttype); ; + break;} + case 175: +! #line 1102 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 176: +! #line 1104 "objc-parse.y" + { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 177: +! #line 1111 "objc-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 178: +! #line 1116 "objc-parse.y" + { finish_init (); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 179: +! #line 1119 "objc-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); + ; + break;} + case 180: +! #line 1127 "objc-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 181: +! #line 1132 "objc-parse.y" + { finish_init (); + decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 182: +! #line 1136 "objc-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 183: +! #line 1144 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 184: +! #line 1146 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 185: +! #line 1151 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 186: +! #line 1153 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 187: +! #line 1158 "objc-parse.y" + { yyval.ttype = yyvsp[-2].ttype; ; + break;} + case 188: +! #line 1163 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 189: +! #line 1165 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 190: +! #line 1170 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 191: +! #line 1172 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 192: +! #line 1174 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; + break;} + case 193: +! #line 1176 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; + break;} + case 194: +! #line 1178 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 200: +! #line 1196 "objc-parse.y" + { really_start_incremental_init (NULL_TREE); + /* Note that the call to clear_momentary + is in process_init_element. */ + push_momentary (); ; + break;} + case 201: +! #line 1201 "objc-parse.y" + { yyval.ttype = pop_init_level (0); + if (yyval.ttype == error_mark_node + && ! (yychar == STRING || yychar == CONSTANT)) +--- 3122,3271 ---- + TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; + break;} + case 156: +! #line 1058 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 157: +! #line 1060 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; + break;} + case 158: +! #line 1064 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 159: +! #line 1066 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 162: +! #line 1076 "objc-parse.y" + { /* For a typedef name, record the meaning, not the name. + In case of `foo foo, bar;'. */ + yyval.ttype = lookup_name (yyvsp[0].ttype); ; + break;} + case 163: +! #line 1080 "objc-parse.y" + { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 164: +! #line 1082 "objc-parse.y" + { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; + break;} + case 165: +! #line 1087 "objc-parse.y" + { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; + break;} + case 166: +! #line 1089 "objc-parse.y" + { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; + break;} + case 167: +! #line 1091 "objc-parse.y" + { yyval.ttype = groktypename (yyvsp[-1].ttype); ; + break;} + case 175: +! #line 1113 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 176: +! #line 1115 "objc-parse.y" + { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 177: +! #line 1122 "objc-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 178: +! #line 1127 "objc-parse.y" + { finish_init (); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 179: +! #line 1130 "objc-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); + ; + break;} + case 180: +! #line 1138 "objc-parse.y" + { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, + yyvsp[-1].ttype, prefix_attributes); + start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; + break;} + case 181: +! #line 1143 "objc-parse.y" + { finish_init (); + decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes); + finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; + break;} + case 182: +! #line 1147 "objc-parse.y" + { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, + yyvsp[0].ttype, prefix_attributes); + finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 183: +! #line 1155 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 184: +! #line 1157 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 185: +! #line 1162 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 186: +! #line 1164 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 187: +! #line 1169 "objc-parse.y" + { yyval.ttype = yyvsp[-2].ttype; ; + break;} + case 188: +! #line 1174 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 189: +! #line 1176 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 190: +! #line 1181 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 191: +! #line 1183 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 192: +! #line 1185 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; + break;} + case 193: +! #line 1187 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; + break;} + case 194: +! #line 1189 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 200: +! #line 1207 "objc-parse.y" + { really_start_incremental_init (NULL_TREE); + /* Note that the call to clear_momentary + is in process_init_element. */ + push_momentary (); ; + break;} + case 201: +! #line 1212 "objc-parse.y" + { yyval.ttype = pop_init_level (0); + if (yyval.ttype == error_mark_node + && ! (yychar == STRING || yychar == CONSTANT)) +*************** case 201: +*** 3219,3254 **** + pop_momentary_nofree (); ; + break;} + case 202: +! #line 1209 "objc-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 203: +! #line 1215 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids empty initializer braces"); ; + break;} + case 209: +! #line 1231 "objc-parse.y" + { set_init_label (yyvsp[-1].ttype); ; + break;} + case 212: +! #line 1238 "objc-parse.y" + { push_init_level (0); ; + break;} + case 213: +! #line 1240 "objc-parse.y" + { process_init_element (pop_init_level (0)); ; + break;} + case 214: +! #line 1242 "objc-parse.y" + { process_init_element (yyvsp[0].ttype); ; + break;} + case 218: +! #line 1253 "objc-parse.y" + { set_init_label (yyvsp[0].ttype); ; + break;} + case 219: +! #line 1261 "objc-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +--- 3274,3309 ---- + pop_momentary_nofree (); ; + break;} + case 202: +! #line 1220 "objc-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 203: +! #line 1226 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids empty initializer braces"); ; + break;} + case 209: +! #line 1242 "objc-parse.y" + { set_init_label (yyvsp[-1].ttype); ; + break;} + case 212: +! #line 1249 "objc-parse.y" + { push_init_level (0); ; + break;} + case 213: +! #line 1251 "objc-parse.y" + { process_init_element (pop_init_level (0)); ; + break;} + case 214: +! #line 1253 "objc-parse.y" + { process_init_element (yyvsp[0].ttype); ; + break;} + case 218: +! #line 1264 "objc-parse.y" + { set_init_label (yyvsp[0].ttype); ; + break;} + case 219: +! #line 1272 "objc-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +*************** case 219: +*** 3259,3274 **** + reinit_parse_for_function (); ; + break;} + case 220: +! #line 1270 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 221: +! #line 1278 "objc-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 222: +! #line 1284 "objc-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +--- 3314,3329 ---- + reinit_parse_for_function (); ; + break;} + case 220: +! #line 1281 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 221: +! #line 1289 "objc-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 222: +! #line 1295 "objc-parse.y" + { push_c_function_context (); + if (! start_function (current_declspecs, yyvsp[0].ttype, + prefix_attributes, NULL_TREE, 1)) +*************** case 222: +*** 3279,3475 **** + reinit_parse_for_function (); ; + break;} + case 223: +! #line 1293 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 224: +! #line 1301 "objc-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 227: +! #line 1317 "objc-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 228: +! #line 1319 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 229: +! #line 1324 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 230: +! #line 1326 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 231: +! #line 1328 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 232: +! #line 1335 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 235: +! #line 1347 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 236: +! #line 1352 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 237: +! #line 1354 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 238: +! #line 1356 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 239: +! #line 1363 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 241: +! #line 1372 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 242: +! #line 1377 "objc-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 243: +! #line 1379 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 244: +! #line 1381 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 245: +! #line 1383 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 246: +! #line 1390 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 248: +! #line 1396 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 249: +! #line 1398 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 250: +! #line 1403 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 251: +! #line 1405 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 252: +! #line 1410 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 253: +! #line 1412 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 254: +! #line 1417 "objc-parse.y" + { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); + /* Start scope of tag before parsing components. */ + ; + break;} + case 255: +! #line 1421 "objc-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 256: +! #line 1423 "objc-parse.y" + { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 257: +! #line 1427 "objc-parse.y" + { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; + break;} + case 258: +! #line 1429 "objc-parse.y" + { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; + break;} + case 259: +! #line 1431 "objc-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 260: +! #line 1433 "objc-parse.y" + { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 261: +! #line 1437 "objc-parse.y" + { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; + break;} + case 262: +! #line 1439 "objc-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (yyvsp[-1].ttype); ; + break;} + case 263: +! #line 1442 "objc-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 264: +! #line 1445 "objc-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (NULL_TREE); ; + break;} + case 265: +! #line 1448 "objc-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 266: +! #line 1451 "objc-parse.y" + { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; + break;} + case 270: +! #line 1462 "objc-parse.y" + { if (pedantic && ! flag_isoc9x) + pedwarn ("comma at end of enumerator list"); ; + break;} + case 271: +! #line 1468 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 272: +! #line 1470 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + pedwarn ("no semicolon at end of struct or union"); ; + break;} + case 273: +! #line 1475 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 274: +! #line 1477 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; + break;} + case 275: +! #line 1479 "objc-parse.y" + { if (pedantic) + pedwarn ("extra semicolon in struct or union specified"); ; + break;} + case 276: +! #line 1483 "objc-parse.y" + { + tree interface = lookup_interface (yyvsp[-1].ttype); + +--- 3334,3530 ---- + reinit_parse_for_function (); ; + break;} + case 223: +! #line 1304 "objc-parse.y" + { store_parm_decls (); ; + break;} + case 224: +! #line 1312 "objc-parse.y" + { finish_function (1); + pop_c_function_context (); ; + break;} + case 227: +! #line 1328 "objc-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 228: +! #line 1330 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 229: +! #line 1335 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 230: +! #line 1337 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 231: +! #line 1339 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 232: +! #line 1346 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 235: +! #line 1358 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 236: +! #line 1363 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 237: +! #line 1365 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 238: +! #line 1367 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 239: +! #line 1374 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 241: +! #line 1383 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 242: +! #line 1388 "objc-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 243: +! #line 1390 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 244: +! #line 1392 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 245: +! #line 1394 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 246: +! #line 1401 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 248: +! #line 1407 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 249: +! #line 1409 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 250: +! #line 1414 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 251: +! #line 1416 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 252: +! #line 1421 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 253: +! #line 1423 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 254: +! #line 1428 "objc-parse.y" + { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); + /* Start scope of tag before parsing components. */ + ; + break;} + case 255: +! #line 1432 "objc-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 256: +! #line 1434 "objc-parse.y" + { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 257: +! #line 1438 "objc-parse.y" + { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; + break;} + case 258: +! #line 1440 "objc-parse.y" + { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; + break;} + case 259: +! #line 1442 "objc-parse.y" + { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; + break;} + case 260: +! #line 1444 "objc-parse.y" + { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), + yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); + ; + break;} + case 261: +! #line 1448 "objc-parse.y" + { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; + break;} + case 262: +! #line 1450 "objc-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (yyvsp[-1].ttype); ; + break;} + case 263: +! #line 1453 "objc-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 264: +! #line 1456 "objc-parse.y" + { yyvsp[0].itype = suspend_momentary (); + yyval.ttype = start_enum (NULL_TREE); ; + break;} + case 265: +! #line 1459 "objc-parse.y" + { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); + resume_momentary (yyvsp[-5].itype); ; + break;} + case 266: +! #line 1462 "objc-parse.y" + { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; + break;} + case 270: +! #line 1473 "objc-parse.y" + { if (pedantic && ! flag_isoc9x) + pedwarn ("comma at end of enumerator list"); ; + break;} + case 271: +! #line 1479 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 272: +! #line 1481 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + pedwarn ("no semicolon at end of struct or union"); ; + break;} + case 273: +! #line 1486 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 274: +! #line 1488 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; + break;} + case 275: +! #line 1490 "objc-parse.y" + { if (pedantic) + pedwarn ("extra semicolon in struct or union specified"); ; + break;} + case 276: +! #line 1494 "objc-parse.y" + { + tree interface = lookup_interface (yyvsp[-1].ttype); + +*************** case 276: +*** 3484,3490 **** + ; + break;} + case 277: +! #line 1508 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 3539,3545 ---- + ; + break;} + case 277: +! #line 1519 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 277: +*** 3492,3505 **** + resume_momentary (yyvsp[-1].itype); ; + break;} + case 278: +! #line 1514 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids member declarations with no members"); + shadow_tag(yyvsp[0].ttype); + yyval.ttype = NULL_TREE; ; + break;} + case 279: +! #line 1519 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 3547,3560 ---- + resume_momentary (yyvsp[-1].itype); ; + break;} + case 278: +! #line 1525 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids member declarations with no members"); + shadow_tag(yyvsp[0].ttype); + yyval.ttype = NULL_TREE; ; + break;} + case 279: +! #line 1530 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 279: +*** 3507,3650 **** + resume_momentary (yyvsp[-1].itype); ; + break;} + case 280: +! #line 1525 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids member declarations with no members"); + shadow_tag(yyvsp[0].ttype); + yyval.ttype = NULL_TREE; ; + break;} + case 281: +! #line 1530 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 282: +! #line 1532 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! pedantic = yyvsp[-1].itype; ; + break;} + case 284: +! #line 1539 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 285: +! #line 1544 "objc-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, prefix_attributes); ; + break;} + case 286: +! #line 1548 "objc-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, prefix_attributes); ; + break;} + case 287: +! #line 1551 "objc-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, prefix_attributes); ; + break;} + case 289: +! #line 1563 "objc-parse.y" + { if (yyvsp[-2].ttype == error_mark_node) + yyval.ttype = yyvsp[-2].ttype; + else + yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; + break;} + case 290: +! #line 1568 "objc-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 291: +! #line 1574 "objc-parse.y" + { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 292: +! #line 1576 "objc-parse.y" + { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 293: +! #line 1581 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 294: +! #line 1583 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 295: +! #line 1588 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 297: +! #line 1594 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 298: +! #line 1596 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 299: +! #line 1601 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 300: +! #line 1603 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 301: +! #line 1608 "objc-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 302: +! #line 1611 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 303: +! #line 1613 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 304: +! #line 1615 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 305: +! #line 1617 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 306: +! #line 1619 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 307: +! #line 1621 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 308: +! #line 1623 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 309: +! #line 1625 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; + break;} + case 310: +! #line 1629 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 311: +! #line 1638 "objc-parse.y" + { + if (pedantic && yyvsp[0].ends_in_label) + pedwarn ("ANSI C forbids label at end of compound statement"); + ; + break;} + case 313: +! #line 1647 "objc-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 314: +! #line 1649 "objc-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 318: +! #line 1661 "objc-parse.y" + { emit_line_note (input_filename, lineno); + pushlevel (0); + clear_last_expr (); +--- 3562,3705 ---- + resume_momentary (yyvsp[-1].itype); ; + break;} + case 280: +! #line 1536 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids member declarations with no members"); + shadow_tag(yyvsp[0].ttype); + yyval.ttype = NULL_TREE; ; + break;} + case 281: +! #line 1541 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 282: +! #line 1543 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; +! RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; + break;} + case 284: +! #line 1550 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 285: +! #line 1555 "objc-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, prefix_attributes); ; + break;} + case 286: +! #line 1559 "objc-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, prefix_attributes); ; + break;} + case 287: +! #line 1562 "objc-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, prefix_attributes); ; + break;} + case 289: +! #line 1574 "objc-parse.y" + { if (yyvsp[-2].ttype == error_mark_node) + yyval.ttype = yyvsp[-2].ttype; + else + yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; + break;} + case 290: +! #line 1579 "objc-parse.y" + { yyval.ttype = error_mark_node; ; + break;} + case 291: +! #line 1585 "objc-parse.y" + { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 292: +! #line 1587 "objc-parse.y" + { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 293: +! #line 1592 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 294: +! #line 1594 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 295: +! #line 1599 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 297: +! #line 1605 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 298: +! #line 1607 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 299: +! #line 1612 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 300: +! #line 1614 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} + case 301: +! #line 1619 "objc-parse.y" + { yyval.ttype = yyvsp[-1].ttype; ; + break;} + case 302: +! #line 1622 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 303: +! #line 1624 "objc-parse.y" + { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; + break;} + case 304: +! #line 1626 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 305: +! #line 1628 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 306: +! #line 1630 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; + break;} + case 307: +! #line 1632 "objc-parse.y" + { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; + break;} + case 308: +! #line 1634 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 309: +! #line 1636 "objc-parse.y" + { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; + break;} + case 310: +! #line 1640 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 311: +! #line 1649 "objc-parse.y" + { + if (pedantic && yyvsp[0].ends_in_label) + pedwarn ("ANSI C forbids label at end of compound statement"); + ; + break;} + case 313: +! #line 1658 "objc-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 314: +! #line 1660 "objc-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 318: +! #line 1672 "objc-parse.y" + { emit_line_note (input_filename, lineno); + pushlevel (0); + clear_last_expr (); +*************** case 318: +*** 3655,3666 **** + ; + break;} + case 320: +! #line 1676 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids label declarations"); ; + break;} + case 323: +! #line 1687 "objc-parse.y" + { tree link; + for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) + { +--- 3710,3721 ---- + ; + break;} + case 320: +! #line 1687 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids label declarations"); ; + break;} + case 323: +! #line 1698 "objc-parse.y" + { tree link; + for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) + { +*************** case 323: +*** 3671,3689 **** + ; + break;} + case 324: +! #line 1701 "objc-parse.y" + {; + break;} + case 326: +! #line 1705 "objc-parse.y" + { compstmt_count++; ; + break;} + case 327: +! #line 1708 "objc-parse.y" + { yyval.ttype = convert (void_type_node, integer_zero_node); ; + break;} + case 328: +! #line 1710 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), 1, 0); + yyval.ttype = poplevel (1, 1, 0); +--- 3726,3744 ---- + ; + break;} + case 324: +! #line 1712 "objc-parse.y" + {; + break;} + case 326: +! #line 1716 "objc-parse.y" + { compstmt_count++; ; + break;} + case 327: +! #line 1719 "objc-parse.y" + { yyval.ttype = convert (void_type_node, integer_zero_node); ; + break;} + case 328: +! #line 1721 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), 1, 0); + yyval.ttype = poplevel (1, 1, 0); +*************** case 328: +*** 3693,3699 **** + pop_momentary (); ; + break;} + case 329: +! #line 1718 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), kept_level_p (), 0); + yyval.ttype = poplevel (kept_level_p (), 0, 0); +--- 3748,3754 ---- + pop_momentary (); ; + break;} + case 329: +! #line 1729 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), kept_level_p (), 0); + yyval.ttype = poplevel (kept_level_p (), 0, 0); +*************** case 329: +*** 3703,3709 **** + pop_momentary (); ; + break;} + case 330: +! #line 1726 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), kept_level_p (), 0); + yyval.ttype = poplevel (kept_level_p (), 0, 0); +--- 3758,3764 ---- + pop_momentary (); ; + break;} + case 330: +! #line 1737 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_end_bindings (getdecls (), kept_level_p (), 0); + yyval.ttype = poplevel (kept_level_p (), 0, 0); +*************** case 330: +*** 3713,3719 **** + pop_momentary (); ; + break;} + case 333: +! #line 1746 "objc-parse.y" + { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, + compstmt_count); +--- 3768,3774 ---- + pop_momentary (); ; + break;} + case 333: +! #line 1757 "objc-parse.y" + { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, + compstmt_count); +*************** case 333: +*** 3723,3729 **** + position_after_white_space (); ; + break;} + case 334: +! #line 1760 "objc-parse.y" + { stmt_count++; + compstmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); +--- 3778,3784 ---- + position_after_white_space (); ; + break;} + case 334: +! #line 1771 "objc-parse.y" + { stmt_count++; + compstmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); +*************** case 334: +*** 3733,3775 **** + position_after_white_space (); ; + break;} + case 335: +! #line 1768 "objc-parse.y" + { expand_loop_continue_here (); ; + break;} + case 336: +! #line 1772 "objc-parse.y" + { yyval.filename = input_filename; ; + break;} + case 337: +! #line 1776 "objc-parse.y" + { yyval.lineno = lineno; ; + break;} + case 338: +! #line 1781 "objc-parse.y" + { ; + break;} + case 339: +! #line 1786 "objc-parse.y" + { ; + break;} + case 340: +! #line 1791 "objc-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 341: +! #line 1796 "objc-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 342: +! #line 1798 "objc-parse.y" + { yyval.ends_in_label = 1; ; + break;} + case 343: +! #line 1804 "objc-parse.y" + { stmt_count++; ; + break;} + case 345: +! #line 1807 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + /* It appears that this should not be done--that a non-lvalue array +--- 3788,3830 ---- + position_after_white_space (); ; + break;} + case 335: +! #line 1779 "objc-parse.y" + { expand_loop_continue_here (); ; + break;} + case 336: +! #line 1783 "objc-parse.y" + { yyval.filename = input_filename; ; + break;} + case 337: +! #line 1787 "objc-parse.y" + { yyval.lineno = lineno; ; + break;} + case 338: +! #line 1792 "objc-parse.y" + { ; + break;} + case 339: +! #line 1797 "objc-parse.y" + { ; + break;} + case 340: +! #line 1802 "objc-parse.y" + { yyval.ends_in_label = yyvsp[0].ends_in_label; ; + break;} + case 341: +! #line 1807 "objc-parse.y" + { yyval.ends_in_label = 0; ; + break;} + case 342: +! #line 1809 "objc-parse.y" + { yyval.ends_in_label = 1; ; + break;} + case 343: +! #line 1815 "objc-parse.y" + { stmt_count++; ; + break;} + case 345: +! #line 1818 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + /* It appears that this should not be done--that a non-lvalue array +*************** case 345: +*** 3788,3806 **** + clear_momentary (); ; + break;} + case 346: +! #line 1824 "objc-parse.y" + { c_expand_start_else (); + yyvsp[-1].itype = stmt_count; + position_after_white_space (); ; + break;} + case 347: +! #line 1828 "objc-parse.y" + { c_expand_end_cond (); + if (extra_warnings && stmt_count == yyvsp[-3].itype) + warning ("empty body in an else-statement"); ; + break;} + case 348: +! #line 1832 "objc-parse.y" + { c_expand_end_cond (); + /* This warning is here instead of in simple_if, because we + do not want a warning if an empty if is followed by an +--- 3843,3861 ---- + clear_momentary (); ; + break;} + case 346: +! #line 1835 "objc-parse.y" + { c_expand_start_else (); + yyvsp[-1].itype = stmt_count; + position_after_white_space (); ; + break;} + case 347: +! #line 1839 "objc-parse.y" + { c_expand_end_cond (); + if (extra_warnings && stmt_count == yyvsp[-3].itype) + warning ("empty body in an else-statement"); ; + break;} + case 348: +! #line 1843 "objc-parse.y" + { c_expand_end_cond (); + /* This warning is here instead of in simple_if, because we + do not want a warning if an empty if is followed by an +*************** case 348: +*** 3811,3821 **** + "empty body in an if-statement"); ; + break;} + case 349: +! #line 1844 "objc-parse.y" + { c_expand_end_cond (); ; + break;} + case 350: +! #line 1846 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); + /* The emit_nop used to come before emit_line_note, +--- 3866,3876 ---- + "empty body in an if-statement"); ; + break;} + case 349: +! #line 1855 "objc-parse.y" + { c_expand_end_cond (); ; + break;} + case 350: +! #line 1857 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); + /* The emit_nop used to come before emit_line_note, +*************** case 350: +*** 3827,3833 **** + emit_nop (); ; + break;} + case 351: +! #line 1856 "objc-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. */ +--- 3882,3888 ---- + emit_nop (); ; + break;} + case 351: +! #line 1867 "objc-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. */ +*************** case 351: +*** 3838,3848 **** + position_after_white_space (); ; + break;} + case 352: +! #line 1865 "objc-parse.y" + { expand_end_loop (); ; + break;} + case 353: +! #line 1868 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_exit_loop_if_false (NULL_PTR, + truthvalue_conversion (yyvsp[-2].ttype)); +--- 3893,3903 ---- + position_after_white_space (); ; + break;} + case 352: +! #line 1876 "objc-parse.y" + { expand_end_loop (); ; + break;} + case 353: +! #line 1879 "objc-parse.y" + { emit_line_note (input_filename, lineno); + expand_exit_loop_if_false (NULL_PTR, + truthvalue_conversion (yyvsp[-2].ttype)); +*************** case 353: +*** 3850,3861 **** + clear_momentary (); ; + break;} + case 354: +! #line 1875 "objc-parse.y" + { expand_end_loop (); + clear_momentary (); ; + break;} + case 355: +! #line 1879 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + /* See comment in `while' alternative, above. */ +--- 3905,3916 ---- + clear_momentary (); ; + break;} + case 354: +! #line 1886 "objc-parse.y" + { expand_end_loop (); + clear_momentary (); ; + break;} + case 355: +! #line 1890 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + /* See comment in `while' alternative, above. */ +*************** case 355: +*** 3868,3879 **** + ; + break;} + case 356: +! #line 1891 "objc-parse.y" + { yyvsp[0].lineno = lineno; + yyval.filename = input_filename; ; + break;} + case 357: +! #line 1894 "objc-parse.y" + { + /* Start the loop. Doing this after parsing + all the expressions ensures we will end the loop. */ +--- 3923,3934 ---- + ; + break;} + case 356: +! #line 1902 "objc-parse.y" + { yyvsp[0].lineno = lineno; + yyval.filename = input_filename; ; + break;} + case 357: +! #line 1905 "objc-parse.y" + { + /* Start the loop. Doing this after parsing + all the expressions ensures we will end the loop. */ +*************** case 357: +*** 3891,3897 **** + position_after_white_space (); ; + break;} + case 358: +! #line 1910 "objc-parse.y" + { /* Emit the increment expression, with a line number. */ + emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); + expand_loop_continue_here (); +--- 3946,3952 ---- + position_after_white_space (); ; + break;} + case 358: +! #line 1921 "objc-parse.y" + { /* Emit the increment expression, with a line number. */ + emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); + expand_loop_continue_here (); +*************** case 358: +*** 3904,3910 **** + expand_end_loop (); ; + break;} + case 359: +! #line 1921 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_case (yyvsp[-1].ttype); +--- 3959,3965 ---- + expand_end_loop (); ; + break;} + case 359: +! #line 1932 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); + c_expand_start_case (yyvsp[-1].ttype); +*************** case 359: +*** 3914,3920 **** + position_after_white_space (); ; + break;} + case 360: +! #line 1929 "objc-parse.y" + { expand_end_case (yyvsp[-3].ttype); + if (yychar == CONSTANT || yychar == STRING) + pop_momentary_nofree (); +--- 3969,3975 ---- + position_after_white_space (); ; + break;} + case 360: +! #line 1940 "objc-parse.y" + { expand_end_case (yyvsp[-3].ttype); + if (yychar == CONSTANT || yychar == STRING) + pop_momentary_nofree (); +*************** case 360: +*** 3922,3954 **** + pop_momentary (); ; + break;} + case 361: +! #line 1935 "objc-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 362: +! #line 1940 "objc-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 363: +! #line 1945 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + c_expand_return (NULL_TREE); ; + break;} + case 364: +! #line 1949 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); + c_expand_return (yyvsp[-1].ttype); ; + break;} + case 365: +! #line 1953 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); + STRIP_NOPS (yyvsp[-2].ttype); +--- 3977,4009 ---- + pop_momentary (); ; + break;} + case 361: +! #line 1946 "objc-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 362: +! #line 1951 "objc-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 363: +! #line 1956 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); + c_expand_return (NULL_TREE); ; + break;} + case 364: +! #line 1960 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); + c_expand_return (yyvsp[-1].ttype); ; + break;} + case 365: +! #line 1964 "objc-parse.y" + { stmt_count++; + emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); + STRIP_NOPS (yyvsp[-2].ttype); +*************** case 365: +*** 3960,3966 **** + error ("argument of `asm' is not a constant string"); ; + break;} + case 366: +! #line 1964 "objc-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, +--- 4015,4021 ---- + error ("argument of `asm' is not a constant string"); ; + break;} + case 366: +! #line 1975 "objc-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, +*************** case 366: +*** 3968,3974 **** + input_filename, lineno); ; + break;} + case 367: +! #line 1971 "objc-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, +--- 4023,4029 ---- + input_filename, lineno); ; + break;} + case 367: +! #line 1982 "objc-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, +*************** case 367: +*** 3976,3982 **** + input_filename, lineno); ; + break;} + case 368: +! #line 1979 "objc-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, +--- 4031,4037 ---- + input_filename, lineno); ; + break;} + case 368: +! #line 1990 "objc-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, +*************** case 368: +*** 3984,3990 **** + input_filename, lineno); ; + break;} + case 369: +! #line 1985 "objc-parse.y" + { tree decl; + stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); +--- 4039,4045 ---- + input_filename, lineno); ; + break;} + case 369: +! #line 1996 "objc-parse.y" + { tree decl; + stmt_count++; + emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); +*************** case 369: +*** 3997,4003 **** + ; + break;} + case 370: +! #line 1996 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids `goto *expr;'"); + stmt_count++; +--- 4052,4058 ---- + ; + break;} + case 370: +! #line 2007 "objc-parse.y" + { if (pedantic) + pedwarn ("ANSI C forbids `goto *expr;'"); + stmt_count++; +*************** case 370: +*** 4005,4011 **** + expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; + break;} + case 373: +! #line 2011 "objc-parse.y" + { + /* The value returned by this action is */ + /* 1 if everything is OK */ +--- 4060,4066 ---- + expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; + break;} + case 373: +! #line 2022 "objc-parse.y" + { + /* The value returned by this action is */ + /* 1 if everything is OK */ +*************** case 373: +*** 4028,4041 **** + ; + break;} + case 374: +! #line 2032 "objc-parse.y" + { + if (yyvsp[-1].itype) + iterator_for_loop_end (yyvsp[-3].ttype); + ; + break;} + case 375: +! #line 2067 "objc-parse.y" + { register tree value = check_case_value (yyvsp[-1].ttype); + register tree label + = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); +--- 4083,4096 ---- + ; + break;} + case 374: +! #line 2043 "objc-parse.y" + { + if (yyvsp[-1].itype) + iterator_for_loop_end (yyvsp[-3].ttype); + ; + break;} + case 375: +! #line 2078 "objc-parse.y" + { register tree value = check_case_value (yyvsp[-1].ttype); + register tree label + = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); +*************** case 375: +*** 4068,4074 **** + position_after_white_space (); ; + break;} + case 376: +! #line 2098 "objc-parse.y" + { register tree value1 = check_case_value (yyvsp[-3].ttype); + register tree value2 = check_case_value (yyvsp[-1].ttype); + register tree label +--- 4123,4129 ---- + position_after_white_space (); ; + break;} + case 376: +! #line 2109 "objc-parse.y" + { register tree value1 = check_case_value (yyvsp[-3].ttype); + register tree value2 = check_case_value (yyvsp[-1].ttype); + register tree label +*************** case 376: +*** 4101,4107 **** + position_after_white_space (); ; + break;} + case 377: +! #line 2129 "objc-parse.y" + { + tree duplicate; + register tree label +--- 4156,4162 ---- + position_after_white_space (); ; + break;} + case 377: +! #line 2140 "objc-parse.y" + { + tree duplicate; + register tree label +*************** case 377: +*** 4118,4124 **** + position_after_white_space (); ; + break;} + case 378: +! #line 2144 "objc-parse.y" + { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); + stmt_count++; + emit_nop (); +--- 4173,4179 ---- + position_after_white_space (); ; + break;} + case 378: +! #line 2155 "objc-parse.y" + { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); + stmt_count++; + emit_nop (); +*************** case 378: +*** 4130,4181 **** + position_after_white_space (); ; + break;} + case 379: +! #line 2159 "objc-parse.y" + { emit_line_note (input_filename, lineno); + yyval.ttype = NULL_TREE; ; + break;} + case 380: +! #line 2162 "objc-parse.y" + { emit_line_note (input_filename, lineno); ; + break;} + case 381: +! #line 2167 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 383: +! #line 2174 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 386: +! #line 2181 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 387: +! #line 2186 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 388: +! #line 2191 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; + break;} + case 389: +! #line 2193 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; + break;} + case 390: +! #line 2199 "objc-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (0); ; + break;} + case 391: +! #line 2203 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 393: +! #line 2211 "objc-parse.y" + { tree parm; + if (pedantic) + pedwarn ("ANSI C forbids forward parameter declarations"); +--- 4185,4236 ---- + position_after_white_space (); ; + break;} + case 379: +! #line 2170 "objc-parse.y" + { emit_line_note (input_filename, lineno); + yyval.ttype = NULL_TREE; ; + break;} + case 380: +! #line 2173 "objc-parse.y" + { emit_line_note (input_filename, lineno); ; + break;} + case 381: +! #line 2178 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 383: +! #line 2185 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 386: +! #line 2192 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; + break;} + case 387: +! #line 2197 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} + case 388: +! #line 2202 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; + break;} + case 389: +! #line 2204 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; + break;} + case 390: +! #line 2210 "objc-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (0); ; + break;} + case 391: +! #line 2214 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 393: +! #line 2222 "objc-parse.y" + { tree parm; + if (pedantic) + pedwarn ("ANSI C forbids forward parameter declarations"); +*************** case 393: +*** 4185,4203 **** + clear_parm_order (); ; + break;} + case 394: +! #line 2219 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 395: +! #line 2221 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; + break;} + case 396: +! #line 2227 "objc-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 397: +! #line 2229 "objc-parse.y" + { yyval.ttype = get_parm_info (0); + /* Gcc used to allow this as an extension. However, it does + not work for all targets, and thus has been disabled. +--- 4240,4258 ---- + clear_parm_order (); ; + break;} + case 394: +! #line 2230 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; ; + break;} + case 395: +! #line 2232 "objc-parse.y" + { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; + break;} + case 396: +! #line 2238 "objc-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 397: +! #line 2240 "objc-parse.y" + { yyval.ttype = get_parm_info (0); + /* Gcc used to allow this as an extension. However, it does + not work for all targets, and thus has been disabled. +*************** case 397: +*** 4209,4231 **** + ; + break;} + case 398: +! #line 2239 "objc-parse.y" + { yyval.ttype = get_parm_info (1); ; + break;} + case 399: +! #line 2241 "objc-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 400: +! #line 2246 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 401: +! #line 2248 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 402: +! #line 2255 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 4264,4286 ---- + ; + break;} + case 398: +! #line 2250 "objc-parse.y" + { yyval.ttype = get_parm_info (1); ; + break;} + case 399: +! #line 2252 "objc-parse.y" + { yyval.ttype = get_parm_info (0); ; + break;} + case 400: +! #line 2257 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 401: +! #line 2259 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 402: +! #line 2266 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 402: +*** 4236,4242 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 403: +! #line 2264 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 4291,4297 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 403: +! #line 2275 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 403: +*** 4247,4253 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 404: +! #line 2273 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 4302,4308 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 404: +! #line 2284 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 404: +*** 4258,4264 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 405: +! #line 2282 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 4313,4319 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 405: +! #line 2293 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 405: +*** 4269,4275 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 406: +! #line 2292 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +--- 4324,4330 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 406: +! #line 2303 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, +*************** case 406: +*** 4280,4298 **** + resume_momentary (yyvsp[-2].itype); ; + break;} + case 407: +! #line 2306 "objc-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (1); ; + break;} + case 408: +! #line 2310 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 410: +! #line 2318 "objc-parse.y" + { tree t; + for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) + if (TREE_VALUE (t) == NULL_TREE) +--- 4335,4353 ---- + resume_momentary (yyvsp[-2].itype); ; + break;} + case 407: +! #line 2317 "objc-parse.y" + { pushlevel (0); + clear_parm_order (); + declare_parm_level (1); ; + break;} + case 408: +! #line 2321 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + parmlist_tags_warning (); + poplevel (0, 0, 0); ; + break;} + case 410: +! #line 2329 "objc-parse.y" + { tree t; + for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) + if (TREE_VALUE (t) == NULL_TREE) +*************** case 410: +*** 4300,4327 **** + yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 411: +! #line 2328 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 412: +! #line 2330 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 413: +! #line 2336 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 414: +! #line 2338 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 415: +! #line 2343 "objc-parse.y" +! { yyval.itype = pedantic; +! pedantic = 0; ; + break;} + case 421: +! #line 2356 "objc-parse.y" + { + if (objc_implementation_context) + { +--- 4355,4383 ---- + yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; + break;} + case 411: +! #line 2339 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 412: +! #line 2341 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 413: +! #line 2347 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 414: +! #line 2349 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 415: +! #line 2354 "objc-parse.y" +! { yyval.ttype = SAVE_WARN_FLAGS(); +! pedantic = 0; +! warn_pointer_arith = 0; ; + break;} + case 421: +! #line 2368 "objc-parse.y" + { + if (objc_implementation_context) + { +*************** case 421: +*** 4334,4360 **** + ; + break;} + case 422: +! #line 2371 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 423: +! #line 2373 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 424: +! #line 2378 "objc-parse.y" + { + objc_declare_class (yyvsp[-1].ttype); + ; + break;} + case 425: +! #line 2384 "objc-parse.y" + { + objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); + ; + break;} + case 426: +! #line 2390 "objc-parse.y" + { + objc_interface_context = objc_ivar_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); +--- 4390,4416 ---- + ; + break;} + case 422: +! #line 2383 "objc-parse.y" + { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} + case 423: +! #line 2385 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 424: +! #line 2390 "objc-parse.y" + { + objc_declare_class (yyvsp[-1].ttype); + ; + break;} + case 425: +! #line 2396 "objc-parse.y" + { + objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); + ; + break;} + case 426: +! #line 2402 "objc-parse.y" + { + objc_interface_context = objc_ivar_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); +*************** case 426: +*** 4362,4381 **** + ; + break;} + case 427: +! #line 2396 "objc-parse.y" + { + continue_class (objc_interface_context); + ; + break;} + case 428: +! #line 2401 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 429: +! #line 2407 "objc-parse.y" + { + objc_interface_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); +--- 4418,4437 ---- + ; + break;} + case 427: +! #line 2408 "objc-parse.y" + { + continue_class (objc_interface_context); + ; + break;} + case 428: +! #line 2413 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 429: +! #line 2419 "objc-parse.y" + { + objc_interface_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); +*************** case 429: +*** 4383,4396 **** + ; + break;} + case 430: +! #line 2414 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 431: +! #line 2420 "objc-parse.y" + { + objc_interface_context = objc_ivar_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); +--- 4439,4452 ---- + ; + break;} + case 430: +! #line 2426 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 431: +! #line 2432 "objc-parse.y" + { + objc_interface_context = objc_ivar_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); +*************** case 431: +*** 4398,4417 **** + ; + break;} + case 432: +! #line 2426 "objc-parse.y" + { + continue_class (objc_interface_context); + ; + break;} + case 433: +! #line 2431 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 434: +! #line 2437 "objc-parse.y" + { + objc_interface_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); +--- 4454,4473 ---- + ; + break;} + case 432: +! #line 2438 "objc-parse.y" + { + continue_class (objc_interface_context); + ; + break;} + case 433: +! #line 2443 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 434: +! #line 2449 "objc-parse.y" + { + objc_interface_context + = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); +*************** case 434: +*** 4419,4432 **** + ; + break;} + case 435: +! #line 2444 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 436: +! #line 2450 "objc-parse.y" + { + objc_implementation_context = objc_ivar_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); +--- 4475,4488 ---- + ; + break;} + case 435: +! #line 2456 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 436: +! #line 2462 "objc-parse.y" + { + objc_implementation_context = objc_ivar_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); +*************** case 436: +*** 4434,4447 **** + ; + break;} + case 437: +! #line 2456 "objc-parse.y" + { + objc_ivar_chain + = continue_class (objc_implementation_context); + ; + break;} + case 438: +! #line 2462 "objc-parse.y" + { + objc_implementation_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); +--- 4490,4503 ---- + ; + break;} + case 437: +! #line 2468 "objc-parse.y" + { + objc_ivar_chain + = continue_class (objc_implementation_context); + ; + break;} + case 438: +! #line 2474 "objc-parse.y" + { + objc_implementation_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); +*************** case 438: +*** 4450,4456 **** + ; + break;} + case 439: +! #line 2470 "objc-parse.y" + { + objc_implementation_context = objc_ivar_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); +--- 4506,4512 ---- + ; + break;} + case 439: +! #line 2482 "objc-parse.y" + { + objc_implementation_context = objc_ivar_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); +*************** case 439: +*** 4458,4471 **** + ; + break;} + case 440: +! #line 2476 "objc-parse.y" + { + objc_ivar_chain + = continue_class (objc_implementation_context); + ; + break;} + case 441: +! #line 2482 "objc-parse.y" + { + objc_implementation_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); +--- 4514,4527 ---- + ; + break;} + case 440: +! #line 2488 "objc-parse.y" + { + objc_ivar_chain + = continue_class (objc_implementation_context); + ; + break;} + case 441: +! #line 2494 "objc-parse.y" + { + objc_implementation_context + = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); +*************** case 441: +*** 4474,4480 **** + ; + break;} + case 442: +! #line 2490 "objc-parse.y" + { + objc_interface_context + = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); +--- 4530,4536 ---- + ; + break;} + case 442: +! #line 2502 "objc-parse.y" + { + objc_interface_context + = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); +*************** case 442: +*** 4482,4495 **** + ; + break;} + case 443: +! #line 2497 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 444: +! #line 2503 "objc-parse.y" + { + objc_implementation_context + = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); +--- 4538,4551 ---- + ; + break;} + case 443: +! #line 2509 "objc-parse.y" + { + finish_class (objc_interface_context); + objc_interface_context = NULL_TREE; + ; + break;} + case 444: +! #line 2515 "objc-parse.y" + { + objc_implementation_context + = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); +*************** case 444: +*** 4498,4504 **** + ; + break;} + case 445: +! #line 2513 "objc-parse.y" + { + remember_protocol_qualifiers (); + objc_interface_context +--- 4554,4560 ---- + ; + break;} + case 445: +! #line 2525 "objc-parse.y" + { + remember_protocol_qualifiers (); + objc_interface_context +*************** case 445: +*** 4506,4512 **** + ; + break;} + case 446: +! #line 2519 "objc-parse.y" + { + forget_protocol_qualifiers(); + finish_protocol(objc_interface_context); +--- 4562,4568 ---- + ; + break;} + case 446: +! #line 2531 "objc-parse.y" + { + forget_protocol_qualifiers(); + finish_protocol(objc_interface_context); +*************** case 446: +*** 4514,4526 **** + ; + break;} + case 447: +! #line 2528 "objc-parse.y" + { + yyval.ttype = NULL_TREE; + ; + break;} + case 449: +! #line 2536 "objc-parse.y" + { + if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) + yyval.ttype = yyvsp[-1].ttype; +--- 4570,4582 ---- + ; + break;} + case 447: +! #line 2540 "objc-parse.y" + { + yyval.ttype = NULL_TREE; + ; + break;} + case 449: +! #line 2548 "objc-parse.y" + { + if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) + yyval.ttype = yyvsp[-1].ttype; +*************** case 449: +*** 4529,4560 **** + ; + break;} + case 452: +! #line 2550 "objc-parse.y" + { objc_public_flag = 2; ; + break;} + case 453: +! #line 2551 "objc-parse.y" + { objc_public_flag = 0; ; + break;} + case 454: +! #line 2552 "objc-parse.y" + { objc_public_flag = 1; ; + break;} + case 455: +! #line 2557 "objc-parse.y" + { + yyval.ttype = NULL_TREE; + ; + break;} + case 457: +! #line 2562 "objc-parse.y" + { + if (pedantic) + pedwarn ("extra semicolon in struct or union specified"); + ; + break;} + case 458: +! #line 2580 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 4585,4616 ---- + ; + break;} + case 452: +! #line 2562 "objc-parse.y" + { objc_public_flag = 2; ; + break;} + case 453: +! #line 2563 "objc-parse.y" + { objc_public_flag = 0; ; + break;} + case 454: +! #line 2564 "objc-parse.y" + { objc_public_flag = 1; ; + break;} + case 455: +! #line 2569 "objc-parse.y" + { + yyval.ttype = NULL_TREE; + ; + break;} + case 457: +! #line 2574 "objc-parse.y" + { + if (pedantic) + pedwarn ("extra semicolon in struct or union specified"); + ; + break;} + case 458: +! #line 2592 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 458: +*** 4562,4568 **** + resume_momentary (yyvsp[-1].itype); ; + break;} + case 459: +! #line 2586 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +--- 4618,4624 ---- + resume_momentary (yyvsp[-1].itype); ; + break;} + case 459: +! #line 2598 "objc-parse.y" + { yyval.ttype = yyvsp[0].ttype; + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); +*************** case 459: +*** 4570,4584 **** + resume_momentary (yyvsp[-1].itype); ; + break;} + case 460: +! #line 2592 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 461: +! #line 2597 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 464: +! #line 2604 "objc-parse.y" + { + yyval.ttype = add_instance_variable (objc_ivar_context, + objc_public_flag, +--- 4626,4640 ---- + resume_momentary (yyvsp[-1].itype); ; + break;} + case 460: +! #line 2604 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 461: +! #line 2609 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 464: +! #line 2616 "objc-parse.y" + { + yyval.ttype = add_instance_variable (objc_ivar_context, + objc_public_flag, +*************** case 464: +*** 4587,4593 **** + ; + break;} + case 465: +! #line 2611 "objc-parse.y" + { + yyval.ttype = add_instance_variable (objc_ivar_context, + objc_public_flag, +--- 4643,4649 ---- + ; + break;} + case 465: +! #line 2623 "objc-parse.y" + { + yyval.ttype = add_instance_variable (objc_ivar_context, + objc_public_flag, +*************** case 465: +*** 4595,4601 **** + ; + break;} + case 466: +! #line 2617 "objc-parse.y" + { + yyval.ttype = add_instance_variable (objc_ivar_context, + objc_public_flag, +--- 4651,4657 ---- + ; + break;} + case 466: +! #line 2629 "objc-parse.y" + { + yyval.ttype = add_instance_variable (objc_ivar_context, + objc_public_flag, +*************** case 466: +*** 4604,4610 **** + ; + break;} + case 467: +! #line 2627 "objc-parse.y" + { + remember_protocol_qualifiers (); + if (objc_implementation_context) +--- 4660,4666 ---- + ; + break;} + case 467: +! #line 2639 "objc-parse.y" + { + remember_protocol_qualifiers (); + if (objc_implementation_context) +*************** case 467: +*** 4614,4620 **** + ; + break;} + case 468: +! #line 2635 "objc-parse.y" + { + forget_protocol_qualifiers (); + add_class_method (objc_implementation_context, yyvsp[0].ttype); +--- 4670,4676 ---- + ; + break;} + case 468: +! #line 2647 "objc-parse.y" + { + forget_protocol_qualifiers (); + add_class_method (objc_implementation_context, yyvsp[0].ttype); +*************** case 468: +*** 4623,4642 **** + ; + break;} + case 469: +! #line 2642 "objc-parse.y" + { + continue_method_def (); + ; + break;} + case 470: +! #line 2646 "objc-parse.y" + { + finish_method_def (); + objc_method_context = NULL_TREE; + ; + break;} + case 471: +! #line 2652 "objc-parse.y" + { + remember_protocol_qualifiers (); + if (objc_implementation_context) +--- 4679,4698 ---- + ; + break;} + case 469: +! #line 2654 "objc-parse.y" + { + continue_method_def (); + ; + break;} + case 470: +! #line 2658 "objc-parse.y" + { + finish_method_def (); + objc_method_context = NULL_TREE; + ; + break;} + case 471: +! #line 2664 "objc-parse.y" + { + remember_protocol_qualifiers (); + if (objc_implementation_context) +*************** case 471: +*** 4646,4652 **** + ; + break;} + case 472: +! #line 2660 "objc-parse.y" + { + forget_protocol_qualifiers (); + add_instance_method (objc_implementation_context, yyvsp[0].ttype); +--- 4702,4708 ---- + ; + break;} + case 472: +! #line 2672 "objc-parse.y" + { + forget_protocol_qualifiers (); + add_instance_method (objc_implementation_context, yyvsp[0].ttype); +*************** case 472: +*** 4655,4682 **** + ; + break;} + case 473: +! #line 2667 "objc-parse.y" + { + continue_method_def (); + ; + break;} + case 474: +! #line 2671 "objc-parse.y" + { + finish_method_def (); + objc_method_context = NULL_TREE; + ; + break;} + case 476: +! #line 2683 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 481: +! #line 2690 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 485: +! #line 2700 "objc-parse.y" + { + /* Remember protocol qualifiers in prototypes. */ + remember_protocol_qualifiers (); +--- 4711,4738 ---- + ; + break;} + case 473: +! #line 2679 "objc-parse.y" + { + continue_method_def (); + ; + break;} + case 474: +! #line 2683 "objc-parse.y" + { + finish_method_def (); + objc_method_context = NULL_TREE; + ; + break;} + case 476: +! #line 2695 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 481: +! #line 2702 "objc-parse.y" + {yyval.ttype = NULL_TREE; ; + break;} + case 485: +! #line 2712 "objc-parse.y" + { + /* Remember protocol qualifiers in prototypes. */ + remember_protocol_qualifiers (); +*************** case 485: +*** 4684,4690 **** + ; + break;} + case 486: +! #line 2706 "objc-parse.y" + { + /* Forget protocol qualifiers here. */ + forget_protocol_qualifiers (); +--- 4740,4746 ---- + ; + break;} + case 486: +! #line 2718 "objc-parse.y" + { + /* Forget protocol qualifiers here. */ + forget_protocol_qualifiers (); +*************** case 486: +*** 4692,4698 **** + ; + break;} + case 488: +! #line 2714 "objc-parse.y" + { + /* Remember protocol qualifiers in prototypes. */ + remember_protocol_qualifiers (); +--- 4748,4754 ---- + ; + break;} + case 488: +! #line 2726 "objc-parse.y" + { + /* Remember protocol qualifiers in prototypes. */ + remember_protocol_qualifiers (); +*************** case 488: +*** 4700,4706 **** + ; + break;} + case 489: +! #line 2720 "objc-parse.y" + { + /* Forget protocol qualifiers here. */ + forget_protocol_qualifiers (); +--- 4756,4762 ---- + ; + break;} + case 489: +! #line 2732 "objc-parse.y" + { + /* Forget protocol qualifiers here. */ + forget_protocol_qualifiers (); +*************** case 489: +*** 4708,4801 **** + ; + break;} + case 491: +! #line 2730 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); + ; + break;} + case 492: +! #line 2735 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); + ; + break;} + case 493: +! #line 2740 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 494: +! #line 2745 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 503: +! #line 2775 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 504: +! #line 2780 "objc-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 505: +! #line 2782 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 506: +! #line 2787 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 507: +! #line 2789 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 508: +! #line 2797 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, + yyvsp[0].ttype)); ; + break;} + case 509: +! #line 2802 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, + yyvsp[0].ttype)); ; + break;} + case 510: +! #line 2807 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, + yyvsp[0].ttype)); ; + break;} + case 511: +! #line 2815 "objc-parse.y" + { + yyval.ttype = NULL_TREE; + ; + break;} + case 512: +! #line 2819 "objc-parse.y" + { + /* oh what a kludge! */ + yyval.ttype = (tree)1; + ; + break;} + case 513: +! #line 2824 "objc-parse.y" + { + pushlevel (0); + ; + break;} + case 514: +! #line 2828 "objc-parse.y" + { + /* returns a tree list node generated by get_parm_info */ + yyval.ttype = yyvsp[0].ttype; +--- 4764,4857 ---- + ; + break;} + case 491: +! #line 2742 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); + ; + break;} + case 492: +! #line 2747 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); + ; + break;} + case 493: +! #line 2752 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 494: +! #line 2757 "objc-parse.y" + { + yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 503: +! #line 2787 "objc-parse.y" + { current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-2].itype); ; + break;} + case 504: +! #line 2792 "objc-parse.y" + { shadow_tag (yyvsp[-1].ttype); ; + break;} + case 505: +! #line 2794 "objc-parse.y" + { pedwarn ("empty declaration"); ; + break;} + case 506: +! #line 2799 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 507: +! #line 2801 "objc-parse.y" + { push_parm_decl (yyvsp[0].ttype); ; + break;} + case 508: +! #line 2809 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, + yyvsp[0].ttype)); ; + break;} + case 509: +! #line 2814 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, + yyvsp[0].ttype)); ; + break;} + case 510: +! #line 2819 "objc-parse.y" + { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, + yyvsp[-1].ttype), + build_tree_list (prefix_attributes, + yyvsp[0].ttype)); ; + break;} + case 511: +! #line 2827 "objc-parse.y" + { + yyval.ttype = NULL_TREE; + ; + break;} + case 512: +! #line 2831 "objc-parse.y" + { + /* oh what a kludge! */ + yyval.ttype = (tree)1; + ; + break;} + case 513: +! #line 2836 "objc-parse.y" + { + pushlevel (0); + ; + break;} + case 514: +! #line 2840 "objc-parse.y" + { + /* returns a tree list node generated by get_parm_info */ + yyval.ttype = yyvsp[0].ttype; +*************** case 514: +*** 4803,4921 **** + ; + break;} + case 517: +! #line 2843 "objc-parse.y" + { + yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 522: +! #line 2856 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 523: +! #line 2857 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 524: +! #line 2858 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 525: +! #line 2859 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 526: +! #line 2860 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 527: +! #line 2861 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 528: +! #line 2862 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 529: +! #line 2863 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 530: +! #line 2864 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 531: +! #line 2865 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 532: +! #line 2866 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 533: +! #line 2867 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 534: +! #line 2868 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 535: +! #line 2869 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 536: +! #line 2870 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 537: +! #line 2871 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 538: +! #line 2872 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 539: +! #line 2873 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 540: +! #line 2874 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 543: +! #line 2880 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 544: +! #line 2885 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); + ; + break;} + case 545: +! #line 2890 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 546: +! #line 2895 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); + ; + break;} + case 550: +! #line 2908 "objc-parse.y" + { + yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 551: +! #line 2916 "objc-parse.y" + { + if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) + /* just return the expr., remove a level of indirection */ +--- 4859,4977 ---- + ; + break;} + case 517: +! #line 2855 "objc-parse.y" + { + yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 522: +! #line 2868 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 523: +! #line 2869 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 524: +! #line 2870 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 525: +! #line 2871 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 526: +! #line 2872 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 527: +! #line 2873 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 528: +! #line 2874 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 529: +! #line 2875 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 530: +! #line 2876 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 531: +! #line 2877 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 532: +! #line 2878 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 533: +! #line 2879 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 534: +! #line 2880 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 535: +! #line 2881 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 536: +! #line 2882 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 537: +! #line 2883 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 538: +! #line 2884 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 539: +! #line 2885 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 540: +! #line 2886 "objc-parse.y" + { yyval.ttype = get_identifier (token_buffer); ; + break;} + case 543: +! #line 2892 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 544: +! #line 2897 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); + ; + break;} + case 545: +! #line 2902 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 546: +! #line 2907 "objc-parse.y" + { + yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); + ; + break;} + case 550: +! #line 2920 "objc-parse.y" + { + yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 551: +! #line 2928 "objc-parse.y" + { + if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) + /* just return the expr., remove a level of indirection */ +*************** case 551: +*** 4926,5001 **** + ; + break;} + case 552: +! #line 2928 "objc-parse.y" + { + yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 553: +! #line 2932 "objc-parse.y" + { + yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); + ; + break;} + case 555: +! #line 2940 "objc-parse.y" + { + yyval.ttype = get_class_reference (yyvsp[0].ttype); + ; + break;} + case 556: +! #line 2947 "objc-parse.y" + { objc_receiver_context = 1; ; + break;} + case 557: +! #line 2949 "objc-parse.y" + { objc_receiver_context = 0; ; + break;} + case 558: +! #line 2951 "objc-parse.y" + { + yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); + ; + break;} + case 562: +! #line 2964 "objc-parse.y" + { + yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 563: +! #line 2971 "objc-parse.y" + { + yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); + ; + break;} + case 564: +! #line 2975 "objc-parse.y" + { + yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); + ; + break;} + case 565: +! #line 2982 "objc-parse.y" + { + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 566: +! #line 2989 "objc-parse.y" + { + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 567: +! #line 2998 "objc-parse.y" + { + yyval.ttype = groktypename (yyvsp[-1].ttype); + ; + break;} + } + /* the action file gets copied in in place of this dollarsign */ +! #line 498 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +--- 4982,5057 ---- + ; + break;} + case 552: +! #line 2940 "objc-parse.y" + { + yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); + ; + break;} + case 553: +! #line 2944 "objc-parse.y" + { + yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); + ; + break;} + case 555: +! #line 2952 "objc-parse.y" + { + yyval.ttype = get_class_reference (yyvsp[0].ttype); + ; + break;} + case 556: +! #line 2959 "objc-parse.y" + { objc_receiver_context = 1; ; + break;} + case 557: +! #line 2961 "objc-parse.y" + { objc_receiver_context = 0; ; + break;} + case 558: +! #line 2963 "objc-parse.y" + { + yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); + ; + break;} + case 562: +! #line 2976 "objc-parse.y" + { + yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); + ; + break;} + case 563: +! #line 2983 "objc-parse.y" + { + yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); + ; + break;} + case 564: +! #line 2987 "objc-parse.y" + { + yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); + ; + break;} + case 565: +! #line 2994 "objc-parse.y" + { + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 566: +! #line 3001 "objc-parse.y" + { + yyval.ttype = yyvsp[-1].ttype; + ; + break;} + case 567: +! #line 3010 "objc-parse.y" + { + yyval.ttype = groktypename (yyvsp[-1].ttype); + ; + break;} + } + /* the action file gets copied in in place of this dollarsign */ +! #line 543 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +*************** yyerrhandle: +*** 5190,5195 **** + + yystate = yyn; + goto yynewstate; + } +! #line 3003 "objc-parse.y" + +--- 5246,5275 ---- + + yystate = yyn; + goto yynewstate; ++ ++ yyacceptlab: ++ /* YYACCEPT comes here. */ ++ if (yyfree_stacks) ++ { ++ free (yyss); ++ free (yyvs); ++ #ifdef YYLSP_NEEDED ++ free (yyls); ++ #endif ++ } ++ return 0; ++ ++ yyabortlab: ++ /* YYABORT comes here. */ ++ if (yyfree_stacks) ++ { ++ free (yyss); ++ free (yyvs); ++ #ifdef YYLSP_NEEDED ++ free (yyls); ++ #endif ++ } ++ return 1; + } +! #line 3015 "objc-parse.y" + +diff -c3rpN gcc-2.95.3.orig/gcc/objc/objc-parse.y gcc-2.95.4/gcc/objc/objc-parse.y +*** gcc-2.95.3.orig/gcc/objc/objc-parse.y Mon Apr 26 23:35:58 1999 +--- gcc-2.95.4/gcc/objc/objc-parse.y Wed Jun 6 01:38:19 2001 +*************** char *language_string = "GNU Obj-C"; +*** 152,158 **** + %type init maybeasm + %type asm_operands nonnull_asm_operands asm_operand asm_clobbers + %type maybe_attribute attributes attribute attribute_list attrib +! %type any_word + + %type compstmt + +--- 152,158 ---- + %type init maybeasm + %type asm_operands nonnull_asm_operands asm_operand asm_clobbers + %type maybe_attribute attributes attribute attribute_list attrib +! %type any_word extension + + %type compstmt + +*************** static tree declspec_stack; +*** 211,216 **** +--- 211,227 ---- + /* 1 if we explained undeclared var errors. */ + static int undeclared_variable_notice; + ++ /* For __extension__, save/restore the warning flags which are ++ controlled by __extension__. */ ++ #define SAVE_WARN_FLAGS() \ ++ build_int_2 (pedantic | (warn_pointer_arith << 1), 0) ++ #define RESTORE_WARN_FLAGS(tval) \ ++ do { \ ++ int val = TREE_INT_CST_LOW (tval); \ ++ pedantic = val & 1; \ ++ warn_pointer_arith = (val >> 1) & 1; \ ++ } while (0) ++ + /* Objective-C specific information */ + + tree objc_interface_context; +*************** extdef: +*** 267,273 **** + else + error ("argument of `asm' is not a constant string"); } + | extension extdef +! { pedantic = $1; } + ; + + datadef: +--- 278,284 ---- + else + error ("argument of `asm' is not a constant string"); } + | extension extdef +! { RESTORE_WARN_FLAGS ($1); } + ; + + datadef: +*************** unary_expr: +*** 406,412 **** + /* __extension__ turns off -pedantic for following primary. */ + | extension cast_expr %prec UNARY + { $$ = $2; +! pedantic = $1; } + | unop cast_expr %prec UNARY + { $$ = build_unary_op ($1, $2, 0); + overflow_warning ($$); } +--- 417,423 ---- + /* __extension__ turns off -pedantic for following primary. */ + | extension cast_expr %prec UNARY + { $$ = $2; +! RESTORE_WARN_FLAGS ($1); } + | unop cast_expr %prec UNARY + { $$ = build_unary_op ($1, $2, 0); + overflow_warning ($$); } +*************** decl: +*** 957,963 **** + | declmods ';' + { pedwarn ("empty declaration"); } + | extension decl +! { pedantic = $1; } + ; + + /* Declspecs which contain at least one type specifier or typedef name. +--- 968,974 ---- + | declmods ';' + { pedwarn ("empty declaration"); } + | extension decl +! { RESTORE_WARN_FLAGS ($1); } + ; + + /* Declspecs which contain at least one type specifier or typedef name. +*************** component_decl: +*** 1530,1536 **** + { $$ = NULL_TREE; } + | extension component_decl + { $$ = $2; +! pedantic = $1; } + ; + + components: +--- 1541,1547 ---- + { $$ = NULL_TREE; } + | extension component_decl + { $$ = $2; +! RESTORE_WARN_FLAGS ($1); } + ; + + components: +*************** identifiers_or_typenames: +*** 2340,2347 **** + + extension: + EXTENSION +! { $$ = pedantic; +! pedantic = 0; } + ; + + /* Objective-C productions. */ +--- 2351,2359 ---- + + extension: + EXTENSION +! { $$ = SAVE_WARN_FLAGS(); +! pedantic = 0; +! warn_pointer_arith = 0; } + ; + + /* Objective-C productions. */ +diff -c3rpN gcc-2.95.3.orig/gcc/po/gcc.pot gcc-2.95.4/gcc/po/gcc.pot +*** gcc-2.95.3.orig/gcc/po/gcc.pot Fri Mar 16 14:13:48 2001 +--- gcc-2.95.4/gcc/po/gcc.pot Thu Jan 1 00:00:00 1970 +*************** +*** 1,8407 **** +- # SOME DESCRIPTIVE TITLE. +- # Copyright (C) YEAR Free Software Foundation, Inc. +- # FIRST AUTHOR , YEAR. +- # +- #, fuzzy +- msgid "" +- msgstr "" +- "Project-Id-Version: PACKAGE VERSION\n" +- "POT-Creation-Date: 1999-07-27 01:41-0600\n" +- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +- "Last-Translator: FULL NAME \n" +- "Language-Team: LANGUAGE \n" +- "MIME-Version: 1.0\n" +- "Content-Type: text/plain; charset=CHARSET\n" +- "Content-Transfer-Encoding: ENCODING\n" +- +- #: c-common.c:472 +- #, c-format +- msgid "`%s' attribute directive ignored" +- msgstr "" +- +- #: c-common.c:480 +- #, c-format +- msgid "`%s' attribute does not apply to types" +- msgstr "" +- +- #: c-common.c:487 +- #, c-format +- msgid "wrong number of arguments specified for `%s' attribute" +- msgstr "" +- +- #: c-common.c:503 c-common.c:510 c-common.c:517 c-common.c:530 c-common.c:542 +- #: c-common.c:555 c-common.c:570 c-common.c:582 c-common.c:594 c-common.c:599 +- #: c-common.c:910 c-common.c:1036 +- #, c-format +- msgid "`%s' attribute ignored" +- msgstr "" +- +- #: c-common.c:632 +- #, c-format +- msgid "unknown machine mode `%s'" +- msgstr "" +- +- #: c-common.c:635 +- #, c-format +- msgid "no data type for mode `%s'" +- msgstr "" +- +- #: c-common.c:655 +- msgid "section attribute cannot be specified for local variables" +- msgstr "" +- +- #: c-common.c:662 +- #, c-format +- msgid "section of `%s' conflicts with previous declaration" +- msgstr "" +- +- #: c-common.c:668 +- #, c-format +- msgid "section attribute not allowed for `%s'" +- msgstr "" +- +- #: c-common.c:671 +- msgid "section attributes are not supported for this target" +- msgstr "" +- +- #: c-common.c:690 +- msgid "requested alignment is not a constant" +- msgstr "" +- +- #: c-common.c:697 +- msgid "requested alignment is not a power of 2" +- msgstr "" +- +- #: c-common.c:703 +- #, c-format +- msgid "alignment may not be specified for `%s'" +- msgstr "" +- +- #: c-common.c:724 c-common.c:827 +- #, c-format +- msgid "argument format specified for non-function `%s'" +- msgstr "" +- +- #: c-common.c:730 +- msgid "unrecognized format specifier" +- msgstr "" +- +- #: c-common.c:746 +- #, c-format +- msgid "`%s' is an unrecognized format function type" +- msgstr "" +- +- #: c-common.c:766 c-common.c:840 +- msgid "format string has non-constant operand number" +- msgstr "" +- +- #: c-common.c:774 +- msgid "format string arg follows the args to be formatted" +- msgstr "" +- +- #: c-common.c:795 c-common.c:863 +- msgid "format string arg not a string type" +- msgstr "" +- +- #: c-common.c:806 +- msgid "args to be formatted is not ..." +- msgstr "" +- +- #: c-common.c:872 +- msgid "function does not return string type" +- msgstr "" +- +- #: c-common.c:890 +- #, c-format +- msgid "`%s' defined both normally and as an alias" +- msgstr "" +- +- #: c-common.c:898 +- msgid "alias arg not a string" +- msgstr "" +- +- #: c-common.c:917 c-common.c:934 +- #, c-format +- msgid "`%s' attribute applies only to functions" +- msgstr "" +- +- #: c-common.c:923 c-common.c:940 +- #, c-format +- msgid "can't set `%s' attribute after definition" +- msgstr "" +- +- #: c-common.c:1291 +- msgid "too few arguments for format" +- msgstr "" +- +- #: c-common.c:1400 +- msgid "null format string" +- msgstr "" +- +- #: c-common.c:1411 +- msgid "zero-length format string" +- msgstr "" +- +- #: c-common.c:1414 +- msgid "unterminated format string" +- msgstr "" +- +- #: c-common.c:1433 +- msgid "embedded `\\0' in format" +- msgstr "" +- +- #: c-common.c:1435 +- msgid "too many arguments for format" +- msgstr "" +- +- #: c-common.c:1442 +- msgid "spurious trailing `%%' in format" +- msgstr "" +- +- #: c-common.c:1465 +- #, c-format +- msgid "ANSI C does not support the strftime `%c' flag" +- msgstr "" +- +- #: c-common.c:1469 c-common.c:1533 +- #, c-format +- msgid "repeated `%c' flag in format" +- msgstr "" +- +- #: c-common.c:1486 +- msgid "ANSI C does not support strftime format width" +- msgstr "" +- +- #: c-common.c:1494 +- msgid "multiple E/O modifiers in format" +- msgstr "" +- +- #: c-common.c:1524 +- msgid "operand number out of range in format" +- msgstr "" +- +- #: c-common.c:1545 +- msgid "use of both ` ' and `+' flags in format" +- msgstr "" +- +- #: c-common.c:1550 +- msgid "use of both `0' and `-' flags in format" +- msgstr "" +- +- #: c-common.c:1576 c-common.c:1610 +- #, c-format +- msgid "field width is not type int (arg %d)" +- msgstr "" +- +- #: c-common.c:1592 +- msgid "`.' not followed by `*' or digit in format" +- msgstr "" +- +- #: c-common.c:1632 +- #, c-format +- msgid "ANSI C does not support the `%c' length modifier" +- msgstr "" +- +- #: c-common.c:1639 +- msgid "ANSI C does not support the `Z' length modifier" +- msgstr "" +- +- #: c-common.c:1648 +- msgid "ANSI C does not support the `ll' length modifier" +- msgstr "" +- +- #: c-common.c:1655 +- msgid "ANSI C does not support the `hh' length modifier" +- msgstr "" +- +- #: c-common.c:1668 +- #, c-format +- msgid "use of `*' and `%c' together in format" +- msgstr "" +- +- #: c-common.c:1674 +- msgid "conversion lacks type at end of format" +- msgstr "" +- +- #: c-common.c:1680 c-common.c:1685 +- #, c-format +- msgid "ANSI C does not support the `%c' format" +- msgstr "" +- +- #: c-common.c:1707 +- #, c-format +- msgid "unknown conversion type character `%c' in format" +- msgstr "" +- +- #: c-common.c:1710 +- #, c-format +- msgid "unknown conversion type character 0x%x in format" +- msgstr "" +- +- #: c-common.c:1717 +- msgid "ANSI C does not support `%%%c'" +- msgstr "" +- +- #: c-common.c:1720 +- msgid "ANSI C does not support `%%O%c'" +- msgstr "" +- +- #: c-common.c:1723 +- #, c-format +- msgid "width used with `%c' format" +- msgstr "" +- +- #: c-common.c:1725 +- msgid "`%%%c' yields only last 2 digits of year" +- msgstr "" +- +- #: c-common.c:1727 +- msgid "`%%%c' yields only last 2 digits of year in some locales" +- msgstr "" +- +- #: c-common.c:1730 +- #, c-format +- msgid "precision used with `%c' format" +- msgstr "" +- +- #: c-common.c:1733 +- #, c-format +- msgid "`a' flag used with `%c' format" +- msgstr "" +- +- #: c-common.c:1739 +- msgid "ANSI C does not support the `a' flag" +- msgstr "" +- +- #. The end of the format string was reached. +- #: c-common.c:1753 +- msgid "no closing `]' for `%%[' format" +- msgstr "" +- +- #: c-common.c:1758 +- #, c-format +- msgid "suppression of `%c' conversion in format" +- msgstr "" +- +- #: c-common.c:1764 +- #, c-format +- msgid "flag `%c' used with type `%c'" +- msgstr "" +- +- #: c-common.c:1773 +- #, c-format +- msgid "`0' flag ignored with precision specifier and `%c' format" +- msgstr "" +- +- #: c-common.c:1786 +- #, c-format +- msgid "use of `%c' length character with `%c' type character" +- msgstr "" +- +- #: c-common.c:1824 +- #, c-format +- msgid "format argument is not a pointer (arg %d)" +- msgstr "" +- +- #: c-common.c:1825 +- #, c-format +- msgid "format argument is not a pointer to a pointer (arg %d)" +- msgstr "" +- +- #: c-common.c:1843 +- #, c-format +- msgid "writing into constant object (arg %d)" +- msgstr "" +- +- #: c-common.c:1903 +- #, c-format +- msgid "%s format, %s arg (arg %d)" +- msgstr "" +- +- #: c-common.c:1921 +- msgid "overflow in constant expression" +- msgstr "" +- +- #: c-common.c:1942 +- msgid "integer overflow in expression" +- msgstr "" +- +- #: c-common.c:1951 +- msgid "floating point overflow in expression" +- msgstr "" +- +- #. This detects cases like converting -129 or 256 to unsigned char. +- #: c-common.c:1972 +- msgid "large integer implicitly truncated to unsigned type" +- msgstr "" +- +- #: c-common.c:1974 +- msgid "negative integer implicitly converted to unsigned type" +- msgstr "" +- +- #: c-common.c:2007 +- msgid "overflow in implicit constant conversion" +- msgstr "" +- +- #: c-common.c:2028 +- msgid "expression statement has incomplete type" +- msgstr "" +- +- #: c-common.c:2048 +- msgid "case label does not reduce to an integer constant" +- msgstr "" +- +- #: c-common.c:2201 +- msgid "invalid truth-value expression" +- msgstr "" +- +- #: c-common.c:2252 +- #, c-format +- msgid "invalid operands to binary %s" +- msgstr "" +- +- #: c-common.c:2487 c-common.c:2496 +- msgid "comparison is always false due to limited range of data type" +- msgstr "" +- +- #: c-common.c:2489 c-common.c:2498 +- msgid "comparison is always true due to limited range of data type" +- msgstr "" +- +- #: c-common.c:2564 +- msgid "comparison of unsigned expression >= 0 is always true" +- msgstr "" +- +- #: c-common.c:2573 +- msgid "comparison of unsigned expression < 0 is always false" +- msgstr "" +- +- #: c-common.c:2624 +- msgid "struct type value used where scalar is required" +- msgstr "" +- +- #: c-common.c:2628 +- msgid "union type value used where scalar is required" +- msgstr "" +- +- #: c-common.c:2632 +- msgid "array type value used where scalar is required" +- msgstr "" +- +- #: c-common.c:2764 +- msgid "suggest parentheses around assignment used as truth value" +- msgstr "" +- +- #: c-common.c:2987 c-common.c:3017 +- msgid "invalid use of `restrict'" +- msgstr "" +- +- #: c-convert.c:75 c-typeck.c:1065 c-typeck.c:4073 cp/typeck.c:1760 +- #: cp/typeck.c:6780 +- msgid "void value not ignored as it ought to be" +- msgstr "" +- +- #: c-convert.c:95 +- msgid "conversion to non-scalar type requested" +- msgstr "" +- +- #: c-decl.c:697 +- #, c-format +- msgid "unknown C standard `%s'" +- msgstr "" +- +- #: c-decl.c:948 +- #, c-format +- msgid "array `%s' assumed to have one element" +- msgstr "" +- +- #: c-decl.c:1125 +- #, c-format +- msgid "`struct %s' incomplete in scope ending here" +- msgstr "" +- +- #: c-decl.c:1128 +- #, c-format +- msgid "`union %s' incomplete in scope ending here" +- msgstr "" +- +- #: c-decl.c:1131 +- #, c-format +- msgid "`enum %s' incomplete in scope ending here" +- msgstr "" +- +- #: c-decl.c:1247 c-decl.c:1408 +- #, c-format +- msgid "label `%s' used but not defined" +- msgstr "" +- +- #: c-decl.c:1253 c-decl.c:1415 +- #, c-format +- msgid "label `%s' defined but not used" +- msgstr "" +- +- #: c-decl.c:1540 c-decl.c:1593 +- #, c-format +- msgid "shadowing built-in function `%s'" +- msgstr "" +- +- #: c-decl.c:1542 +- #, c-format +- msgid "shadowing library function `%s'" +- msgstr "" +- +- #: c-decl.c:1548 +- #, c-format +- msgid "library function `%s' declared as non-function" +- msgstr "" +- +- #: c-decl.c:1552 c-decl.c:1555 +- #, c-format +- msgid "built-in function `%s' declared as non-function" +- msgstr "" +- +- #: c-decl.c:1559 objc/objc-act.c:2448 objc/objc-act.c:6166 +- #, c-format +- msgid "`%s' redeclared as different kind of symbol" +- msgstr "" +- +- #: c-decl.c:1560 c-decl.c:1752 c-decl.c:1898 objc/objc-act.c:2450 +- #: objc/objc-act.c:6168 objc/objc-act.c:6222 +- #, c-format +- msgid "previous declaration of `%s'" +- msgstr "" +- +- #. If types don't match for a built-in, throw away the built-in. +- #: c-decl.c:1655 +- #, c-format +- msgid "conflicting types for built-in function `%s'" +- msgstr "" +- +- #: c-decl.c:1698 c-decl.c:1717 +- #, c-format +- msgid "conflicting types for `%s'" +- msgstr "" +- +- #: c-decl.c:1740 +- msgid "" +- "A parameter list with an ellipsis can't match an empty parameter name list " +- "declaration." +- msgstr "" +- +- #: c-decl.c:1747 +- msgid "" +- "An argument type that has a default promotion can't match an empty parameter " +- "name list declaration." +- msgstr "" +- +- #: c-decl.c:1762 c-decl.c:1784 +- #, c-format +- msgid "redefinition of `%s'" +- msgstr "" +- +- #: c-decl.c:1765 +- #, c-format +- msgid "redeclaration of `%s'" +- msgstr "" +- +- #: c-decl.c:1768 +- #, c-format +- msgid "conflicting declarations of `%s'" +- msgstr "" +- +- #: c-decl.c:1777 c-decl.c:1789 +- #, c-format +- msgid "`%s' previously defined here" +- msgstr "" +- +- #: c-decl.c:1778 c-decl.c:1790 +- #, c-format +- msgid "`%s' previously declared here" +- msgstr "" +- +- #: c-decl.c:1811 +- #, c-format +- msgid "prototype for `%s' follows" +- msgstr "" +- +- #: c-decl.c:1812 c-decl.c:1819 c-decl.c:1835 +- msgid "non-prototype definition here" +- msgstr "" +- +- #: c-decl.c:1818 +- #, c-format +- msgid "prototype for `%s' follows and number of arguments doesn't match" +- msgstr "" +- +- #: c-decl.c:1833 +- #, c-format +- msgid "prototype for `%s' follows and argument %d doesn't match" +- msgstr "" +- +- #: c-decl.c:1850 +- #, c-format +- msgid "`%s' declared inline after being called" +- msgstr "" +- +- #: c-decl.c:1855 +- #, c-format +- msgid "`%s' declared inline after its definition" +- msgstr "" +- +- #: c-decl.c:1862 +- #, c-format +- msgid "static declaration for `%s' follows non-static" +- msgstr "" +- +- #: c-decl.c:1870 +- #, c-format +- msgid "non-static declaration for `%s' follows static" +- msgstr "" +- +- #: c-decl.c:1877 +- #, c-format +- msgid "const declaration for `%s' follows non-const" +- msgstr "" +- +- #: c-decl.c:1884 +- #, c-format +- msgid "type qualifiers for `%s' conflict with previous decl" +- msgstr "" +- +- #: c-decl.c:1897 +- #, c-format +- msgid "redundant redeclaration of `%s' in same scope" +- msgstr "" +- +- #: c-decl.c:2164 +- #, c-format +- msgid "nested extern declaration of `%s'" +- msgstr "" +- +- #: c-decl.c:2189 +- #, c-format +- msgid "`%s' used prior to declaration" +- msgstr "" +- +- #: c-decl.c:2210 c-decl.c:2423 +- #, c-format +- msgid "`%s' was declared implicitly `extern' and later `static'" +- msgstr "" +- +- #: c-decl.c:2318 +- msgid "type mismatch with previous external decl" +- msgstr "" +- +- #: c-decl.c:2319 +- #, c-format +- msgid "previous external decl of `%s'" +- msgstr "" +- +- #: c-decl.c:2332 +- msgid "type mismatch with previous implicit declaration" +- msgstr "" +- +- #: c-decl.c:2334 +- #, c-format +- msgid "previous implicit declaration of `%s'" +- msgstr "" +- +- #: c-decl.c:2351 +- #, c-format +- msgid "type of external `%s' is not global" +- msgstr "" +- +- #: c-decl.c:2402 +- #, c-format +- msgid "`%s' was previously implicitly declared to return `int'" +- msgstr "" +- +- #: c-decl.c:2427 +- #, c-format +- msgid "`%s' was declared `extern' and later `static'" +- msgstr "" +- +- #: c-decl.c:2449 +- #, c-format +- msgid "extern declaration of `%s' doesn't match global one" +- msgstr "" +- +- #: c-decl.c:2487 +- #, c-format +- msgid "`%s' locally external but globally static" +- msgstr "" +- +- #: c-decl.c:2523 c-decl.c:2548 +- #, c-format +- msgid "declaration of `%s' shadows a parameter" +- msgstr "" +- +- #: c-decl.c:2526 +- #, c-format +- msgid "declaration of `%s' shadows a symbol from the parameter list" +- msgstr "" +- +- #: c-decl.c:2550 +- #, c-format +- msgid "declaration of `%s' shadows previous local" +- msgstr "" +- +- #: c-decl.c:2553 +- #, c-format +- msgid "declaration of `%s' shadows global declaration" +- msgstr "" +- +- #: c-decl.c:2641 c-decl.c:2644 +- #, c-format +- msgid "implicit declaration of function `%s'" +- msgstr "" +- +- #: c-decl.c:2648 +- #, c-format +- msgid "function `%s' was previously declared within a block" +- msgstr "" +- +- #: c-decl.c:2745 +- #, c-format +- msgid "label %s referenced outside of any function" +- msgstr "" +- +- #: c-decl.c:2805 +- #, c-format +- msgid "duplicate label declaration `%s'" +- msgstr "" +- +- #: c-decl.c:2808 +- msgid "this is a previous declaration" +- msgstr "" +- +- #: c-decl.c:2842 +- #, c-format +- msgid "duplicate label `%s'" +- msgstr "" +- +- #: c-decl.c:3700 +- msgid "unnamed struct/union that defines no instances" +- msgstr "" +- +- #: c-decl.c:3719 +- msgid "useless keyword or type name in empty declaration" +- msgstr "" +- +- #: c-decl.c:3726 +- msgid "two types specified in one empty declaration" +- msgstr "" +- +- #: c-decl.c:3731 c-parse.y:294 c-parse.y:797 c-parse.y:799 c-parse.y:861 +- #: objc-parse.y:295 objc-parse.y:894 objc-parse.y:896 objc-parse.y:958 +- #: objc-parse.y:2782 parse.y:609 parse.y:1659 +- msgid "empty declaration" +- msgstr "" +- +- #: c-decl.c:3796 +- #, c-format +- msgid "`%s' is usually a function" +- msgstr "" +- +- #: c-decl.c:3810 +- #, c-format +- msgid "typedef `%s' is initialized" +- msgstr "" +- +- #: c-decl.c:3817 +- #, c-format +- msgid "function `%s' is initialized like a variable" +- msgstr "" +- +- #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +- #: c-decl.c:3824 +- #, c-format +- msgid "parameter `%s' is initialized" +- msgstr "" +- +- #: c-decl.c:3839 c-typeck.c:4909 +- msgid "variable-sized object may not be initialized" +- msgstr "" +- +- #: c-decl.c:3845 +- #, c-format +- msgid "variable `%s' has initializer but incomplete type" +- msgstr "" +- +- #: c-decl.c:3851 +- #, c-format +- msgid "elements of array `%s' have incomplete type" +- msgstr "" +- +- #: c-decl.c:3863 +- #, c-format +- msgid "declaration of `%s' has `extern' and is initialized" +- msgstr "" +- +- #: c-decl.c:3956 +- msgid "iterator has no initial value" +- msgstr "" +- +- #: c-decl.c:4002 +- #, c-format +- msgid "initializer fails to determine size of `%s'" +- msgstr "" +- +- #: c-decl.c:4007 +- #, c-format +- msgid "array size missing in `%s'" +- msgstr "" +- +- #: c-decl.c:4023 +- #, c-format +- msgid "zero or negative size array `%s'" +- msgstr "" +- +- #: c-decl.c:4052 +- #, c-format +- msgid "storage size of `%s' isn't known" +- msgstr "" +- +- #: c-decl.c:4062 +- #, c-format +- msgid "storage size of `%s' isn't constant" +- msgstr "" +- +- #: c-decl.c:4188 cp/decl.c:8407 +- #, c-format +- msgid "size of `%s' is %u bytes" +- msgstr "" +- +- #: c-decl.c:4250 +- #, c-format +- msgid "ANSI C forbids parameter `%s' shadowing typedef" +- msgstr "" +- +- #: c-decl.c:4489 cp/decl.c:9733 +- msgid "`long long long' is too long for GCC" +- msgstr "" +- +- #: c-decl.c:4493 +- msgid "ANSI C does not support `long long'" +- msgstr "" +- +- #: c-decl.c:4498 cp/decl.c:9738 +- #, c-format +- msgid "duplicate `%s'" +- msgstr "" +- +- #: c-decl.c:4504 cp/decl.c:9758 +- #, c-format +- msgid "two or more data types in declaration of `%s'" +- msgstr "" +- +- #: c-decl.c:4519 cp/decl.c:9763 +- #, c-format +- msgid "`%s' fails to be a typedef or built in type" +- msgstr "" +- +- #: c-decl.c:4555 +- #, c-format +- msgid "type defaults to `int' in declaration of `%s'" +- msgstr "" +- +- #: c-decl.c:4583 +- #, c-format +- msgid "both long and short specified for `%s'" +- msgstr "" +- +- #: c-decl.c:4587 cp/decl.c:9898 +- #, c-format +- msgid "long or short specified with char for `%s'" +- msgstr "" +- +- #: c-decl.c:4594 cp/decl.c:9902 +- #, c-format +- msgid "long or short specified with floating type for `%s'" +- msgstr "" +- +- #: c-decl.c:4597 +- msgid "the only valid combination is `long double'" +- msgstr "" +- +- #: c-decl.c:4603 +- #, c-format +- msgid "both signed and unsigned specified for `%s'" +- msgstr "" +- +- #: c-decl.c:4605 cp/decl.c:9891 +- #, c-format +- msgid "long, short, signed or unsigned invalid for `%s'" +- msgstr "" +- +- #: c-decl.c:4611 cp/decl.c:9911 +- #, c-format +- msgid "long, short, signed or unsigned used invalidly for `%s'" +- msgstr "" +- +- #: c-decl.c:4630 cp/decl.c:9932 +- #, c-format +- msgid "complex invalid for `%s'" +- msgstr "" +- +- #: c-decl.c:4706 c-decl.c:5085 cp/decl.c:10761 +- msgid "duplicate `const'" +- msgstr "" +- +- #: c-decl.c:4708 c-decl.c:5089 cp/decl.c:10765 +- msgid "duplicate `restrict'" +- msgstr "" +- +- #: c-decl.c:4710 c-decl.c:5087 cp/decl.c:10763 +- msgid "duplicate `volatile'" +- msgstr "" +- +- #: c-decl.c:4733 cp/decl.c:10125 +- #, c-format +- msgid "multiple storage classes in declaration of `%s'" +- msgstr "" +- +- #: c-decl.c:4742 +- msgid "function definition declared `auto'" +- msgstr "" +- +- #: c-decl.c:4744 +- msgid "function definition declared `register'" +- msgstr "" +- +- #: c-decl.c:4746 +- msgid "function definition declared `typedef'" +- msgstr "" +- +- #: c-decl.c:4757 +- #, c-format +- msgid "storage class specified for structure field `%s'" +- msgstr "" +- +- #: c-decl.c:4759 cp/decl.c:10167 +- #, c-format +- msgid "storage class specified for parameter `%s'" +- msgstr "" +- +- #: c-decl.c:4760 cp/decl.c:10168 +- msgid "storage class specified for typename" +- msgstr "" +- +- #: c-decl.c:4771 cp/decl.c:10187 +- #, c-format +- msgid "`%s' initialized and declared `extern'" +- msgstr "" +- +- #: c-decl.c:4773 cp/decl.c:10190 +- #, c-format +- msgid "`%s' has both `extern' and initializer" +- msgstr "" +- +- #: c-decl.c:4777 cp/decl.c:10194 +- #, c-format +- msgid "nested function `%s' declared `extern'" +- msgstr "" +- +- #: c-decl.c:4780 cp/decl.c:10198 +- #, c-format +- msgid "top-level declaration of `%s' specifies `auto'" +- msgstr "" +- +- #: c-decl.c:4784 +- #, c-format +- msgid "iterator `%s' has derived type" +- msgstr "" +- +- #: c-decl.c:4790 +- #, c-format +- msgid "iterator `%s' has noninteger type" +- msgstr "" +- +- #: c-decl.c:4836 +- #, c-format +- msgid "declaration of `%s' as array of voids" +- msgstr "" +- +- #: c-decl.c:4842 +- #, c-format +- msgid "declaration of `%s' as array of functions" +- msgstr "" +- +- #: c-decl.c:4870 +- #, c-format +- msgid "size of array `%s' has non-integer type" +- msgstr "" +- +- #: c-decl.c:4875 +- #, c-format +- msgid "ANSI C forbids zero-size array `%s'" +- msgstr "" +- +- #: c-decl.c:4882 +- #, c-format +- msgid "size of array `%s' is negative" +- msgstr "" +- +- #: c-decl.c:4895 +- #, c-format +- msgid "ANSI C forbids array `%s' whose size can't be evaluated" +- msgstr "" +- +- #: c-decl.c:4897 +- #, c-format +- msgid "ANSI C forbids variable-size array `%s'" +- msgstr "" +- +- #: c-decl.c:4914 c-decl.c:5110 +- #, c-format +- msgid "size of array `%s' is too large" +- msgstr "" +- +- #: c-decl.c:4933 +- msgid "array type has incomplete element type" +- msgstr "" +- +- #: c-decl.c:4940 c-decl.c:5156 +- msgid "ANSI C forbids const or volatile function types" +- msgstr "" +- +- #: c-decl.c:4977 cp/decl.c:10490 +- #, c-format +- msgid "`%s' declared as function returning a function" +- msgstr "" +- +- #: c-decl.c:4982 cp/decl.c:10495 +- #, c-format +- msgid "`%s' declared as function returning an array" +- msgstr "" +- +- #: c-decl.c:5048 c-decl.c:5121 c-decl.c:5207 c-decl.c:5305 +- msgid "ANSI C forbids qualified function types" +- msgstr "" +- +- #: c-decl.c:5081 cp/decl.c:10757 +- msgid "invalid type modifier within pointer declarator" +- msgstr "" +- +- #: c-decl.c:5176 cp/decl.c:11215 +- #, c-format +- msgid "variable or field `%s' declared void" +- msgstr "" +- +- #: c-decl.c:5250 +- #, c-format +- msgid "field `%s' declared as a function" +- msgstr "" +- +- #: c-decl.c:5255 +- #, c-format +- msgid "field `%s' has incomplete type" +- msgstr "" +- +- #: c-decl.c:5284 c-decl.c:5286 c-decl.c:5293 +- #, c-format +- msgid "invalid storage class for function `%s'" +- msgstr "" +- +- #: c-decl.c:5311 +- msgid "ANSI C forbids qualified void function return type" +- msgstr "" +- +- #: c-decl.c:5317 +- msgid "`noreturn' function returns non-void value" +- msgstr "" +- +- #: c-decl.c:5329 +- msgid "cannot inline function `main'" +- msgstr "" +- +- #: c-decl.c:5366 +- #, c-format +- msgid "variable `%s' declared `inline'" +- msgstr "" +- +- #: c-decl.c:5442 c-decl.c:6483 +- msgid "function declaration isn't a prototype" +- msgstr "" +- +- #: c-decl.c:5448 cp/decl.c:11886 +- msgid "parameter names (without types) in function declaration" +- msgstr "" +- +- #: c-decl.c:5478 c-decl.c:6871 c-decl.c:7161 cp/decl.c:11729 +- #, c-format +- msgid "parameter `%s' has incomplete type" +- msgstr "" +- +- #: c-decl.c:5481 cp/decl.c:11732 +- msgid "parameter has incomplete type" +- msgstr "" +- +- #: c-decl.c:5500 +- #, c-format +- msgid "parameter `%s' points to incomplete type" +- msgstr "" +- +- #: c-decl.c:5503 +- msgid "parameter points to incomplete type" +- msgstr "" +- +- #: c-decl.c:5574 +- #, c-format +- msgid "parameter `%s' has just a forward declaration" +- msgstr "" +- +- #: c-decl.c:5617 +- msgid "`void' in parameter list must be the entire list" +- msgstr "" +- +- #: c-decl.c:5646 +- #, c-format +- msgid "`%s %s' declared inside parameter list" +- msgstr "" +- +- #: c-decl.c:5652 +- #, c-format +- msgid "anonymous %s declared inside parameter list" +- msgstr "" +- +- #: c-decl.c:5659 +- msgid "" +- "its scope is only this definition or declaration, which is probably not what " +- "you want." +- msgstr "" +- +- #: c-decl.c:5701 +- msgid "ANSI C forbids forward references to `enum' types" +- msgstr "" +- +- #: c-decl.c:5747 +- #, c-format +- msgid "redefinition of `union %s'" +- msgstr "" +- +- #: c-decl.c:5748 +- #, c-format +- msgid "redefinition of `struct %s'" +- msgstr "" +- +- #: c-decl.c:5840 c-decl.c:5843 +- msgid "union defined inside parms" +- msgstr "" +- +- #: c-decl.c:5841 c-decl.c:5844 +- msgid "structure defined inside parms" +- msgstr "" +- +- #: c-decl.c:5857 +- #, c-format +- msgid "%s has no named members" +- msgstr "" +- +- #: c-decl.c:5858 +- #, c-format +- msgid "%s has no members" +- msgstr "" +- +- #: c-decl.c:5900 +- #, c-format +- msgid "nested redefinition of `%s'" +- msgstr "" +- +- #: c-decl.c:5912 +- #, c-format +- msgid "bit-field `%s' width not an integer constant" +- msgstr "" +- +- #: c-decl.c:5922 +- #, c-format +- msgid "bit-field `%s' has invalid type" +- msgstr "" +- +- #: c-decl.c:5932 +- #, c-format +- msgid "bit-field `%s' type invalid in ANSI C" +- msgstr "" +- +- #: c-decl.c:5942 +- #, c-format +- msgid "negative width in bit-field `%s'" +- msgstr "" +- +- #: c-decl.c:5948 +- #, c-format +- msgid "width of `%s' exceeds its type" +- msgstr "" +- +- #: c-decl.c:5952 +- #, c-format +- msgid "zero width for bit-field `%s'" +- msgstr "" +- +- #: c-decl.c:5967 +- #, c-format +- msgid "`%s' is narrower than values of its type" +- msgstr "" +- +- #: c-decl.c:6017 +- #, c-format +- msgid "duplicate member `%s'" +- msgstr "" +- +- #: c-decl.c:6098 +- msgid "union cannot be made transparent" +- msgstr "" +- +- #. This enum is a named one that has been declared already. +- #: c-decl.c:6190 +- #, c-format +- msgid "redeclaration of `enum %s'" +- msgstr "" +- +- #: c-decl.c:6224 +- msgid "enum defined inside parms" +- msgstr "" +- +- #: c-decl.c:6264 +- msgid "enumeration values exceed range of largest integer" +- msgstr "" +- +- #: c-decl.c:6347 +- #, c-format +- msgid "enumerator value for `%s' not integer constant" +- msgstr "" +- +- #: c-decl.c:6360 +- msgid "overflow in enumeration values" +- msgstr "" +- +- #: c-decl.c:6365 +- msgid "ANSI C restricts enumerator values to range of `int'" +- msgstr "" +- +- #: c-decl.c:6440 +- msgid "return-type is an incomplete type" +- msgstr "" +- +- #: c-decl.c:6448 +- msgid "return-type defaults to `int'" +- msgstr "" +- +- #: c-decl.c:6489 +- #, c-format +- msgid "no previous prototype for `%s'" +- msgstr "" +- +- #: c-decl.c:6496 +- #, c-format +- msgid "`%s' was used with no prototype before its definition" +- msgstr "" +- +- #: c-decl.c:6502 +- #, c-format +- msgid "no previous declaration for `%s'" +- msgstr "" +- +- #: c-decl.c:6509 +- #, c-format +- msgid "`%s' was used with no declaration before its definition" +- msgstr "" +- +- #: c-decl.c:6538 c-decl.c:7250 +- #, c-format +- msgid "return type of `%s' is not `int'" +- msgstr "" +- +- #: c-decl.c:6554 +- #, c-format +- msgid "first argument of `%s' should be `int'" +- msgstr "" +- +- #: c-decl.c:6563 +- #, c-format +- msgid "second argument of `%s' should be `char **'" +- msgstr "" +- +- #: c-decl.c:6572 +- #, c-format +- msgid "third argument of `%s' should probably be `char **'" +- msgstr "" +- +- #: c-decl.c:6581 +- #, c-format +- msgid "`%s' takes only zero or two arguments" +- msgstr "" +- +- #: c-decl.c:6584 +- #, c-format +- msgid "third argument of `%s' is deprecated" +- msgstr "" +- +- #: c-decl.c:6587 +- #, c-format +- msgid "`%s' is normally a non-static function" +- msgstr "" +- +- #: c-decl.c:6692 +- msgid "parm types given both in parmlist and separately" +- msgstr "" +- +- #: c-decl.c:6713 +- msgid "parameter name omitted" +- msgstr "" +- +- #: c-decl.c:6716 c-decl.c:6816 c-decl.c:7116 +- #, c-format +- msgid "parameter `%s' declared void" +- msgstr "" +- +- #: c-decl.c:6790 +- msgid "parameter name missing from parameter list" +- msgstr "" +- +- #: c-decl.c:6809 c-decl.c:7109 +- #, c-format +- msgid "multiple parameters named `%s'" +- msgstr "" +- +- #: c-decl.c:6840 +- #, c-format +- msgid "type of `%s' defaults to `int'" +- msgstr "" +- +- #: c-decl.c:6878 c-decl.c:7168 +- #, c-format +- msgid "declaration for parameter `%s' but no such parameter" +- msgstr "" +- +- #: c-decl.c:6925 +- msgid "number of arguments doesn't match prototype" +- msgstr "" +- +- #: c-decl.c:6953 +- #, c-format +- msgid "promoted argument `%s' doesn't match prototype" +- msgstr "" +- +- #: c-decl.c:6967 +- #, c-format +- msgid "argument `%s' doesn't match prototype" +- msgstr "" +- +- #: c-decl.c:7139 +- #, c-format +- msgid "type of parameter `%s' is not declared" +- msgstr "" +- +- #: c-decl.c:7276 +- msgid "function might be possible candidate for attribute `noreturn'" +- msgstr "" +- +- #: c-decl.c:7279 +- msgid "`noreturn' function does return" +- msgstr "" +- +- #. If this function returns non-void and control can drop through, +- #. complain. +- #: c-decl.c:7284 +- msgid "control reaches end of non-void function" +- msgstr "" +- +- #: c-decl.c:7289 cp/decl.c:14491 +- msgid "this function may return with or without a value" +- msgstr "" +- +- #: c-decl.c:7310 +- #, c-format +- msgid "size of return value of `%s' is %u bytes" +- msgstr "" +- +- #: c-decl.c:7390 +- msgid "ANSI C forbids nested functions" +- msgstr "" +- +- #: c-iterate.c:492 +- #, c-format +- msgid "`for (%s)' appears within implicit iteration" +- msgstr "" +- +- #: c-lex.c:374 +- msgid "carriage return in source file" +- msgstr "" +- +- #: c-lex.c:375 +- msgid "(we only warn about the first carriage return)" +- msgstr "" +- +- #: c-lex.c:420 cp/lex.c:2124 +- msgid "stray '\\' in program" +- msgstr "" +- +- #: c-lex.c:602 cp/lex.c:2280 +- #, c-format +- msgid "ignoring pragma: %s" +- msgstr "" +- +- #: c-lex.c:667 cp/lex.c:2340 +- msgid "invalid #ident" +- msgstr "" +- +- #: c-lex.c:683 cp/lex.c:2372 +- msgid "undefined or invalid # directive" +- msgstr "" +- +- #: c-lex.c:734 cp/lex.c:2430 +- msgid "invalid #line" +- msgstr "" +- +- #: c-lex.c:805 cp/lex.c:2591 +- msgid "#-lines for entering and leaving files don't match" +- msgstr "" +- +- #: c-lex.c:846 +- msgid "unrecognized text at end of #line" +- msgstr "" +- +- #: c-lex.c:849 cp/lex.c:2602 +- msgid "invalid #-line" +- msgstr "" +- +- #: c-lex.c:929 +- msgid "the meaning of `\\x' varies with -traditional" +- msgstr "" +- +- #: c-lex.c:963 cexp.y:925 cp/lex.c:2667 cppexp.c:600 +- msgid "\\x used with no following hex digits" +- msgstr "" +- +- #: c-lex.c:971 cp/lex.c:2676 +- msgid "hex escape out of range" +- msgstr "" +- +- #: c-lex.c:1011 +- msgid "the meaning of `\\a' varies with -traditional" +- msgstr "" +- +- #: c-lex.c:1027 cexp.y:855 cp/lex.c:2723 cppexp.c:530 +- #, c-format +- msgid "non-ANSI-standard escape sequence, `\\%c'" +- msgstr "" +- +- #: c-lex.c:1040 +- #, c-format +- msgid "non-ANSI escape sequence `\\%c'" +- msgstr "" +- +- #: c-lex.c:1044 cp/lex.c:2736 cp/lex.c:2740 +- #, c-format +- msgid "unknown escape sequence `\\%c'" +- msgstr "" +- +- #: c-lex.c:1046 cp/lex.c:2742 +- #, c-format +- msgid "unknown escape sequence: `\\' followed by char code 0x%x" +- msgstr "" +- +- #: c-lex.c:1059 +- #, c-format +- msgid "%s at end of input" +- msgstr "" +- +- #: c-lex.c:1061 +- #, c-format +- msgid "%s at null character" +- msgstr "" +- +- #: c-lex.c:1063 +- #, c-format +- msgid "%s before string constant" +- msgstr "" +- +- #: c-lex.c:1065 +- #, c-format +- msgid "%s before character constant" +- msgstr "" +- +- #: c-lex.c:1067 +- #, c-format +- msgid "%s before character 0%o" +- msgstr "" +- +- #: c-lex.c:1069 +- #, c-format +- msgid "%s before `%s'" +- msgstr "" +- +- #: c-lex.c:1128 cp/lex.c:3164 +- msgid "more than one `f' in numeric constant" +- msgstr "" +- +- #: c-lex.c:1134 cp/lex.c:3170 +- msgid "more than one `l' in numeric constant" +- msgstr "" +- +- #: c-lex.c:1140 c-lex.c:1723 cp/lex.c:3176 cp/lex.c:3879 +- msgid "more than one `i' or `j' in numeric constant" +- msgstr "" +- +- #: c-lex.c:1142 c-lex.c:1725 +- msgid "ANSI C forbids imaginary numeric constants" +- msgstr "" +- +- #: c-lex.c:1167 cp/lex.c:3203 +- msgid "both `f' and `l' in floating constant" +- msgstr "" +- +- #: c-lex.c:1180 cp/lex.c:3211 +- msgid "floating point number exceeds range of `float'" +- msgstr "" +- +- #: c-lex.c:1192 cp/lex.c:3218 +- msgid "floating point number exceeds range of `long double'" +- msgstr "" +- +- #: c-lex.c:1203 c-lex.c:1672 cp/lex.c:3224 +- msgid "floating point number exceeds range of `double'" +- msgstr "" +- +- #: c-lex.c:1320 c-lex.c:1322 cccp.c:3039 cp/lex.c:3287 cp/lex.c:3289 +- #: cp/lex.c:3345 cp/lex.c:3347 cp/lex.c:3375 cp/lex.c:3377 cpplib.c:2537 +- msgid "`$' in identifier" +- msgstr "" +- +- #: c-lex.c:1368 +- #, c-format +- msgid "ANSI does not permit the keyword `%s'" +- msgstr "" +- +- #: c-lex.c:1379 +- #, c-format +- msgid "invalid identifier `%s'" +- msgstr "" +- +- #: c-lex.c:1489 cp/lex.c:3650 +- msgid "floating constant may not be in radix 16" +- msgstr "" +- +- #: c-lex.c:1495 cp/lex.c:3656 +- msgid "malformed floating constant" +- msgstr "" +- +- #: c-lex.c:1522 cp/lex.c:3561 cp/lex.c:3683 +- msgid "parse error at `..'" +- msgstr "" +- +- #: c-lex.c:1547 cp/lex.c:3708 +- msgid "nondigits in number and not hexadecimal" +- msgstr "" +- +- #: c-lex.c:1593 cp/lex.c:3749 +- msgid "numeric constant with no digits" +- msgstr "" +- +- #: c-lex.c:1596 cp/lex.c:3752 +- msgid "numeric constant contains digits beyond the radix" +- msgstr "" +- +- #: c-lex.c:1625 cp/lex.c:3779 +- msgid "floating constant exponent has no digits" +- msgstr "" +- +- #: c-lex.c:1635 +- msgid "hexadecimal floating constant has no exponent" +- msgstr "" +- +- #. We got an exception from parse_float() +- #: c-lex.c:1656 cp/lex.c:3807 +- msgid "floating constant out of range" +- msgstr "" +- +- #: c-lex.c:1705 cexp.y:454 cp/lex.c:3861 +- msgid "two `u's in integer constant" +- msgstr "" +- +- #: c-lex.c:1713 cp/lex.c:3869 +- msgid "three `l's in integer constant" +- msgstr "" +- +- #: c-lex.c:1715 +- msgid "ANSI C forbids long long integer constants" +- msgstr "" +- +- #: c-lex.c:1741 c-lex.c:1832 c-lex.c:1869 cexp.y:483 cp/lex.c:3912 +- #: cp/lex.c:3953 cppexp.c:219 +- msgid "integer constant out of range" +- msgstr "" +- +- #: c-lex.c:1819 +- msgid "width of integer constant changes with -traditional" +- msgstr "" +- +- #: c-lex.c:1822 +- msgid "integer constant is unsigned in ANSI C, signed with -traditional" +- msgstr "" +- +- #: c-lex.c:1824 +- msgid "width of integer constant may change on other systems with -traditional" +- msgstr "" +- +- #: c-lex.c:1836 +- msgid "decimal constant is so large that it is unsigned" +- msgstr "" +- +- #: c-lex.c:1847 +- msgid "complex integer constant is too wide for `complex int'" +- msgstr "" +- +- #: c-lex.c:1878 +- #, c-format +- msgid "missing white space after number `%s'" +- msgstr "" +- +- #: c-lex.c:1917 c-lex.c:2072 cp/lex.c:4013 cp/lex.c:4174 cppexp.c:292 +- msgid "escape sequence out of range for character" +- msgstr "" +- +- #: c-lex.c:1926 cp/lex.c:4022 +- msgid "ANSI C forbids newline in character constant" +- msgstr "" +- +- #: c-lex.c:1975 c-lex.c:2098 cexp.y:661 cp/lex.c:4071 cp/lex.c:4200 +- msgid "Ignoring invalid multibyte character" +- msgstr "" +- +- #: c-lex.c:2009 cexp.y:687 cp/lex.c:4105 cppexp.c:314 +- msgid "malformatted character constant" +- msgstr "" +- +- #: c-lex.c:2011 cexp.y:689 cp/lex.c:4107 cppexp.c:307 +- msgid "empty character constant" +- msgstr "" +- +- #: c-lex.c:2015 cexp.y:693 cp/lex.c:4111 cppexp.c:319 +- msgid "character constant too long" +- msgstr "" +- +- #: c-lex.c:2018 cexp.y:696 cp/lex.c:4114 cppexp.c:323 +- msgid "multi-character character constant" +- msgstr "" +- +- #: c-lex.c:2077 +- msgid "ANSI C forbids newline in string constant" +- msgstr "" +- +- #: c-lex.c:2168 +- msgid "Unterminated string constant" +- msgstr "" +- +- #: c-lex.c:2348 cp/lex.c:1042 +- msgid "YYDEBUG not defined." +- msgstr "" +- +- #: /tmp/sky/share/bison.simple:327 /usr/lib/bison.simple:327 +- msgid "parser stack overflow" +- msgstr "" +- +- #: c-parse.y:235 objc-parse.y:235 +- msgid "ANSI C forbids an empty source file" +- msgstr "" +- +- #: c-parse.y:267 c-parse.y:1852 objc-parse.y:268 objc-parse.y:1961 +- msgid "argument of `asm' is not a constant string" +- msgstr "" +- +- #: c-parse.y:275 objc-parse.y:276 +- msgid "ANSI C forbids data definition with no type or storage class" +- msgstr "" +- +- #: c-parse.y:277 objc-parse.y:278 +- msgid "data definition has no type or storage class" +- msgstr "" +- +- #: c-parse.y:301 objc-parse.y:302 +- msgid "ANSI C does not allow extra `;' outside of a function" +- msgstr "" +- +- #: c-parse.y:414 objc-parse.y:417 +- msgid "ANSI C forbids `&&'" +- msgstr "" +- +- #: c-parse.y:443 objc-parse.y:446 +- msgid "`sizeof' applied to a bit-field" +- msgstr "" +- +- #: c-parse.y:484 objc-parse.y:487 +- msgid "ANSI C forbids constructor expressions" +- msgstr "" +- +- #: c-parse.y:553 objc-parse.y:556 +- msgid "ANSI C forbids omitting the middle term of a ?: expression" +- msgstr "" +- +- #: c-parse.y:599 objc-parse.y:618 +- #, c-format +- msgid "`%s' undeclared here (not in a function)" +- msgstr "" +- +- #: c-parse.y:609 objc-parse.y:643 +- #, c-format +- msgid "`%s' undeclared (first use in this function)" +- msgstr "" +- +- #: c-parse.y:614 cp/lex.c:2939 objc-parse.y:648 +- msgid "(Each undeclared identifier is reported only once" +- msgstr "" +- +- #: c-parse.y:615 cp/lex.c:2940 objc-parse.y:649 +- msgid "for each function it appears in.)" +- msgstr "" +- +- #: c-parse.y:642 objc-parse.y:681 +- #, c-format +- msgid "`%s' implicitly declared as function" +- msgstr "" +- +- #: c-parse.y:648 objc-parse.y:687 +- #, c-format +- msgid "type mismatch in implicit declaration for built-in function `%s'" +- msgstr "" +- +- #: c-parse.y:657 objc-parse.y:696 +- #, c-format +- msgid "built-in function `%s' used without declaration" +- msgstr "" +- +- #: c-parse.y:693 objc-parse.y:757 parse.y:1429 +- msgid "braced-group within expression allowed only inside a function" +- msgstr "" +- +- #: c-parse.y:707 objc-parse.y:771 +- msgid "ANSI C forbids braced-groups within expressions" +- msgstr "" +- +- #: c-parse.y:762 objc-parse.y:859 +- msgid "ANSI C does not permit use of `varargs.h'" +- msgstr "" +- +- #: c-parse.y:884 c-parse.y:905 c-parse.y:937 objc-parse.y:981 +- #: objc-parse.y:1002 objc-parse.y:1034 parse.y:1737 parse.y:1744 parse.y:1777 +- #, c-format +- msgid "`%s' is not at beginning of declaration" +- msgstr "" +- +- #: c-parse.y:1110 objc-parse.y:1216 +- msgid "ANSI C forbids empty initializer braces" +- msgstr "" +- +- #: c-parse.y:1251 c-parse.y:1285 +- msgid "`[*]' in parameter declaration only allowed in ISO C 9x" +- msgstr "" +- +- #: c-parse.y:1370 objc-parse.y:1463 parse.y:2197 +- msgid "comma at end of enumerator list" +- msgstr "" +- +- #: c-parse.y:1378 objc-parse.y:1471 +- msgid "no semicolon at end of struct or union" +- msgstr "" +- +- #: c-parse.y:1387 objc-parse.y:1480 objc-parse.y:2564 +- msgid "extra semicolon in struct or union specified" +- msgstr "" +- +- #: c-parse.y:1408 c-parse.y:1419 objc-parse.y:1515 objc-parse.y:1526 +- msgid "ANSI C forbids member declarations with no members" +- msgstr "" +- +- #: c-parse.y:1533 objc-parse.y:1640 +- msgid "ANSI C forbids label at end of compound statement" +- msgstr "" +- +- #: c-parse.y:1568 objc-parse.y:1677 +- msgid "ANSI C forbids label declarations" +- msgstr "" +- +- #: c-parse.y:1721 objc-parse.y:1830 +- msgid "empty body in an else-statement" +- msgstr "" +- +- #: c-parse.y:1829 objc-parse.y:1938 +- msgid "break statement not within loop or switch" +- msgstr "" +- +- #: c-parse.y:1834 objc-parse.y:1943 +- msgid "continue statement not within a loop" +- msgstr "" +- +- #: c-parse.y:1888 objc-parse.y:1997 +- msgid "ANSI C forbids `goto *expr;'" +- msgstr "" +- +- #: c-parse.y:1909 objc-parse.y:2018 +- msgid "invalid `for (ITERATOR)' syntax" +- msgstr "" +- +- #: c-parse.y:1911 objc-parse.y:2020 +- #, c-format +- msgid "`%s' is not an iterator" +- msgstr "" +- +- #: c-parse.y:1914 objc-parse.y:2023 +- #, c-format +- msgid "`for (%s)' inside expansion of same iterator" +- msgstr "" +- +- #: c-parse.y:1970 objc-parse.y:2079 +- msgid "label must have integral type in ANSI C" +- msgstr "" +- +- #: c-parse.y:1976 c-parse.y:2005 cp/expr.c:421 cp/typeck2.c:1560 +- #: objc-parse.y:2085 objc-parse.y:2114 +- msgid "case label not within a switch statement" +- msgstr "" +- +- #: c-parse.y:1979 c-parse.y:2008 objc-parse.y:2088 objc-parse.y:2117 +- msgid "duplicate case value" +- msgstr "" +- +- #: c-parse.y:1980 c-parse.y:2009 objc-parse.y:2089 objc-parse.y:2118 +- msgid "this is the first entry for that value" +- msgstr "" +- +- #: c-parse.y:1983 c-parse.y:2012 cp/expr.c:447 cp/typeck2.c:1635 +- #: objc-parse.y:2092 objc-parse.y:2121 +- msgid "case value out of range" +- msgstr "" +- +- #: c-parse.y:1985 c-parse.y:2016 cp/expr.c:453 objc-parse.y:2094 +- #: objc-parse.y:2125 +- msgid "case label within scope of cleanup or variable array" +- msgstr "" +- +- #: c-parse.y:1995 objc-parse.y:2104 +- msgid "ANSI C forbids case ranges" +- msgstr "" +- +- #: c-parse.y:2014 objc-parse.y:2123 +- msgid "empty case range" +- msgstr "" +- +- #: c-parse.y:2027 cp/expr.c:425 cp/typeck2.c:1562 objc-parse.y:2136 +- msgid "default label not within a switch statement" +- msgstr "" +- +- #: c-parse.y:2030 cp/expr.c:442 cp/typeck2.c:1568 objc-parse.y:2139 +- msgid "multiple default labels in one switch" +- msgstr "" +- +- #: c-parse.y:2031 objc-parse.y:2140 +- msgid "this is the first default label" +- msgstr "" +- +- #: c-parse.y:2104 objc-parse.y:2213 +- msgid "ANSI C forbids forward parameter declarations" +- msgstr "" +- +- #. Gcc used to allow this as an extension. However, it does +- #. not work for all targets, and thus has been disabled. +- #. Also, since func (...) and func () are indistinguishable, +- #. it caused problems with the code in expand_builtin which +- #. tries to verify that BUILT_IN_NEXT_ARG is being used +- #. correctly. +- #: c-parse.y:2127 objc-parse.y:2236 +- msgid "ANSI C requires a named argument before `...'" +- msgstr "" +- +- #: c-parse.y:2212 objc-parse.y:2321 +- msgid "`...' in old-style identifier list" +- msgstr "" +- +- #: /tmp/sky/share/bison.simple:594 /usr/lib/bison.simple:594 +- msgid "parse error; also virtual memory exceeded" +- msgstr "" +- +- #: /tmp/sky/share/bison.simple:598 /usr/lib/bison.simple:598 +- msgid "parse error" +- msgstr "" +- +- #: c-pragma.c:73 +- #, c-format +- msgid "Alignment must be a small power of two, not %d, in #pragma pack" +- msgstr "" +- +- #: c-pragma.c:89 +- msgid "Out of memory pushing #pragma pack" +- msgstr "" +- +- #: c-pragma.c:117 +- msgid "" +- "#pragma pack (pop) encountered without matching #pragma pack (push, )" +- msgstr "" +- +- #: c-pragma.c:135 +- #, c-format +- msgid "" +- "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, " +- ")" +- msgstr "" +- +- #: c-pragma.c:269 +- msgid "malformed `#pragma pack'" +- msgstr "" +- +- #: c-pragma.c:278 +- msgid "malformed '#pragma pack(push[,id],)'" +- msgstr "" +- +- #: c-pragma.c:285 +- msgid "malformed '#pragma pack(pop[,id])'" +- msgstr "" +- +- #: c-pragma.c:298 +- msgid "malformed `#pragma weak'" +- msgstr "" +- +- #: c-pragma.c:350 c-pragma.c:368 +- msgid "Out of memory parsing #pragma weak" +- msgstr "" +- +- #: c-typeck.c:115 +- #, c-format +- msgid "`%s' has an incomplete type" +- msgstr "" +- +- #: c-typeck.c:137 cp/call.c:2254 +- msgid "invalid use of void expression" +- msgstr "" +- +- #: c-typeck.c:146 +- msgid "invalid use of array with unspecified bounds" +- msgstr "" +- +- #: c-typeck.c:154 +- #, c-format +- msgid "invalid use of undefined type `%s %s'" +- msgstr "" +- +- #. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL. +- #: c-typeck.c:158 +- #, c-format +- msgid "invalid use of incomplete typedef `%s'" +- msgstr "" +- +- #: c-typeck.c:385 c-typeck.c:399 +- msgid "function types not truly compatible in ANSI C" +- msgstr "" +- +- #: c-typeck.c:543 +- msgid "types are not quite compatible" +- msgstr "" +- +- #: c-typeck.c:820 +- msgid "sizeof applied to a function type" +- msgstr "" +- +- #: c-typeck.c:826 +- msgid "sizeof applied to a void type" +- msgstr "" +- +- #: c-typeck.c:833 +- msgid "sizeof applied to an incomplete type" +- msgstr "" +- +- #: c-typeck.c:886 c-typeck.c:2767 cp/typeck.c:4245 +- msgid "arithmetic on pointer to an incomplete type" +- msgstr "" +- +- #: c-typeck.c:931 +- msgid "`__alignof' applied to a bit-field" +- msgstr "" +- +- #: c-typeck.c:1108 cp/typeck.c:1798 +- msgid "invalid use of non-lvalue array" +- msgstr "" +- +- #: c-typeck.c:1284 +- #, c-format +- msgid "structure has no member named `%s'" +- msgstr "" +- +- #: c-typeck.c:1285 +- #, c-format +- msgid "union has no member named `%s'" +- msgstr "" +- +- #: c-typeck.c:1315 +- #, c-format +- msgid "request for member `%s' in something not a structure or union" +- msgstr "" +- +- #: c-typeck.c:1348 +- msgid "dereferencing pointer to incomplete type" +- msgstr "" +- +- #: c-typeck.c:1352 +- msgid "dereferencing `void *' pointer" +- msgstr "" +- +- #: c-typeck.c:1369 cp/typeck.c:2394 +- #, c-format +- msgid "invalid type argument of `%s'" +- msgstr "" +- +- #: c-typeck.c:1388 cp/typeck.c:2420 +- msgid "subscript missing in array reference" +- msgstr "" +- +- #: c-typeck.c:1409 cp/typeck.c:2441 +- msgid "array subscript has type `char'" +- msgstr "" +- +- #: c-typeck.c:1417 c-typeck.c:1512 cp/typeck.c:2448 cp/typeck.c:2526 +- msgid "array subscript is not an integer" +- msgstr "" +- +- #: c-typeck.c:1447 +- msgid "ANSI C forbids subscripting `register' array" +- msgstr "" +- +- #: c-typeck.c:1449 c-typeck.c:1458 +- msgid "ANSI C forbids subscripting non-lvalue array" +- msgstr "" +- +- #: c-typeck.c:1491 +- msgid "subscript has type `char'" +- msgstr "" +- +- #: c-typeck.c:1507 cp/typeck.c:2521 +- msgid "subscripted value is neither array nor pointer" +- msgstr "" +- +- #: c-typeck.c:1563 +- msgid "called object is not a function" +- msgstr "" +- +- #: c-typeck.c:1651 +- #, c-format +- msgid "too many arguments to function `%s'" +- msgstr "" +- +- #: c-typeck.c:1654 cp/typeck.c:3132 +- msgid "too many arguments to function" +- msgstr "" +- +- #: c-typeck.c:1677 +- #, c-format +- msgid "type of formal parameter %d is incomplete" +- msgstr "" +- +- #: c-typeck.c:1690 +- #, c-format +- msgid "%s as integer rather than floating due to prototype" +- msgstr "" +- +- #: c-typeck.c:1693 +- #, c-format +- msgid "%s as complex rather than floating due to prototype" +- msgstr "" +- +- #: c-typeck.c:1696 +- #, c-format +- msgid "%s as floating rather than integer due to prototype" +- msgstr "" +- +- #: c-typeck.c:1699 +- #, c-format +- msgid "%s as floating rather than complex due to prototype" +- msgstr "" +- +- #: c-typeck.c:1709 +- #, c-format +- msgid "%s as `float' rather than `double' due to prototype" +- msgstr "" +- +- #: c-typeck.c:1724 +- #, c-format +- msgid "%s with different width due to prototype" +- msgstr "" +- +- #: c-typeck.c:1758 +- #, c-format +- msgid "%s as unsigned due to prototype" +- msgstr "" +- +- #: c-typeck.c:1760 +- #, c-format +- msgid "%s as signed due to prototype" +- msgstr "" +- +- #: c-typeck.c:1793 +- #, c-format +- msgid "too few arguments to function `%s'" +- msgstr "" +- +- #: c-typeck.c:1796 cp/typeck.c:3235 +- msgid "too few arguments to function" +- msgstr "" +- +- #: c-typeck.c:1837 +- msgid "suggest parentheses around + or - inside shift" +- msgstr "" +- +- #: c-typeck.c:1844 +- msgid "suggest parentheses around && within ||" +- msgstr "" +- +- #: c-typeck.c:1853 +- msgid "suggest parentheses around arithmetic in operand of |" +- msgstr "" +- +- #: c-typeck.c:1856 +- msgid "suggest parentheses around comparison in operand of |" +- msgstr "" +- +- #: c-typeck.c:1865 +- msgid "suggest parentheses around arithmetic in operand of ^" +- msgstr "" +- +- #: c-typeck.c:1868 +- msgid "suggest parentheses around comparison in operand of ^" +- msgstr "" +- +- #: c-typeck.c:1875 +- msgid "suggest parentheses around + or - in operand of &" +- msgstr "" +- +- #: c-typeck.c:1878 +- msgid "suggest parentheses around comparison in operand of &" +- msgstr "" +- +- #: c-typeck.c:1885 +- msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" +- msgstr "" +- +- #: c-typeck.c:2143 cp/typeck.c:3526 +- msgid "right shift count is negative" +- msgstr "" +- +- #: c-typeck.c:2151 cp/typeck.c:3534 +- msgid "right shift count >= width of type" +- msgstr "" +- +- #: c-typeck.c:2175 cp/typeck.c:3553 +- msgid "left shift count is negative" +- msgstr "" +- +- #: c-typeck.c:2179 cp/typeck.c:3557 +- msgid "left shift count >= width of type" +- msgstr "" +- +- #: c-typeck.c:2203 +- msgid "shift count is negative" +- msgstr "" +- +- #: c-typeck.c:2207 +- msgid "shift count >= width of type" +- msgstr "" +- +- #: c-typeck.c:2249 c-typeck.c:2255 +- msgid "ANSI C forbids comparison of `void *' with function pointer" +- msgstr "" +- +- #: c-typeck.c:2258 c-typeck.c:2300 c-typeck.c:2328 +- msgid "comparison of distinct pointer types lacks a cast" +- msgstr "" +- +- #: c-typeck.c:2273 c-typeck.c:2279 c-typeck.c:2349 c-typeck.c:2355 +- msgid "comparison between pointer and integer" +- msgstr "" +- +- #: c-typeck.c:2295 c-typeck.c:2323 +- msgid "ANSI C forbids ordered comparisons of pointers to functions" +- msgstr "" +- +- #: c-typeck.c:2320 +- msgid "comparison of complete and incomplete pointers" +- msgstr "" +- +- #: c-typeck.c:2336 c-typeck.c:2343 +- msgid "ordered comparison of pointer with integer zero" +- msgstr "" +- +- #: c-typeck.c:2553 cp/typeck.c:3997 +- msgid "comparison between signed and unsigned" +- msgstr "" +- +- #: c-typeck.c:2599 cp/typeck.c:4042 +- msgid "comparison of promoted ~unsigned with constant" +- msgstr "" +- +- #: c-typeck.c:2607 cp/typeck.c:4050 +- msgid "comparison of promoted ~unsigned with unsigned" +- msgstr "" +- +- #: c-typeck.c:2669 +- msgid "pointer of type `void *' used in arithmetic" +- msgstr "" +- +- #: c-typeck.c:2675 +- msgid "pointer to a function used in arithmetic" +- msgstr "" +- +- #: c-typeck.c:2753 +- msgid "pointer of type `void *' used in subtraction" +- msgstr "" +- +- #: c-typeck.c:2755 +- msgid "pointer to a function used in subtraction" +- msgstr "" +- +- #: c-typeck.c:2813 +- msgid "wrong type argument to unary plus" +- msgstr "" +- +- #: c-typeck.c:2824 +- msgid "wrong type argument to unary minus" +- msgstr "" +- +- #: c-typeck.c:2840 +- msgid "wrong type argument to bit-complement" +- msgstr "" +- +- #: c-typeck.c:2851 +- msgid "wrong type argument to abs" +- msgstr "" +- +- #: c-typeck.c:2863 +- msgid "wrong type argument to conjugation" +- msgstr "" +- +- #: c-typeck.c:2877 +- msgid "wrong type argument to unary exclamation mark" +- msgstr "" +- +- #: c-typeck.c:2932 c-typeck.c:2958 +- msgid "wrong type argument to increment" +- msgstr "" +- +- #: c-typeck.c:2933 c-typeck.c:2959 +- msgid "wrong type argument to decrement" +- msgstr "" +- +- #: c-typeck.c:2952 +- msgid "increment of pointer to unknown structure" +- msgstr "" +- +- #: c-typeck.c:2953 +- msgid "decrement of pointer to unknown structure" +- msgstr "" +- +- #: c-typeck.c:3016 +- msgid "invalid lvalue in increment" +- msgstr "" +- +- #: c-typeck.c:3017 +- msgid "invalid lvalue in decrement" +- msgstr "" +- +- #: c-typeck.c:3025 cp/typeck.c:4599 +- msgid "increment" +- msgstr "" +- +- #: c-typeck.c:3025 cp/typeck.c:4599 +- msgid "decrement" +- msgstr "" +- +- #: c-typeck.c:3078 +- msgid "ANSI C forbids the address of a cast expression" +- msgstr "" +- +- #: c-typeck.c:3092 +- msgid "invalid lvalue in unary `&'" +- msgstr "" +- +- #: c-typeck.c:3126 +- #, c-format +- msgid "attempt to take address of bit-field structure member `%s'" +- msgstr "" +- +- #: c-typeck.c:3296 +- msgid "ANSI C forbids use of conditional expressions as lvalues" +- msgstr "" +- +- #: c-typeck.c:3298 +- msgid "ANSI C forbids use of compound expressions as lvalues" +- msgstr "" +- +- #: c-typeck.c:3299 +- msgid "ANSI C forbids use of cast expressions as lvalues" +- msgstr "" +- +- #: c-typeck.c:3311 +- #, c-format +- msgid "%s of iterator `%s'" +- msgstr "" +- +- #: c-typeck.c:3319 +- #, c-format +- msgid "%s of read-only member `%s'" +- msgstr "" +- +- #: c-typeck.c:3323 +- #, c-format +- msgid "%s of read-only variable `%s'" +- msgstr "" +- +- #: c-typeck.c:3326 +- #, c-format +- msgid "%s of read-only location" +- msgstr "" +- +- #: c-typeck.c:3344 +- #, c-format +- msgid "cannot take address of bitfield `%s'" +- msgstr "" +- +- #: c-typeck.c:3371 +- #, c-format +- msgid "global register variable `%s' used in nested function" +- msgstr "" +- +- #: c-typeck.c:3375 +- #, c-format +- msgid "register variable `%s' used in nested function" +- msgstr "" +- +- #: c-typeck.c:3382 +- #, c-format +- msgid "address of global register variable `%s' requested" +- msgstr "" +- +- #: c-typeck.c:3394 +- msgid "cannot put object with volatile field into register" +- msgstr "" +- +- #: c-typeck.c:3398 +- #, c-format +- msgid "address of register variable `%s' requested" +- msgstr "" +- +- #: c-typeck.c:3482 +- msgid "ANSI C forbids conditional expr with only one void side" +- msgstr "" +- +- #: c-typeck.c:3498 c-typeck.c:3504 +- msgid "ANSI C forbids conditional expr between `void *' and function pointer" +- msgstr "" +- +- #: c-typeck.c:3509 cp/typeck.c:5270 +- msgid "pointer type mismatch in conditional expression" +- msgstr "" +- +- #: c-typeck.c:3516 c-typeck.c:3530 cp/typeck.c:5276 cp/typeck.c:5281 +- msgid "pointer/integer type mismatch in conditional expression" +- msgstr "" +- +- #: c-typeck.c:3522 c-typeck.c:3536 +- msgid "ANSI C forbids conditional expr between 0 and function pointer" +- msgstr "" +- +- #: c-typeck.c:3548 cp/typeck.c:5357 +- msgid "type mismatch in conditional expression" +- msgstr "" +- +- #: c-typeck.c:3658 cp/typeck.c:5410 +- msgid "left-hand operand of comma expression has no effect" +- msgstr "" +- +- #: c-typeck.c:3697 +- msgid "cast specifies array type" +- msgstr "" +- +- #: c-typeck.c:3703 +- msgid "cast specifies function type" +- msgstr "" +- +- #: c-typeck.c:3713 +- msgid "ANSI C forbids casting nonscalar to the same type" +- msgstr "" +- +- #: c-typeck.c:3734 +- msgid "ANSI C forbids casts to union type" +- msgstr "" +- +- #: c-typeck.c:3750 +- msgid "cast to union type from type not present in union" +- msgstr "" +- +- #. There are qualifiers present in IN_OTYPE that are not +- #. present in IN_TYPE. +- #: c-typeck.c:3787 +- msgid "cast discards qualifiers from pointer target type" +- msgstr "" +- +- #: c-typeck.c:3802 cp/typeck.c:5830 +- msgid "cast increases required alignment of target type" +- msgstr "" +- +- #: c-typeck.c:3808 cp/typeck.c:5838 +- msgid "cast from pointer to integer of different size" +- msgstr "" +- +- #: c-typeck.c:3813 +- msgid "cast does not match function type" +- msgstr "" +- +- #: c-typeck.c:3825 cp/typeck.c:5846 +- msgid "cast to pointer from integer of different size" +- msgstr "" +- +- #. Now we have handled acceptable kinds of LHS that are not truly lvalues. +- #. Reject anything strange now. +- #: c-typeck.c:3968 +- msgid "invalid lvalue in assignment" +- msgstr "" +- +- #. Convert new value to destination type. +- #: c-typeck.c:3977 c-typeck.c:4001 c-typeck.c:4016 cp/typeck.c:6103 +- msgid "assignment" +- msgstr "" +- +- #: c-typeck.c:4161 c-typeck.c:4230 +- #, c-format +- msgid "%s makes qualified function pointer from unqualified" +- msgstr "" +- +- #: c-typeck.c:4165 c-typeck.c:4209 +- #, c-format +- msgid "%s discards qualifiers from pointer target type" +- msgstr "" +- +- #: c-typeck.c:4171 +- msgid "ANSI C prohibits argument conversion to union type" +- msgstr "" +- +- #: c-typeck.c:4201 +- #, c-format +- msgid "ANSI forbids %s between function pointer and `void *'" +- msgstr "" +- +- #: c-typeck.c:4219 +- #, c-format +- msgid "pointer targets in %s differ in signedness" +- msgstr "" +- +- #: c-typeck.c:4235 +- #, c-format +- msgid "%s from incompatible pointer type" +- msgstr "" +- +- #: c-typeck.c:4251 +- #, c-format +- msgid "%s makes pointer from integer without a cast" +- msgstr "" +- +- #: c-typeck.c:4259 +- #, c-format +- msgid "%s makes integer from pointer without a cast" +- msgstr "" +- +- #: c-typeck.c:4271 c-typeck.c:4274 +- #, c-format +- msgid "incompatible type for argument %d of `%s'" +- msgstr "" +- +- #: c-typeck.c:4278 +- #, c-format +- msgid "incompatible type for argument %d of indirect function call" +- msgstr "" +- +- #: c-typeck.c:4282 +- #, c-format +- msgid "incompatible types in %s" +- msgstr "" +- +- #. Function name is known; supply it. +- #: c-typeck.c:4313 +- #, c-format +- msgid "passing arg %d of `%s'" +- msgstr "" +- +- #. Function name unknown (call through ptr); just give arg number. +- #: c-typeck.c:4323 +- #, c-format +- msgid "passing arg %d of pointer to function" +- msgstr "" +- +- #: c-typeck.c:4529 +- msgid "initializer for static variable is not constant" +- msgstr "" +- +- #: c-typeck.c:4535 +- msgid "initializer for static variable uses complicated arithmetic" +- msgstr "" +- +- #: c-typeck.c:4543 +- msgid "aggregate initializer is not constant" +- msgstr "" +- +- #: c-typeck.c:4545 +- msgid "aggregate initializer uses complicated arithmetic" +- msgstr "" +- +- #: c-typeck.c:4709 c-typeck.c:4725 c-typeck.c:4741 +- #, c-format +- msgid "(near initialization for `%s')" +- msgstr "" +- +- #: c-typeck.c:4789 cp/typeck2.c:769 +- msgid "char-array initialized from wide string" +- msgstr "" +- +- #: c-typeck.c:4796 cp/typeck2.c:776 +- msgid "int-array initialized from non-wide string" +- msgstr "" +- +- #: c-typeck.c:4813 cp/typeck2.c:792 +- msgid "initializer-string for array of chars is too long" +- msgstr "" +- +- #: c-typeck.c:4840 +- msgid "array initialized from non-constant array expression" +- msgstr "" +- +- #: c-typeck.c:4857 c-typeck.c:4859 c-typeck.c:4865 c-typeck.c:4892 +- #: c-typeck.c:6112 +- msgid "initializer element is not constant" +- msgstr "" +- +- #: c-typeck.c:4871 c-typeck.c:4898 c-typeck.c:6118 +- msgid "initializer element is not computable at load time" +- msgstr "" +- +- #: c-typeck.c:4887 +- msgid "initialization" +- msgstr "" +- +- #: c-typeck.c:4935 c-typeck.c:4951 cp/typeck2.c:870 +- msgid "invalid initializer" +- msgstr "" +- +- #: c-typeck.c:5428 +- msgid "extra brace group at end of initializer" +- msgstr "" +- +- #: c-typeck.c:5440 +- msgid "missing braces around initializer" +- msgstr "" +- +- #: c-typeck.c:5471 +- msgid "braces around scalar initializer" +- msgstr "" +- +- #: c-typeck.c:5552 +- msgid "missing initializer" +- msgstr "" +- +- #: c-typeck.c:5565 +- msgid "empty braces in initializer" +- msgstr "" +- +- #: c-typeck.c:5629 +- msgid "empty scalar initializer" +- msgstr "" +- +- #: c-typeck.c:5634 +- msgid "extra elements in scalar initializer" +- msgstr "" +- +- #: c-typeck.c:5697 +- #, c-format +- msgid "zero or negative array size `%s'" +- msgstr "" +- +- #: c-typeck.c:5768 c-typeck.c:5770 +- msgid "nonconstant array index in initializer" +- msgstr "" +- +- #: c-typeck.c:5772 +- msgid "array index in non-array initializer" +- msgstr "" +- +- #: c-typeck.c:5774 +- msgid "duplicate array index in initializer" +- msgstr "" +- +- #: c-typeck.c:5781 +- msgid "empty index range in initializer" +- msgstr "" +- +- #: c-typeck.c:5785 +- msgid "ANSI C forbids specifying element to initialize" +- msgstr "" +- +- #: c-typeck.c:5815 +- #, c-format +- msgid "unknown field `%s' specified in initializer" +- msgstr "" +- +- #: c-typeck.c:5818 +- #, c-format +- msgid "field `%s' already initialized" +- msgstr "" +- +- #: c-typeck.c:5824 +- msgid "ANSI C forbids specifying structure member to initialize" +- msgstr "" +- +- #: c-typeck.c:6134 +- msgid "duplicate initializer" +- msgstr "" +- +- #: c-typeck.c:6487 c-typeck.c:6522 +- msgid "excess elements in struct initializer" +- msgstr "" +- +- #: c-typeck.c:6586 +- msgid "excess elements in union initializer" +- msgstr "" +- +- #: c-typeck.c:6660 c-typeck.c:6671 +- msgid "excess elements in array initializer" +- msgstr "" +- +- #: c-typeck.c:6722 +- msgid "excess elements in scalar initializer" +- msgstr "" +- +- #: c-typeck.c:6762 +- msgid "asm template is not a string constant" +- msgstr "" +- +- #: c-typeck.c:6802 +- msgid "modification by `asm'" +- msgstr "" +- +- #: c-typeck.c:6821 cp/typeck.c:7327 +- msgid "function declared `noreturn' has a `return' statement" +- msgstr "" +- +- #: c-typeck.c:6827 cp/typeck.c:7375 +- msgid "`return' with no value, in function returning non-void" +- msgstr "" +- +- #: c-typeck.c:6834 cp/typeck.c:7406 +- msgid "`return' with a value, in function returning void" +- msgstr "" +- +- #: c-typeck.c:6839 +- msgid "return" +- msgstr "" +- +- #: c-typeck.c:6890 +- msgid "function returns address of local variable" +- msgstr "" +- +- #: c-typeck.c:6919 cp/typeck.c:7547 +- msgid "switch quantity not an integer" +- msgstr "" +- +- #: c-typeck.c:6930 +- msgid "`long' switch expression not converted to `int' in ANSI C" +- msgstr "" +- +- #: calls.c:1664 +- #, c-format +- msgid "can't inline call to `%s'" +- msgstr "" +- +- #: calls.c:1665 calls.c:1847 +- msgid "called from here" +- msgstr "" +- +- #: calls.c:1703 +- msgid "function call has aggregate value" +- msgstr "" +- +- #: calls.c:1846 +- #, c-format +- msgid "inlining failed in call to `%s'" +- msgstr "" +- +- #: cccp.c:1313 +- msgid "Too many arguments" +- msgstr "" +- +- #: cccp.c:1327 +- msgid "Filename missing after `-include' option" +- msgstr "" +- +- #: cccp.c:1335 +- msgid "Filename missing after `-imacros' option" +- msgstr "" +- +- #: cccp.c:1341 +- msgid "Filename missing after `-iprefix' option" +- msgstr "" +- +- #: cccp.c:1423 +- msgid "Output filename specified twice" +- msgstr "" +- +- #: cccp.c:1425 +- msgid "Filename missing after -o option" +- msgstr "" +- +- #: cccp.c:1440 +- msgid "Filename missing after -pcp option" +- msgstr "" +- +- #: cccp.c:1571 +- #, c-format +- msgid "Filename missing after %s option" +- msgstr "" +- +- #: cccp.c:1621 +- #, c-format +- msgid "GNU CPP version %s" +- msgstr "" +- +- #: cccp.c:1637 +- msgid "Macro name missing after -D option" +- msgstr "" +- +- #: cccp.c:1649 +- msgid "Assertion missing after -A option" +- msgstr "" +- +- #: cccp.c:1672 +- msgid "Macro name missing after -U option" +- msgstr "" +- +- #: cccp.c:1736 cppmain.c:68 toplev.c:1294 toplev.c:5102 toplev.c:5178 +- #: toplev.c:5347 toplev.c:5350 toplev.c:5503 +- #, c-format +- msgid "Invalid option `%s'" +- msgstr "" +- +- #: cccp.c:1914 +- msgid "#include \"...\" search starts here:\n" +- msgstr "" +- +- #: cccp.c:1917 +- msgid "#include <...> search starts here:\n" +- msgstr "" +- +- #: cccp.c:1926 +- msgid "End of search list.\n" +- msgstr "" +- +- #: cccp.c:1929 +- msgid "" +- "The following default directories have been omitted from the search path:\n" +- msgstr "" +- +- #: cccp.c:1933 +- msgid "End of omitted list.\n" +- msgstr "" +- +- #: cccp.c:1941 +- msgid "-MG must be specified with one of -M or -MM" +- msgstr "" +- +- #: cccp.c:2080 +- #, c-format +- msgid "Input file `%s' is a directory" +- msgstr "" +- +- #: cccp.c:2154 cccp.c:5296 +- msgid "file does not end in newline" +- msgstr "" +- +- #: cccp.c:2174 cccp.c:2184 +- msgid "I/O error on output" +- msgstr "" +- +- #: cccp.c:2181 +- msgid "I/O error on `-pcp' output" +- msgstr "" +- +- #: cccp.c:2329 +- #, c-format +- msgid "%lu trigraph(s) encountered" +- msgstr "" +- +- #: cccp.c:2639 +- msgid "preprocessing directive not recognized within macro arg" +- msgstr "" +- +- #: cccp.c:2783 cccp.c:8068 cccp.c:8102 +- msgid "unterminated string or character constant" +- msgstr "" +- +- #: cccp.c:2786 cccp.c:8070 +- msgid "possible real start of unterminated constant" +- msgstr "" +- +- #: cccp.c:2805 +- msgid "unterminated character constant" +- msgstr "" +- +- #: cccp.c:2811 cccp.c:8114 +- msgid "string constant runs past end of line" +- msgstr "" +- +- #: cccp.c:2905 cccp.c:7584 cccp.c:7949 cccp.c:8938 +- msgid "multiline `//' comment" +- msgstr "" +- +- #: cccp.c:2989 cccp.c:7560 cccp.c:8002 cccp.c:8909 cpplib.c:269 cpplib.c:343 +- msgid "`/*' within comment" +- msgstr "" +- +- #: cccp.c:3009 cccp.c:8033 +- msgid "unterminated comment" +- msgstr "" +- +- #: cccp.c:3298 +- #, c-format +- msgid "recursive use of macro `%s'" +- msgstr "" +- +- #: cccp.c:3548 +- #, c-format +- msgid "unterminated `#%s' conditional" +- msgstr "" +- +- #: cccp.c:3733 cccp.c:7641 cpplib.c:512 +- msgid "`#' followed by integer" +- msgstr "" +- +- #: cccp.c:3745 cccp.c:7650 +- msgid "invalid preprocessing directive" +- msgstr "" +- +- #: cccp.c:3751 cccp.c:7656 cccp.c:7718 +- msgid "invalid preprocessing directive name" +- msgstr "" +- +- #: cccp.c:4130 +- #, c-format +- msgid "Predefined macro `%s' used inside `#if' during precompilation" +- msgstr "" +- +- #: cccp.c:4139 +- msgid "cccp error: not in any file?!" +- msgstr "" +- +- #: cccp.c:4278 cppexp.c:475 +- msgid "`defined' without an identifier" +- msgstr "" +- +- #: cccp.c:4282 +- msgid "cccp error: invalid special hash type" +- msgstr "" +- +- #: cccp.c:4336 cpplib.c:972 +- msgid "ANSI C does not allow `#import'" +- msgstr "" +- +- #: cccp.c:4338 cpplib.c:974 +- msgid "ANSI C does not allow `#include_next'" +- msgstr "" +- +- #: cccp.c:4344 +- msgid "using `#import' is not recommended" +- msgstr "" +- +- #: cccp.c:4345 +- msgid "" +- "The fact that a certain header file need not be processed more than once\n" +- "should be indicated in the header file, not where it is used.\n" +- "The best way to do this is with a conditional of this form:\n" +- "\n" +- " #ifndef _FOO_H_INCLUDED\n" +- " #define _FOO_H_INCLUDED\n" +- " ... ...\n" +- " #endif /* Not _FOO_H_INCLUDED */\n" +- "\n" +- "Then users can use `#include' any number of times.\n" +- "GNU C automatically avoids processing the file more than once\n" +- "when it is equipped with such a conditional.\n" +- msgstr "" +- +- #: cccp.c:4466 +- msgid "VAX-C-style include specification found, use '#include ' !" +- msgstr "" +- +- #: cccp.c:4518 cpplib.c:1011 +- #, c-format +- msgid "`#%s' expects \"FILENAME\" or " +- msgstr "" +- +- #: cccp.c:4541 cpplib.c:1032 +- #, c-format +- msgid "empty file name in `#%s'" +- msgstr "" +- +- #: cccp.c:4681 cccp.c:4685 cpplib.c:1097 cpplib.c:1145 +- #, c-format +- msgid "No include path in which to find %s" +- msgstr "" +- +- #: cccp.c:5242 +- #, c-format +- msgid "directory `%s' specified in #include" +- msgstr "" +- +- #: cccp.c:5404 cccp.c:5439 +- msgid "Bad format encountered while reading precompiled file" +- msgstr "" +- +- #: cccp.c:5732 cpphash.c:639 +- #, c-format +- msgid "another parameter follows `%s'" +- msgstr "" +- +- #: cccp.c:5746 cpphash.c:643 +- msgid "invalid character in macro parameter name" +- msgstr "" +- +- #: cccp.c:5756 +- msgid "ANSI C does not allow macro with variable arguments" +- msgstr "" +- +- #: cccp.c:5775 cccp.c:5785 cpphash.c:666 +- msgid "badly punctuated parameter list in `#define'" +- msgstr "" +- +- #: cccp.c:5790 cpphash.c:676 +- msgid "unterminated parameter list in `#define'" +- msgstr "" +- +- #: cccp.c:5800 +- #, c-format +- msgid "duplicate argument name `%.*s' in `#define'" +- msgstr "" +- +- #: cccp.c:5807 +- #, c-format +- msgid "reserved name `%s' used as argument name in `#define'" +- msgstr "" +- +- #: cccp.c:5852 cccp.c:5857 cpphash.c:740 +- #, c-format +- msgid "missing white space after `#define %.*s'" +- msgstr "" +- +- #: cccp.c:5929 cpplib.c:654 +- #, c-format +- msgid "`%.*s' redefined" +- msgstr "" +- +- #: cccp.c:5972 cpplib.c:590 +- msgid "invalid assertion name" +- msgstr "" +- +- #: cccp.c:5972 cpplib.c:590 +- msgid "invalid macro name" +- msgstr "" +- +- #: cccp.c:5976 +- #, c-format +- msgid "invalid assertion name `%.*s'" +- msgstr "" +- +- #: cccp.c:5977 +- #, c-format +- msgid "invalid macro name `%.*s'" +- msgstr "" +- +- #: cccp.c:6118 cpphash.c:326 +- msgid "`##' at start of macro definition" +- msgstr "" +- +- #: cccp.c:6189 cpphash.c:379 +- msgid "`##' at end of macro definition" +- msgstr "" +- +- #: cccp.c:6203 cpphash.c:391 +- msgid "`#' operator is not followed by a macro argument name" +- msgstr "" +- +- #: cccp.c:6298 cpphash.c:481 +- #, c-format +- msgid "macro argument `%.*s' is stringified." +- msgstr "" +- +- #: cccp.c:6301 cpphash.c:487 +- #, c-format +- msgid "macro arg `%.*s' would be stringified with -traditional." +- msgstr "" +- +- #: cccp.c:6354 cpphash.c:537 +- msgid "`#' operator should be followed by a macro argument name" +- msgstr "" +- +- #: cccp.c:6396 cpplib.c:2731 +- msgid "ANSI C does not allow `#assert'" +- msgstr "" +- +- #: cccp.c:6414 cpplib.c:2740 +- msgid "missing token-sequence in `#assert'" +- msgstr "" +- +- #: cccp.c:6428 +- msgid "empty token-sequence in `#assert'" +- msgstr "" +- +- #: cccp.c:6448 +- msgid "`defined' redefined as assertion" +- msgstr "" +- +- #: cccp.c:6475 cpplib.c:2797 +- msgid "ANSI C does not allow `#unassert'" +- msgstr "" +- +- #: cccp.c:6502 +- msgid "empty token list in `#unassert'" +- msgstr "" +- +- #: cccp.c:6572 +- msgid "ANSI C does not allow testing assertions" +- msgstr "" +- +- #: cccp.c:6672 +- msgid "unterminated token sequence in `#assert' or `#unassert'" +- msgstr "" +- +- #: cccp.c:6812 cccp.c:6831 cccp.c:6852 cccp.c:6888 cccp.c:6905 cccp.c:6929 +- msgid "invalid format `#line' directive" +- msgstr "" +- +- #: cccp.c:6823 +- msgid "line number out of range in `#line' directive" +- msgstr "" +- +- #: cccp.c:6878 +- msgid "garbage at end of `#line' directive" +- msgstr "" +- +- #: cccp.c:6966 cpplib.c:1367 +- #, c-format +- msgid "undefining `%s'" +- msgstr "" +- +- #: cccp.c:6974 +- msgid "garbage after `#undef' directive" +- msgstr "" +- +- #: cccp.c:6994 cpplib.c:1405 +- #, c-format +- msgid "#error %s" +- msgstr "" +- +- #: cccp.c:7015 cpplib.c:1427 +- msgid "ANSI C does not allow `#warning'" +- msgstr "" +- +- #. Use `pedwarn' not `warning', because #warning isn't in the C Standard; +- #. if -pedantic-errors is given, #warning should cause an error. +- #: cccp.c:7019 cpplib.c:1431 +- #, c-format +- msgid "#warning %s" +- msgstr "" +- +- #: cccp.c:7051 cpplib.c:1448 +- msgid "ANSI C does not allow `#ident'" +- msgstr "" +- +- #: cccp.c:7082 cpplib.c:1482 +- msgid "`#pragma once' is obsolete" +- msgstr "" +- +- #: cccp.c:7104 +- #, c-format +- msgid "`#pragma implementation' for \"%s\" appears after its #include" +- msgstr "" +- +- #: cccp.c:7134 +- msgid "You are in a maze of twisty compiler features, all different" +- msgstr "" +- +- #: cccp.c:7149 cpplib.c:1533 +- msgid "ANSI C does not allow `#sccs'" +- msgstr "" +- +- #: cccp.c:7193 cpplib.c:1573 +- msgid "`#elif' not within a conditional" +- msgstr "" +- +- #: cccp.c:7197 cpplib.c:1577 +- msgid "`#elif' after `#else'" +- msgstr "" +- +- #: cccp.c:7305 cpplib.c:1661 +- #, c-format +- msgid "`#%s' with no argument" +- msgstr "" +- +- #: cccp.c:7306 +- #, c-format +- msgid "`#%s' argument starts with punctuation" +- msgstr "" +- +- #: cccp.c:7313 +- #, c-format +- msgid "`#%s' argument starts with a digit" +- msgstr "" +- +- #: cccp.c:7315 cpplib.c:1685 +- #, c-format +- msgid "garbage at end of `#%s' argument" +- msgstr "" +- +- #: cccp.c:7686 +- #, c-format +- msgid "`#%s' not within a conditional" +- msgstr "" +- +- #: cccp.c:7694 +- msgid "`#else' or `#elif' after `#else'" +- msgstr "" +- +- #: cccp.c:7765 +- msgid "text following `#else' violates ANSI standard" +- msgstr "" +- +- #: cccp.c:7769 cpplib.c:1916 +- msgid "`#else' not within a conditional" +- msgstr "" +- +- #: cccp.c:7777 cpplib.c:1924 +- msgid "`#else' after `#else'" +- msgstr "" +- +- #: cccp.c:7810 +- msgid "text following `#endif' violates ANSI standard" +- msgstr "" +- +- #: cccp.c:7814 cpplib.c:1956 +- msgid "unbalanced `#endif'" +- msgstr "" +- +- #: cccp.c:7909 +- msgid "text following `#else' or `#endif' violates ANSI standard" +- msgstr "" +- +- #: cccp.c:8391 +- msgid "unterminated macro call" +- msgstr "" +- +- #: cccp.c:8414 cpphash.c:1139 +- #, c-format +- msgid "arguments given to macro `%s'" +- msgstr "" +- +- #: cccp.c:8425 cpphash.c:1150 +- #, c-format +- msgid "macro `%s' used without args" +- msgstr "" +- +- #: cccp.c:8427 cpphash.c:1152 +- #, c-format +- msgid "macro `%s' used with just one arg" +- msgstr "" +- +- #: cccp.c:8429 cpphash.c:1154 +- #, c-format +- msgid "macro `%s' used with only %d args" +- msgstr "" +- +- #: cccp.c:8432 cpphash.c:1160 +- #, c-format +- msgid "macro `%s' used with too many (%d) args" +- msgstr "" +- +- #: cccp.c:9412 cccp.c:9511 cccp.c:9596 cpperror.c:107 toplev.c:1659 +- msgid "warning: " +- msgstr "" +- +- #: cccp.c:9608 +- msgid "formfeed in preprocessing directive" +- msgstr "" +- +- #: cccp.c:9609 +- msgid "carriage return in preprocessing directive" +- msgstr "" +- +- #: cccp.c:9610 +- msgid "vertical tab in preprocessing directive" +- msgstr "" +- +- #: cccp.c:9646 +- msgid "In file included from " +- msgstr "" +- +- #: cccp.c:9648 +- msgid "" +- ",\n" +- " from " +- msgstr "" +- +- #: cccp.c:10210 cccp.c:10226 +- #, c-format +- msgid "malformed option `-D %s'" +- msgstr "" +- +- #: cccp.c:10338 cccp.c:10345 +- #, c-format +- msgid "malformed option `%s %s'" +- msgstr "" +- +- #: cccp.c:10386 +- msgid "Directory name missing after command line option" +- msgstr "" +- +- #: ../libiberty/cplus-dem.c:4395 cccp.c:10634 gcc.c:5316 +- msgid "Internal gcc abort." +- msgstr "" +- +- #: cccp.c:10664 toplev.c:2511 +- msgid "output pipe has been closed" +- msgstr "" +- +- #: cccp.c:10670 +- msgid "Memory exhausted." +- msgstr "" +- +- #: cexp.y:197 cppexp.c:954 +- msgid "comma operator in operand of `#if'" +- msgstr "" +- +- #: cexp.y:248 cexp.y:265 cppexp.c:861 cppexp.c:879 +- msgid "division by zero in #if" +- msgstr "" +- +- #: cexp.y:367 cppexp.c:436 +- #, c-format +- msgid "`%.*s' is not defined" +- msgstr "" +- +- #: cexp.y:448 +- msgid "too many `l's in integer constant" +- msgstr "" +- +- #: cexp.y:459 +- msgid "Floating point numbers not allowed in #if expressions" +- msgstr "" +- +- #: cexp.y:461 +- #, c-format +- msgid "missing white space after number `%.*s'" +- msgstr "" +- +- #: cexp.y:480 cppexp.c:216 +- msgid "integer constant contains digits beyond the radix" +- msgstr "" +- +- #: cexp.y:489 cppexp.c:226 +- msgid "integer constant is so large that it is unsigned" +- msgstr "" +- +- #: cexp.y:539 cppexp.c:487 +- #, c-format +- msgid "`%s' not allowed in operand of `#if'" +- msgstr "" +- +- #: cexp.y:776 cppexp.c:423 +- msgid "string constants not allowed in #if expressions" +- msgstr "" +- +- #: cexp.y:808 +- msgid "Invalid token in expression" +- msgstr "" +- +- #: cexp.y:898 cppexp.c:573 +- msgid "octal escape sequence out of range" +- msgstr "" +- +- #: cexp.y:929 cppexp.c:604 +- msgid "hex escape sequence out of range" +- msgstr "" +- +- #: cexp.y:942 cppexp.c:618 +- msgid "integer overflow in preprocessor expression" +- msgstr "" +- +- #: cexp.y:1000 +- msgid "Junk after end of expression." +- msgstr "" +- +- #: collect2.c:501 +- msgid "internal error" +- msgstr "" +- +- #: collect2.c:536 collect2.c:546 +- msgid "out of memory" +- msgstr "" +- +- #: ../libiberty/cplus-dem.c:4601 ../libiberty/cplus-dem.c:4612 collect2.c:561 +- #: cp/decl.c:5474 gcc.c:5243 gcc.c:5258 toplev.c:2315 toplev.c:2332 +- #: toplev.c:2353 toplev.c:2367 +- msgid "virtual memory exhausted" +- msgstr "" +- +- #: collect2.c:1072 +- msgid "no arguments" +- msgstr "" +- +- #: collect2.c:1449 collect2.c:1601 collect2.c:1626 +- #, c-format +- msgid "fopen %s" +- msgstr "" +- +- #: collect2.c:1452 collect2.c:1458 collect2.c:1606 collect2.c:1629 +- #, c-format +- msgid "fclose %s" +- msgstr "" +- +- #: collect2.c:1455 +- #, c-format +- msgid "%s" +- msgstr "" +- +- #: collect2.c:1467 +- #, c-format +- msgid "collect2 version %s" +- msgstr "" +- +- #: collect2.c:1556 +- #, c-format +- msgid "%d constructor(s) found\n" +- msgstr "" +- +- #: collect2.c:1557 +- #, c-format +- msgid "%d destructor(s) found\n" +- msgstr "" +- +- #: collect2.c:1558 +- #, c-format +- msgid "%d frame table(s) found\n" +- msgstr "" +- +- #: collect2.c:1689 +- #, c-format +- msgid "%s terminated with signal %d [%s]" +- msgstr "" +- +- #: collect2.c:1690 +- #, c-format +- msgid "%s terminated with signal %d [%s], core dumped" +- msgstr "" +- +- #: collect2.c:1710 +- #, c-format +- msgid "%s returned %d exit status" +- msgstr "" +- +- #: collect2.c:1738 +- #, c-format +- msgid "[cannot find %s]" +- msgstr "" +- +- #: collect2.c:1753 +- #, c-format +- msgid "cannot find `%s'" +- msgstr "" +- +- #: collect2.c:1764 collect2.c:1767 +- #, c-format +- msgid "redirecting stdout: %s" +- msgstr "" +- +- #: collect2.c:1810 +- #, c-format +- msgid "[Leaving %s]\n" +- msgstr "" +- +- #: collect2.c:2032 +- #, c-format +- msgid "" +- "\n" +- "write_c_file - output name is %s, prefix is %s\n" +- msgstr "" +- +- #: collect2.c:2256 +- msgid "cannot find `nm'" +- msgstr "" +- +- #: collect2.c:2266 collect2.c:2703 +- msgid "pipe" +- msgstr "" +- +- #: collect2.c:2270 collect2.c:2707 +- msgid "fdopen" +- msgstr "" +- +- #: collect2.c:2296 collect2.c:2733 +- #, c-format +- msgid "dup2 %d 1" +- msgstr "" +- +- #: collect2.c:2299 collect2.c:2302 collect2.c:2315 collect2.c:2736 +- #: collect2.c:2739 collect2.c:2752 +- #, c-format +- msgid "close %d" +- msgstr "" +- +- #: collect2.c:2305 +- #, c-format +- msgid "execvp %s" +- msgstr "" +- +- #: collect2.c:2359 +- #, c-format +- msgid "init function found in object %s" +- msgstr "" +- +- #: collect2.c:2367 +- #, c-format +- msgid "fini function found in object %s" +- msgstr "" +- +- #: collect2.c:2390 collect2.c:2791 +- msgid "fclose" +- msgstr "" +- +- #: collect2.c:2433 +- #, c-format +- msgid "unable to open file '%s'" +- msgstr "" +- +- #: collect2.c:2435 +- #, c-format +- msgid "unable to stat file '%s'" +- msgstr "" +- +- #: collect2.c:2441 +- #, c-format +- msgid "unable to mmap file '%s'" +- msgstr "" +- +- #: collect2.c:2592 +- msgid "not found\n" +- msgstr "" +- +- #: collect2.c:2594 collect2.c:2770 +- #, c-format +- msgid "dynamic dependency %s not found" +- msgstr "" +- +- #: collect2.c:2614 +- #, c-format +- msgid "bad magic number in file '%s'" +- msgstr "" +- +- #: collect2.c:2636 +- msgid "dynamic dependencies.\n" +- msgstr "" +- +- #: collect2.c:2694 +- msgid "cannot find `ldd'" +- msgstr "" +- +- #: collect2.c:2742 +- #, c-format +- msgid "execv %s" +- msgstr "" +- +- #: collect2.c:2755 +- msgid "" +- "\n" +- "ldd output with constructors/destructors.\n" +- msgstr "" +- +- #: collect2.c:2782 +- #, c-format +- msgid "unable to open dynamic dependency '%s'" +- msgstr "" +- +- #: collect2.c:2883 +- #, c-format +- msgid "%s: not a COFF file" +- msgstr "" +- +- #: collect2.c:3030 +- #, c-format +- msgid "%s: cannot open as COFF file" +- msgstr "" +- +- #: collect2.c:3105 +- #, c-format +- msgid "Library lib%s not found" +- msgstr "" +- +- #: collect2.c:3229 +- #, c-format +- msgid "open %s" +- msgstr "" +- +- #: collect2.c:3252 +- msgid "incompatibilities between object file & expected values" +- msgstr "" +- +- #: collect2.c:3325 +- #, c-format +- msgid "" +- "\n" +- "Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n" +- msgstr "" +- +- #: collect2.c:3334 +- msgid "string section missing" +- msgstr "" +- +- #: collect2.c:3337 +- msgid "section pointer missing" +- msgstr "" +- +- #: collect2.c:3385 +- msgid "no symbol table found" +- msgstr "" +- +- #: collect2.c:3398 +- msgid "no cmd_strings found" +- msgstr "" +- +- #: collect2.c:3410 +- msgid "" +- "\n" +- "Updating header and load commands.\n" +- "\n" +- msgstr "" +- +- #: collect2.c:3417 +- #, c-format +- msgid "load command map, %d cmds, new size %ld.\n" +- msgstr "" +- +- #: collect2.c:3448 +- msgid "" +- "writing load commands.\n" +- "\n" +- msgstr "" +- +- #: collect2.c:3468 +- #, c-format +- msgid "close %s" +- msgstr "" +- +- #: collect2.c:3542 +- msgid "could not convert 0x%l.8x into a region" +- msgstr "" +- +- #: collect2.c:3546 +- #, c-format +- msgid "%s function, region %d, offset = %ld (0x%.8lx)\n" +- msgstr "" +- +- #: collect2.c:3673 +- msgid "bad magic number" +- msgstr "" +- +- #: collect2.c:3674 +- msgid "bad header version" +- msgstr "" +- +- #: collect2.c:3675 +- msgid "bad raw header version" +- msgstr "" +- +- #: collect2.c:3676 +- msgid "raw header buffer too small" +- msgstr "" +- +- #: collect2.c:3677 +- msgid "old raw header file" +- msgstr "" +- +- #: collect2.c:3678 +- msgid "unsupported version" +- msgstr "" +- +- #: collect2.c:3680 +- #, c-format +- msgid "unknown {de,en}code_mach_o_hdr return value %d" +- msgstr "" +- +- #: collect2.c:3700 +- #, c-format +- msgid "fstat %s" +- msgstr "" +- +- #: collect2.c:3737 collect2.c:3785 +- #, c-format +- msgid "lseek %s 0" +- msgstr "" +- +- #: collect2.c:3741 +- #, c-format +- msgid "read %s" +- msgstr "" +- +- #: collect2.c:3744 +- #, c-format +- msgid "read %ld bytes, expected %ld, from %s" +- msgstr "" +- +- #: collect2.c:3765 +- #, c-format +- msgid "msync %s" +- msgstr "" +- +- #: collect2.c:3772 +- #, c-format +- msgid "munmap %s" +- msgstr "" +- +- #: collect2.c:3789 +- #, c-format +- msgid "write %s" +- msgstr "" +- +- #: collect2.c:3792 +- #, c-format +- msgid "wrote %ld bytes, expected %ld, to %s" +- msgstr "" +- +- #: combine.c:12026 +- #, c-format +- msgid "" +- ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new " +- "space),\n" +- ";; %d successes.\n" +- "\n" +- msgstr "" +- +- #: combine.c:12036 +- #, c-format +- msgid "" +- "\n" +- ";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n" +- ";; %d successes.\n" +- msgstr "" +- +- #: config/a29k/a29k.c:996 +- msgid "invalid %%Q value" +- msgstr "" +- +- #: config/a29k/a29k.c:1002 config/alpha/alpha.c:2931 +- msgid "invalid %%C value" +- msgstr "" +- +- #: config/a29k/a29k.c:1008 config/alpha/alpha.c:2795 +- #: config/rs6000/rs6000.c:2781 +- msgid "invalid %%N value" +- msgstr "" +- +- #: config/a29k/a29k.c:1014 config/alpha/alpha.c:2866 +- #: config/rs6000/rs6000.c:2745 +- msgid "invalid %%M value" +- msgstr "" +- +- #: config/a29k/a29k.c:1020 config/alpha/alpha.c:2858 +- #: config/rs6000/rs6000.c:2710 +- msgid "invalid %%m value" +- msgstr "" +- +- #: config/a29k/a29k.c:1120 config/alpha/alpha.c:2819 config/romp/romp.c:675 +- msgid "invalid %%L value" +- msgstr "" +- +- #: config/a29k/a29k.c:1125 config/rs6000/rs6000.c:2789 +- msgid "invalid %%O value" +- msgstr "" +- +- #: config/a29k/a29k.c:1131 config/alpha/alpha.c:2803 +- #: config/rs6000/rs6000.c:2808 +- msgid "invalid %%P value" +- msgstr "" +- +- #: config/a29k/a29k.c:1141 +- msgid "invalid %%V value" +- msgstr "" +- +- #: config/alpha/alpha.c:162 +- #, c-format +- msgid "bad value `%s' for -mtrap-precision switch" +- msgstr "" +- +- #: config/alpha/alpha.c:176 +- #, c-format +- msgid "bad value `%s' for -mfp-rounding-mode switch" +- msgstr "" +- +- #: config/alpha/alpha.c:191 +- #, c-format +- msgid "bad value `%s' for -mfp-trap-mode switch" +- msgstr "" +- +- #: config/alpha/alpha.c:240 +- #, c-format +- msgid "bad value `%s' for -mcpu switch" +- msgstr "" +- +- #: config/alpha/alpha.c:248 +- msgid "fp software completion requires -mtrap-precision=i" +- msgstr "" +- +- #: config/alpha/alpha.c:256 +- msgid "rounding mode not supported for VAX floats" +- msgstr "" +- +- #: config/alpha/alpha.c:261 +- msgid "trap mode not supported for VAX floats" +- msgstr "" +- +- #: config/alpha/alpha.c:290 +- #, c-format +- msgid "L%d cache latency unknown for %s" +- msgstr "" +- +- #: config/alpha/alpha.c:305 +- #, c-format +- msgid "bad value `%s' for -mmemory-latency" +- msgstr "" +- +- #: config/alpha/alpha.c:2777 +- msgid "invalid %%r value" +- msgstr "" +- +- #: config/alpha/alpha.c:2788 config/rs6000/rs6000.c:2816 +- msgid "invalid %%R value" +- msgstr "" +- +- #: config/alpha/alpha.c:2811 config/romp/romp.c:717 config/romp/romp.c:724 +- msgid "invalid %%h value" +- msgstr "" +- +- #: config/alpha/alpha.c:2901 +- msgid "invalid %%U value" +- msgstr "" +- +- #: config/alpha/alpha.c:2909 config/alpha/alpha.c:2920 config/romp/romp.c:683 +- #: config/rs6000/rs6000.c:2824 +- msgid "invalid %%s value" +- msgstr "" +- +- #: config/alpha/alpha.c:2966 config/rs6000/rs6000.c:2598 +- msgid "invalid %%E value" +- msgstr "" +- +- #: config/alpha/alpha.c:2987 config/romp/romp.c:958 +- #: config/rs6000/rs6000.c:3107 +- msgid "invalid %%xn code" +- msgstr "" +- +- #: config/arc/arc.c:103 +- #, c-format +- msgid "bad value (%s) for -mcpu switch" +- msgstr "" +- +- #: config/arc/arc.c:1649 config/m32r/m32r.c:1868 +- msgid "invalid operand to %R code" +- msgstr "" +- +- #: config/arc/arc.c:1681 config/m32r/m32r.c:1891 +- msgid "invalid operand to %H/%L code" +- msgstr "" +- +- #: config/arc/arc.c:1705 config/m32r/m32r.c:1968 +- msgid "invalid operand to %U code" +- msgstr "" +- +- #: config/arc/arc.c:1716 +- msgid "invalid operand to %V code" +- msgstr "" +- +- #. Unknown flag. +- #: config/arc/arc.c:1723 config/m32r/m32r.c:2007 config/sparc/sparc.c:5161 +- msgid "invalid operand output code" +- msgstr "" +- +- #: config/arm/arm.c:297 +- #, c-format +- msgid "switch -mcpu=%s conflicts with -mtune= switch" +- msgstr "" +- +- #: config/arm/arm.c:307 config/rs6000/rs6000.c:287 config/sparc/sparc.c:296 +- #, c-format +- msgid "bad value (%s) for %s switch" +- msgstr "" +- +- #: config/arm/arm.c:443 +- msgid "target CPU does not support APCS-32" +- msgstr "" +- +- #: config/arm/arm.c:448 +- msgid "target CPU does not support APCS-26" +- msgstr "" +- +- #: config/arm/arm.c:454 +- msgid "target CPU does not support interworking" +- msgstr "" +- +- #: config/arm/arm.c:462 +- msgid "interworking forces APCS-32 to be used" +- msgstr "" +- +- #: config/arm/arm.c:468 +- msgid "-mapcs-stack-check incompatible with -mno-apcs-frame" +- msgstr "" +- +- #: config/arm/arm.c:473 +- msgid "-g with -fomit-frame-pointer may not give sensible debugging" +- msgstr "" +- +- #: config/arm/arm.c:479 +- msgid "-fpic and -mapcs-reent are incompatible" +- msgstr "" +- +- #: config/arm/arm.c:482 +- msgid "APCS reentrant code not supported. Ignored" +- msgstr "" +- +- #: config/arm/arm.c:490 +- msgid "Passing floating point arguments in fp regs not yet supported" +- msgstr "" +- +- #: config/arm/arm.c:515 +- #, c-format +- msgid "Invalid floating point emulation option: -mfpe-%s" +- msgstr "" +- +- #: config/arm/arm.c:538 +- msgid "Structure size boundary can only be set to 8 or 32" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:264 +- #, c-format +- msgid "Invalid register class letter %c" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:367 +- msgid "ACCUM_HIGH_REGS class in limit_reload_class" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:394 +- msgid "YH_OR_ACCUM_HIGH_REGS found in limit_reload_class" +- msgstr "" +- +- #. Register 'yl' is invalid for QImode, so we should never +- #. see it. +- #: config/dsp16xx/dsp16xx.c:403 +- msgid "YL found in limit_reload_class" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1220 config/dsp16xx/dsp16xx.c:1247 +- msgid "Stack size > 32k" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1476 +- msgid "Invalid addressing mode" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1635 +- msgid "Bad register extension code" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1693 +- msgid "Invalid offset in ybase addressing" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1696 +- msgid "Invalid register in ybase addressing" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1726 config/dsp16xx/dsp16xx.c:1962 +- msgid "inline float constants not supported on this host" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:1868 +- msgid "Invalid shift operator in emit_1600_core_shift" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:2147 +- msgid "Invalid mode for gen_tst_reg" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:2218 +- msgid "Invalid mode for integer comparison in gen_compare_reg" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.c:2246 +- msgid "Invalid register for compare" +- msgstr "" +- +- #: config/h8300/h8300.c:2960 config/h8300/h8300.c:2972 +- msgid "Only initialized variables can be placed into the 8-bit area." +- msgstr "" +- +- #: config/i370/i370.c:283 +- msgid "virtual memory exhausted\n" +- msgstr "" +- +- #: config/i386/dgux.c:179 +- #, c-format +- msgid "Internal gcc abort from %s:%d" +- msgstr "" +- +- #: config/i386/dgux.c:183 +- msgid "The local variable `insn' has the value:" +- msgstr "" +- +- #: config/i386/i386.c:282 +- #, c-format +- msgid "Register '%c' is unknown" +- msgstr "" +- +- #: config/i386/i386.c:286 +- #, c-format +- msgid "Register '%c' already specified in allocation order" +- msgstr "" +- +- #: config/i386/i386.c:310 +- #, c-format +- msgid "bad value (%s) for -march= switch" +- msgstr "" +- +- #: config/i386/i386.c:324 +- #, c-format +- msgid "-mcpu=%s does not support -march=%s" +- msgstr "" +- +- #: config/i386/i386.c:334 config/mips/mips.c:4266 +- #, c-format +- msgid "bad value (%s) for -mcpu= switch" +- msgstr "" +- +- #: config/i386/i386.c:344 +- #, c-format +- msgid "-mregparm=%d is not between 0 and %d" +- msgstr "" +- +- #: config/i386/i386.c:364 +- #, c-format +- msgid "-malign-loops=%d is not between 0 and %d" +- msgstr "" +- +- #: config/i386/i386.c:378 +- #, c-format +- msgid "-malign-jumps=%d is not between 0 and %d" +- msgstr "" +- +- #: config/i386/i386.c:388 +- #, c-format +- msgid "-malign-functions=%d is not between 0 and %d" +- msgstr "" +- +- #: config/i386/i386.c:399 +- #, c-format +- msgid "-mpreferred_stack_boundary=%d is not between 2 and 31" +- msgstr "" +- +- #: config/i386/i386.c:409 +- #, c-format +- msgid "-mbranch-cost=%d is not between 0 and 5" +- msgstr "" +- +- #: config/i386/i386.c:1228 +- msgid "Source is not offsettable" +- msgstr "" +- +- #: config/i386/i386.c:1231 +- msgid "Pushing non-word aligned size" +- msgstr "" +- +- #. We can't handle floating point constants; +- #. PRINT_OPERAND must handle them. +- #: config/i386/i386.c:2938 config/pdp11/pdp11.c:1474 dwarf2out.c:2821 +- #: final.c:3625 +- msgid "floating constant misused" +- msgstr "" +- +- #: config/i386/i386.c:2981 +- msgid "invalid UNSPEC as operand" +- msgstr "" +- +- #: config/i386/i386.c:2987 config/pdp11/pdp11.c:1521 dwarf2out.c:2870 +- #: final.c:3672 +- msgid "invalid expression as operand" +- msgstr "" +- +- #: config/i386/i386.c:3170 config/i386/i386.c:3207 config/sparc/sparc.c:5111 +- msgid "Invalid %%C operand" +- msgstr "" +- +- #: config/i386/winnt.c:298 +- #, c-format +- msgid "`%s' declared as both exported to and imported from a DLL." +- msgstr "" +- +- #: config/i386/winnt.c:326 +- #, c-format +- msgid "initialized variable `%s' is marked dllimport" +- msgstr "" +- +- #: config/i386/winnt.c:335 +- #, c-format +- msgid "static variable `%s' is marked dllimport" +- msgstr "" +- +- #: config/m32r/m32r.c:79 +- #, c-format +- msgid "bad value (%s) for -mmodel switch" +- msgstr "" +- +- #: config/m32r/m32r.c:88 +- #, c-format +- msgid "bad value (%s) for -msdata switch" +- msgstr "" +- +- #: config/m32r/m32r.c:374 +- msgid "const objects cannot go in .sdata/.sbss" +- msgstr "" +- +- #: config/m32r/m32r.c:1838 +- #, c-format +- msgid "invalid operand to %s code" +- msgstr "" +- +- #: config/m32r/m32r.c:1845 +- #, c-format +- msgid "invalid operand to %p code" +- msgstr "" +- +- #: config/m32r/m32r.c:1953 +- msgid "invalid operand to %T/%B code" +- msgstr "" +- +- #: config/m32r/m32r.c:1976 +- msgid "invalid operand to %N code" +- msgstr "" +- +- #: config/m68k/m68k.c:100 +- #, c-format +- msgid "-malign-loops=%d is not between 1 and %d" +- msgstr "" +- +- #: config/m68k/m68k.c:111 +- #, c-format +- msgid "-malign-jumps=%d is not between 1 and %d" +- msgstr "" +- +- #: config/m68k/m68k.c:122 +- #, c-format +- msgid "-malign-functions=%d is not between 1 and %d" +- msgstr "" +- +- #: config/m88k/m88k.c:866 +- #, c-format +- msgid "Internal gcc monitor: short-branch(%x)" +- msgstr "" +- +- #: config/m88k/m88k.c:2264 +- msgid "Internal gcc error: Can't express symbolic location" +- msgstr "" +- +- #: config/m88k/m88k.c:2545 +- #, c-format +- msgid "argument #%d is a structure" +- msgstr "" +- +- #: config/m88k/m88k.c:2754 +- msgid "%R not followed by %B/C/D/E" +- msgstr "" +- +- #: config/m88k/m88k.c:2822 +- #, c-format +- msgid "invalid %x/X value" +- msgstr "" +- +- #: config/m88k/m88k.c:2827 +- msgid "invalid %H value" +- msgstr "" +- +- #: config/m88k/m88k.c:2833 +- msgid "invalid %h value" +- msgstr "" +- +- #: config/m88k/m88k.c:2839 +- msgid "invalid %Q value" +- msgstr "" +- +- #: config/m88k/m88k.c:2845 +- msgid "invalid %q value" +- msgstr "" +- +- #: config/m88k/m88k.c:2851 +- #, c-format +- msgid "invalid %o value" +- msgstr "" +- +- #: config/m88k/m88k.c:2858 +- #, c-format +- msgid "invalid %p value" +- msgstr "" +- +- #: config/m88k/m88k.c:2871 config/m88k/m88k.c:2876 +- #, c-format +- msgid "invalid %s/S value" +- msgstr "" +- +- #: config/m88k/m88k.c:2887 +- msgid "invalid %P operand" +- msgstr "" +- +- #: config/m88k/m88k.c:2918 +- msgid "invalid %B value" +- msgstr "" +- +- #: config/m88k/m88k.c:2935 +- msgid "invalid %C value" +- msgstr "" +- +- #: config/m88k/m88k.c:2948 +- msgid "invalid %D value" +- msgstr "" +- +- #: config/m88k/m88k.c:2956 +- #, c-format +- msgid "invalid %E value" +- msgstr "" +- +- #: config/m88k/m88k.c:2961 +- #, c-format +- msgid "`%d' operand isn't a register" +- msgstr "" +- +- #: config/m88k/m88k.c:2972 +- msgid "invalid %r value" +- msgstr "" +- +- #: config/m88k/m88k.c:2979 +- msgid "operand is r0" +- msgstr "" +- +- #: config/m88k/m88k.c:2993 +- msgid "operand is const_double" +- msgstr "" +- +- #: config/m88k/m88k.c:3012 +- msgid "invalid code" +- msgstr "" +- +- #: config/mips/mips.c:4067 +- #, c-format +- msgid "-mips%d not supported" +- msgstr "" +- +- #: config/mips/mips.c:4074 +- #, c-format +- msgid "bad value (%s) for -mips switch" +- msgstr "" +- +- #: config/mips/mips.c:4093 +- #, c-format +- msgid "bad value (%s) for -mabi= switch" +- msgstr "" +- +- #: config/mips/mips.c:4123 +- #, c-format +- msgid "-mabi=%s does not support -mips%d" +- msgstr "" +- +- #: config/mips/mips.c:4140 +- msgid "The -mabi=32 support does not work yet." +- msgstr "" +- +- #: config/mips/mips.c:4144 +- msgid "This target does not support the -mabi switch." +- msgstr "" +- +- #: config/mips/mips.c:4279 +- #, c-format +- msgid "-mcpu=%s does not support -mips%d" +- msgstr "" +- +- #: config/mips/mips.c:4285 +- msgid "Only MIPS-III or MIPS-IV CPUs can support 64 bit fp registers" +- msgstr "" +- +- #: config/mips/mips.c:4288 +- msgid "Only MIPS-III or MIPS-IV CPUs can support 64 bit gp registers" +- msgstr "" +- +- #: config/mips/mips.c:4307 +- msgid "-G is incompatible with PIC code which is the default" +- msgstr "" +- +- #: config/mips/mips.c:4323 +- msgid "-membedded-pic and -mabicalls are incompatible" +- msgstr "" +- +- #: config/mips/mips.c:4326 +- msgid "-G and -membedded-pic are incompatible" +- msgstr "" +- +- #: config/mips/mips.c:4378 +- #, c-format +- msgid "Invalid option `entry%s'" +- msgstr "" +- +- #: config/mips/mips.c:4381 +- msgid "-mentry is only meaningful with -mips-16" +- msgstr "" +- +- #: config/mips/mips.c:4696 +- msgid "internal error: %%) found without a %%( in assembler pattern" +- msgstr "" +- +- #: config/mips/mips.c:4710 +- msgid "internal error: %%] found without a %%[ in assembler pattern" +- msgstr "" +- +- #: config/mips/mips.c:4723 +- msgid "internal error: %%> found without a %%< in assembler pattern" +- msgstr "" +- +- #: config/mips/mips.c:4736 +- msgid "internal error: %%} found without a %%{ in assembler pattern" +- msgstr "" +- +- #: config/mips/mips.c:4743 +- #, c-format +- msgid "PRINT_OPERAND: Unknown punctuation '%c'" +- msgstr "" +- +- #: config/mips/mips.c:4752 +- msgid "PRINT_OPERAND null pointer" +- msgstr "" +- +- #: config/mips/mips.c:4862 +- #, c-format +- msgid "PRINT_OPERAND: letter %c was found & insn was not CONST_INT" +- msgstr "" +- +- #: config/mips/mips.c:4906 +- msgid "PRINT_OPERAND_ADDRESS, null pointer" +- msgstr "" +- +- #: config/mips/mips.c:5161 +- msgid "" +- "MIPS ECOFF format does not allow changing filenames within functions with " +- "#line" +- msgstr "" +- +- #: config/mips/mips.c:5724 +- #, c-format +- msgid "gp_offset (%ld) or end_offset (%ld) is less than zero." +- msgstr "" +- +- #: config/mips/mips.c:5941 +- #, c-format +- msgid "fp_offset (%ld) or end_offset (%ld) is less than zero." +- msgstr "" +- +- #: config/mips/mips.c:7910 +- #, c-format +- msgid "can not handle inconsistent calls to `%s'" +- msgstr "" +- +- #: config/nextstep.c:65 +- msgid "optimization turned on" +- msgstr "" +- +- #: config/nextstep.c:71 +- msgid "optimization turned off" +- msgstr "" +- +- #: config/nextstep.c:86 +- msgid "optimization level restored" +- msgstr "" +- +- #: config/pa/pa.c:134 +- #, c-format +- msgid "" +- "Unknown -mschedule= option (%s).\n" +- "Valid options are 700, 7100, 7100LC, 7200, and 8000\n" +- msgstr "" +- +- #: config/pa/pa.c:159 +- #, c-format +- msgid "" +- "Unknown -march= option (%s).\n" +- "Valid options are 1.0, 1.1, and 2.0\n" +- msgstr "" +- +- #: config/pa/pa.c:164 +- msgid "PIC code generation is not supported in the portable runtime model\n" +- msgstr "" +- +- #: config/pa/pa.c:169 +- msgid "PIC code generation is not compatible with fast indirect calls\n" +- msgstr "" +- +- #: config/pa/pa.c:174 +- msgid "PIC code generation is not compatible with profiling\n" +- msgstr "" +- +- #: config/pa/pa.c:179 +- msgid "Out of line entry/exit sequences are not compatible\n" +- msgstr "" +- +- #: config/pa/pa.c:180 +- msgid "with PIC or profiling\n" +- msgstr "" +- +- #: config/pa/pa.c:185 +- msgid "-g is only supported when using GAS on this processor," +- msgstr "" +- +- #: config/pa/pa.c:186 +- msgid "-g option disabled." +- msgstr "" +- +- #: config/romp/romp.c:667 +- msgid "invalid %%B value" +- msgstr "" +- +- #: config/romp/romp.c:694 config/rs6000/rs6000.c:2834 +- msgid "invalid %%S value" +- msgstr "" +- +- #: config/romp/romp.c:703 config/romp/romp.c:710 config/rs6000/rs6000.c:2548 +- msgid "invalid %%b value" +- msgstr "" +- +- #: config/romp/romp.c:731 config/romp/romp.c:738 +- msgid "invalid %%H value" +- msgstr "" +- +- #: config/romp/romp.c:750 config/romp/romp.c:761 +- msgid "invalid %%z value" +- msgstr "" +- +- #: config/romp/romp.c:769 config/romp/romp.c:777 +- msgid "invalid %%Z value" +- msgstr "" +- +- #: config/romp/romp.c:784 config/romp/romp.c:793 config/romp/romp.c:800 +- #: config/rs6000/rs6000.c:2680 +- msgid "invalid %%k value" +- msgstr "" +- +- #: config/romp/romp.c:885 config/romp/romp.c:928 +- msgid "invalid %%j value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:317 +- msgid "-mmultiple is not supported on little endian systems" +- msgstr "" +- +- #: config/rs6000/rs6000.c:324 +- msgid "-mstring is not supported on little endian systems" +- msgstr "" +- +- #: config/rs6000/rs6000.c:330 +- #, c-format +- msgid "-f%s ignored for AIX (all code is position independent)" +- msgstr "" +- +- #: config/rs6000/rs6000.c:345 +- #, c-format +- msgid "Unknown -mdebug-%s switch" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2427 +- msgid "GOT/TOC register marker not removed:" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2607 +- msgid "invalid %%f value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2616 +- msgid "invalid %%F value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2625 +- msgid "invalid %%G value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2660 +- msgid "invalid %%j code" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2670 +- msgid "invalid %%J code" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2798 +- msgid "invalid %%p value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2860 +- msgid "%%S computed all 1's mask" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2886 +- msgid "%%S computed all 0's mask" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2896 +- msgid "invalid %%t value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2912 +- msgid "invalid %%T value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2927 +- msgid "invalid %%u value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:2935 +- msgid "invalid %%v value" +- msgstr "" +- +- #: config/rs6000/rs6000.c:5729 +- msgid "bad address" +- msgstr "" +- +- #: config/sparc/sparc.c:227 +- #, c-format +- msgid "%s is not supported by this configuration" +- msgstr "" +- +- #: config/sparc/sparc.c:235 +- #, c-format +- msgid "-mptr%d not allowed on -m%d" +- msgstr "" +- +- #: config/sparc/sparc.c:259 +- #, c-format +- msgid "bad value (%s) for -mcmodel= switch" +- msgstr "" +- +- #: config/sparc/sparc.c:264 +- msgid "-mcmodel= is not supported on 32 bit systems" +- msgstr "" +- +- #: config/sparc/sparc.c:326 +- #, c-format +- msgid "-malign-loops=%s is not between 4 and 128 or is not a power of two" +- msgstr "" +- +- #: config/sparc/sparc.c:341 +- #, c-format +- msgid "-malign-jumps=%s is not between 4 and 128 or is not a power of two" +- msgstr "" +- +- #: config/sparc/sparc.c:356 +- #, c-format +- msgid "-malign-functions=%s is not between 4 and 128 or is not a power of two" +- msgstr "" +- +- #: config/sparc/sparc.c:372 +- msgid "profiling does not support code models other than medlow" +- msgstr "" +- +- #: config/sparc/sparc.c:5000 config/sparc/sparc.c:5006 +- msgid "Invalid %%Y operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5076 +- msgid "Invalid %%A operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5086 +- msgid "Invalid %%B operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5110 +- msgid "Invalid %%c operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5132 +- msgid "Invalid %%d operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5133 +- msgid "Invalid %%D operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5151 +- msgid "Invalid %%f operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5202 +- msgid "long long constant not a valid immediate operand" +- msgstr "" +- +- #: config/sparc/sparc.c:5205 +- msgid "floating point constant not a valid immediate operand" +- msgstr "" +- +- #: config/v850/v850.c:138 +- #, c-format +- msgid "%s=%s is not numeric." +- msgstr "" +- +- #: config/v850/v850.c:145 +- #, c-format +- msgid "%s=%s is too large." +- msgstr "" +- +- #: config/v850/v850.c:301 +- msgid "const_double_split got a bad insn:" +- msgstr "" +- +- #: config/v850/v850.c:792 +- msgid "output_move_single:" +- msgstr "" +- +- #: config/v850/v850.c:2066 +- msgid "a data area attribute cannot be specified for local variables" +- msgstr "" +- +- #: config/v850/v850.c:2074 +- #, c-format +- msgid "data area of '%s' conflicts with previous declaration" +- msgstr "" +- +- #: config/v850/v850.c:2278 +- #, c-format +- msgid "Bogus JR construction: %d\n" +- msgstr "" +- +- #: config/v850/v850.c:2299 config/v850/v850.c:2501 +- #, c-format +- msgid "Bad amount of stack space removal: %d" +- msgstr "" +- +- #: config/v850/v850.c:2477 +- #, c-format +- msgid "Bogus JARL construction: %d\n" +- msgstr "" +- +- #: config/v850/v850.c:2722 +- msgid "#pragma GHS endXXXX found without previous startXXX" +- msgstr "" +- +- #: config/v850/v850.c:2724 +- msgid "#pragma GHS endXXX does not match previous startXXX" +- msgstr "" +- +- #: config/v850/v850.c:2748 +- msgid "Cannot set interrupt attribute: no current function" +- msgstr "" +- +- #: config/v850/v850.c:2756 +- msgid "Cannot set interrupt attribute: no such identifier" +- msgstr "" +- +- #: config/v850/v850.c:2789 +- msgid "Incomplete #pragma ghs" +- msgstr "" +- +- #: config/v850/v850.c:2796 +- msgid "Nothing follows #pragma ghs" +- msgstr "" +- +- #: config/v850/v850.c:2888 +- #, c-format +- msgid "Unrecognised GHS pragma: '%s'\n" +- msgstr "" +- +- #: config/v850/v850.c:2894 +- #, c-format +- msgid "Extra text after valid #pragma: '%s'" +- msgstr "" +- +- #: config/v850/v850.c:2919 +- #, c-format +- msgid "Unrecognised section name '%s' in GHS section pragma" +- msgstr "" +- +- #: config/v850/v850.c:2930 +- msgid "Missing '=' in GHS section pragma" +- msgstr "" +- +- #: config/v850/v850.c:2951 +- #, c-format +- msgid "Malformed GHS section pragma: found '%s' instead of a comma" +- msgstr "" +- +- #: config/v850/v850.c:3028 +- msgid "Missing trailing \" in #pragma ghs" +- msgstr "" +- +- #: convert.c:65 +- msgid "cannot convert to a pointer type" +- msgstr "" +- +- #: convert.c:98 +- msgid "pointer value used where a floating point value was expected" +- msgstr "" +- +- #: convert.c:102 +- msgid "aggregate value used where a float was expected" +- msgstr "" +- +- #: convert.c:128 +- msgid "conversion to incomplete type" +- msgstr "" +- +- #: convert.c:385 +- msgid "aggregate value used where an integer was expected" +- msgstr "" +- +- #: convert.c:437 +- msgid "pointer value used where a complex was expected" +- msgstr "" +- +- #: convert.c:441 +- msgid "aggregate value used where a complex was expected" +- msgstr "" +- +- #: cp/call.c:493 +- msgid "unable to call pointer to member function here" +- msgstr "" +- +- #: cp/call.c:605 +- msgid "destructors take no parameters" +- msgstr "" +- +- #: cp/class.c:450 +- msgid "" +- "object size exceeds built-in limit for virtual function table implementation" +- msgstr "" +- +- #: cp/class.c:452 +- msgid "" +- "object size exceeds normal limit for virtual function table implementation, " +- "recompile all source and use -fhuge-objects" +- msgstr "" +- +- #: cp/class.c:899 +- msgid "internal inconsistency: binfo offset error for rtti" +- msgstr "" +- +- #: cp/class.c:1435 +- #, c-format +- msgid "conflicting access specifications for field `%s', ignored" +- msgstr "" +- +- #. Only give error if the two offsets are different +- #: cp/class.c:2253 +- msgid "every virtual function must have a unique final overrider" +- msgstr "" +- +- #: cp/class.c:3138 +- msgid "anonymous class type not used to declare any objects" +- msgstr "" +- +- #: cp/class.c:3477 +- #, c-format +- msgid "bit-fields larger than %d bits" +- msgstr "" +- +- #: cp/class.c:4232 +- msgid "trying to finish struct, but kicked out due to previous parse errors." +- msgstr "" +- +- #: cp/class.c:4662 +- #, c-format +- msgid "language string `\"%s\"' not recognized" +- msgstr "" +- +- #: cp/class.c:4951 cp/class.c:5139 cp/class.c:5146 +- msgid "not enough type information" +- msgstr "" +- +- #: cp/class.c:5123 +- msgid "invalid operation on uninstantiated type" +- msgstr "" +- +- #: cp/decl.c:1413 +- msgid "internal compiler error: debugging info corrupted" +- msgstr "" +- +- #: cp/decl.c:3888 cp/decl.c:13734 +- msgid "parse errors have confused me too much" +- msgstr "" +- +- #: cp/decl.c:4175 +- #, c-format +- msgid "variable `%s' shadows local" +- msgstr "" +- +- #: cp/decl.c:4787 +- #, c-format +- msgid "label `%s' referenced outside of any function" +- msgstr "" +- +- #: cp/decl.c:5040 +- msgid "where case label appears here" +- msgstr "" +- +- #: cp/decl.c:5043 +- msgid "(enclose actions of previous case statements requiring" +- msgstr "" +- +- #: cp/decl.c:5044 +- msgid "destructors in their own binding contours.)" +- msgstr "" +- +- #: cp/decl.c:5065 +- msgid "jump to case label" +- msgstr "" +- +- #: cp/decl.c:7044 +- msgid "an anonymous union cannot have function members" +- msgstr "" +- +- #: cp/decl.c:7094 +- msgid "multiple types in one declaration" +- msgstr "" +- +- #: cp/decl.c:7099 +- msgid "declaration does not declare anything" +- msgstr "" +- +- #: cp/decl.c:7746 +- msgid "assignment (not initialization) in declaration" +- msgstr "" +- +- #: cp/decl.c:8794 +- msgid "cannot declare `main' to be a template" +- msgstr "" +- +- #: cp/decl.c:8796 +- msgid "cannot declare `main' to be inline" +- msgstr "" +- +- #: cp/decl.c:8798 +- msgid "cannot declare `main' to be static" +- msgstr "" +- +- #: cp/decl.c:9371 +- msgid "destructors must be member functions" +- msgstr "" +- +- #: cp/decl.c:9700 +- msgid "`bool' is now a keyword" +- msgstr "" +- +- #: cp/decl.c:9731 +- msgid "ANSI C++ does not support `long long'" +- msgstr "" +- +- #: cp/decl.c:9844 +- msgid "return type specification for destructor invalid" +- msgstr "" +- +- #: cp/decl.c:9849 +- msgid "return type specification for constructor invalid" +- msgstr "" +- +- #: cp/decl.c:9889 +- #, c-format +- msgid "short, signed or unsigned invalid for `%s'" +- msgstr "" +- +- #: cp/decl.c:9894 +- #, c-format +- msgid "long and short specified together for `%s'" +- msgstr "" +- +- #: cp/decl.c:9905 +- #, c-format +- msgid "signed and unsigned given together for `%s'" +- msgstr "" +- +- #: cp/decl.c:10037 +- msgid "only declarations of constructors can be `explicit'" +- msgstr "" +- +- #: cp/decl.c:10043 +- #, c-format +- msgid "non-member `%s' cannot be declared `mutable'" +- msgstr "" +- +- #: cp/decl.c:10048 +- #, c-format +- msgid "non-object member `%s' cannot be declared `mutable'" +- msgstr "" +- +- #: cp/decl.c:10060 +- msgid "storage class specifiers invalid in parameter declarations" +- msgstr "" +- +- #: cp/decl.c:10064 +- msgid "typedef declaration invalid in parameter declaration" +- msgstr "" +- +- #: cp/decl.c:10075 +- msgid "virtual outside class declaration" +- msgstr "" +- +- #: cp/decl.c:10080 +- msgid "only members can be declared mutable" +- msgstr "" +- +- #: cp/decl.c:10098 +- #, c-format +- msgid "type qualifiers specified for signature member function `%s'" +- msgstr "" +- +- #: cp/decl.c:10103 +- #, c-format +- msgid "`inline' specified for signature member function `%s'" +- msgstr "" +- +- #: cp/decl.c:10109 cp/friend.c:248 +- msgid "`friend' declaration in signature definition" +- msgstr "" +- +- #: cp/decl.c:10114 +- #, c-format +- msgid "`virtual' specified for signature member function `%s'" +- msgstr "" +- +- #: cp/decl.c:10157 +- #, c-format +- msgid "storage class specified for %s `%s'" +- msgstr "" +- +- #: cp/decl.c:10202 +- msgid "storage class specifiers invalid in friend function declarations" +- msgstr "" +- +- #: cp/decl.c:10445 +- msgid "overflow in array dimension" +- msgstr "" +- +- #: cp/decl.c:10540 +- msgid "destructor cannot be static member function" +- msgstr "" +- +- #: cp/decl.c:10562 +- msgid "constructor cannot be static member function" +- msgstr "" +- +- #: cp/decl.c:10565 +- msgid "constructors cannot be declared virtual" +- msgstr "" +- +- #: cp/decl.c:10580 +- msgid "return value type specifier for constructor ignored" +- msgstr "" +- +- #: cp/decl.c:10586 +- msgid "constructor not allowed in signature" +- msgstr "" +- +- #: cp/decl.c:10605 +- #, c-format +- msgid "can't initialize friend function `%s'" +- msgstr "" +- +- #. Cannot be both friend and virtual. +- #: cp/decl.c:10609 +- msgid "virtual functions cannot be friends" +- msgstr "" +- +- #: cp/decl.c:10614 +- msgid "friend declaration not in class definition" +- msgstr "" +- +- #: cp/decl.c:10673 +- #, c-format +- msgid "cannot declare %s to references" +- msgstr "" +- +- #: cp/decl.c:10707 +- msgid "signature reference" +- msgstr "" +- +- #: cp/decl.c:10723 +- msgid "invalid type: `void &'" +- msgstr "" +- +- #: cp/decl.c:10774 +- msgid "discarding `const' applied to a reference" +- msgstr "" +- +- #: cp/decl.c:10776 +- msgid "discarding `volatile' applied to a reference" +- msgstr "" +- +- #: cp/decl.c:10979 +- msgid "only constructors can be declared `explicit'" +- msgstr "" +- +- #: cp/decl.c:10987 +- #, c-format +- msgid "const `%s' cannot be declared `mutable'" +- msgstr "" +- +- #: cp/decl.c:10992 +- #, c-format +- msgid "static `%s' cannot be declared `mutable'" +- msgstr "" +- +- #: cp/decl.c:11115 +- #, c-format +- msgid "non-object member `%s' cannot be declared mutable" +- msgstr "" +- +- #: cp/decl.c:11121 +- msgid "typedef declaration includes an initializer" +- msgstr "" +- +- #: cp/decl.c:11148 +- msgid "type qualifiers specified for signature type" +- msgstr "" +- +- #: cp/decl.c:11173 +- #, c-format +- msgid "trying to make class `%s' a friend of global scope" +- msgstr "" +- +- #: cp/decl.c:11209 +- msgid "unnamed variable or field declared void" +- msgstr "" +- +- #: cp/decl.c:11218 +- msgid "variable or field declared void" +- msgstr "" +- +- #: cp/decl.c:11228 +- msgid "cannot use `::' in parameter declaration" +- msgstr "" +- +- #: cp/decl.c:11246 +- #, c-format +- msgid "declaration of `%s' as void" +- msgstr "" +- +- #: cp/decl.c:11264 +- msgid "parameter of signature member function declared `inline'" +- msgstr "" +- +- #: cp/decl.c:11266 +- msgid "parameter of signature member function declared `auto'" +- msgstr "" +- +- #: cp/decl.c:11268 +- msgid "parameter of signature member function declared `register'" +- msgstr "" +- +- #: cp/decl.c:11435 +- #, c-format +- msgid "`%s' is neither function nor method; cannot be declared friend" +- msgstr "" +- +- #: cp/decl.c:11446 +- msgid "member functions are implicitly friends of their class" +- msgstr "" +- +- #: cp/decl.c:11560 +- #, c-format +- msgid "storage class `auto' invalid for function `%s'" +- msgstr "" +- +- #: cp/decl.c:11562 +- #, c-format +- msgid "storage class `register' invalid for function `%s'" +- msgstr "" +- +- #: cp/decl.c:11573 +- #, c-format +- msgid "" +- "storage class `static' invalid for function `%s' declared out of global scope" +- msgstr "" +- +- #: cp/decl.c:11575 +- #, c-format +- msgid "" +- "storage class `inline' invalid for function `%s' declared out of global scope" +- msgstr "" +- +- #: cp/decl.c:11582 +- #, c-format +- msgid "virtual non-class function `%s'" +- msgstr "" +- +- #. FIXME need arm citation +- #: cp/decl.c:11617 +- msgid "cannot declare static function inside another function" +- msgstr "" +- +- #: cp/decl.c:11665 +- #, c-format +- msgid "`%s' cannot be declared mutable" +- msgstr "" +- +- #: cp/decl.c:11921 +- msgid "" +- "invalid integer constant in parameter list, did you forget to give parameter " +- "name?" +- msgstr "" +- +- #: cp/decl.c:11948 +- msgid "parameter invalidly declared method type" +- msgstr "" +- +- #: cp/decl.c:11958 +- msgid "parameter invalidly declared offset type" +- msgstr "" +- +- #: cp/decl.c:12004 +- msgid "`void' in parameter list must be entire list" +- msgstr "" +- +- #: cp/decl.c:12336 +- msgid "void is not a valid type conversion operator" +- msgstr "" +- +- #: cp/decl.c:12353 +- #, c-format +- msgid "conversion to %s%s will never use a type conversion operator" +- msgstr "" +- +- #. 13.4.0.3 +- #: cp/decl.c:12381 +- msgid "ANSI C++ prohibits overloading operator ?:" +- msgstr "" +- +- #: cp/decl.c:13392 +- msgid "return type for `main' changed to `int'" +- msgstr "" +- +- #. Give this error as many times as there are occurrences, +- #. so that users can use Emacs compilation buffers to find +- #. and fix all such places. +- #: cp/decl.c:13886 +- msgid "ANSI C++ does not permit named return values" +- msgstr "" +- +- #: cp/decl.c:13902 +- msgid "can't redefine default return value for constructors" +- msgstr "" +- +- #: cp/decl.c:14837 cp/init.c:1782 cp/typeck.c:3129 cp/typeck.c:3232 +- msgid "at this point in file" +- msgstr "" +- +- #: cp/decl2.c:573 +- msgid "" +- "-fhandle-exceptions has been renamed to -fexceptions (and is now on by " +- "default)" +- msgstr "" +- +- #: cp/decl2.c:592 +- #, c-format +- msgid "-f%s is no longer supported" +- msgstr "" +- +- #: cp/decl2.c:990 +- msgid "name missing for member function" +- msgstr "" +- +- #: cp/decl2.c:1060 +- msgid "`__alignof__' applied to a bit-field" +- msgstr "" +- +- #. Something has gone very wrong. Assume we are mistakenly reducing +- #. an expression instead of a declaration. +- #: cp/decl2.c:1112 +- msgid "parser may be lost: is there a '{' missing somewhere?" +- msgstr "" +- +- #: cp/decl2.c:1143 cp/decl2.c:1157 +- msgid "ambiguous conversion for array subscript" +- msgstr "" +- +- #: cp/decl2.c:1207 +- msgid "anachronistic use of array size in vector delete" +- msgstr "" +- +- #: cp/decl2.c:1217 +- msgid "cannot delete a function" +- msgstr "" +- +- #: cp/decl2.c:1537 +- msgid "initializer invalid for static member with constructor" +- msgstr "" +- +- #: cp/decl2.c:1539 +- msgid "(you really want to initialize it separately)" +- msgstr "" +- +- #: cp/decl2.c:1648 cp/decl2.c:1817 +- msgid "field declaration not allowed in signature" +- msgstr "" +- +- #: cp/decl2.c:1667 +- msgid "function declarations cannot have initializers in signature" +- msgstr "" +- +- #: cp/decl2.c:1713 +- msgid "field initializer is not constant" +- msgstr "" +- +- #: cp/decl2.c:2245 +- msgid "global anonymous unions must be declared static" +- msgstr "" +- +- #: cp/decl2.c:2254 +- msgid "anonymous union with no members" +- msgstr "" +- +- #: cp/decl2.c:2319 +- msgid "`operator new' must return type `void *'" +- msgstr "" +- +- #: cp/decl2.c:2324 +- msgid "`operator new' takes type `size_t' parameter" +- msgstr "" +- +- #: cp/decl2.c:2326 +- msgid "`operator new' takes type `size_t' as first parameter" +- msgstr "" +- +- #: cp/decl2.c:2351 +- msgid "`operator delete' must return type `void'" +- msgstr "" +- +- #: cp/decl2.c:2355 +- msgid "`operator delete' takes type `void *' as first parameter" +- msgstr "" +- +- #: cp/decl2.c:2366 +- msgid "second argument to `operator delete' must be of type `size_t'" +- msgstr "" +- +- #: cp/decl2.c:2371 +- msgid "too many arguments in declaration of `operator delete'" +- msgstr "" +- +- #: cp/decl2.c:2373 +- msgid "`...' invalid in specification of `operator delete'" +- msgstr "" +- +- #. Overflow occurred. That means there are at least 4 billion +- #. initialization functions. +- #: cp/decl2.c:3031 +- msgid "too many initialization functions required" +- msgstr "" +- +- #: cp/decl2.c:3797 cp/typeck.c:5770 +- msgid "cast specifies signature type" +- msgstr "" +- +- #: cp/decl2.c:3818 +- msgid "use of old-style cast" +- msgstr "" +- +- #: cp/error.c:339 +- #, c-format +- msgid "`%s' not supported by dump_type" +- msgstr "" +- +- #: cp/error.c:530 +- #, c-format +- msgid "`%s' not supported by dump_type_prefix" +- msgstr "" +- +- #: cp/error.c:613 +- #, c-format +- msgid "`%s' not supported by dump_type_suffix" +- msgstr "" +- +- #: cp/error.c:947 +- #, c-format +- msgid "`%s' not supported by dump_decl" +- msgstr "" +- +- #: cp/error.c:1794 +- #, c-format +- msgid "`%s' not supported by dump_expr" +- msgstr "" +- +- #: cp/except.c:627 +- msgid "invalid catch parameter" +- msgstr "" +- +- #: cp/except.c:1046 +- msgid " in thrown expression" +- msgstr "" +- +- #: cp/expr.c:386 +- msgid "pointers are not permitted as case values" +- msgstr "" +- +- #: cp/expr.c:389 +- msgid "ANSI C++ forbids range expressions in switch statement" +- msgstr "" +- +- #: cp/expr.c:431 +- msgid "duplicate (or overlapping) case value" +- msgstr "" +- +- #: cp/expr.c:449 +- msgid "empty range specified" +- msgstr "" +- +- #: cp/expr.c:455 +- msgid "`default' label within scope of cleanup or variable array" +- msgstr "" +- +- #: cp/friend.c:208 +- #, c-format +- msgid "method `%s::%s' is already a friend of class" +- msgstr "" +- +- #: cp/friend.c:212 +- #, c-format +- msgid "function `%s' is already a friend of class `%s'" +- msgstr "" +- +- #: cp/friend.c:277 +- #, c-format +- msgid "class `%s' is implicitly friends with itself" +- msgstr "" +- +- #: cp/friend.c:431 +- msgid " declares a non-template function" +- msgstr "" +- +- #: cp/friend.c:434 +- msgid " (if this is not what you intended, make sure" +- msgstr "" +- +- #: cp/friend.c:435 +- msgid " the function template has already been declared," +- msgstr "" +- +- #: cp/friend.c:436 +- msgid " and add <> after the function name here)" +- msgstr "" +- +- #: cp/friend.c:437 +- msgid " -Wno-non-template-friend disables this warning." +- msgstr "" +- +- #: cp/init.c:208 +- msgid "initializer list treated as compound expression" +- msgstr "" +- +- #: cp/init.c:301 +- msgid " will be re-ordered to match declaration order" +- msgstr "" +- +- #: cp/init.c:456 +- msgid " will be re-ordered to match inheritance order" +- msgstr "" +- +- #: cp/init.c:942 +- msgid "base class initializer specified, but no base class to initialize" +- msgstr "" +- +- #: cp/init.c:948 +- msgid "initializer for unnamed base class ambiguous" +- msgstr "" +- +- #: cp/init.c:975 +- msgid "no base class to initialize" +- msgstr "" +- +- #: cp/init.c:1006 +- msgid " will be re-ordered to precede member initializations" +- msgstr "" +- +- #. Handle bad initializers like: +- #. class COMPLEX { +- #. public: +- #. double re, im; +- #. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;}; +- #. ~COMPLEX() {}; +- #. }; +- #. +- #. int main(int argc, char **argv) { +- #. COMPLEX zees(1.0, 0.0)[10]; +- #. } +- #. +- #: cp/init.c:1114 +- msgid "bad array initializer" +- msgstr "" +- +- #: cp/init.c:1739 +- msgid "object missing in use of pointer-to-member construct" +- msgstr "" +- +- #: cp/init.c:1976 +- msgid "new of array type fails to specify size" +- msgstr "" +- +- #: cp/init.c:1987 +- msgid "size in array new must have integral type" +- msgstr "" +- +- #: cp/init.c:1993 +- msgid "zero size array reserves no space" +- msgstr "" +- +- #: cp/init.c:2068 +- msgid "new cannot be applied to a reference type" +- msgstr "" +- +- #: cp/init.c:2074 +- msgid "new cannot be applied to a function type" +- msgstr "" +- +- #: cp/init.c:2126 +- msgid "call to Java constructor, while `jclass' undefined" +- msgstr "" +- +- #: cp/init.c:2201 +- msgid "invalid type `void' for new" +- msgstr "" +- +- #: cp/init.c:2257 +- msgid "constructors take parameter lists" +- msgstr "" +- +- #: cp/init.c:2270 +- #, c-format +- msgid "call to Java constructor, while `%s' undefined" +- msgstr "" +- +- #: cp/init.c:2385 cp/typeck2.c:626 cp/typeck2.c:1470 +- msgid "initializer list being treated as compound expression" +- msgstr "" +- +- #: cp/init.c:2388 +- msgid "initializer list appears where operand should be used" +- msgstr "" +- +- #: cp/init.c:2859 +- msgid "initialization of array from dissimilar array type" +- msgstr "" +- +- #: cp/init.c:2873 +- msgid "initializer ends prematurely" +- msgstr "" +- +- #: cp/init.c:2923 +- msgid "cannot initialize multi-dimensional array with initializer" +- msgstr "" +- +- #: cp/init.c:3063 +- msgid "unknown array size in delete" +- msgstr "" +- +- #: cp/init.c:3315 +- msgid "type to vector delete is neither pointer or array type" +- msgstr "" +- +- #: cp/lex.c:186 +- msgid "type name expected before `*'" +- msgstr "" +- +- #: cp/lex.c:208 +- msgid "cannot declare references to references" +- msgstr "" +- +- #: cp/lex.c:213 +- msgid "cannot declare pointers to references" +- msgstr "" +- +- #: cp/lex.c:217 +- msgid "type name expected before `&'" +- msgstr "" +- +- #: cp/lex.c:1260 cp/lex.c:1830 +- msgid "parse error at end of saved function text" +- msgstr "" +- +- #: cp/lex.c:1301 +- msgid "end of file encountered inside string constant" +- msgstr "" +- +- #: cp/lex.c:1303 +- msgid "end of file encountered inside character constant" +- msgstr "" +- +- #: cp/lex.c:1320 cp/lex.c:4179 +- msgid "ANSI C++ forbids newline in string constant" +- msgstr "" +- +- #: cp/lex.c:1516 +- msgid "parse error in method specification" +- msgstr "" +- +- #: cp/lex.c:1613 +- msgid "function body for constructor missing" +- msgstr "" +- +- #: cp/lex.c:2058 +- #, c-format +- msgid "semicolon missing after %s declaration" +- msgstr "" +- +- #. Used to test incremental compilation. +- #: cp/lex.c:2368 +- msgid "#pragma newworld" +- msgstr "" +- +- #: cp/lex.c:2579 +- msgid "badly nested C headers from preprocessor" +- msgstr "" +- +- #: cp/lex.c:2963 +- #, c-format +- msgid "name lookup of `%s' changed" +- msgstr "" +- +- #: cp/lex.c:3178 cp/lex.c:3881 +- msgid "ANSI C++ forbids imaginary numeric constants" +- msgstr "" +- +- #: cp/lex.c:3427 +- #, c-format +- msgid "invalid modifier `%s' for language string" +- msgstr "" +- +- #: cp/lex.c:3526 +- #, c-format +- msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy" +- msgstr "" +- +- #: cp/lex.c:3825 +- #, c-format +- msgid "floating point number exceeds range of `%s'" +- msgstr "" +- +- #: cp/lex.c:3871 +- msgid "ANSI C++ forbids long long integer constants" +- msgstr "" +- +- #: cp/lex.c:3956 +- msgid "decimal integer constant is so large that it is unsigned" +- msgstr "" +- +- #: cp/lex.c:3967 +- msgid "complex integer constant is too wide for `__complex int'" +- msgstr "" +- +- #: cp/lex.c:4252 +- msgid "Unterminated string" +- msgstr "" +- +- #: cp/lex.c:4401 +- #, c-format +- msgid "use of `operator %s' is not standard C++" +- msgstr "" +- +- #: cp/lex.c:4794 +- msgid "invalid #pragma vtable" +- msgstr "" +- +- #: cp/lex.c:4800 +- msgid "use `+e2' option to enable #pragma vtable" +- msgstr "" +- +- #: cp/lex.c:4809 cp/lex.c:4823 +- msgid "trailing characters ignored" +- msgstr "" +- +- #: cp/lex.c:4818 +- msgid "invalid #pragma unit" +- msgstr "" +- +- #: cp/lex.c:4841 +- msgid "invalid `#pragma interface'" +- msgstr "" +- +- #: cp/lex.c:4849 +- msgid "garbage after `#pragma interface' ignored" +- msgstr "" +- +- #: cp/lex.c:4898 +- msgid "invalid `#pragma implementation'" +- msgstr "" +- +- #: cp/lex.c:4906 +- msgid "garbage after `#pragma implementation' ignored" +- msgstr "" +- +- #: cp/lex.c:4938 +- msgid "`#pragma implementation' can only appear at top-level" +- msgstr "" +- +- #: cp/method.c:762 +- msgid "ANSI C++ forbids floating-point template arguments" +- msgstr "" +- +- #: cp/method.c:905 +- #, c-format +- msgid "conversion of %s as template parameter" +- msgstr "" +- +- #: cp/method.c:1897 +- msgid "methods cannot be converted to function pointers" +- msgstr "" +- +- #: cp/method.c:1902 +- #, c-format +- msgid "ambiguous request for method pointer `%s'" +- msgstr "" +- +- #: cp/method.c:2019 +- #, c-format +- msgid "request for member `%s' is ambiguous in multiple inheritance lattice" +- msgstr "" +- +- #: parse.y:560 +- msgid "invalid default template argument" +- msgstr "" +- +- #: parse.y:780 +- msgid "no base initializers given following ':'" +- msgstr "" +- +- #: parse.y:803 +- msgid "base initializers not allowed for non-member functions" +- msgstr "" +- +- #: parse.y:805 +- msgid "only constructors take base initializers" +- msgstr "" +- +- #: parse.y:822 parse.y:828 +- msgid "anachronistic old style base class initializer" +- msgstr "" +- +- #. Handle `Class>' without space in the `>>' +- #: parse.y:945 +- msgid "`>>' should be `> >' in template class name" +- msgstr "" +- +- #: parse.y:992 parse.y:1001 +- #, c-format +- msgid "ANSI C++ forbids an empty condition for `%s'" +- msgstr "" +- +- #: parse.y:1098 +- msgid "ANSI C++ forbids `&&'" +- msgstr "" +- +- #: parse.y:1204 +- msgid "ANSI C++ forbids initialization of new expression with `='" +- msgstr "" +- +- #: parse.y:1234 +- msgid "ANSI C++ forbids constructor-expressions" +- msgstr "" +- +- #: parse.y:1433 +- msgid "ANSI C++ forbids braced-groups within expressions" +- msgstr "" +- +- #: parse.y:1837 parse.y:1852 +- msgid "sigof type specifier" +- msgstr "" +- +- #: parse.y:1842 parse.y:2371 parse.y:2392 +- msgid "`sigof' applied to non-aggregate expression" +- msgstr "" +- +- #: parse.y:1857 +- msgid "`sigof' applied to non-aggregate type" +- msgstr "" +- +- #: parse.y:2203 +- #, c-format +- msgid "storage class specifier `%s' not allowed after struct or class" +- msgstr "" +- +- #: parse.y:2205 +- #, c-format +- msgid "type specifier `%s' not allowed after struct or class" +- msgstr "" +- +- #: parse.y:2207 +- #, c-format +- msgid "type qualifier `%s' not allowed after struct or class" +- msgstr "" +- +- #: parse.y:2209 +- msgid "no body nor ';' separates two class, struct or union declarations" +- msgstr "" +- +- #: parse.y:2366 parse.y:2387 +- msgid "`sigof' as base signature specifier" +- msgstr "" +- +- #: parse.y:2377 parse.y:2398 +- msgid "`sigof' in struct or class declaration" +- msgstr "" +- +- #: parse.y:2413 +- msgid "multiple access specifiers" +- msgstr "" +- +- #: parse.y:2431 +- msgid "multiple `virtual' specifiers" +- msgstr "" +- +- #: parse.y:2446 +- msgid "access specifier not allowed in signature" +- msgstr "" +- +- #: parse.y:2470 +- msgid "missing ';' before right brace" +- msgstr "" +- +- #: parse.y:2712 +- msgid "ANSI C++ forbids array dimensions with parenthesized type in new" +- msgstr "" +- +- #: parse.y:3218 +- msgid "ANSI C++ forbids label declarations" +- msgstr "" +- +- #: parse.y:3364 +- msgid "ANSI C++ forbids computed gotos" +- msgstr "" +- +- #: parse.y:3372 +- msgid "label must be followed by statement" +- msgstr "" +- +- #: parse.y:3475 +- msgid "ANSI C++ forbids compound statements inside for initializations" +- msgstr "" +- +- #. This helps us recover from really nasty +- #. parse errors, for example, a missing right +- #. parenthesis. +- #: parse.y:3560 parse.y:3570 +- msgid "possibly missing ')'" +- msgstr "" +- +- #: parse.y:3667 parse.y:3672 +- msgid "type specifier omitted for parameter" +- msgstr "" +- +- #: cp/pt.c:1787 +- msgid " a template type parameter must begin with `class' or `typename'" +- msgstr "" +- +- #: cp/pt.c:2704 +- msgid "because it is the address of an object with static linkage" +- msgstr "" +- +- #: cp/pt.c:4238 +- #, c-format +- msgid "testing %s for template parms" +- msgstr "" +- +- #: cp/pt.c:4335 +- #, c-format +- msgid "template instantiation depth exceeds maximum of %d" +- msgstr "" +- +- #: cp/pt.c:4337 +- msgid " (use -ftemplate-depth-NN to increase the maximum)" +- msgstr "" +- +- #: cp/pt.c:6150 +- msgid "creating array with size zero" +- msgstr "" +- +- #: cp/pt.c:6618 +- #, c-format +- msgid "use of `%s' in template" +- msgstr "" +- +- #: cp/pt.c:7656 +- msgid "incomplete type unification" +- msgstr "" +- +- #: cp/pt.c:8493 +- #, c-format +- msgid "use of `%s' in template type unification" +- msgstr "" +- +- #: cp/repo.c:263 +- msgid "-frepo must be used with -c" +- msgstr "" +- +- #: cp/repo.c:353 +- #, c-format +- msgid "mysterious repository information in %s" +- msgstr "" +- +- #: cp/repo.c:368 +- #, c-format +- msgid "can't create repository information file `%s'" +- msgstr "" +- +- #: cp/rtti.c:104 +- msgid "`headof' applied to non-pointer type" +- msgstr "" +- +- #: cp/rtti.c:197 +- msgid "typeid of overloaded function" +- msgstr "" +- +- #: cp/rtti.c:223 +- msgid "taking dynamic typeid of object with -fno-rtti" +- msgstr "" +- +- #: cp/rtti.c:269 +- msgid "cannot use typeid with -fno-rtti" +- msgstr "" +- +- #: cp/rtti.c:275 cp/rtti.c:425 +- msgid "must #include before using typeid" +- msgstr "" +- +- #: cp/rtti.c:430 +- msgid "requesting typeid with -fno-rtti" +- msgstr "" +- +- #: cp/search.c:1919 +- msgid "adjusting pointers for covariant returns" +- msgstr "" +- +- #: cp/search.c:1930 +- msgid "invalid covariant return type (must use pointer or reference)" +- msgstr "" +- +- #. This shouldn't happen, I don't want errors! +- #: cp/search.c:2438 +- msgid "recoverable compiler error, fixups for virtual function" +- msgstr "" +- +- #: cp/search.c:2714 +- msgid "recoverable internal compiler error, nobody's in charge!" +- msgstr "" +- +- #: cp/sig.c:473 +- msgid "conformance check with signature containing class declarations" +- msgstr "" +- +- #: cp/sig.c:736 +- msgid "signature with opaque type implemented by multiple classes" +- msgstr "" +- +- #: cp/sig.c:807 +- msgid "invalid assignment to signature pointer or reference" +- msgstr "" +- +- #: cp/spew.c:367 +- msgid "keyword 'export' not implemented and will be ignored" +- msgstr "" +- +- #: cp/tree.c:177 +- #, c-format +- msgid "non-lvalue in %s" +- msgstr "" +- +- #: cp/tree.c:1690 cp/tree.c:1982 +- msgid "initializer contains unrecognized tree code" +- msgstr "" +- +- #: cp/tree.c:2723 +- msgid "`com_interface' only supported with -fvtable-thunks" +- msgstr "" +- +- #: cp/tree.c:2732 +- msgid "`com_interface' attribute can only be applied to class definitions" +- msgstr "" +- +- #: cp/tree.c:2749 +- msgid "requested init_priority is not an integer constant" +- msgstr "" +- +- #: cp/tree.c:2770 +- msgid "" +- "can only use init_priority attribute on file-scope definitions of objects of " +- "class type" +- msgstr "" +- +- #: cp/tree.c:2776 +- msgid "requested init_priority is out of range" +- msgstr "" +- +- #: cp/tree.c:2785 +- msgid "requested init_priority is reserved for internal use" +- msgstr "" +- +- #: cp/typeck.c:1561 cp/typeck.c:1638 +- msgid "ANSI C++ forbids taking the sizeof a function type" +- msgstr "" +- +- #: cp/typeck.c:1567 +- msgid "ANSI C++ forbids taking the sizeof a method type" +- msgstr "" +- +- #: cp/typeck.c:1573 +- msgid "ANSI C++ forbids taking the sizeof a void type" +- msgstr "" +- +- #: cp/typeck.c:1598 +- msgid "`sizeof' applied to a signature type" +- msgstr "" +- +- #: cp/typeck.c:1627 +- msgid "sizeof applied to a bit-field" +- msgstr "" +- +- #: cp/typeck.c:1703 +- msgid "`__alignof' applied to a signature type" +- msgstr "" +- +- #: cp/typeck.c:1923 +- msgid "signature name in scope resolution ignored" +- msgstr "" +- +- #: cp/typeck.c:2230 +- msgid "invalid reference to NULL ptr, use ptr-to-member instead" +- msgstr "" +- +- #: cp/typeck.c:2387 +- #, c-format +- msgid "invalid use of `%s' on pointer to member" +- msgstr "" +- +- #: cp/typeck.c:2390 +- msgid "cannot dereference signature pointer/reference" +- msgstr "" +- +- #: cp/typeck.c:2396 +- msgid "invalid type argument" +- msgstr "" +- +- #: cp/typeck.c:2477 +- msgid "ANSI C++ forbids subscripting non-lvalue array" +- msgstr "" +- +- #: cp/typeck.c:2488 +- msgid "subscripting array declared `register'" +- msgstr "" +- +- #: cp/typeck.c:2660 cp/typeck.c:2800 +- msgid "pointer to member function called, but not in class scope" +- msgstr "" +- +- #: cp/typeck.c:2798 +- msgid "" +- "invalid call to member function needing `this' in static member function " +- "scope" +- msgstr "" +- +- #: cp/typeck.c:2956 +- msgid "ANSI C++ forbids calling `main' from within program" +- msgstr "" +- +- #: cp/typeck.c:3168 +- msgid "parameter type of called function is incomplete" +- msgstr "" +- +- #: cp/typeck.c:3576 +- #, c-format +- msgid "%s rotate count is negative" +- msgstr "" +- +- #: cp/typeck.c:3581 +- #, c-format +- msgid "%s rotate count >= width of type" +- msgstr "" +- +- #: cp/typeck.c:3610 cp/typeck.c:3618 +- msgid "ANSI C++ forbids comparison of `void *' with function pointer" +- msgstr "" +- +- #: cp/typeck.c:3612 +- msgid "ANSI C++ forbids conversion of a pointer to member to `void *'" +- msgstr "" +- +- #: cp/typeck.c:3636 cp/typeck.c:3641 cp/typeck.c:3791 cp/typeck.c:3796 +- msgid "ANSI C++ forbids comparison between pointer and integer" +- msgstr "" +- +- #: cp/typeck.c:4137 +- msgid "ANSI C++ forbids using pointer of type `void *' in arithmetic" +- msgstr "" +- +- #: cp/typeck.c:4143 +- msgid "ANSI C++ forbids using pointer to a function in arithmetic" +- msgstr "" +- +- #: cp/typeck.c:4149 +- msgid "ANSI C++ forbids using pointer to a method in arithmetic" +- msgstr "" +- +- #: cp/typeck.c:4155 +- msgid "ANSI C++ forbids using pointer to a member in arithmetic" +- msgstr "" +- +- #: cp/typeck.c:4228 +- msgid "ANSI C++ forbids using pointer of type `void *' in subtraction" +- msgstr "" +- +- #: cp/typeck.c:4230 +- msgid "ANSI C++ forbids using pointer to a function in subtraction" +- msgstr "" +- +- #: cp/typeck.c:4232 +- msgid "ANSI C++ forbids using pointer to a method in subtraction" +- msgstr "" +- +- #: cp/typeck.c:4234 +- msgid "ANSI C++ forbids using pointer to a member in subtraction" +- msgstr "" +- +- #: cp/typeck.c:4347 +- msgid "taking address of temporary" +- msgstr "" +- +- #: cp/typeck.c:4530 +- #, c-format +- msgid "ANSI C++ forbids %sing an enum" +- msgstr "" +- +- #: cp/typeck.c:4572 +- msgid "cast to non-reference type used as lvalue" +- msgstr "" +- +- #. ARM $3.4 +- #: cp/typeck.c:4652 +- msgid "taking address of function `main'" +- msgstr "" +- +- #. An expression like &memfn. +- #: cp/typeck.c:4708 +- msgid "taking the address of a non-static member function" +- msgstr "" +- +- #: cp/typeck.c:4710 +- msgid "taking the address of a bound member function" +- msgstr "" +- +- #: cp/typeck.c:4739 +- msgid "taking the address of a cast to non-reference type" +- msgstr "" +- +- #: cp/typeck.c:4755 +- msgid "unary `&'" +- msgstr "" +- +- #: cp/typeck.c:4977 +- msgid "address of `this' not available" +- msgstr "" +- +- #: cp/typeck.c:5076 +- msgid "ANSI C++ forbids omitting the middle term of a ?: expression" +- msgstr "" +- +- #: cp/typeck.c:5164 cp/typeck.c:5169 +- msgid "enumeral and non-enumeral type in conditional expression" +- msgstr "" +- +- #: cp/typeck.c:5220 +- msgid "ANSI C++ forbids conditional expr with only one void side" +- msgstr "" +- +- #: cp/typeck.c:5234 cp/typeck.c:5240 +- msgid "ANSI C++ forbids conditional expr between `void *' and function pointer" +- msgstr "" +- +- #: cp/typeck.c:5321 cp/typeck.c:5347 +- msgid "ambiguous pointer conversion" +- msgstr "" +- +- #: cp/typeck.c:5632 +- msgid "ANSI C++ forbids casting between pointers to functions and objects" +- msgstr "" +- +- #: cp/typeck.c:5751 cp/typeck.c:5756 +- msgid "ANSI C++ forbids casting to an array type" +- msgstr "" +- +- #: cp/typeck.c:6086 +- msgid "ANSI C++ forbids cast to non-reference type used as lvalue" +- msgstr "" +- +- #: cp/typeck.c:6156 +- msgid "assignment to `this' not in constructor or destructor" +- msgstr "" +- +- #: cp/typeck.c:6209 +- msgid "ANSI C++ forbids assignment of arrays" +- msgstr "" +- +- #: cp/typeck.c:6246 +- msgid "return value from function receives multiple initializations" +- msgstr "" +- +- #: cp/typeck.c:6384 +- msgid " in pointer to member function conversion" +- msgstr "" +- +- #: cp/typeck.c:6392 +- msgid " in pointer to member conversion" +- msgstr "" +- +- #: cp/typeck.c:6404 cp/typeck.c:6420 +- msgid " will only work if you are very careful" +- msgstr "" +- +- #: cp/typeck.c:6904 +- #, c-format +- msgid "ANSI C++ forbids implicit conversion from `void *' in %s" +- msgstr "" +- +- #: cp/typeck.c:6916 +- #, c-format +- msgid "%s between pointer to members converting across virtual baseclasses" +- msgstr "" +- +- #: cp/typeck.c:7019 +- #, c-format +- msgid "conflicting function types in %s:" +- msgstr "" +- +- #: cp/typeck.c:7344 +- msgid "returning a value from a destructor" +- msgstr "" +- +- #: cp/typeck.c:7390 +- msgid "return from a constructor: use `this = ...' instead" +- msgstr "" +- +- #: cp/typeck.c:7392 +- msgid "returning a value from a constructor" +- msgstr "" +- +- #: cp/typeck.c:7424 +- msgid "return of void value in function returning non-void" +- msgstr "" +- +- #: cp/typeck.c:7481 +- msgid "returning reference to temporary" +- msgstr "" +- +- #: cp/typeck.c:7488 +- msgid "reference to non-lvalue returned" +- msgstr "" +- +- #: cp/typeck2.c:167 +- msgid " since the following virtual functions are abstract:" +- msgstr "" +- +- #: cp/typeck2.c:350 +- msgid "confused by earlier errors, bailing out" +- msgstr "" +- +- #: cp/typeck2.c:357 +- msgid "Internal compiler error." +- msgstr "" +- +- #: cp/typeck2.c:359 +- #, c-format +- msgid "Internal compiler error %d." +- msgstr "" +- +- #: cp/typeck2.c:361 +- msgid "Please submit a full bug report." +- msgstr "" +- +- #: cp/typeck2.c:362 +- msgid "See for instructions." +- msgstr "" +- +- #: cp/typeck2.c:584 +- msgid "due to the presence of a constructor" +- msgstr "" +- +- #: cp/typeck2.c:608 +- msgid "comma expression used to initialize return value" +- msgstr "" +- +- #: cp/typeck2.c:617 +- msgid "cannot initialize arrays using this syntax" +- msgstr "" +- +- #: cp/typeck2.c:679 +- msgid "ANSI C++ forbids non-constant aggregate initializer expressions" +- msgstr "" +- +- #: cp/typeck2.c:750 +- msgid "initializing array with parameter list" +- msgstr "" +- +- #: cp/typeck2.c:812 +- msgid "initializer for scalar variable requires one element" +- msgstr "" +- +- #: cp/typeck2.c:909 +- msgid "aggregate has a partly bracketed initializer" +- msgstr "" +- +- #: cp/typeck2.c:939 cp/typeck2.c:1040 +- msgid "non-trivial labeled initializers" +- msgstr "" +- +- #: cp/typeck2.c:956 +- msgid "non-empty initializer for array of empty elements" +- msgstr "" +- +- #: cp/typeck2.c:1006 +- msgid "initializer list for object of class with virtual baseclasses" +- msgstr "" +- +- #: cp/typeck2.c:1012 +- msgid "initializer list for object of class with baseclasses" +- msgstr "" +- +- #: cp/typeck2.c:1018 +- msgid "initializer list for object using virtual functions" +- msgstr "" +- +- #: cp/typeck2.c:1126 +- msgid "index value instead of field name in union initializer" +- msgstr "" +- +- #: cp/typeck2.c:1182 +- msgid "excess elements in aggregate initializer" +- msgstr "" +- +- #: cp/typeck2.c:1309 +- msgid "circular pointer delegation detected" +- msgstr "" +- +- #: cp/typeck2.c:1341 +- msgid "result of `operator->()' yields non-pointer result" +- msgstr "" +- +- #: cp/typeck2.c:1343 +- msgid "base operand of `->' is not a pointer" +- msgstr "" +- +- #: cp/typeck2.c:1458 +- msgid "signature type not allowed in cast or constructor expression" +- msgstr "" +- +- #: cp/typeck2.c:1622 +- #, c-format +- msgid "duplicate label `%s' in switch statement" +- msgstr "" +- +- #: cp/typeck2.c:1625 +- #, c-format +- msgid "duplicate label (%d) in switch statement" +- msgstr "" +- +- #: cp/typeck2.c:1632 +- #, c-format +- msgid "case value out of range for enum %s" +- msgstr "" +- +- #: cp/typeck2.c:1640 +- #, c-format +- msgid "range values `%s' and `%s' reversed" +- msgstr "" +- +- #: cp/typeck2.c:1644 +- msgid "range values reversed" +- msgstr "" +- +- #: cp/typeck2.c:1659 +- #, c-format +- msgid "ANSI C++ forbids defining types within %s" +- msgstr "" +- +- #: cp/xref.c:838 +- #, c-format +- msgid "Can't create cross-reference file `%s'" +- msgstr "" +- +- #: cppalloc.c:34 +- #, c-format +- msgid "%s: Memory exhausted.\n" +- msgstr "" +- +- #: cpperror.c:66 +- #, c-format +- msgid "In file included from %s:%ld" +- msgstr "" +- +- #: cpperror.c:70 +- #, c-format +- msgid "" +- ",\n" +- " from %s:%ld" +- msgstr "" +- +- #: cpperror.c:117 +- #, c-format +- msgid "internal error: bad is_error(%d) in v_cpp_message" +- msgstr "" +- +- #: cppexp.c:164 +- msgid "floating point numbers are not allowed in #if expressions" +- msgstr "" +- +- #: cppexp.c:201 +- msgid "invalid number in #if expression" +- msgstr "" +- +- #: cppexp.c:206 +- msgid "too many `l' suffixes in integer constant" +- msgstr "" +- +- #: cppexp.c:211 +- msgid "too many `u' suffixes in integer constant" +- msgstr "" +- +- #: cppexp.c:724 +- msgid "internal error: cpp_lex returns a NAME" +- msgstr "" +- +- #: cppexp.c:773 +- msgid "invalid character in #if" +- msgstr "" +- +- #: cppexp.c:781 cppexp.c:959 +- msgid "syntax error in #if" +- msgstr "" +- +- #: cppexp.c:797 +- msgid "syntax error - missing left operand" +- msgstr "" +- +- #: cppexp.c:803 +- msgid "syntax error - missing right operand" +- msgstr "" +- +- #: cppexp.c:891 cppexp.c:901 +- msgid "syntax error" +- msgstr "" +- +- #: cppexp.c:965 +- msgid "syntax error ':' without preceding '?'" +- msgstr "" +- +- #: cppexp.c:972 +- msgid "bad syntax for ?: operator" +- msgstr "" +- +- #: cppexp.c:989 +- msgid "mismatched parentheses in #if" +- msgstr "" +- +- #: cppexp.c:1003 +- #, c-format +- msgid "unimplemented operator '%c'\n" +- msgstr "" +- +- #: cppexp.c:1004 +- #, c-format +- msgid "unimplemented operator '\\%03o'\n" +- msgstr "" +- +- #: cppexp.c:1011 +- msgid "internal error in #if expression" +- msgstr "" +- +- #: cpphash.c:295 +- msgid "internal error: limit < buf in collect_expansion" +- msgstr "" +- +- #: cpphash.c:692 +- #, c-format +- msgid "duplicate argument name `%s' in `#define'" +- msgstr "" +- +- #: cpphash.c:1015 +- msgid "cpplib internal error: invalid special hash type" +- msgstr "" +- +- #: cpphash.c:1413 +- msgid "internal_error: buffer overrun in macroexpand" +- msgstr "" +- +- #: cpplib.c:394 cpplib.c:470 +- #, c-format +- msgid "%s in preprocessing directive" +- msgstr "" +- +- #: cpplib.c:599 +- #, c-format +- msgid "invalid assertion name `%s'" +- msgstr "" +- +- #: cpplib.c:600 +- #, c-format +- msgid "invalid macro name `%s'" +- msgstr "" +- +- #: cpplib.c:696 +- msgid "macro or `#include' recursion too deep" +- msgstr "" +- +- #: cpplib.c:773 +- msgid "internal error: length < 0 in cpp_expand_to_buffer" +- msgstr "" +- +- #: cpplib.c:983 +- msgid "#import is obsolete, use an #ifndef wrapper in the header file" +- msgstr "" +- +- #: cpplib.c:1001 +- msgid "`#include filename' is obsolete, use `#include '" +- msgstr "" +- +- #: cpplib.c:1024 +- msgid "junk at end of `#include'" +- msgstr "" +- +- #: cpplib.c:1063 +- msgid "cpp internal error: fp == NULL_BUFFER in do_include" +- msgstr "" +- +- #: cpplib.c:1079 +- msgid "#include_next in primary source file" +- msgstr "" +- +- #: cpplib.c:1209 cpplib.c:1216 +- msgid "token after `#line' is not an integer" +- msgstr "" +- +- #: cpplib.c:1222 +- msgid "line number out of range in `#line' command" +- msgstr "" +- +- #: cpplib.c:1237 +- msgid "garbage at end of `#line' command" +- msgstr "" +- +- #: cpplib.c:1241 cpplib.c:1263 +- msgid "invalid format `#line' command" +- msgstr "" +- +- #: cpplib.c:1298 +- #, c-format +- msgid "token after `#line %d' is not a string" +- msgstr "" +- +- #: cpplib.c:1335 +- msgid "token after #undef is not an identifier" +- msgstr "" +- +- #: cpplib.c:1352 +- msgid "junk on line after #undef" +- msgstr "" +- +- #: cpplib.c:1493 +- msgid "`#pragma once' outside include file" +- msgstr "" +- +- #: cpplib.c:1517 +- #, c-format +- msgid "`#pragma implementation' for `%s' appears after file is included" +- msgstr "" +- +- #: cpplib.c:1677 +- #, c-format +- msgid "`#%s' with invalid argument" +- msgstr "" +- +- #: cpplib.c:1784 +- #, c-format +- msgid "`%s' after `#else'" +- msgstr "" +- +- #: cpplib.c:1812 +- msgid "invalid preprocessor directive name" +- msgstr "" +- +- #: cpplib.c:2011 +- #, c-format +- msgid "text following `%s' violates ANSI standard" +- msgstr "" +- +- #: cpplib.c:2191 +- msgid "missing '>' in `#include '" +- msgstr "" +- +- #: cpplib.c:2209 cpplib.c:2462 +- #, c-format +- msgid "internal error: unrecognized escape \\r%c" +- msgstr "" +- +- #: cpplib.c:2621 +- msgid "internal error: \\r escape inside string constant" +- msgstr "" +- +- #: cpplib.c:2659 +- msgid "assertion predicate is not an identifier" +- msgstr "" +- +- #: cpplib.c:2692 +- msgid "un-terminated assertion answer" +- msgstr "" +- +- #: cpplib.c:2709 +- msgid "empty token sequence in assertion" +- msgstr "" +- +- #: cpplib.c:2748 +- msgid "junk at end of `#assert'" +- msgstr "" +- +- #: cpplib.c:2757 +- #, c-format +- msgid "`%s' re-asserted" +- msgstr "" +- +- #: cpplib.c:2768 +- msgid "cpp internal error: base->type != T_ASSERT in do_assert" +- msgstr "" +- +- #: cpplib.c:2809 +- msgid "junk at end of `#unassert'" +- msgstr "" +- +- #: cpplib.c:2898 +- msgid "cpp internal error: ip->mark != -1 in parse_set_mark" +- msgstr "" +- +- #: cpplib.c:2912 +- msgid "cpp internal error: ip->mark == -1 in parse_clear_mark" +- msgstr "" +- +- #: cpplib.c:2927 +- msgid "cpp internal error: ip->mark == -1 in parse_goto_mark" +- msgstr "" +- +- #: cpplib.c:3254 gcc.c:5287 +- #, c-format +- msgid "%s: %s" +- msgstr "" +- +- #: cpplib.c:3262 +- #, c-format +- msgid "%s: %s: %s" +- msgstr "" +- +- #: cse.c:8798 +- #, c-format +- msgid ";; Processing block from %d to %d, %d sets.\n" +- msgstr "" +- +- #: dwarf2out.c:554 dwarfout.c:1679 +- #, c-format +- msgid "internal regno botch: regno = %d\n" +- msgstr "" +- +- #: emit-rtl.c:973 +- msgid "" +- "Unable to access real part of complex value in a hard register on this target" +- msgstr "" +- +- #: emit-rtl.c:996 +- msgid "" +- "Unable to access imaginary part of complex value in a hard register on this " +- "target" +- msgstr "" +- +- #: except.c:816 +- msgid "additional handler after ..." +- msgstr "" +- +- #: except.c:989 +- msgid "Cannot duplicate non-existant exception region." +- msgstr "" +- +- #: except.c:1084 +- msgid "exception handling disabled, use -fexceptions to enable" +- msgstr "" +- +- #: except.c:1760 +- msgid "Compiler Bug: Never issued previous false_label" +- msgstr "" +- +- #: except.c:2389 +- #, c-format +- msgid "Counted %d copies of EH region %d in list.\n" +- msgstr "" +- +- #: except.c:2778 +- msgid "Duplicate call to __builtin_eh_return" +- msgstr "" +- +- #: except.c:2798 +- msgid "function uses __builtin_eh_return" +- msgstr "" +- +- #: expr.c:5459 expr.c:5468 expr.c:5477 expr.c:5482 expr.c:5637 expr.c:5650 +- msgid "unsupported wide integer operation" +- msgstr "" +- +- #: expr.c:5702 +- #, c-format +- msgid "prior parameter's size depends on `%s'" +- msgstr "" +- +- #: expr.c:6098 +- msgid "returned value in block_exit_expr" +- msgstr "" +- +- #: expr.c:8411 +- msgid "offset outside bounds of constant string" +- msgstr "" +- +- #: expr.c:9006 +- #, c-format +- msgid "CUMULATIVE_ARGS type defined badly; see %s, line %d" +- msgstr "" +- +- #: expr.c:9013 +- msgid "argument of `__builtin_args_info' must be constant" +- msgstr "" +- +- #: expr.c:9019 +- msgid "argument of `__builtin_args_info' out of range" +- msgstr "" +- +- #: expr.c:9025 +- msgid "missing argument in `__builtin_args_info'" +- msgstr "" +- +- #: expr.c:9054 +- msgid "`va_start' used in function with fixed args" +- msgstr "" +- +- #: expr.c:9073 +- msgid "second parameter of `va_start' not last named argument" +- msgstr "" +- +- #. Evidently an out of date version of ; can't validate +- #. va_start's second argument, but can still work as intended. +- #: expr.c:9078 +- msgid "`__builtin_next_arg' called without an argument" +- msgstr "" +- +- #: expr.c:9189 +- msgid "invalid arg to `__builtin_frame_address'" +- msgstr "" +- +- #: expr.c:9191 +- msgid "invalid arg to `__builtin_return_address'" +- msgstr "" +- +- #: expr.c:9204 +- msgid "unsupported arg to `__builtin_frame_address'" +- msgstr "" +- +- #: expr.c:9206 +- msgid "unsupported arg to `__builtin_return_address'" +- msgstr "" +- +- #: expr.c:9664 +- msgid "__builtin_longjmp second argument must be 1" +- msgstr "" +- +- #: expr.c:9678 +- msgid "__builtin_trap not supported by this target" +- msgstr "" +- +- #. just do library call, if unknown builtin +- #: expr.c:9705 +- #, c-format +- msgid "built-in function `%s' not currently supported" +- msgstr "" +- +- #: final.c:1324 +- msgid "Negative insn length" +- msgstr "" +- +- #: final.c:2914 +- msgid "Could not split insn" +- msgstr "" +- +- #: final.c:3310 +- #, c-format +- msgid "invalid `asm': %s" +- msgstr "" +- +- #: final.c:3312 +- #, c-format +- msgid "Internal compiler error, output_operand_lossage `%s'" +- msgstr "" +- +- #: final.c:3448 +- #, c-format +- msgid "operand number missing after %-letter" +- msgstr "" +- +- #: final.c:3450 final.c:3483 +- msgid "operand number out of range" +- msgstr "" +- +- #: final.c:3496 +- msgid "invalid %%-code" +- msgstr "" +- +- #: final.c:3521 +- msgid "`%l' operand isn't a label" +- msgstr "" +- +- #: flow.c:5074 +- #, c-format +- msgid "" +- "verify_flow_info: Head insn %d for block %d not found in the insn stream.\n" +- msgstr "" +- +- #: flow.c:5084 +- #, c-format +- msgid "verify_flow_info: Insn %d is in multiple basic blocks (%d and %d)" +- msgstr "" +- +- #: flow.c:5094 +- #, c-format +- msgid "" +- "verify_flow_info: End insn %d for block %d not found in the insn stream.\n" +- msgstr "" +- +- #: flow.c:5127 flow.c:5155 +- #, c-format +- msgid "verify_flow_info: Basic block %i edge lists are corrupted\n" +- msgstr "" +- +- #: flow.c:5170 +- msgid "" +- "verify_flow_info: Basic block contains only CODE_LABEL and no " +- "NOTE_INSN_BASIC_BLOCK note\n" +- msgstr "" +- +- #: flow.c:5178 +- #, c-format +- msgid "verify_flow_info: NOTE_INSN_BASIC_BLOCK is missing for block %d\n" +- msgstr "" +- +- #: flow.c:5194 +- #, c-format +- msgid "" +- "verify_flow_info: NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d\n" +- msgstr "" +- +- #: flow.c:5205 +- #, c-format +- msgid "verify_flow_info: Incorrect insn in the middle of basic block %d\n" +- msgstr "" +- +- #: flow.c:5239 +- msgid "verify_flow_info: Insn outside basic block\n" +- msgstr "" +- +- #: fold-const.c:2817 fold-const.c:2830 +- #, c-format +- msgid "comparison is always %d due to width of bitfield" +- msgstr "" +- +- #: fold-const.c:3868 fold-const.c:3885 +- #, c-format +- msgid "comparison is always %d" +- msgstr "" +- +- #: fold-const.c:4016 +- msgid "`or' of unmatched not-equal tests is always 1" +- msgstr "" +- +- #: fold-const.c:4021 +- msgid "`and' of mutually exclusive equal-tests is always 0" +- msgstr "" +- +- #: function.c:5407 +- #, c-format +- msgid "`%s' might be used uninitialized in this function" +- msgstr "" +- +- #: function.c:5413 +- #, c-format +- msgid "variable `%s' might be clobbered by `longjmp' or `vfork'" +- msgstr "" +- +- #: function.c:5431 +- #, c-format +- msgid "argument `%s' might be clobbered by `longjmp' or `vfork'" +- msgstr "" +- +- #: function.c:6004 +- msgid "function returns an aggregate" +- msgstr "" +- +- #: function.c:6422 +- #, c-format +- msgid "unused parameter `%s'" +- msgstr "" +- +- #: gcc.c:941 +- #, c-format +- msgid "Ambiguous abbreviation %s" +- msgstr "" +- +- #: gcc.c:968 +- #, c-format +- msgid "Incomplete `%s' option" +- msgstr "" +- +- #: gcc.c:979 +- #, c-format +- msgid "Missing argument to `%s' option" +- msgstr "" +- +- #: gcc.c:992 +- #, c-format +- msgid "Extraneous argument to `%s' option" +- msgstr "" +- +- #: gcc.c:1177 +- msgid "Using builtin specs.\n" +- msgstr "" +- +- #: gcc.c:1262 +- #, c-format +- msgid "" +- "Setting spec %s to '%s'\n" +- "\n" +- msgstr "" +- +- #: gcc.c:1460 +- #, c-format +- msgid "Reading specs from %s\n" +- msgstr "" +- +- #: gcc.c:1512 gcc.c:1530 +- msgid "specs %%include syntax malformed after %ld characters" +- msgstr "" +- +- #: gcc.c:1538 +- #, c-format +- msgid "Could not find specs file %s\n" +- msgstr "" +- +- #: gcc.c:1554 gcc.c:1562 gcc.c:1571 gcc.c:1580 +- msgid "specs %%rename syntax malformed after %ld characters" +- msgstr "" +- +- #: gcc.c:1589 +- #, c-format +- msgid "specs %s spec was not found to be renamed" +- msgstr "" +- +- #: gcc.c:1596 +- #, c-format +- msgid "rename spec %s to %s\n" +- msgstr "" +- +- #: gcc.c:1598 +- #, c-format +- msgid "" +- "spec is '%s'\n" +- "\n" +- msgstr "" +- +- #: gcc.c:1611 +- msgid "specs unknown %% command after %ld characters" +- msgstr "" +- +- #: gcc.c:1622 gcc.c:1635 +- #, c-format +- msgid "specs file malformed after %ld characters" +- msgstr "" +- +- #: gcc.c:1692 +- msgid "spec file has no spec for linking" +- msgstr "" +- +- #: gcc.c:2178 +- #, c-format +- msgid "file path prefix `%s%s' never used" +- msgstr "" +- +- #: gcc.c:2181 +- #, c-format +- msgid "file path prefix `%s' never used" +- msgstr "" +- +- #: gcc.c:2237 +- msgid "-pipe not supported" +- msgstr "" +- +- #: gcc.c:2273 +- msgid "" +- "\n" +- "Go ahead? (y or n) " +- msgstr "" +- +- #: gcc.c:2337 +- #, c-format +- msgid "Internal compiler error: program %s got fatal signal %d" +- msgstr "" +- +- #: gcc.c:2828 +- msgid "argument to `-Xlinker' is missing" +- msgstr "" +- +- #: gcc.c:2845 +- msgid "argument to `-specs' is missing" +- msgstr "" +- +- #: gcc.c:2860 +- msgid "argument to `-specs=' is missing" +- msgstr "" +- +- #: gcc.c:2880 +- msgid "argument to `-b' is missing" +- msgstr "" +- +- #: gcc.c:2893 +- msgid "argument to `-B' is missing" +- msgstr "" +- +- #: gcc.c:2945 +- msgid "argument to `-V' is missing" +- msgstr "" +- +- #: gcc.c:2966 gcc.c:2973 gcc.c:2980 +- msgid "invalid version number format" +- msgstr "" +- +- #: gcc.c:3051 +- msgid "cannot specify -o with -c or -S and multiple compilations" +- msgstr "" +- +- #: gcc.c:3212 +- msgid "Warning: -pipe ignored since -save-temps specified" +- msgstr "" +- +- #: gcc.c:3221 +- msgid "argument to `-x' is missing" +- msgstr "" +- +- #: gcc.c:3249 +- #, c-format +- msgid "argument to `-%s' is missing" +- msgstr "" +- +- #: gcc.c:3307 +- #, c-format +- msgid "Warning: `-x %s' after last input file has no effect" +- msgstr "" +- +- #: gcc.c:3503 +- msgid "Invalid specification! Bug in cc." +- msgstr "" +- +- #: gcc.c:4083 +- msgid "Warning: use of obsolete %%[ operator in specs" +- msgstr "" +- +- #: gcc.c:4101 +- #, c-format +- msgid "Processing spec %c%s%c, which is '%s'\n" +- msgstr "" +- +- #: gcc.c:4919 +- #, c-format +- msgid "unrecognized option `-%s'" +- msgstr "" +- +- #: gcc.c:4989 +- #, c-format +- msgid "gcc version %s\n" +- msgstr "" +- +- #: gcc.c:4991 +- #, c-format +- msgid "gcc driver version %s executing gcc version %s\n" +- msgstr "" +- +- #: gcc.c:4999 +- msgid "No input files" +- msgstr "" +- +- #: gcc.c:5042 +- #, c-format +- msgid "%s: %s compiler not installed on this system" +- msgstr "" +- +- #: gcc.c:5147 +- #, c-format +- msgid "%s: linker input file unused since linking not done" +- msgstr "" +- +- #: gcc.c:5190 +- #, c-format +- msgid "language %s not recognized" +- msgstr "" +- +- #: gcov.c:277 +- msgid "error: virtual memory exhausted" +- msgstr "" +- +- #: gcov.c:289 +- msgid "Internal gcc abort.\n" +- msgstr "" +- +- #: gcov.c:298 +- msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n" +- msgstr "" +- +- #: gcov.c:416 +- #, c-format +- msgid "Could not open basic block file %s.\n" +- msgstr "" +- +- #: gcov.c:425 +- #, c-format +- msgid "Could not open data file %s.\n" +- msgstr "" +- +- #: gcov.c:426 +- msgid "Assuming that all execution counts are zero.\n" +- msgstr "" +- +- #: gcov.c:432 +- #, c-format +- msgid "Could not open program flow graph file %s.\n" +- msgstr "" +- +- #: gcov.c:443 +- #, c-format +- msgid "No executable code associated with file %s.\n" +- msgstr "" +- +- #: gcov.c:744 profile.c:1495 +- msgid ".da file contents exhausted too early\n" +- msgstr "" +- +- #: gcov.c:747 profile.c:1498 +- msgid ".da file contents not exhausted\n" +- msgstr "" +- +- #: gcov.c:928 +- msgid "%6.2f%% of %d source lines executed in function %s\n" +- msgstr "" +- +- #: gcov.c:932 +- #, c-format +- msgid "No executable source lines in function %s\n" +- msgstr "" +- +- #: gcov.c:939 +- msgid "%6.2f%% of %d branches executed in function %s\n" +- msgstr "" +- +- #: gcov.c:943 +- msgid "%6.2f%% of %d branches taken at least once in function %s\n" +- msgstr "" +- +- #: gcov.c:948 +- #, c-format +- msgid "No branches in function %s\n" +- msgstr "" +- +- #: gcov.c:950 +- msgid "%6.2f%% of %d calls executed in function %s\n" +- msgstr "" +- +- #: gcov.c:954 +- #, c-format +- msgid "No calls in function %s\n" +- msgstr "" +- +- #: gcov.c:1086 +- #, c-format +- msgid "didn't use all bb entries of graph, function %s\n" +- msgstr "" +- +- #: gcov.c:1088 +- #, c-format +- msgid "block_num = %ld, num_blocks = %d\n" +- msgstr "" +- +- #: gcov.c:1126 +- #, c-format +- msgid "ERROR: too many basic blocks in .bb file %s\n" +- msgstr "" +- +- #: gcov.c:1203 +- msgid "%6.2f%% of %d source lines executed in file %s\n" +- msgstr "" +- +- #: gcov.c:1207 +- #, c-format +- msgid "No executable source lines in file %s\n" +- msgstr "" +- +- #: gcov.c:1214 +- msgid "%6.2f%% of %d branches executed in file %s\n" +- msgstr "" +- +- #: gcov.c:1218 +- msgid "%6.2f%% of %d branches taken at least once in file %s\n" +- msgstr "" +- +- #: gcov.c:1223 +- #, c-format +- msgid "No branches in file %s\n" +- msgstr "" +- +- #: gcov.c:1225 +- msgid "%6.2f%% of %d calls executed in file %s\n" +- msgstr "" +- +- #: gcov.c:1229 +- #, c-format +- msgid "No calls in file %s\n" +- msgstr "" +- +- #: gcov.c:1241 +- #, c-format +- msgid "Could not open source file %s.\n" +- msgstr "" +- +- #: gcov.c:1291 +- #, c-format +- msgid "Could not open output file %s.\n" +- msgstr "" +- +- #: gcov.c:1299 +- #, c-format +- msgid "Creating %s.\n" +- msgstr "" +- +- #: gcov.c:1343 +- #, c-format +- msgid "call %d never executed\n" +- msgstr "" +- +- #: gcov.c:1346 +- msgid "call %d returns = %d%%\n" +- msgstr "" +- +- #: gcov.c:1352 +- #, c-format +- msgid "branch %d never executed\n" +- msgstr "" +- +- #: gcov.c:1355 +- msgid "branch %d taken = %d%%\n" +- msgstr "" +- +- #: gcov.c:1365 +- #, c-format +- msgid "Unexpected EOF while reading source file %s.\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:682 +- #, c-format +- msgid "%s: option `%s' is ambiguous\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:707 +- #, c-format +- msgid "%s: option `--%s' doesn't allow an argument\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:712 +- #, c-format +- msgid "%s: option `%c%s' doesn't allow an argument\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:730 ../libiberty/getopt.c:903 +- #, c-format +- msgid "%s: option `%s' requires an argument\n" +- msgstr "" +- +- #. --option +- #: ../libiberty/getopt.c:759 +- #, c-format +- msgid "%s: unrecognized option `--%s'\n" +- msgstr "" +- +- #. +option or -option +- #: ../libiberty/getopt.c:763 +- #, c-format +- msgid "%s: unrecognized option `%c%s'\n" +- msgstr "" +- +- #. 1003.2 specifies the format of this message. +- #: ../libiberty/getopt.c:789 +- #, c-format +- msgid "%s: illegal option -- %c\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:792 +- #, c-format +- msgid "%s: invalid option -- %c\n" +- msgstr "" +- +- #. 1003.2 specifies the format of this message. +- #: ../libiberty/getopt.c:822 ../libiberty/getopt.c:952 +- #, c-format +- msgid "%s: option requires an argument -- %c\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:869 +- #, c-format +- msgid "%s: option `-W %s' is ambiguous\n" +- msgstr "" +- +- #: ../libiberty/getopt.c:887 +- #, c-format +- msgid "%s: option `-W %s' doesn't allow an argument\n" +- msgstr "" +- +- #: integrate.c:146 +- msgid "varargs function cannot be inline" +- msgstr "" +- +- #: integrate.c:149 +- msgid "function using alloca cannot be inline" +- msgstr "" +- +- #: integrate.c:152 +- msgid "function with nested functions cannot be inline" +- msgstr "" +- +- #: integrate.c:159 integrate.c:201 +- msgid "function too large to be inline" +- msgstr "" +- +- #: integrate.c:169 +- msgid "no prototype, and parameter address used; cannot be inline" +- msgstr "" +- +- #: integrate.c:176 integrate.c:230 +- msgid "inline functions not supported for this return value type" +- msgstr "" +- +- #: integrate.c:180 +- msgid "function with varying-size return value cannot be inline" +- msgstr "" +- +- #: integrate.c:187 +- msgid "function with varying-size parameter cannot be inline" +- msgstr "" +- +- #: integrate.c:189 +- msgid "function with transparent unit parameter cannot be inline" +- msgstr "" +- +- #: integrate.c:208 +- msgid "function with computed jump cannot inline" +- msgstr "" +- +- #: integrate.c:212 +- msgid "function with nonlocal goto cannot be inline" +- msgstr "" +- +- #: integrate.c:224 +- msgid "function with complex parameters cannot be inline" +- msgstr "" +- +- #: objc/objc-act.c:667 +- msgid "Objective-C text in C source file" +- msgstr "" +- +- #: objc/objc-act.c:878 +- #, c-format +- msgid "object does not conform to the `%s' protocol" +- msgstr "" +- +- #: objc/objc-act.c:916 +- #, c-format +- msgid "class `%s' does not implement the `%s' protocol" +- msgstr "" +- +- #: objc/objc-act.c:998 +- #, c-format +- msgid "`%s' cannot be statically allocated" +- msgstr "" +- +- #: objc/objc-act.c:999 +- msgid "statically allocated objects not supported" +- msgstr "" +- +- #: objc/objc-act.c:1060 +- #, c-format +- msgid "Unexpected type for `id' (%s)" +- msgstr "" +- +- #: objc/objc-act.c:1064 +- msgid "Undefined type `id', please import " +- msgstr "" +- +- #: objc/objc-act.c:1113 objc/objc-act.c:5363 +- #, c-format +- msgid "Cannot find protocol declaration for `%s'" +- msgstr "" +- +- #: objc-parse.y:1490 objc/objc-act.c:1350 objc/objc-act.c:5897 +- #: objc/objc-act.c:6207 objc/objc-act.c:6255 objc/objc-act.c:6291 +- #, c-format +- msgid "Cannot find interface declaration for `%s'" +- msgstr "" +- +- #: objc/objc-act.c:2425 +- #, c-format +- msgid "Cannot find class `%s'" +- msgstr "" +- +- #: objc/objc-act.c:2427 +- #, c-format +- msgid "Class `%s' already exists" +- msgstr "" +- +- #. fatal did not work with 2 args...should fix +- #: objc/objc-act.c:2559 +- #, c-format +- msgid "Cannot find interface declaration for `%s', superclass of `%s'" +- msgstr "" +- +- #: objc/objc-act.c:2567 +- #, c-format +- msgid "Circular inheritance in interface declaration for `%s'" +- msgstr "" +- +- #: objc/objc-act.c:3616 objc/objc-act.c:3633 +- msgid "inconsistent instance variable specification" +- msgstr "" +- +- #: objc/objc-act.c:4846 +- #, c-format +- msgid "multiple declarations for method `%s'" +- msgstr "" +- +- #: objc/objc-act.c:4963 +- #, c-format +- msgid "invalid receiver type `%s'" +- msgstr "" +- +- #: objc/objc-act.c:5031 objc/objc-act.c:5057 objc/objc-act.c:5105 +- #, c-format +- msgid "`%s' does not respond to `%s'" +- msgstr "" +- +- #: objc/objc-act.c:5037 objc/objc-act.c:7329 +- #, c-format +- msgid "no super class declared in interface for `%s'" +- msgstr "" +- +- #: objc/objc-act.c:5135 +- msgid "cannot find class (factory) method." +- msgstr "" +- +- #: objc/objc-act.c:5136 objc/objc-act.c:5180 +- #, c-format +- msgid "return type for `%s' defaults to id" +- msgstr "" +- +- #: objc/objc-act.c:5153 +- #, c-format +- msgid "method `%s' not implemented by protocol." +- msgstr "" +- +- #: objc/objc-act.c:5162 +- msgid "return type defaults to id" +- msgstr "" +- +- #: objc/objc-act.c:5179 +- msgid "cannot find method." +- msgstr "" +- +- #. Historically, a class method that produced objects (factory +- #. method) would assign `self' to the instance that it +- #. allocated. This would effectively turn the class method into +- #. an instance method. Following this assignment, the instance +- #. variables could be accessed. That practice, while safe, +- #. violates the simple rule that a class method should not refer +- #. to an instance variable. It's better to catch the cases +- #. where this is done unknowingly than to support the above +- #. paradigm. +- #: objc/objc-act.c:5438 +- #, c-format +- msgid "instance variable `%s' accessed in class method" +- msgstr "" +- +- #: objc/objc-act.c:5694 +- #, c-format +- msgid "duplicate definition of class method `%s'." +- msgstr "" +- +- #: objc/objc-act.c:5700 +- #, c-format +- msgid "duplicate declaration of class method `%s'." +- msgstr "" +- +- #: objc/objc-act.c:5740 +- #, c-format +- msgid "duplicate definition of instance method `%s'." +- msgstr "" +- +- #: objc/objc-act.c:5746 +- #, c-format +- msgid "duplicate declaration of instance method `%s'." +- msgstr "" +- +- #: objc/objc-act.c:5786 +- #, c-format +- msgid "duplicate interface declaration for category `%s(%s)'" +- msgstr "" +- +- #: objc/objc-act.c:5872 +- #, c-format +- msgid "instance variable `%s' is declared private" +- msgstr "" +- +- #: objc/objc-act.c:5919 +- #, c-format +- msgid "instance variable `%s' is declared %s" +- msgstr "" +- +- #: objc/objc-act.c:5929 +- msgid "static access to object of type `id'" +- msgstr "" +- +- #: objc/objc-act.c:5966 objc/objc-act.c:6060 +- #, c-format +- msgid "incomplete implementation of class `%s'" +- msgstr "" +- +- #: objc/objc-act.c:5970 objc/objc-act.c:6065 +- #, c-format +- msgid "incomplete implementation of category `%s'" +- msgstr "" +- +- #: objc/objc-act.c:5975 objc/objc-act.c:6070 +- #, c-format +- msgid "method definition for `%c%s' not found" +- msgstr "" +- +- #: objc/objc-act.c:6111 +- #, c-format +- msgid "%s `%s' does not fully implement the `%s' protocol" +- msgstr "" +- +- #: objc/objc-act.c:6179 +- #, c-format +- msgid "reimplementation of class `%s'" +- msgstr "" +- +- #: objc/objc-act.c:6220 +- #, c-format +- msgid "conflicting super class name `%s'" +- msgstr "" +- +- #: objc/objc-act.c:6235 +- #, c-format +- msgid "duplicate interface declaration for class `%s'" +- msgstr "" +- +- #: objc/objc-act.c:6481 +- #, c-format +- msgid "duplicate declaration for protocol `%s'" +- msgstr "" +- +- #: objc/objc-act.c:7370 +- msgid "[super ...] must appear in a method context" +- msgstr "" +- +- #: objc/objc-act.c:8325 objc/objc-act.c:8341 +- #, c-format +- msgid "potential selector conflict for method `%s'" +- msgstr "" +- +- #: objc-parse.y:677 +- #, c-format +- msgid "Instance variable `%s' implicitly declared as function" +- msgstr "" +- +- #: objc-parse.y:719 +- #, c-format +- msgid "local declaration of `%s' hides instance variable" +- msgstr "" +- +- #: objc-parse.y:2364 +- msgid "`@end' must appear in an implementation context" +- msgstr "" +- +- #: objc-parse.y:2632 objc-parse.y:2657 +- msgid "method definition not in class context" +- msgstr "" +- +- #: profile.c:805 +- msgid "-fprofile-arcs does not support computed gotos" +- msgstr "" +- +- #: profile.c:1215 +- msgid "Arc profiling: some arc counts were bad." +- msgstr "" +- +- #: profile.c:1448 +- #, c-format +- msgid "file %s not found, execution counts assumed to be zero." +- msgstr "" +- +- #: protoize.c:622 protoize.c:642 +- #, c-format +- msgid "" +- "\n" +- "%s: virtual memory exceeded\n" +- msgstr "" +- +- #: protoize.c:693 +- #, c-format +- msgid "%s: internal abort\n" +- msgstr "" +- +- #: protoize.c:783 +- #, c-format +- msgid "%s: error writing file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:827 +- #, c-format +- msgid "%s: usage '%s [ -VqfnkN ] [ -i ] [ filename ... ]'\n" +- msgstr "" +- +- #: protoize.c:830 +- #, c-format +- msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B ] [ filename ... ]'\n" +- msgstr "" +- +- #: protoize.c:917 +- #, c-format +- msgid "%s: warning: no read access for file `%s'\n" +- msgstr "" +- +- #: protoize.c:925 +- #, c-format +- msgid "%s: warning: no write access for file `%s'\n" +- msgstr "" +- +- #: protoize.c:933 +- #, c-format +- msgid "%s: warning: no write access for dir containing `%s'\n" +- msgstr "" +- +- #. Catch cases like /.. where we try to backup to a +- #. point above the absolute root of the logical file +- #. system. +- #: protoize.c:1325 +- #, c-format +- msgid "%s: invalid file name: %s\n" +- msgstr "" +- +- #: protoize.c:1476 +- #, c-format +- msgid "%s: %s: can't get status: %s\n" +- msgstr "" +- +- #: protoize.c:1497 +- #, c-format +- msgid "" +- "\n" +- "%s: fatal error: aux info file corrupted at line %d\n" +- msgstr "" +- +- #: protoize.c:1821 +- #, c-format +- msgid "%s:%d: declaration of function `%s' takes different forms\n" +- msgstr "" +- +- #: protoize.c:2072 +- #, c-format +- msgid "%s: compiling `%s'\n" +- msgstr "" +- +- #: protoize.c:2096 +- #, c-format +- msgid "%s: wait: %s\n" +- msgstr "" +- +- #: protoize.c:2101 +- #, c-format +- msgid "%s: subprocess got fatal signal %d\n" +- msgstr "" +- +- #: protoize.c:2109 +- #, c-format +- msgid "%s: %s exited with status %d\n" +- msgstr "" +- +- #: protoize.c:2161 +- #, c-format +- msgid "%s: warning: missing SYSCALLS file `%s'\n" +- msgstr "" +- +- #: protoize.c:2170 protoize.c:2199 +- #, c-format +- msgid "%s: can't read aux info file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2215 protoize.c:2243 +- #, c-format +- msgid "%s: can't get status of aux info file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2265 +- #, c-format +- msgid "%s: can't open aux info file `%s' for reading: %s\n" +- msgstr "" +- +- #: protoize.c:2283 +- #, c-format +- msgid "%s: error reading aux info file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2296 +- #, c-format +- msgid "%s: error closing aux info file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2312 +- #, c-format +- msgid "%s: can't delete aux info file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2380 protoize.c:4376 +- #, c-format +- msgid "%s: can't delete file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2457 +- #, c-format +- msgid "%s: warning: can't link file `%s' to `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2467 +- #, c-format +- msgid "%s: warning: can't delete file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:2591 +- #, c-format +- msgid "%s: conflicting extern definitions of '%s'\n" +- msgstr "" +- +- #: protoize.c:2595 +- #, c-format +- msgid "%s: declarations of '%s' will not be converted\n" +- msgstr "" +- +- #: protoize.c:2597 +- #, c-format +- msgid "%s: conflict list for '%s' follows:\n" +- msgstr "" +- +- #: protoize.c:2630 +- #, c-format +- msgid "%s: warning: using formals list from %s(%d) for function `%s'\n" +- msgstr "" +- +- #: protoize.c:2670 +- #, c-format +- msgid "%s: %d: `%s' used but missing from SYSCALLS\n" +- msgstr "" +- +- #: protoize.c:2676 +- #, c-format +- msgid "%s: %d: warning: no extern definition for `%s'\n" +- msgstr "" +- +- #: protoize.c:2707 +- #, c-format +- msgid "%s: warning: no static definition for `%s' in file `%s'\n" +- msgstr "" +- +- #: protoize.c:2713 +- #, c-format +- msgid "%s: multiple static defs of `%s' in file `%s'\n" +- msgstr "" +- +- #: protoize.c:2886 protoize.c:2889 +- #, c-format +- msgid "%s: %d: warning: source too confusing\n" +- msgstr "" +- +- #: protoize.c:3095 +- #, c-format +- msgid "%s: %d: warning: varargs function declaration not converted\n" +- msgstr "" +- +- #: protoize.c:3110 +- #, c-format +- msgid "%s: declaration of function `%s' not converted\n" +- msgstr "" +- +- #: protoize.c:3233 +- #, c-format +- msgid "%s: warning: too many parameter lists in declaration of `%s'\n" +- msgstr "" +- +- #: protoize.c:3254 +- #, c-format +- msgid "" +- "\n" +- "%s: warning: too few parameter lists in declaration of `%s'\n" +- msgstr "" +- +- #: protoize.c:3352 +- #, c-format +- msgid "%s: %d: warning: found `%s' but expected `%s'\n" +- msgstr "" +- +- #: protoize.c:3530 +- #, c-format +- msgid "%s: local declaration for function `%s' not inserted\n" +- msgstr "" +- +- #: protoize.c:3557 +- #, c-format +- msgid "" +- "\n" +- "%s: %d: warning: can't add declaration of `%s' into macro call\n" +- msgstr "" +- +- #: protoize.c:3631 +- #, c-format +- msgid "%s: global declarations for file `%s' not inserted\n" +- msgstr "" +- +- #: protoize.c:3722 protoize.c:3752 +- #, c-format +- msgid "%s: definition of function `%s' not converted\n" +- msgstr "" +- +- #: protoize.c:3741 +- #, c-format +- msgid "%s: %d: warning: definition of %s not converted\n" +- msgstr "" +- +- #: protoize.c:4071 +- #, c-format +- msgid "%s: found definition of `%s' at %s(%d)\n" +- msgstr "" +- +- #. If we make it here, then we did not know about this +- #. function definition. +- #: protoize.c:4087 +- #, c-format +- msgid "%s: %d: warning: `%s' excluded by preprocessing\n" +- msgstr "" +- +- #: protoize.c:4090 +- #, c-format +- msgid "%s: function definition not converted\n" +- msgstr "" +- +- #: protoize.c:4149 +- #, c-format +- msgid "%s: `%s' not converted\n" +- msgstr "" +- +- #: protoize.c:4157 +- #, c-format +- msgid "%s: would convert file `%s'\n" +- msgstr "" +- +- #: protoize.c:4160 +- #, c-format +- msgid "%s: converting file `%s'\n" +- msgstr "" +- +- #: protoize.c:4170 +- #, c-format +- msgid "%s: can't get status for file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:4206 +- #, c-format +- msgid "%s: can't open file `%s' for reading: %s\n" +- msgstr "" +- +- #: protoize.c:4221 +- #, c-format +- msgid "" +- "\n" +- "%s: error reading input file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:4255 +- #, c-format +- msgid "%s: can't create/open clean file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:4356 +- #, c-format +- msgid "%s: warning: file `%s' already saved in `%s'\n" +- msgstr "" +- +- #: protoize.c:4363 +- #, c-format +- msgid "%s: can't link file `%s' to `%s': %s\n" +- msgstr "" +- +- #: protoize.c:4390 +- #, c-format +- msgid "%s: can't create/open output file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:4419 +- #, c-format +- msgid "%s: can't change mode of file `%s': %s\n" +- msgstr "" +- +- #: protoize.c:4570 +- #, c-format +- msgid "%s: cannot get working directory: %s\n" +- msgstr "" +- +- #: protoize.c:4668 +- #, c-format +- msgid "%s: input file names must have .c suffixes: %s\n" +- msgstr "" +- +- #: real.c:770 real.c:937 +- msgid "conversion from NaN to int" +- msgstr "" +- +- #: real.c:793 +- msgid "conversion from NaN to unsigned int" +- msgstr "" +- +- #: real.c:2646 +- msgid "floating point overflow" +- msgstr "" +- +- #: real.c:4275 real.c:6548 real.c:6629 +- msgid "overflow on truncation to integer" +- msgstr "" +- +- #: real.c:4347 +- msgid "overflow on truncation to unsigned integer" +- msgstr "" +- +- #: real.c:5693 +- #, c-format +- msgid "%s: argument domain error" +- msgstr "" +- +- #: real.c:5694 +- #, c-format +- msgid "%s: function singularity" +- msgstr "" +- +- #: real.c:5695 +- #, c-format +- msgid "%s: overflow range error" +- msgstr "" +- +- #: real.c:5696 +- #, c-format +- msgid "%s: underflow range error" +- msgstr "" +- +- #: real.c:5697 +- #, c-format +- msgid "%s: total loss of precision" +- msgstr "" +- +- #: real.c:5698 +- #, c-format +- msgid "%s: partial loss of precision" +- msgstr "" +- +- #: real.c:5699 +- #, c-format +- msgid "%s: NaN - producing operation" +- msgstr "" +- +- #: reg-stack.c:764 +- #, c-format +- msgid "Output constraint %d must specify a single register" +- msgstr "" +- +- #: reg-stack.c:784 +- msgid "Output regs must be grouped at top of stack" +- msgstr "" +- +- #: reg-stack.c:821 +- msgid "Implicitly popped regs must be grouped at top of stack" +- msgstr "" +- +- #: reg-stack.c:840 +- #, c-format +- msgid "Output operand %d must use `&' constraint" +- msgstr "" +- +- #: regclass.c:593 +- #, c-format +- msgid "can't use '%s' as a %s register" +- msgstr "" +- +- #: regclass.c:604 +- #, c-format +- msgid "unknown register name: %s" +- msgstr "" +- +- #: regclass.c:616 +- msgid "register used for two global register variables" +- msgstr "" +- +- #: regclass.c:621 +- msgid "call-clobbered register used for global register variable" +- msgstr "" +- +- #: reload.c:1242 +- msgid "cannot reload integer constant operand in `asm'" +- msgstr "" +- +- #: reload.c:1264 +- msgid "impossible register constraint in `asm'" +- msgstr "" +- +- #: reload.c:3389 +- msgid "`&' constraint used with no register class" +- msgstr "" +- +- #: reload.c:3537 +- msgid "Unable to generate reloads for:" +- msgstr "" +- +- #: reload.c:3538 reload.c:3754 +- msgid "inconsistent operand constraints in an `asm'" +- msgstr "" +- +- #: reload1.c:1192 +- msgid "frame size too large for reliable stack checking" +- msgstr "" +- +- #: reload1.c:1195 +- msgid "try reducing the number of local variables" +- msgstr "" +- +- #: reload1.c:1606 +- msgid "" +- "Two dissimilar machine modes both need groups of consecutive regs of the " +- "same class" +- msgstr "" +- +- #: reload1.c:2264 +- msgid "`asm' needs too many reloads" +- msgstr "" +- +- #: reload1.c:2266 +- msgid "Unable to find a register to spill." +- msgstr "" +- +- #. The error message is still correct - we know only that it wasn't +- #. an asm statement that caused the problem, but one of the global +- #. registers declared by the users might have screwed us. +- #: reload1.c:2304 reload1.c:2312 +- #, c-format +- msgid "fixed or forbidden register %d (%s) was spilled for class %s." +- msgstr "" +- +- #: reload1.c:2306 +- msgid "This may be due to a compiler bug or to impossible asm" +- msgstr "" +- +- #: reload1.c:2307 +- msgid "statements or clauses." +- msgstr "" +- +- #: reload1.c:2308 +- msgid "This is the instruction:" +- msgstr "" +- +- #: reload1.c:2310 +- msgid "Invalid `asm' statement:" +- msgstr "" +- +- #: reload1.c:4319 +- msgid "`asm' operand requires impossible reload" +- msgstr "" +- +- #. It's the compiler's fault. +- #: reload1.c:5583 +- msgid "Could not find a spill register" +- msgstr "" +- +- #: reload1.c:5588 +- msgid "`asm' operand constraint incompatible with operand size" +- msgstr "" +- +- #. It's the compiler's fault. +- #: reload1.c:7181 +- msgid "VOIDmode on an output" +- msgstr "" +- +- #: reload1.c:7182 +- msgid "output operand is constant in `asm'" +- msgstr "" +- +- #: stmt.c:749 +- #, c-format +- msgid "jump to `%s' invalidly jumps into binding contour" +- msgstr "" +- +- #: stmt.c:976 stmt.c:3398 +- #, c-format +- msgid "label `%s' used before containing binding contour" +- msgstr "" +- +- #: stmt.c:1102 stmt.c:1159 +- msgid "`asm' cannot be used with `-fcheck-memory-usage'" +- msgstr "" +- +- #: stmt.c:1173 +- #, c-format +- msgid "unknown register name `%s' in `asm'" +- msgstr "" +- +- #: stmt.c:1188 +- msgid "too many alternatives in `asm'" +- msgstr "" +- +- #: stmt.c:1198 +- msgid "operand constraints for `asm' differ in number of alternatives" +- msgstr "" +- +- #: stmt.c:1244 +- msgid "output operand constraint lacks `='" +- msgstr "" +- +- #: stmt.c:1254 +- #, c-format +- msgid "output constraint `%c' for operand %d is not at the beginning" +- msgstr "" +- +- #: stmt.c:1263 +- #, c-format +- msgid "output operand constraint %d contains `+'" +- msgstr "" +- +- #: stmt.c:1272 +- msgid "operand constraint contains '+' or '=' at illegal position." +- msgstr "" +- +- #: stmt.c:1278 stmt.c:1430 +- msgid "`%%' constraint used with last operand" +- msgstr "" +- +- #: stmt.c:1295 +- msgid "matching constraint not valid in output operand" +- msgstr "" +- +- #: stmt.c:1343 +- #, c-format +- msgid "output number %d not directly addressable" +- msgstr "" +- +- #: stmt.c:1368 +- #, c-format +- msgid "more than %d operands in `asm'" +- msgstr "" +- +- #: stmt.c:1404 +- #, c-format +- msgid "hard register `%s' listed as input operand to `asm'" +- msgstr "" +- +- #: stmt.c:1421 +- #, c-format +- msgid "input operand constraint contains `%c'" +- msgstr "" +- +- #: stmt.c:1460 +- msgid "matching constraint references invalid operand number" +- msgstr "" +- +- #. ??? Leave this only until we have experience with what +- #. happens in combine and elsewhere when constraints are +- #. not satisfied. +- #: stmt.c:1501 stmt.c:1525 +- #, c-format +- msgid "asm operand %d probably doesn't match constraints" +- msgstr "" +- +- #: stmt.c:3360 +- #, c-format +- msgid "unused variable `%s'" +- msgstr "" +- +- #: stmt.c:4912 +- #, c-format +- msgid "enumeration value `%s' not handled in switch" +- msgstr "" +- +- #: stmt.c:4939 stmt.c:4959 +- #, c-format +- msgid "case value `%ld' not in enumerated type" +- msgstr "" +- +- #: stmt.c:4942 stmt.c:4962 +- #, c-format +- msgid "case value `%ld' not in enumerated type `%s'" +- msgstr "" +- +- #: stor-layout.c:110 +- msgid "type size can't be explicitly evaluated" +- msgstr "" +- +- #: stor-layout.c:112 +- msgid "variable-size type declared outside of any function" +- msgstr "" +- +- #: toplev.c:1429 +- #, c-format +- msgid "%s: warnings being treated as errors\n" +- msgstr "" +- +- #: toplev.c:1454 +- #, c-format +- msgid "%s: %s: I/O error\n" +- msgstr "" +- +- #: toplev.c:1491 +- msgid "internal error--unrecognizable insn:" +- msgstr "" +- +- #: toplev.c:1493 +- msgid "internal error--insn does not satisfy its constraints:" +- msgstr "" +- +- #: toplev.c:1548 +- msgid "At top level:\n" +- msgstr "" +- +- #: toplev.c:1551 +- #, c-format +- msgid "In method `%s':\n" +- msgstr "" +- +- #: toplev.c:1552 +- #, c-format +- msgid "In function `%s':\n" +- msgstr "" +- +- #: toplev.c:1586 +- #, c-format +- msgid "In file included from %s:%d" +- msgstr "" +- +- #: toplev.c:1587 +- #, c-format +- msgid "" +- ",\n" +- " from %s:%d" +- msgstr "" +- +- #: toplev.c:2224 +- msgid "sorry, not implemented: " +- msgstr "" +- +- #: toplev.c:2280 +- msgid "internal gcc abort" +- msgstr "" +- +- #: toplev.c:2829 +- #, c-format +- msgid "`%s' used but never defined" +- msgstr "" +- +- #: toplev.c:2832 +- #, c-format +- msgid "`%s' declared `static' but never defined" +- msgstr "" +- +- #: toplev.c:2853 +- #, c-format +- msgid "`%s' defined but not used" +- msgstr "" +- +- #: toplev.c:3186 +- msgid "-ffunction-sections not supported for this target." +- msgstr "" +- +- #: toplev.c:3191 +- msgid "-fdata-sections not supported for this target." +- msgstr "" +- +- #: toplev.c:3199 +- msgid "-ffunction-sections disabled; it makes profiling impossible." +- msgstr "" +- +- #: toplev.c:3205 +- msgid "-ffunction-sections may affect debugging on some targets." +- msgstr "" +- +- #: toplev.c:3268 +- msgid "Errors detected in input file (your bison.simple is out of date)\n" +- msgstr "" +- +- #: toplev.c:3552 +- #, c-format +- msgid "invalid register name `%s' for register variable" +- msgstr "" +- +- #: toplev.c:5052 +- #, c-format +- msgid "unrecognised gcc debugging option: %c" +- msgstr "" +- +- #: toplev.c:5187 +- msgid "`-a' option (basic block profile) not supported" +- msgstr "" +- +- #: toplev.c:5195 +- msgid "`-ax' option (jump profiling) not supported" +- msgstr "" +- +- #: toplev.c:5252 +- #, c-format +- msgid "use -gdwarf -g%d for DWARF v1, level %d" +- msgstr "" +- +- #: toplev.c:5255 +- msgid "use -gdwarf-2 for DWARF v2" +- msgstr "" +- +- #: toplev.c:5260 +- #, c-format +- msgid "ignoring option `%s' due to invalid debug level specification" +- msgstr "" +- +- #: toplev.c:5281 toplev.c:5313 +- #, c-format +- msgid "`-%s' not supported by this configuration of GCC" +- msgstr "" +- +- #: toplev.c:5289 +- #, c-format +- msgid "`-%s' ignored, conflicts with `-g%s'" +- msgstr "" +- +- #: toplev.c:5333 +- #, c-format +- msgid "Invalid option `-%s'" +- msgstr "" +- +- #: toplev.c:5370 +- msgid "-Wuninitialized is not supported without -O" +- msgstr "" +- +- #: toplev.c:5389 +- msgid "`-ax' and `-a' are conflicting options. `-a' ignored." +- msgstr "" +- +- #: toplev.c:5410 +- msgid "instruction scheduling not supported on this target machine" +- msgstr "" +- +- #: toplev.c:5414 +- msgid "this target machine does not have delayed branches" +- msgstr "" +- +- #: toplev.c:5428 +- #, c-format +- msgid "-f%sleading-underscore not supported on this target machine" +- msgstr "" +- +- #: toplev.c:5448 +- #, c-format +- msgid "Data size %ld.\n" +- msgstr "" +- +- #: toplev.c:5520 +- #, c-format +- msgid "" +- "%s%s%s version %s (%s) compiled by GNU C version %s.\n" +- "%s%s%s version %s (%s) compiled by CC.\n" +- msgstr "" +- +- #: toplev.c:5575 +- msgid "options passed: " +- msgstr "" +- +- #: toplev.c:5604 +- msgid "options enabled: " +- msgstr "" +- +- #: tree.c:1282 +- #, c-format +- msgid "`%s' and `%s' identical in first %d characters" +- msgstr "" +- +- #: tree.c:4264 +- msgid "arrays of functions are not meaningful" +- msgstr "" +- +- #: tree.c:4321 +- msgid "function return type cannot be function" +- msgstr "" +- +- #: tree.c:5015 +- msgid "invalid initializer for bit string" +- msgstr "" +- +- #: tree.c:5084 +- #, c-format +- msgid "%s:%d: Expect %s, have %s\n" +- msgstr "" +- +- #: tree.c:5104 +- #, c-format +- msgid "%s:%d: Expect '%c', have '%s'\n" +- msgstr "" +- +- #: tree.c:5132 +- #, c-format +- msgid "%s:%d: Expect expression, have '%s'\n" +- msgstr "" +- +- #: varasm.c:657 +- #, c-format +- msgid "register name not specified for `%s'" +- msgstr "" +- +- #: varasm.c:661 +- #, c-format +- msgid "invalid register name for `%s'" +- msgstr "" +- +- #: varasm.c:666 +- #, c-format +- msgid "register name given for non-register variable `%s'" +- msgstr "" +- +- #: varasm.c:671 +- #, c-format +- msgid "data type of `%s' isn't suitable for a register" +- msgstr "" +- +- #: varasm.c:676 +- #, c-format +- msgid "register number for `%s' isn't suitable for data type" +- msgstr "" +- +- #: varasm.c:685 +- msgid "global register variable has initial value" +- msgstr "" +- +- #: varasm.c:689 +- msgid "global register variable follows a function definition" +- msgstr "" +- +- #: varasm.c:691 +- msgid "volatile register variables don't work as you might wish" +- msgstr "" +- +- #: varasm.c:1266 +- #, c-format +- msgid "size of variable `%s' is too large" +- msgstr "" +- +- #: varasm.c:1306 +- #, c-format +- msgid "" +- "alignment of `%s' is greater than maximum object file alignment. Using %d." +- msgstr "" +- +- #: varasm.c:1350 +- #, c-format +- msgid "requested alignment for %s is greater than implemented alignment of %d." +- msgstr "" +- +- #: varasm.c:1890 +- msgid "floating point trap outputting a constant" +- msgstr "" +- +- #: varasm.c:3948 +- msgid "initializer for integer value is too complicated" +- msgstr "" +- +- #: varasm.c:3954 +- msgid "initializer for floating value is not a floating constant" +- msgstr "" +- +- #: varasm.c:4011 +- msgid "unknown set constructor type" +- msgstr "" +- +- #: varasm.c:4169 +- #, c-format +- msgid "invalid initial value for member `%s'" +- msgstr "" +- +- #: varasm.c:4342 +- #, c-format +- msgid "weak declaration of `%s' must be public" +- msgstr "" +- +- #: varasm.c:4344 +- #, c-format +- msgid "weak declaration of `%s' must precede definition" +- msgstr "" +- +- #: varasm.c:4431 +- msgid "only weak aliases are supported in this configuration" +- msgstr "" +- +- #: varasm.c:4436 +- msgid "alias definitions not supported in this configuration; ignored" +- msgstr "" +- +- #: config/arc/arc.h:59 config/mips/mips.h:954 +- msgid "may not use both -EB and -EL" +- msgstr "" +- +- #: config/arm/arm.h:183 +- msgid "-mapcs-26 and -mapcs-32 may not be used together" +- msgstr "" +- +- #: config/arm/arm.h:195 +- msgid "-msoft-float and -mhard_float may not be used together" +- msgstr "" +- +- #: config/arm/arm.h:206 +- msgid "-mbig-endian and -mlittle-endian may not be used together" +- msgstr "" +- +- #: config/arm/riscix.h:72 config/arm/riscix.h:140 +- msgid "-mbsd and -pedantic incompatible" +- msgstr "" +- +- #: config/arm/riscix.h:73 config/arm/riscix.h:141 +- msgid "-mbsd and -mxopen incompatible" +- msgstr "" +- +- #: config/arm/riscix.h:74 config/arm/riscix.h:142 +- msgid "-mxopen and -pedantic incompatible" +- msgstr "" +- +- #: config/dsp16xx/dsp16xx.h:126 config/dsp16xx/dsp16xx.h:135 +- msgid "A -ifile option requires a -map option" +- msgstr "" +- +- #: config/i386/freebsd.h:239 +- msgid "`-p' not supported; use `-pg' and gprof(1)" +- msgstr "" +- +- #: config/i386/sco5.h:804 config/i386/sco5.h:879 +- msgid "-static not valid with -mcoff" +- msgstr "" +- +- #: config/i386/sco5.h:805 config/i386/sco5.h:880 +- msgid "-shared not valid with -mcoff" +- msgstr "" +- +- #: config/i386/sco5.h:806 config/i386/sco5.h:881 +- msgid "-symbolic not valid with -mcoff" +- msgstr "" +- +- #: config/i386/sco5.h:844 +- msgid "-fpic is not valid with -mcoff" +- msgstr "" +- +- #: config/i386/sco5.h:845 +- msgid "-fPIC is not valid with -mcoff" +- msgstr "" +- +- #: config/i386/sco5.h:882 +- msgid "-fpic not valid with -mcoff" +- msgstr "" +- +- #: config/i386/sco5.h:883 +- msgid "-fPIC not valid with -mcoff" +- msgstr "" +- +- #: config/i860/fx2800.h:305 +- msgid "-p option not supported: use -pg instead" +- msgstr "" +- +- #: config/mips/mips.h:811 +- msgid "-pipe is not supported." +- msgstr "" +- +- #: config/mips/mips.h:949 +- msgid "may not use both -mfp64 and -msingle-float" +- msgstr "" +- +- #: config/mips/mips.h:950 +- msgid "may not use both -mfp64 and -m4650" +- msgstr "" +- +- #: config/mips/r3900.h:27 config/mips/r3900.h:41 +- msgid "-mhard-float not supported." +- msgstr "" +- +- #: config/mips/r3900.h:29 config/mips/r3900.h:43 +- msgid "-msingle-float and -msoft-float can not both be specified." +- msgstr "" +- +- #: config/nextstep.h:166 config/nextstep.h:169 +- msgid "-p profiling is no longer supported. Use -pg instead." +- msgstr "" +- +- #: config/vax/vax.h:36 config/vax/vax.h:37 +- msgid "profiling not supported with -mg\n" +- msgstr "" +- +- #: cp/lang-specs.h:34 cp/lang-specs.h:66 +- msgid "GNU C++ does not support -C without using -E" +- msgstr "" +- +- #: cp/lang-specs.h:59 cp/lang-specs.h:81 cp/lang-specs.h:93 gcc.c:627 +- #: gcc.c:653 gcc.c:698 +- msgid "-pg and -fomit-frame-pointer are incompatible" +- msgstr "" +- +- #: gcc.c:599 gcc.c:635 gcc.c:663 gcc.c:680 gcc.c:711 +- msgid "GNU C does not support -C without using -E" +- msgstr "" +- +- #: gcc.c:675 +- msgid "-E required when input is from standard input" +- msgstr "" +- +- #: gcc.c:678 +- msgid "Compilation of header file requested" +- msgstr "" +--- 0 ---- +diff -c3rpN gcc-2.95.3.orig/gcc/reload1.c gcc-2.95.4/gcc/reload1.c +*** gcc-2.95.3.orig/gcc/reload1.c Thu Jan 25 14:03:21 2001 +--- gcc-2.95.4/gcc/reload1.c Wed Jun 6 01:38:24 2001 +*************** reload_as_needed (live_known) +*** 4278,4286 **** + spill_reg_order); + } + +- if (num_eliminable && chain->need_elim) +- update_eliminable_offsets (); +- + if (n_reloads > 0) + { + rtx next = NEXT_INSN (insn); +--- 4278,4283 ---- +*************** reload_as_needed (live_known) +*** 4327,4332 **** +--- 4324,4333 ---- + NOTE_LINE_NUMBER (p) = NOTE_INSN_DELETED; + } + } ++ ++ if (num_eliminable && chain->need_elim) ++ update_eliminable_offsets (); ++ + /* Any previously reloaded spilled pseudo reg, stored in this insn, + is no longer validly lying around to save a future reload. + Note that this does not detect pseudos that were reloaded +*************** delete_output_reload (insn, j, last_relo +*** 8071,8077 **** + } + n_occurrences = count_occurrences (PATTERN (insn), reg); + if (substed) +! n_occurrences += count_occurrences (PATTERN (insn), substed); + if (n_occurrences > n_inherited) + return; + +--- 8072,8080 ---- + } + n_occurrences = count_occurrences (PATTERN (insn), reg); + if (substed) +! n_occurrences += count_occurrences (PATTERN (insn), +! eliminate_regs (substed, 0, +! NULL_RTX)); + if (n_occurrences > n_inherited) + return; + +*************** reload_combine_note_use (xp, insn) +*** 9967,9972 **** +--- 9970,9990 ---- + } + break; + ++ case USE: ++ /* If this is the USE of a return value, we can't change it. */ ++ if (GET_CODE (XEXP (x, 0)) == REG && REG_FUNCTION_VALUE_P (XEXP (x, 0))) ++ { ++ /* Mark the return register as used in an unknown fashion. */ ++ rtx reg = XEXP (x, 0); ++ int regno = REGNO (reg); ++ int nregs = HARD_REGNO_NREGS (regno, GET_MODE (reg)); ++ ++ while (--nregs >= 0) ++ reg_state[regno + nregs].use_index = -1; ++ return; ++ } ++ break; ++ + case CLOBBER: + if (GET_CODE (SET_DEST (x)) == REG) + return; +*************** reload_combine_note_use (xp, insn) +*** 9983,9993 **** +--- 10001,10022 ---- + { + int regno = REGNO (x); + int use_index; ++ int nregs; + + /* Some spurious USEs of pseudo registers might remain. + Just ignore them. */ + if (regno >= FIRST_PSEUDO_REGISTER) + return; ++ ++ nregs = HARD_REGNO_NREGS (regno, GET_MODE (x)); ++ ++ /* We can't substitute into multi-hard-reg uses. */ ++ if (nregs > 1) ++ { ++ while (--nregs >= 0) ++ reg_state[regno + nregs].use_index = -1; ++ return; ++ } + + /* If this register is already used in some unknown fashion, we + can't do anything. +diff -c3rpN gcc-2.95.3.orig/gcc/rtl.h gcc-2.95.4/gcc/rtl.h +*** gcc-2.95.3.orig/gcc/rtl.h Thu Jan 25 14:03:22 2001 +--- gcc-2.95.4/gcc/rtl.h Wed Jun 6 01:38:25 2001 +*************** extern char *note_insn_name[]; +*** 888,893 **** +--- 888,899 ---- + /* For a NOTE_INSN_LIVE note, the original basic block number. */ + #define RANGE_LIVE_ORIG_BLOCK(INSN) (XINT (INSN, 1)) + ++ /* Nonzero if we need to distinguish between the return value of this function ++ and the return value of a function called by this function. This helps ++ integrate.c. ++ This is 1 until after the rtl generation pass. */ ++ extern int rtx_equal_function_value_matters; ++ + /* Generally useful functions. */ + + /* The following functions accept a wide integer argument. Rather than +diff -c3rpN gcc-2.95.3.orig/gcc/texinfo.tex gcc-2.95.4/gcc/texinfo.tex +*** gcc-2.95.3.orig/gcc/texinfo.tex Wed Dec 16 20:58:28 1998 +--- gcc-2.95.4/gcc/texinfo.tex Wed Jun 6 01:38:27 2001 +*************** +*** 1,5 **** + % texinfo.tex -- TeX macros to handle Texinfo files. +! % $Id: texinfo.tex,v 1.5 1998/06/29 21:40:12 law Exp $ + % + % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98 + % Free Software Foundation, Inc. +--- 1,5 ---- + % texinfo.tex -- TeX macros to handle Texinfo files. +! % $Id: texinfo.tex,v 1.6 1998/12/16 20:58:28 law Exp $ + % + % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98 + % Free Software Foundation, Inc. +*************** +*** 58,64 **** + + % This automatically updates the version number based on RCS. + \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} +! \deftexinfoversion$Revision: 1.5 $ + \message{Loading texinfo package [Version \texinfoversion]:} + + % If in a .fmt file, print the version number +--- 58,64 ---- + + % This automatically updates the version number based on RCS. + \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} +! \deftexinfoversion$Revision: 1.6 $ + \message{Loading texinfo package [Version \texinfoversion]:} + + % If in a .fmt file, print the version number +diff -c3rpN gcc-2.95.3.orig/gcc/tm.texi gcc-2.95.4/gcc/tm.texi +*** gcc-2.95.3.orig/gcc/tm.texi Mon May 31 03:56:15 1999 +--- gcc-2.95.4/gcc/tm.texi Wed Jun 6 01:38:27 2001 +*************** includes @file{tm.h} and most compiler s +*** 49,54 **** +--- 49,67 ---- + You can control the compilation driver. + + @table @code ++ @findex TARGET_OBJECT_SUFFIX ++ @item TARGET_OBJECT_SUFFIX ++ Define this macro to be a C string representing the suffix for object ++ files on your target machine. If you do not define this macro, GCC will ++ use @samp{.o} as the suffix for object files. ++ ++ @findex TARGET_EXECUTABLE_SUFFIX ++ @item TARGET_EXECUTABLE_SUFFIX ++ Define this macro to be a C string representing the suffix to be ++ automatically added to executable files on your target machine. If you ++ do not define this macro, GCC will use the null string as the suffix for ++ executable files. ++ + @findex SWITCH_TAKES_ARG + @item SWITCH_TAKES_ARG (@var{char}) + A C expression which determines whether the option @samp{-@var{char}} +*************** determined by your operating system envi +*** 3463,3468 **** +--- 3476,3488 ---- + figure them out, compile a small program for profiling using the + system's installed C compiler and look at the assembler code that + results. ++ ++ @findex NO_PROFILE_COUNTERS ++ @item NO_PROFILE_COUNTERS ++ Define this macro if the @code{mcount} subroutine on your system does ++ not need a counter variable allocated for each function. This is true ++ for almost all modern implementations. If you define this macro, you ++ must not use the @var{labelno} argument to @code{FUNCTION_PROFILER}. + + @findex PROFILE_BEFORE_PROLOGUE + @item PROFILE_BEFORE_PROLOGUE +diff -c3rpN gcc-2.95.3.orig/gcc/toplev.c gcc-2.95.4/gcc/toplev.c +*** gcc-2.95.3.orig/gcc/toplev.c Thu Jan 25 14:03:23 2001 +--- gcc-2.95.4/gcc/toplev.c Wed Jun 6 01:38:27 2001 +*************** You Lose! You must define PREFERRED_DEB +*** 137,144 **** + #define DIR_SEPARATOR '/' + #endif + +- extern int rtx_equal_function_value_matters; +- + #if ! (defined (VMS) || defined (OS2)) + extern char **environ; + #endif +--- 137,142 ---- +*************** int flag_instrument_function_entry_exit +*** 772,777 **** +--- 770,777 ---- + + int flag_no_ident = 0; + ++ int flag_keep_file_path = 0; ++ + /* Table of supported debugging formats. */ + static struct + { +*************** lang_independent_options f_options[] = +*** 978,983 **** +--- 978,985 ---- + "Instrument function entry/exit with profiling calls"}, + {"leading-underscore", &flag_leading_underscore, 1, + "External symbols have a leading underscore" }, ++ {"keep-file-path", &flag_keep_file_path,1, ++ "Do not strip path in .file directive"}, + {"ident", &flag_no_ident, 0, + "Process #ident directives"} + }; +*************** output_file_directive (asm_file, input_n +*** 2563,2582 **** + FILE *asm_file; + const char *input_name; + { +! int len = strlen (input_name); +! const char *na = input_name + len; + +! /* NA gets INPUT_NAME sans directory names. */ +! while (na > input_name) +! { +! if (na[-1] == '/') +! break; + #ifdef DIR_SEPARATOR +! if (na[-1] == DIR_SEPARATOR) +! break; + #endif +! na--; +! } + + #ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME + ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na); +--- 2565,2591 ---- + FILE *asm_file; + const char *input_name; + { +! const char *na; + +! if ( flag_keep_file_path) /* leave the input_name unchanged */ +! na = input_name; +! else /* strip leadin path from input_name - default behaviour */ +! { +! int len = strlen (input_name); +! na = input_name + len; +! +! /* NA gets INPUT_NAME sans directory names. */ +! while (na > input_name) +! { +! if (na[-1] == '/') +! break; + #ifdef DIR_SEPARATOR +! if (na[-1] == DIR_SEPARATOR) +! break; + #endif +! na--; +! } +! } + + #ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME + ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na); +diff -c3rpN gcc-2.95.3.orig/gcc/varasm.c gcc-2.95.4/gcc/varasm.c +*** gcc-2.95.3.orig/gcc/varasm.c Mon Feb 19 14:02:02 2001 +--- gcc-2.95.4/gcc/varasm.c Wed Jun 6 01:38:28 2001 +*************** force_const_mem (mode, x) +*** 3495,3500 **** +--- 3495,3503 ---- + pop_obstacks (); + } + ++ if (GET_CODE (x) == LABEL_REF) ++ LABEL_PRESERVE_P (XEXP (x, 0)) = 1; ++ + /* Allocate a pool constant descriptor, fill it in, and chain it in. */ + + pool = (struct pool_constant *) savealloc (sizeof (struct pool_constant)); +diff -c3rpN gcc-2.95.3.orig/gcc/version.c gcc-2.95.4/gcc/version.c +*** gcc-2.95.3.orig/gcc/version.c Fri Mar 16 12:52:12 2001 +--- gcc-2.95.4/gcc/version.c Wed Jun 6 01:38:28 2001 +*************** +*** 1 **** +! char *version_string = "2.95.3 20010315 (release)"; +--- 1 ---- +! char *version_string = "2.95.4 20010319 (prerelease-DaveK)"; +diff -c3rpN gcc-2.95.3.orig/libf2c/libF77/Version.c gcc-2.95.4/libf2c/libF77/Version.c +*** gcc-2.95.3.orig/libf2c/libF77/Version.c Fri Mar 16 12:52:18 2001 +--- gcc-2.95.4/libf2c/libF77/Version.c Wed Jun 6 01:38:50 2001 +*************** static char junk[] = "\n@(#)LIBF77 VERSI +*** 3,9 **** + /* + */ + +! char __G77_LIBF77_VERSION__[] = "0.5.25 20010315 (release)"; + + /* + 2.00 11 June 1980. File version.c added to library. +--- 3,9 ---- + /* + */ + +! char __G77_LIBF77_VERSION__[] = "0.5.25 20010319 (prerelease)"; + + /* + 2.00 11 June 1980. File version.c added to library. +diff -c3rpN gcc-2.95.3.orig/libf2c/libI77/Version.c gcc-2.95.4/libf2c/libI77/Version.c +*** gcc-2.95.3.orig/libf2c/libI77/Version.c Fri Mar 16 12:52:18 2001 +--- gcc-2.95.4/libf2c/libI77/Version.c Wed Jun 6 01:38:54 2001 +*************** static char junk[] = "\n@(#) LIBI77 VERS +*** 3,9 **** + /* + */ + +! char __G77_LIBI77_VERSION__[] = "0.5.25 20010315 (release)"; + + /* + 2.01 $ format added +--- 3,9 ---- + /* + */ + +! char __G77_LIBI77_VERSION__[] = "0.5.25 20010319 (prerelease)"; + + /* + 2.01 $ format added +diff -c3rpN gcc-2.95.3.orig/libf2c/libU77/Version.c gcc-2.95.4/libf2c/libU77/Version.c +*** gcc-2.95.3.orig/libf2c/libU77/Version.c Fri Mar 16 12:52:18 2001 +--- gcc-2.95.4/libf2c/libU77/Version.c Wed Jun 6 01:39:00 2001 +*************** +*** 1,6 **** + static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; + +! char __G77_LIBU77_VERSION__[] = "0.5.25 20010315 (release)"; + + #include + +--- 1,6 ---- + static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; + +! char __G77_LIBU77_VERSION__[] = "0.5.25 20010319 (prerelease)"; + + #include + +diff -c3rpN gcc-2.95.3.orig/libiberty/ChangeLog gcc-2.95.4/libiberty/ChangeLog +*** gcc-2.95.3.orig/libiberty/ChangeLog Fri Mar 16 12:52:19 2001 +--- gcc-2.95.4/libiberty/ChangeLog Wed Jun 6 01:39:02 2001 +*************** +*** 1,3 **** +--- 1,7 ---- ++ 2001-03-27 Kaveh R. Ghazi ++ ++ * memchr.c (memchr): Adjust condition to avoid infinite loop. ++ + Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. +diff -c3rpN gcc-2.95.3.orig/libiberty/configure.bat gcc-2.95.4/libiberty/configure.bat +*** gcc-2.95.3.orig/libiberty/configure.bat Sat May 16 00:42:31 1998 +--- gcc-2.95.4/libiberty/configure.bat Wed Jun 6 01:39:03 2001 +*************** +*** 1,14 **** +! @echo off +! if "%1" == "h8/300" goto h8300 +! +! echo Configuring libiberty for go32 +! copy Makefile.dos Makefile +! echo #define NEED_sys_siglist 1 >> config.h +! echo #define NEED_psignal 1 >> config.h +! goto exit +! +! :h8300 +! echo Configuring libiberty for H8/300 +! copy Makefile.dos Makefile +! +! :exit +--- 1,14 ---- +! @echo off +! if "%1" == "h8/300" goto h8300 +! +! echo Configuring libiberty for go32 +! copy Makefile.dos Makefile +! echo #define NEED_sys_siglist 1 >> config.h +! echo #define NEED_psignal 1 >> config.h +! goto exit +! +! :h8300 +! echo Configuring libiberty for H8/300 +! copy Makefile.dos Makefile +! +! :exit +diff -c3rpN gcc-2.95.3.orig/libiberty/makefile.dos gcc-2.95.4/libiberty/makefile.dos +*** gcc-2.95.3.orig/libiberty/makefile.dos Sat May 16 00:14:17 1998 +--- gcc-2.95.4/libiberty/makefile.dos Thu Jan 1 00:00:00 1970 +*************** +*** 1,29 **** +- CFLAGS=-O2 +- +- OBJS = \ +- argv.o \ +- basename.o \ +- concat.o \ +- cplus-dem.o \ +- fdmatch.o \ +- floatformat.o \ +- getopt.o \ +- getopt1.o \ +- getruntime.o \ +- hex.o \ +- msdos.o \ +- obstack.o \ +- spaces.o \ +- strerror.o \ +- strsignal.o \ +- xatexit.o \ +- xexit.o \ +- xmalloc.o \ +- $E +- +- .c.o: +- gcc -I../include $(CFLAGS) -c $< +- +- libiberty.a : $(OBJS) +- -rm libiberty.a +- ar rvs libiberty.a $(OBJS) +--- 0 ---- +diff -c3rpN gcc-2.95.3.orig/libiberty/memchr.c gcc-2.95.4/libiberty/memchr.c +*** gcc-2.95.3.orig/libiberty/memchr.c Mon Dec 14 07:00:53 1998 +--- gcc-2.95.4/libiberty/memchr.c Wed Jun 6 01:39:04 2001 +*************** memchr (src_void, c, length) +*** 50,56 **** + { + const unsigned char *src = (const unsigned char *)src_void; + +! while (--length >= 0) + { + if (*src == c) + return (PTR)src; +--- 50,56 ---- + { + const unsigned char *src = (const unsigned char *)src_void; + +! while (length-- > 0) + { + if (*src == c) + return (PTR)src; +diff -c3rpN gcc-2.95.3.orig/libio/dbz/dbzmain.c gcc-2.95.4/libio/dbz/dbzmain.c +*** gcc-2.95.3.orig/libio/dbz/dbzmain.c Sun Feb 1 12:20:13 1998 +--- gcc-2.95.4/libio/dbz/dbzmain.c Wed Jun 6 01:39:11 2001 +*************** +*** 19,25 **** + #define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0) + + #ifndef lint +! static char RCSid[] = "$Header: /egcs/carton/cvsfiles/egcs/./libio/dbz/dbzmain.c,v 1.1.1.1 1997/08/21 22:58:23 jason Exp $"; + #endif + + char *progname; +--- 19,25 ---- + #define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0) + + #ifndef lint +! static char RCSid[] = "$Header: /cvs/gcc/gcc/libio/dbz/dbzmain.c,v 1.2 1998/02/01 12:20:13 law Exp $"; + #endif + + char *progname; +diff -c3rpN gcc-2.95.3.orig/libio/dbz/fake.c gcc-2.95.4/libio/dbz/fake.c +*** gcc-2.95.3.orig/libio/dbz/fake.c Thu Aug 21 23:58:23 1997 +--- gcc-2.95.4/libio/dbz/fake.c Wed Jun 6 01:39:11 2001 +*************** +*** 13,19 **** + #define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0) + + #ifndef lint +! static char RCSid[] = "$Header: /rel/cvsfiles/devo/libio/dbz/fake.c,v 1.2 1993/10/25 20:02:42 bothner Exp $"; + #endif + + int midonly = 0; /* just message ids, rest not realistic */ +--- 13,19 ---- + #define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0) + + #ifndef lint +! static char RCSid[] = "$Header: /cvs/gcc/gcc/libio/dbz/fake.c,v 1.1.1.1 1997/08/21 22:58:23 jason Exp $"; + #endif + + int midonly = 0; /* just message ids, rest not realistic */ +diff -c3rpN gcc-2.95.3.orig/libio/editbuf.cc gcc-2.95.4/libio/editbuf.cc +*** gcc-2.95.3.orig/libio/editbuf.cc Thu Aug 21 23:58:14 1997 +--- gcc-2.95.4/libio/editbuf.cc Wed Jun 6 01:39:12 2001 +*************** Written by Per Bothner (bothner@cygnus.c +*** 31,36 **** +--- 31,37 ---- + #include "editbuf.h" + #include + #include ++ #include + + /* NOTE: Some of the code here is taken from GNU emacs */ + /* Hence this file falls under the GNU License! */ +diff -c3rpN gcc-2.95.3.orig/libio/filebuf.cc gcc-2.95.4/libio/filebuf.cc +*** gcc-2.95.3.orig/libio/filebuf.cc Tue Dec 21 18:13:32 1999 +--- gcc-2.95.4/libio/filebuf.cc Wed Jun 6 01:39:12 2001 +*************** Written by Per Bothner (bothner@cygnus.c +*** 30,35 **** +--- 30,39 ---- + #include + #include + #include "builtinbuf.h" ++ /* We replace new by new (nothrow) when exceptions aren't turned on */ ++ #ifndef _IO_THROW ++ #include ++ #endif + + void filebuf::init() + { +diff -c3rpN gcc-2.95.3.orig/libio/filedoalloc.c gcc-2.95.4/libio/filedoalloc.c +*** gcc-2.95.3.orig/libio/filedoalloc.c Mon Apr 12 19:27:48 1999 +--- gcc-2.95.4/libio/filedoalloc.c Wed Jun 6 01:39:12 2001 +*************** +*** 1,3 **** +--- 1,4 ---- ++ + /* Copyright (C) 1993, 1997 Free Software Foundation, Inc. + This file is part of the GNU IO Library. + +diff -c3rpN gcc-2.95.3.orig/libio/fileops.c gcc-2.95.4/libio/fileops.c +*** gcc-2.95.3.orig/libio/fileops.c Mon Apr 12 19:27:49 1999 +--- gcc-2.95.4/libio/fileops.c Wed Jun 6 01:39:12 2001 +*************** _IO_file_sync (fp) +*** 415,420 **** +--- 415,423 ---- + fp->_offset = _IO_pos_BAD; + /* FIXME: Cleanup - can this be shared? */ + /* setg(base(), ptr, ptr); */ ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return retval; + } +diff -c3rpN gcc-2.95.3.orig/libio/gen-params gcc-2.95.4/libio/gen-params +*** gcc-2.95.3.orig/libio/gen-params Tue Mar 23 23:58:21 1999 +--- gcc-2.95.4/libio/gen-params Wed Jun 6 01:39:13 2001 +*************** CXX=${CXX-`if [ -f ${gccdir}/xgcc ] ; \ +*** 55,62 **** + then echo ${gccdir}/xgcc -B${gccdir}/ ; \ + else echo gcc ; fi`} + CPP=${CPP-`echo ${CC} -E`} +! CONFIG_NM=${CONFIG_NM-`if [ -f ${binutilsdir}/nm.new ] ; \ +! then echo ${binutilsdir}/nm.new ; \ + else echo nm ; fi`} + + cat <dummy.c </dev/null 2>&1 ; then + echo "#define ${macro_prefix}HAVE_PRINTF_FP 1" + echo "#define ${macro_prefix}HAVE_LONG_DOUBLE_IO 1" + else +--- 710,723 ---- + + # A little test program to check if __printf_fp is available. + cat >dummy.c < + int main() + { + return __printf_fp (); + } + EOF + +! if ${CC} dummy.c -Wimplicit -Werror >/dev/null 2>&1 ; then + echo "#define ${macro_prefix}HAVE_PRINTF_FP 1" + echo "#define ${macro_prefix}HAVE_LONG_DOUBLE_IO 1" + else +diff -c3rpN gcc-2.95.3.orig/libio/ioextend.cc gcc-2.95.4/libio/ioextend.cc +*** gcc-2.95.3.orig/libio/ioextend.cc Thu Aug 21 23:58:16 1997 +--- gcc-2.95.4/libio/ioextend.cc Wed Jun 6 01:39:13 2001 +*************** This exception does not however invalida +*** 23,28 **** +--- 23,32 ---- + the executable file might be covered by the GNU General Public License. */ + + #include ++ /* We replace new by new (nothrow) when exceptions aren't turned on */ ++ #ifndef _IO_THROW ++ #include ++ #endif + + static int __xalloc = 0; + +diff -c3rpN gcc-2.95.3.orig/libio/iofclose.c gcc-2.95.4/libio/iofclose.c +*** gcc-2.95.3.orig/libio/iofclose.c Fri Mar 5 00:19:09 1999 +--- gcc-2.95.4/libio/iofclose.c Wed Jun 6 01:39:13 2001 +*************** _IO_fclose (fp) +*** 43,48 **** +--- 43,51 ---- + else + status = fp->_flags & _IO_ERR_SEEN ? -1 : 0; + _IO_FINISH (fp); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + if (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr) + { +diff -c3rpN gcc-2.95.3.orig/libio/iofflush.c gcc-2.95.4/libio/iofflush.c +*** gcc-2.95.3.orig/libio/iofflush.c Sat Sep 6 08:42:58 1997 +--- gcc-2.95.4/libio/iofflush.c Wed Jun 6 01:39:14 2001 +*************** _IO_fflush (fp) +*** 39,44 **** +--- 39,47 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + result = _IO_SYNC (fp) ? EOF : 0; ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iofgetpos.c gcc-2.95.4/libio/iofgetpos.c +*** gcc-2.95.3.orig/libio/iofgetpos.c Sat Sep 6 08:43:00 1997 +--- gcc-2.95.4/libio/iofgetpos.c Wed Jun 6 01:39:14 2001 +*************** _IO_fgetpos (fp, posp) +*** 37,42 **** +--- 37,45 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + pos = _IO_seekoff (fp, 0, _IO_seek_cur, 0); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + if (pos == _IO_pos_BAD) + { +diff -c3rpN gcc-2.95.3.orig/libio/iofgets.c gcc-2.95.4/libio/iofgets.c +*** gcc-2.95.3.orig/libio/iofgets.c Sat Sep 6 08:43:01 1997 +--- gcc-2.95.4/libio/iofgets.c Wed Jun 6 01:39:14 2001 +*************** _IO_fgets (buf, n, fp) +*** 47,52 **** +--- 47,55 ---- + buf[count] = '\0'; + result = buf; + } ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iofputs.c gcc-2.95.4/libio/iofputs.c +*** gcc-2.95.3.orig/libio/iofputs.c Sat Sep 6 08:43:06 1997 +--- gcc-2.95.4/libio/iofputs.c Wed Jun 6 01:39:14 2001 +*************** _IO_fputs (str, fp) +*** 40,45 **** +--- 40,48 ---- + result = EOF; + else + result = 1; ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iofread.c gcc-2.95.4/libio/iofread.c +*** gcc-2.95.3.orig/libio/iofread.c Sat Sep 6 08:43:08 1997 +--- gcc-2.95.4/libio/iofread.c Wed Jun 6 01:39:14 2001 +*************** _IO_fread (buf, size, count, fp) +*** 40,45 **** +--- 40,48 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + bytes_read = _IO_sgetn (fp, (char *) buf, bytes_requested); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return bytes_requested == bytes_read ? count : bytes_read / size; + } +diff -c3rpN gcc-2.95.3.orig/libio/iofsetpos.c gcc-2.95.4/libio/iofsetpos.c +*** gcc-2.95.3.orig/libio/iofsetpos.c Sat Sep 6 08:43:10 1997 +--- gcc-2.95.4/libio/iofsetpos.c Wed Jun 6 01:39:14 2001 +*************** _IO_fsetpos (fp, posp) +*** 47,52 **** +--- 47,55 ---- + } + else + result = 0; ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/ioftell.c gcc-2.95.4/libio/ioftell.c +*** gcc-2.95.3.orig/libio/ioftell.c Sat Sep 6 08:43:12 1997 +--- gcc-2.95.4/libio/ioftell.c Wed Jun 6 01:39:14 2001 +*************** _IO_ftell (fp) +*** 36,41 **** +--- 36,44 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + pos = _IO_seekoff (fp, 0, _IO_seek_cur, 0); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + if (pos == _IO_pos_BAD) + { +diff -c3rpN gcc-2.95.3.orig/libio/iofwrite.c gcc-2.95.4/libio/iofwrite.c +*** gcc-2.95.3.orig/libio/iofwrite.c Sat Sep 6 08:43:13 1997 +--- gcc-2.95.4/libio/iofwrite.c Wed Jun 6 01:39:15 2001 +*************** _IO_fwrite (buf, size, count, fp) +*** 40,45 **** +--- 40,48 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + written = _IO_sputn (fp, (const char *) buf, request); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + /* Many traditional implementations return 0 if size==0 && count > 0, + but ANSI requires us to return count in this case. */ +diff -c3rpN gcc-2.95.3.orig/libio/iogetc.c gcc-2.95.4/libio/iogetc.c +*** gcc-2.95.3.orig/libio/iogetc.c Fri Mar 5 00:19:12 1999 +--- gcc-2.95.4/libio/iogetc.c Wed Jun 6 01:39:15 2001 +*************** _IO_getc (fp) +*** 37,42 **** +--- 37,45 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + result = _IO_getc_unlocked (fp); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iogetdelim.c gcc-2.95.4/libio/iogetdelim.c +*** gcc-2.95.3.orig/libio/iogetdelim.c Sat Sep 6 08:43:17 1997 +--- gcc-2.95.4/libio/iogetdelim.c Wed Jun 6 01:39:15 2001 +*************** _IO_getdelim (lineptr, n, delimiter, fp) +*** 115,120 **** +--- 115,123 ---- + result = cur_len; + + unlock_return: ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iogets.c gcc-2.95.4/libio/iogets.c +*** gcc-2.95.3.orig/libio/iogets.c Sat Sep 6 08:43:20 1997 +--- gcc-2.95.4/libio/iogets.c Wed Jun 6 01:39:15 2001 +*************** _IO_gets (buf) +*** 58,63 **** +--- 58,67 ---- + buf[count] = 0; + retval = buf; + unlock_return: ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile ( ++ _IO_stdin); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return retval; + } +diff -c3rpN gcc-2.95.3.orig/libio/ioputc.c gcc-2.95.4/libio/ioputc.c +*** gcc-2.95.3.orig/libio/ioputc.c Fri Mar 5 00:19:13 1999 +--- gcc-2.95.4/libio/ioputc.c Wed Jun 6 01:39:16 2001 +*************** _IO_putc (c, fp) +*** 31,36 **** +--- 31,39 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + result = _IO_putc_unlocked (c, fp); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/ioputs.c gcc-2.95.4/libio/ioputs.c +*** gcc-2.95.3.orig/libio/ioputs.c Sat Sep 6 08:43:26 1997 +--- gcc-2.95.4/libio/ioputs.c Wed Jun 6 01:39:16 2001 +*************** _IO_puts (str) +*** 40,45 **** +--- 40,49 ---- + result = len + 1; + else + result = EOF; ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile ( ++ _IO_stdout); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/ioseekoff.c gcc-2.95.4/libio/ioseekoff.c +*** gcc-2.95.3.orig/libio/ioseekoff.c Tue Sep 16 17:00:21 1997 +--- gcc-2.95.4/libio/ioseekoff.c Wed Jun 6 01:39:17 2001 +*************** _IO_seekoff (fp, offset, dir, mode) +*** 49,54 **** +--- 49,57 ---- + } + retval = _IO_SEEKOFF (fp, offset, dir, mode); + ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return retval; + } +diff -c3rpN gcc-2.95.3.orig/libio/ioseekpos.c gcc-2.95.4/libio/ioseekpos.c +*** gcc-2.95.3.orig/libio/ioseekpos.c Tue Sep 16 17:00:23 1997 +--- gcc-2.95.4/libio/ioseekpos.c Wed Jun 6 01:39:17 2001 +*************** _IO_seekpos (fp, pos, mode) +*** 43,48 **** +--- 43,51 ---- + _IO_free_backup_area (fp); + retval = _IO_SEEKPOS (fp, pos, mode); + ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return retval; + } +diff -c3rpN gcc-2.95.3.orig/libio/iosetbuffer.c gcc-2.95.4/libio/iosetbuffer.c +*** gcc-2.95.3.orig/libio/iosetbuffer.c Sat Sep 6 08:43:30 1997 +--- gcc-2.95.4/libio/iosetbuffer.c Wed Jun 6 01:39:17 2001 +*************** _IO_setbuffer (fp, buf, size) +*** 38,43 **** +--- 38,46 ---- + if (!buf) + size = 0; + (void) _IO_SETBUF (fp, buf, size); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + } + +diff -c3rpN gcc-2.95.3.orig/libio/iosetvbuf.c gcc-2.95.4/libio/iosetvbuf.c +*** gcc-2.95.3.orig/libio/iosetvbuf.c Sat Sep 6 08:43:32 1997 +--- gcc-2.95.4/libio/iosetvbuf.c Wed Jun 6 01:39:17 2001 +*************** _IO_setvbuf (fp, buf, mode, size) +*** 91,96 **** +--- 91,99 ---- + } + result = _IO_SETBUF (fp, buf, size) == NULL ? EOF : 0; + unlock_return: ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iostream.cc gcc-2.95.4/libio/iostream.cc +*** gcc-2.95.3.orig/libio/iostream.cc Sun Dec 10 17:45:08 2000 +--- gcc-2.95.4/libio/iostream.cc Wed Jun 6 01:39:17 2001 +*************** READ_INT(unsigned long long) +*** 361,366 **** +--- 361,368 ---- + READ_INT(bool) + #endif + ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + istream& istream::operator>>(long double& x) + { + if (ipfx0()) +*************** istream& istream::operator>>(long double +*** 379,384 **** +--- 381,388 ---- + } + return *this; + } ++ #endif ++ /* End VxWorks specific */ + + istream& istream::operator>>(double& x) + { +*************** ostream& ostream::operator<<(double n) +*** 761,766 **** +--- 765,772 ---- + return *this; + } + ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + #if _G_HAVE_LONG_DOUBLE_IO + ostream& ostream::operator<<(long double n) + { +*************** ostream& ostream::operator<<(long double +*** 819,824 **** +--- 825,832 ---- + return *this; + } + #endif ++ #endif ++ /* End VxWorks specific */ + + ostream& ostream::operator<<(const char *s) + { +diff -c3rpN gcc-2.95.3.orig/libio/iostream.h gcc-2.95.4/libio/iostream.h +*** gcc-2.95.3.orig/libio/iostream.h Sat Aug 7 07:01:46 1999 +--- gcc-2.95.4/libio/iostream.h Wed Jun 6 01:39:17 2001 +*************** class ostream : virtual public ios +*** 98,108 **** +--- 98,113 ---- + #endif + ostream& operator<<(double n); + ostream& operator<<(float n) { return operator<<((double)n); } ++ ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + #if _G_HAVE_LONG_DOUBLE_IO + ostream& operator<<(long double n); + #else + ostream& operator<<(long double n) { return operator<<((double)n); } + #endif ++ #endif ++ /* End VxWorks specific */ + ostream& operator<<(__omanip func) { return (*func)(*this); } + ostream& operator<<(__manip func) {(*func)(*this); return *this;} + ostream& operator<<(streambuf*); +*************** protected: +*** 218,224 **** +--- 223,233 ---- + #endif + istream& operator>>(float&); + istream& operator>>(double&); ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + istream& operator>>(long double&); ++ #endif ++ /* End VxWorks specific */ + istream& operator>>( __manip func) {(*func)(*this); return *this;} + istream& operator>>(__imanip func) { return (*func)(*this); } + istream& operator>>(streambuf*); +diff -c3rpN gcc-2.95.3.orig/libio/ioungetc.c gcc-2.95.4/libio/ioungetc.c +*** gcc-2.95.3.orig/libio/ioungetc.c Sat Sep 6 08:43:37 1997 +--- gcc-2.95.4/libio/ioungetc.c Wed Jun 6 01:39:18 2001 +*************** _IO_ungetc (c, fp) +*** 37,42 **** +--- 37,45 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + result = _IO_sputbackc (fp, (unsigned char) c); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/iovsprintf.c gcc-2.95.4/libio/iovsprintf.c +*** gcc-2.95.3.orig/libio/iovsprintf.c Fri Mar 5 00:19:14 1999 +--- gcc-2.95.4/libio/iovsprintf.c Wed Jun 6 01:39:18 2001 +*************** _IO_vsprintf (string, format, args) +*** 48,53 **** +--- 48,56 ---- + _IO_flockfile (&sf._sbf._f); + ret = _IO_vfprintf (&sf._sbf._f, format, args); + _IO_putc_unlocked ('\0', &sf._sbf._f); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (&sf._sbf._f); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return ret; + } +diff -c3rpN gcc-2.95.3.orig/libio/iovsscanf.c gcc-2.95.4/libio/iovsscanf.c +*** gcc-2.95.3.orig/libio/iovsscanf.c Fri Mar 5 00:19:15 1999 +--- gcc-2.95.4/libio/iovsscanf.c Wed Jun 6 01:39:18 2001 +*************** _IO_vsscanf (string, format, args) +*** 44,49 **** +--- 44,52 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, &sf); + _IO_flockfile (&sf._sbf._f); + ret = _IO_vfscanf (&sf._sbf._f, format, args, NULL); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (&sf._sbf._f); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return ret; + } +diff -c3rpN gcc-2.95.3.orig/libio/isgetline.cc gcc-2.95.4/libio/isgetline.cc +*** gcc-2.95.3.orig/libio/isgetline.cc Sat Aug 7 07:01:46 1999 +--- gcc-2.95.4/libio/isgetline.cc Wed Jun 6 01:39:18 2001 +*************** the executable file might be covered by +*** 25,30 **** +--- 25,34 ---- + #include + #include "iostream.h" + #include ++ /* We replace new by new (nothrow) when exceptions aren't turned on */ ++ #ifndef _IO_THROW ++ #include ++ #endif + + istream& istream::getline(char* buf, int len, char delim) + { +diff -c3rpN gcc-2.95.3.orig/libio/libio.h gcc-2.95.4/libio/libio.h +*** gcc-2.95.3.orig/libio/libio.h Sun Dec 10 17:45:08 2000 +--- gcc-2.95.4/libio/libio.h Wed Jun 6 01:39:19 2001 +*************** +*** 160,168 **** + + struct _IO_jump_t; struct _IO_FILE; + + /* Handle lock. */ + #ifdef _IO_MTSAFE_IO +! # if defined __GLIBC__ && __GLIBC__ >= 2 + # if __GLIBC_MINOR__ > 0 + # include + # else +--- 160,178 ---- + + struct _IO_jump_t; struct _IO_FILE; + ++ #ifdef __vxworks ++ #define _IO_VXW_THREADS ++ #define _IO_MTSAFE_IO ++ #endif ++ + /* Handle lock. */ + #ifdef _IO_MTSAFE_IO +! /* Begin VxWorks specific */ +! # ifdef _IO_VXW_THREADS +! # include +! /* End VxWorks specific */ +! # else +! # if (defined __GLIBC__ && __GLIBC__ >= 2) || defined(_IO_VXW_THREADS) + # if __GLIBC_MINOR__ > 0 + # include + # else +*************** struct _IO_jump_t; struct _IO_FILE; +*** 171,178 **** + # define _IO_LOCK_T _IO_lock_t * + # else + /*# include */ +- # endif +- #else + # if defined(__GLIBC__) && __GLIBC__ >= 2 + typedef void _IO_lock_t; + # define _IO_LOCK_T void * +--- 181,186 ---- +*************** struct _IO_jump_t; struct _IO_FILE; +*** 185,191 **** + # endif + # endif + #endif +! + + /* A streammarker remembers a position in a buffer. */ + +--- 193,200 ---- + # endif + # endif + #endif +! # endif +! #endif + + /* A streammarker remembers a position in a buffer. */ + +*************** extern int _IO_peekc_locked __P ((_IO_FI +*** 327,335 **** +--- 336,348 ---- + #define _IO_PENDING_OUTPUT_COUNT(_fp) \ + ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base) + ++ /* Begin VxWorks specific */ ++ #if !(defined(_IO_MTSAFE_IO) && defined(_IO_VXW_THREADS)) + extern void _IO_flockfile __P ((_IO_FILE *)); + extern void _IO_funlockfile __P ((_IO_FILE *)); + extern int _IO_ftrylockfile __P ((_IO_FILE *)); ++ #endif ++ /* End VxWorks specific */ + + #ifdef _IO_MTSAFE_IO + # define _IO_peekc(_fp) _IO_peekc_locked (_fp) +diff -c3rpN gcc-2.95.3.orig/libio/parsestream.cc gcc-2.95.4/libio/parsestream.cc +*** gcc-2.95.3.orig/libio/parsestream.cc Sat Sep 6 08:43:48 1997 +--- gcc-2.95.4/libio/parsestream.cc Wed Jun 6 01:39:19 2001 +*************** Written by Per Bothner (bothner@cygnus.c +*** 30,35 **** +--- 30,40 ---- + #include "libioP.h" + #include "parsestream.h" + #include ++ #include ++ /* We replace new by new (nothrow) when exceptions aren't turned on */ ++ #ifndef _IO_THROW ++ #include ++ #endif + + streambuf* parsebuf::setbuf(char*, int) + { +diff -c3rpN gcc-2.95.3.orig/libio/peekc.c gcc-2.95.4/libio/peekc.c +*** gcc-2.95.3.orig/libio/peekc.c Sat Sep 6 08:43:49 1997 +--- gcc-2.95.4/libio/peekc.c Wed Jun 6 01:39:19 2001 +*************** _IO_peekc_locked (fp) +*** 37,42 **** +--- 37,45 ---- + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); + _IO_flockfile (fp); + result = _IO_peekc_unlocked (fp); ++ #ifdef _IO_VXW_THREADS ++ _IO_funlockfile (fp); ++ #endif /* _IO_VXW_THREADS */ + _IO_cleanup_region_end (1); + return result; + } +diff -c3rpN gcc-2.95.3.orig/libio/stdstrbufs.cc gcc-2.95.4/libio/stdstrbufs.cc +*** gcc-2.95.3.orig/libio/stdstrbufs.cc Tue Nov 18 16:53:45 1997 +--- gcc-2.95.4/libio/stdstrbufs.cc Wed Jun 6 01:39:25 2001 +*************** DEF_STDFILE(_IO_stdout_, 1, &_IO_stdin_. +*** 69,74 **** +--- 69,81 ---- + DEF_STDFILE(_IO_stderr_, 2, &_IO_stdout_.file, + _IO_NO_READS+_IO_UNBUFFERED); + ++ /* Begin VxWorks specific */ ++ /* We define this because we want the standard streams to use streambufs ++ * (that write to file descriptors which are valid across all threads) rather ++ * than stdiobufs */ ++ #define _STDIO_USES_IOSTREAM ++ /* End VxWorks specific */ ++ + #ifdef _STDIO_USES_IOSTREAM + _IO_FILE *_IO_list_all = &_IO_stderr_.file; + #else /* !_STDIO_USES_IOSTREAM */ +*************** extern struct _IO_jump_t stdiobuf_vtable +*** 104,114 **** + + #ifdef _IO_MTSAFE_IO + #define DEF_STDIOFILE(NAME, FD, FILE, FLAGS, CHAIN) \ +- static _IO_lock_t _IO_stdfile_##FD##_lock = _IO_lock_initializer; \ + struct _IO_fake_stdiobuf NAME = \ + {{{ _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+_IO_UNBUFFERED+FLAGS, \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \ +! 0, 0, 0, 0, { 0 }, _IO_stdfile_##FD##_lock},\ + &stdiobuf_vtable}, FILE} + #else + #define DEF_STDIOFILE(NAME, FD, FILE, FLAGS, CHAIN) \ +--- 111,120 ---- + + #ifdef _IO_MTSAFE_IO + #define DEF_STDIOFILE(NAME, FD, FILE, FLAGS, CHAIN) \ + struct _IO_fake_stdiobuf NAME = \ + {{{ _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+_IO_UNBUFFERED+FLAGS, \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \ +! 0, 0, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock},\ + &stdiobuf_vtable}, FILE} + #else + #define DEF_STDIOFILE(NAME, FD, FILE, FLAGS, CHAIN) \ +diff -c3rpN gcc-2.95.3.orig/libio/stdstreams.cc gcc-2.95.4/libio/stdstreams.cc +*** gcc-2.95.3.orig/libio/stdstreams.cc Sun Dec 10 17:45:08 2000 +--- gcc-2.95.4/libio/stdstreams.cc Wed Jun 6 01:39:25 2001 +*************** the executable file might be covered by +*** 38,43 **** +--- 38,54 ---- + + #include + ++ /* Begin VxWorks specific */ ++ /* We define this because we want the standard streams to use streambufs ++ * (that write to file descriptors which are valid across all threads) rather ++ * than stdiobufs ++ * VxWorks has thread private stdio FILE structures. On other hand ++ * cout/cin/cerr are global to all threads. We must therefore initialize ++ * them with streambufs (that write to thread global file descriptors) ++ * rather than stdiobufs. */ ++ #define _STDIO_USES_IOSTREAM ++ /* End VxWorks specific */ ++ + #ifdef _STDIO_USES_IOSTREAM + #define CIN_SBUF _IO_stdin_ + #define COUT_SBUF _IO_stdout_ +diff -c3rpN gcc-2.95.3.orig/libio/streambuf.cc gcc-2.95.4/libio/streambuf.cc +*** gcc-2.95.3.orig/libio/streambuf.cc Wed May 6 22:08:52 1998 +--- gcc-2.95.4/libio/streambuf.cc Wed Jun 6 01:39:25 2001 +*************** +*** 1,3 **** +--- 1,4 ---- ++ + /* This is part of libio/iostream, providing -*- C++ -*- input/output. + Copyright (C) 1991, 1992, 1993, 1995 Free Software Foundation + +*************** the executable file might be covered by +*** 24,29 **** +--- 25,43 ---- + + /* Written by Per Bothner (bothner@cygnus.com). */ + ++ /* ++ * This hack ensures that VxWorks contains a symbol called fd. Customers ++ * often want to type ++ * -> fd = 0 ++ * at the Wind Shell. Because of the screwy way the Wind Shell ++ * lexer looks up names in the symbol table this will give ++ * a syntax error due to the conflict between fd and filebuf::fd - ++ * unless `fd' is already in the symbol table. ++ * Here we define fd as a `common' symbol so customers can ++ * still use fd in their code. ++ */ ++ int fd; ++ + #define _STREAM_COMPAT + #ifdef __GNUG__ + #pragma implementation +*************** the executable file might be covered by +*** 34,39 **** +--- 48,57 ---- + #include + #ifndef errno + extern int errno; ++ #endif ++ /* We replace new by new (nothrow) when exceptions aren't turned on */ ++ #ifndef _IO_THROW ++ #include + #endif + + void streambuf::_un_link() { _IO_un_link(this); } +diff -c3rpN gcc-2.95.3.orig/libio/streambuf.h gcc-2.95.4/libio/streambuf.h +*** gcc-2.95.3.orig/libio/streambuf.h Sun Dec 10 17:45:08 2000 +--- gcc-2.95.4/libio/streambuf.h Wed Jun 6 01:39:25 2001 +*************** the executable file might be covered by +*** 35,40 **** +--- 35,41 ---- + extern "C" { + #include + } ++ #include + //#include <_G_config.h> + #ifdef _G_NEED_STDARG_H + #include +diff -c3rpN gcc-2.95.3.orig/libio/strstream.cc gcc-2.95.4/libio/strstream.cc +*** gcc-2.95.3.orig/libio/strstream.cc Thu Aug 21 23:58:22 1997 +--- gcc-2.95.4/libio/strstream.cc Wed Jun 6 01:39:25 2001 +*************** the executable file might be covered by +*** 30,35 **** +--- 30,39 ---- + #include "iostreamP.h" + #include "strstream.h" + #include ++ /* We replace new by new (nothrow) when exceptions aren't turned on */ ++ #ifndef _IO_THROW ++ #include ++ #endif + + static void* default_alloc(_IO_size_t size) + { +diff -c3rpN gcc-2.95.3.orig/libio/tests/tiomisc.cc gcc-2.95.4/libio/tests/tiomisc.cc +*** gcc-2.95.3.orig/libio/tests/tiomisc.cc Thu Aug 21 23:58:30 1997 +--- gcc-2.95.4/libio/tests/tiomisc.cc Wed Jun 6 01:39:27 2001 +*************** void +*** 128,134 **** + reread_test () + { // This is PR 5486. + int tag_char; +! char *fname = "Makefile"; + int mode = O_RDONLY; + filebuf file_p; + +--- 128,137 ---- + reread_test () + { // This is PR 5486. + int tag_char; +! #if 0 +! #define FNAME "Makefile" +! #endif +! char *fname = FNAME; + int mode = O_RDONLY; + filebuf file_p; + +diff -c3rpN gcc-2.95.3.orig/libio/testsuite/libio.tests/tiomisc.exp gcc-2.95.4/libio/testsuite/libio.tests/tiomisc.exp +*** gcc-2.95.3.orig/libio/testsuite/libio.tests/tiomisc.exp Thu Aug 21 23:58:31 1997 +--- gcc-2.95.4/libio/testsuite/libio.tests/tiomisc.exp Wed Jun 6 01:39:28 2001 +*************** +*** 1 **** +! test_libio tiomisc.cc "-w" "" tiomisc.exp "" +--- 1,2 ---- +! set FNAME [remote_download target "Makefile"] +! test_libio tiomisc.cc "-w -DFNAME=\\\"$FNAME\\\"" "" tiomisc.exp "" +diff -c3rpN gcc-2.95.3.orig/libobjc/makefile.dos gcc-2.95.4/libobjc/makefile.dos +*** gcc-2.95.3.orig/libobjc/makefile.dos Mon Sep 21 02:22:07 1998 +--- gcc-2.95.4/libobjc/makefile.dos Thu Jan 1 00:00:00 1970 +*************** +*** 1,56 **** +- # GNU Objective C Runtime Makefile for compiling with djgpp +- # Copyright (C) 1993, 1994, 1996 Free Software Foundation, Inc. +- # +- # 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, 59 Temple Place - Suite 330, +- # Boston, MA 02111-1307, USA. +- +- # This Makefile is configured for GnuMAKE +- +- GCC_FOR_TARGET=gcc +- +- .SUFFIXES: .o .m +- +- OPTIMIZE = -O2 +- +- # Always search these dirs when compiling. +- SUBDIR_INCLUDES = -I. -I.. -I../config +- +- .c.o: +- $(GCC_FOR_TARGET) $(OPTIMIZE) \ +- -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $< +- +- .m.o: +- $(GCC_FOR_TARGET) $(OPTIMIZE) -fgnu-runtime \ +- -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $< +- +- OBJC_O = hash.o sarray.o class.o sendmsg.o init.o archive.o \ +- selector.o objects.o misc.o object.o protocol.o encoding.o thread.o +- +- libobjc.a: $(OBJC_O) +- -rm -f libobjc.a +- ar rc libobjc.a $(OBJC_O) +- ranlib libobjc.a +- +- OBJC_H = hash.h objc-list.h sarray.h objc.h \ +- objc-api.h \ +- object.h protocol.h mutex.h \ +- typedstream.h thread.h +- +- mostlyclean: +- -rm -f *.o libobjc.a xforward fflags +- clean: mostlyclean +- distclean: mostlyclean +- extraclean: mostlyclean +--- 0 ---- +diff -c3rpN gcc-2.95.3.orig/libstdc++/ChangeLog gcc-2.95.4/libstdc++/ChangeLog +*** gcc-2.95.3.orig/libstdc++/ChangeLog Fri Mar 16 12:52:21 2001 +--- gcc-2.95.4/libstdc++/ChangeLog Wed Jun 6 01:39:33 2001 +*************** +*** 1,3 **** +--- 1,10 ---- ++ 2001-04-06 Matthias Klose ++ ++ From : ++ * std/bastring.h: remove some compiler warnings. ++ * std/bastring.cc: Likewise. ++ * stl/stl_hashtable.h: Likewise. ++ + Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. +diff -c3rpN gcc-2.95.3.orig/libstdc++/cinst.cc gcc-2.95.4/libstdc++/cinst.cc +*** gcc-2.95.3.orig/libstdc++/cinst.cc Sun Aug 23 13:47:19 1998 +--- gcc-2.95.4/libstdc++/cinst.cc Wed Jun 6 01:39:33 2001 +*************** +*** 1,6 **** +--- 1,10 ---- + // Instantiation file for the -*- C++ -*- complex number classes. + // Copyright (C) 1994 Free Software Foundation + ++ /* Begin VxWorks specific */ ++ #if !defined (_NO_LONG_DOUBLE_) || ! defined (LD) ++ /* End VxWorks specific */ ++ + #ifdef F + typedef float f; + #endif +*************** template istream& operator>> (istream&, +*** 152,154 **** +--- 156,161 ---- + #ifdef INSERT + template ostream& operator<< (ostream&, const complex&); + #endif ++ /* Begin VxWorks specific */ ++ #endif /* #if !defined (_NO_LONG_DOUBLE_) || !defined (LD) ++ /* End VxWorks specific */ +diff -c3rpN gcc-2.95.3.orig/libstdc++/cmath gcc-2.95.4/libstdc++/cmath +*** gcc-2.95.3.orig/libstdc++/cmath Thu Aug 21 23:58:32 1997 +--- gcc-2.95.4/libstdc++/cmath Wed Jun 6 01:39:34 2001 +*************** long double sqrt (long double); +*** 69,76 **** + long double tan (long double); + long double tanh (long double); + #endif + inline long double abs (long double x) { return fabs (x); } +! + } // extern "C++" + + #endif +--- 69,79 ---- + long double tan (long double); + long double tanh (long double); + #endif ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + inline long double abs (long double x) { return fabs (x); } +! #endif +! /* End VxWorks specific */ + } // extern "C++" + + #endif +diff -c3rpN gcc-2.95.3.orig/libstdc++/complex gcc-2.95.4/libstdc++/complex +*** gcc-2.95.3.orig/libstdc++/complex Thu Aug 21 23:58:33 1997 +--- gcc-2.95.4/libstdc++/complex Wed Jun 6 01:39:34 2001 +*************** extern "C++" { +*** 12,18 **** +--- 12,22 ---- + // ANSI complex types + typedef complex float_complex; + typedef complex double_complex; ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + typedef complex long_double_complex; ++ #endif ++ /* End VxWorks specific */ + } + + #endif +diff -c3rpN gcc-2.95.3.orig/libstdc++/std/bastring.cc gcc-2.95.4/libstdc++/std/bastring.cc +*** gcc-2.95.3.orig/libstdc++/std/bastring.cc Wed Dec 15 07:42:12 1999 +--- gcc-2.95.4/libstdc++/std/bastring.cc Wed Jun 6 01:39:37 2001 +*************** template & + basic_string :: + replace (size_type pos1, size_type n1, +! const basic_string& str, size_type pos2, size_type n2) + { +! const size_t len2 = str.length (); + + if (pos1 == 0 && n1 >= length () && pos2 == 0 && n2 >= len2) +! return operator= (str); + + OUTOFRANGE (pos2 > len2); + + if (n2 > len2 - pos2) + n2 = len2 - pos2; + +! return replace (pos1, n1, str.data () + pos2, n2); + } + + template +--- 116,134 ---- + basic_string & + basic_string :: + replace (size_type pos1, size_type n1, +! const basic_string& _str, size_type pos2, size_type n2) + { +! const size_t len2 = _str.length (); + + if (pos1 == 0 && n1 >= length () && pos2 == 0 && n2 >= len2) +! return operator= (_str); + + OUTOFRANGE (pos2 > len2); + + if (n2 > len2 - pos2) + n2 = len2 - pos2; + +! return replace (pos1, n1, _str.data () + pos2, n2); + } + + template +*************** find_last_not_of (charT c, size_type pos +*** 394,414 **** + + template + int basic_string :: +! compare (const basic_string& str, size_type pos, size_type n) const + { + OUTOFRANGE (pos > length ()); + + size_t rlen = length () - pos; + if (rlen > n) + rlen = n; +! if (rlen > str.length ()) +! rlen = str.length (); +! int r = traits::compare (data () + pos, str.data (), rlen); + if (r != 0) + return r; + if (rlen == n) + return 0; +! return (length () - pos) - str.length (); + } + + template +--- 394,414 ---- + + template + int basic_string :: +! compare (const basic_string& _str, size_type pos, size_type n) const + { + OUTOFRANGE (pos > length ()); + + size_t rlen = length () - pos; + if (rlen > n) + rlen = n; +! if (rlen > _str.length ()) +! rlen = _str.length (); +! int r = traits::compare (data () + pos, _str.data (), rlen); + if (r != 0) + return r; + if (rlen == n) + return 0; +! return (length () - pos) - _str.length (); + } + + template +*************** getline (istream &is, basic_string sbumpc (); + if (ch == EOF) + { +! is.setstate (count == 0 + ? (ios::failbit|ios::eofbit) + : ios::eofbit); + break; + } + +! ++count; + + if (ch == delim) + break; +--- 485,497 ---- + int ch = sb->sbumpc (); + if (ch == EOF) + { +! is.setstate (_count == 0 + ? (ios::failbit|ios::eofbit) + : ios::eofbit); + break; + } + +! ++_count; + + if (ch == delim) + break; +*************** getline (istream &is, basic_string grab ()) { } +! basic_string (const basic_string& str, size_type pos, size_type n = npos) +! : dat (nilRep.grab ()) { assign (str, pos, n); } + basic_string (const charT* s, size_type n) + : dat (nilRep.grab ()) { assign (s, n); } + basic_string (const charT* s) +--- 169,177 ---- + } + + explicit basic_string (): dat (nilRep.grab ()) { } +! basic_string (const basic_string& _str): dat (_str.rep ()->grab ()) { } +! basic_string (const basic_string& _str, size_type pos, size_type n = npos) +! : dat (nilRep.grab ()) { assign (_str, pos, n); } + basic_string (const charT* s, size_type n) + : dat (nilRep.grab ()) { assign (s, n); } + basic_string (const charT* s) +*************** public: +*** 191,199 **** + + void swap (basic_string &s) { charT *d = dat; dat = s.dat; s.dat = d; } + +! basic_string& append (const basic_string& str, size_type pos = 0, + size_type n = npos) +! { return replace (length (), 0, str, pos, n); } + basic_string& append (const charT* s, size_type n) + { return replace (length (), 0, s, n); } + basic_string& append (const charT* s) +--- 191,199 ---- + + void swap (basic_string &s) { charT *d = dat; dat = s.dat; s.dat = d; } + +! basic_string& append (const basic_string& _str, size_type pos = 0, + size_type n = npos) +! { return replace (length (), 0, _str, pos, n); } + basic_string& append (const charT* s, size_type n) + { return replace (length (), 0, s, n); } + basic_string& append (const charT* s) +*************** public: +*** 346,353 **** + size_type find (const basic_string& str, size_type pos = 0) const + { return find (str.data(), pos, str.length()); } + size_type find (const charT* s, size_type pos, size_type n) const; +! size_type find (const charT* s, size_type pos = 0) const +! { return find (s, pos, traits::length (s)); } + size_type find (charT c, size_type pos = 0) const; + + size_type rfind (const basic_string& str, size_type pos = npos) const +--- 346,353 ---- + size_type find (const basic_string& str, size_type pos = 0) const + { return find (str.data(), pos, str.length()); } + size_type find (const charT* s, size_type pos, size_type n) const; +! size_type find (const charT* _s, size_type pos = 0) const +! { return find (_s, pos, traits::length (_s)); } + size_type find (charT c, size_type pos = 0) const; + + size_type rfind (const basic_string& str, size_type pos = npos) const +*************** inline basic_string & lhs, + const basic_string & rhs) + { +! basic_string str (lhs); +! str.append (rhs); +! return str; + } + + template + inline basic_string + operator+ (const charT* lhs, const basic_string & rhs) + { +! basic_string str (lhs); +! str.append (rhs); +! return str; + } + + template + inline basic_string + operator+ (charT lhs, const basic_string & rhs) + { +! basic_string str (1, lhs); +! str.append (rhs); +! return str; + } + + template + inline basic_string + operator+ (const basic_string & lhs, const charT* rhs) + { +! basic_string str (lhs); +! str.append (rhs); +! return str; + } + + template +--- 469,504 ---- + operator+ (const basic_string & lhs, + const basic_string & rhs) + { +! basic_string _str (lhs); +! _str.append (rhs); +! return _str; + } + + template + inline basic_string + operator+ (const charT* lhs, const basic_string & rhs) + { +! basic_string _str (lhs); +! _str.append (rhs); +! return _str; + } + + template + inline basic_string + operator+ (charT lhs, const basic_string & rhs) + { +! basic_string _str (1, lhs); +! _str.append (rhs); +! return _str; + } + + template + inline basic_string + operator+ (const basic_string & lhs, const charT* rhs) + { +! basic_string _str (lhs); +! _str.append (rhs); +! return _str; + } + + template +diff -c3rpN gcc-2.95.3.orig/libstdc++/std/complext.h gcc-2.95.4/libstdc++/std/complext.h +*** gcc-2.95.3.orig/libstdc++/std/complext.h Sun Sep 28 20:21:47 1997 +--- gcc-2.95.4/libstdc++/std/complext.h Wed Jun 6 01:39:38 2001 +*************** private: +*** 74,80 **** +--- 74,84 ---- + // Declare specializations. + class complex; + class complex; ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + class complex; ++ #endif ++ /* End VxWorks specific */ + + template + inline complex<_FLT>& +*************** abs (const complex<_FLT>& x) __attribute +*** 319,325 **** +--- 323,335 ---- + template inline _FLT + abs (const complex<_FLT>& x) + { ++ /* Begin VxWorks specific */ ++ #ifndef __vxworks + return hypot (real (x), imag (x)); ++ #else ++ return sqrt (real (x) * real (x) + imag (x) * imag (x)); ++ #endif ++ /* End VxWorks specific */ + } + + template inline _FLT +*************** template ostream& operator +*** 395,400 **** + + #include + #include + #include +! + #endif +--- 405,413 ---- + + #include + #include ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + #include +! #endif +! /* End VxWorks specific */ + #endif +diff -c3rpN gcc-2.95.3.orig/libstdc++/std/dcomplex.h gcc-2.95.4/libstdc++/std/dcomplex.h +*** gcc-2.95.3.orig/libstdc++/std/dcomplex.h Fri Oct 10 07:56:55 1997 +--- gcc-2.95.4/libstdc++/std/dcomplex.h Wed Jun 6 01:39:38 2001 +*************** class complex +*** 38,44 **** +--- 38,49 ---- + public: + complex (double r = 0, double i = 0): re (r), im (i) { } + complex (const complex& r): re (r.real ()), im (r.imag ()) { } ++ ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + explicit complex (const complex& r); ++ #endif ++ /* End VxWorks specific */ + + complex& operator+= (const complex& r) { return __doapl (this, r); } + complex& operator-= (const complex& r) { return __doami (this, r); } +diff -c3rpN gcc-2.95.3.orig/libstdc++/std/fcomplex.h gcc-2.95.4/libstdc++/std/fcomplex.h +*** gcc-2.95.3.orig/libstdc++/std/fcomplex.h Fri Oct 10 07:56:55 1997 +--- gcc-2.95.4/libstdc++/std/fcomplex.h Wed Jun 6 01:39:38 2001 +*************** class complex +*** 38,44 **** +--- 38,48 ---- + public: + complex (float r = 0, float i = 0): re (r), im (i) { } + explicit complex (const complex& r); ++ /* Begin VxWorks specific */ ++ #ifndef _NO_LONG_DOUBLE_ + explicit complex (const complex& r); ++ #endif ++ /* End VxWorks specific */ + + complex& operator+= (const complex& r) { return __doapl (this, r); } + complex& operator-= (const complex& r) { return __doami (this, r); } +diff -c3rpN gcc-2.95.3.orig/libstdc++/stl/stl_alloc.h gcc-2.95.4/libstdc++/stl/stl_alloc.h +*** gcc-2.95.3.orig/libstdc++/stl/stl_alloc.h Fri May 7 11:13:28 1999 +--- gcc-2.95.4/libstdc++/stl/stl_alloc.h Wed Jun 6 01:39:43 2001 +*************** +*** 38,55 **** + // The allocation primitives are intended to allocate individual objects, + // not larger arenas as with the original STL allocators. + +! #if 0 + # include + # define __THROW_BAD_ALLOC throw bad_alloc() + #elif !defined(__THROW_BAD_ALLOC) + # include + # define __THROW_BAD_ALLOC cerr << "out of memory" << endl; exit(1) + #endif + + #ifdef __STL_WIN32THREADS + # include + #endif +! + #include + #include + #include +--- 38,62 ---- + // The allocation primitives are intended to allocate individual objects, + // not larger arenas as with the original STL allocators. + +! #ifdef __STL_USE_EXCEPTIONS + # include + # define __THROW_BAD_ALLOC throw bad_alloc() + #elif !defined(__THROW_BAD_ALLOC) ++ #ifdef __vxworks ++ # define __THROW_BAD_ALLOC return (void *) 0 ++ #elif + # include + # define __THROW_BAD_ALLOC cerr << "out of memory" << endl; exit(1) + #endif ++ #endif + + #ifdef __STL_WIN32THREADS + # include + #endif +! #ifdef __STL_VXW_THREADS +! # include +! # include +! #endif + #include + #include + #include +*************** +*** 58,69 **** + # define __RESTRICT + #endif + + #if !defined(__STL_PTHREADS) && !defined(__STL_SOLTHREADS) \ + && !defined(_NOTHREADS) \ +! && !defined(__STL_SGI_THREADS) && !defined(__STL_WIN32THREADS) + # define _NOTHREADS + #endif + + # ifdef __STL_PTHREADS + // POSIX Threads + // This is dubious, since this is likely to be a high contention +--- 65,109 ---- + # define __RESTRICT + #endif + ++ /* Begin VxWorks specific */ + #if !defined(__STL_PTHREADS) && !defined(__STL_SOLTHREADS) \ + && !defined(_NOTHREADS) \ +! && !defined(__STL_SGI_THREADS) && !defined(__STL_WIN32THREADS) \ +! && !defined(__STL_VXW_THREADS) +! /* End VxWorks specific */ + # define _NOTHREADS + #endif + ++ /* Begin VxWorks specific */ ++ #ifdef __STL_VXW_THREADS ++ ++ /* In this scheme every __default_alloc_template class gets its mutex ++ * initialized when the static member _S_node_allocator_lock is constructed. ++ */ ++ ++ # define __NODE_ALLOCATOR_LOCK \ ++ if (threads) _S_node_allocator_lock.lock(); ++ # define __NODE_ALLOCATOR_UNLOCK \ ++ if (threads) _S_node_allocator_lock.unlock(); ++ # define __NODE_ALLOCATOR_THREADS true ++ # define __VOLATILE volatile // may not be needed ++ ++ #ifdef __STL_TEMPLATE_NESTED_CLASS_BUG ++ template ++ class vxw_lock ++ { ++ public: ++ static vxw_mutex_t& _S_node_allocator_lock; ++ vxw_lock () { __NODE_ALLOCATOR_LOCK; } ++ ~vxw_lock () { __NODE_ALLOCATOR_UNLOCK; } ++ }; ++ ++ ++ #endif /* __STL_TEMPLATE_NESTED_CLASS_BUG */ ++ ++ #endif /* __STL_VXW_THREADS */ ++ /* End VxWorks specific */ ++ + # ifdef __STL_PTHREADS + // POSIX Threads + // This is dubious, since this is likely to be a high contention +*************** private: +*** 358,363 **** +--- 398,409 ---- + static char* _S_end_free; + static size_t _S_heap_size; + ++ /* Begin VxWorks specific */ ++ # ifdef __STL_VXW_THREADS ++ static vxw_mutex_t _S_node_allocator_lock; ++ # endif ++ /* End VxWorks specific */ ++ + # ifdef __STL_SGI_THREADS + static volatile unsigned long _S_node_allocator_lock; + static void _S_lock(volatile unsigned long*); +*************** private: +*** 388,398 **** +--- 434,449 ---- + private: + # endif + ++ ++ #ifndef __STL_TEMPLATE_NESTED_CLASS_BUG + class _Lock { + public: + _Lock() { __NODE_ALLOCATOR_LOCK; } + ~_Lock() { __NODE_ALLOCATOR_UNLOCK; } + }; ++ #else ++ typedef vxw_lock _Lock; ++ #endif + friend class _Lock; + + public: +*************** __default_alloc_template: +*** 573,578 **** +--- 624,642 ---- + deallocate(__p, __old_sz); + return(__result); + } ++ ++ /* Begin VxWorks specific */ ++ #ifdef __STL_VXW_THREADS ++ template ++ vxw_mutex_t __default_alloc_template::_S_node_allocator_lock; ++ ++ #ifdef __STL_TEMPLATE_NESTED_CLASS_BUG ++ template ++ vxw_mutex_t& vxw_lock::_S_node_allocator_lock = __default_alloc_template::_S_node_allocator_lock; ++ #endif ++ ++ #endif ++ /* End VxWorks specific */ + + #ifdef __STL_PTHREADS + template +diff -c3rpN gcc-2.95.3.orig/libstdc++/stl/stl_config.h gcc-2.95.4/libstdc++/stl/stl_config.h +*** gcc-2.95.3.orig/libstdc++/stl/stl_config.h Tue May 18 00:03:48 1999 +--- gcc-2.95.4/libstdc++/stl/stl_config.h Wed Jun 6 01:39:43 2001 +*************** +*** 104,109 **** +--- 104,113 ---- + # define __STL_SOLTHREADS + #endif + ++ #ifdef __vxworks ++ # define __STL_VXW_THREADS ++ #endif ++ + # if defined(__sgi) && !defined(__GNUC__) + # if !defined(_BOOL) + # define __STL_NO_BOOL +diff -c3rpN gcc-2.95.3.orig/libstdc++/stl/stl_hashtable.h gcc-2.95.4/libstdc++/stl/stl_hashtable.h +*** gcc-2.95.3.orig/libstdc++/stl/stl_hashtable.h Wed Sep 2 18:24:53 1998 +--- gcc-2.95.4/libstdc++/stl/stl_hashtable.h Wed Jun 6 01:39:44 2001 +*************** void hashtable<_Val,_Key,_HF,_Ex,_Eq,_Al +*** 1014,1027 **** + __STL_TRY { + for (size_type __i = 0; __i < __ht._M_buckets.size(); ++__i) { + if (const _Node* __cur = __ht._M_buckets[__i]) { +! _Node* __copy = _M_new_node(__cur->_M_val); +! _M_buckets[__i] = __copy; + + for (_Node* __next = __cur->_M_next; + __next; + __cur = __next, __next = __cur->_M_next) { +! __copy->_M_next = _M_new_node(__next->_M_val); +! __copy = __copy->_M_next; + } + } + } +--- 1014,1027 ---- + __STL_TRY { + for (size_type __i = 0; __i < __ht._M_buckets.size(); ++__i) { + if (const _Node* __cur = __ht._M_buckets[__i]) { +! _Node* ___copy = _M_new_node(__cur->_M_val); +! _M_buckets[__i] = ___copy; + + for (_Node* __next = __cur->_M_next; + __next; + __cur = __next, __next = __cur->_M_next) { +! ___copy->_M_next = _M_new_node(__next->_M_val); +! ___copy = ___copy->_M_next; + } + } + } +diff -c3rpN gcc-2.95.3.orig/libstdc++/stl/stl_rope.h gcc-2.95.4/libstdc++/stl/stl_rope.h +*** gcc-2.95.3.orig/libstdc++/stl/stl_rope.h Mon Jan 1 17:48:22 2001 +--- gcc-2.95.4/libstdc++/stl/stl_rope.h Wed Jun 6 01:39:45 2001 +*************** +*** 32,37 **** +--- 32,42 ---- + # ifdef __STL_SGI_THREADS + # include + # endif ++ /* Begin VxWorks specific */ ++ # ifdef __STL_VXW_THREADS ++ # include ++ # endif ++ /* End VxWorks specific */ + + __STL_BEGIN_NAMESPACE + +*************** struct _Rope_RopeRep : public _Rope_rep_ +*** 466,471 **** +--- 471,493 ---- + pthread_mutex_unlock(&_M_refcount_lock); + return __result; + } ++ # elif defined(__STL_VXW_THREADS) ++ // Begin VxWorks specific code ++ void _M_init_refcount_lock() { } ++ void _M_incr_refcount () ++ { ++ taskLock (); ++ ++_M_refcount; ++ taskUnlock (); ++ } ++ size_t _M_decr_refcount () ++ { ++ size_t __result; ++ taskLock (); ++ __result = --_M_refcount; ++ taskUnlock (); ++ return __result; ++ } + # else + void _M_init_refcount_lock() {} + void _M_incr_refcount () +*************** class rope : public _Rope_base<_CharT,_A +*** 1314,1319 **** +--- 1336,1351 ---- + pthread_mutex_unlock(&_S_swap_lock); + return __result; + } ++ /* Begin VxWorks specific */ ++ # elif defined(__STL_VXW_THREADS) ++ static _Cstrptr _S_atomic_swap(_Cstrptr* __p, _Cstrptr __q) { ++ taskLock (); ++ _Cstrptr __result = *__p; ++ *__p = __q; ++ taskUnlock (); ++ return __result; ++ } ++ /* End VxWorks specific */ + # else + static _Cstrptr _S_atomic_swap(_Cstrptr* __p, _Cstrptr __q) { + _Cstrptr __result = *__p; +diff -c3rpN gcc-2.95.3.orig/libstdc++/stlinst.cc gcc-2.95.4/libstdc++/stlinst.cc +*** gcc-2.95.3.orig/libstdc++/stlinst.cc Fri May 7 11:13:49 1999 +--- gcc-2.95.4/libstdc++/stlinst.cc Wed Jun 6 01:39:47 2001 +*************** +*** 1,10 **** + // Instantiation file for the -*- C++ -*- Standard Library allocator templates + // This file is part of the GNU ANSI C++ Library. + + #include + + #ifndef __USE_MALLOC +! template class __default_alloc_template<__NODE_ALLOCATOR_THREADS, 0>; + #endif +- + template class __malloc_alloc_template<0>; +--- 1,23 ---- + // Instantiation file for the -*- C++ -*- Standard Library allocator templates + // This file is part of the GNU ANSI C++ Library. + ++ #if 0 + #include + + #ifndef __USE_MALLOC +! #ifdef VXW_EXPLICIT_TEMPLATES +! /* These classes cannot be instantiated implicitly on +! * some targets because static template data must +! * be defined in exactly one module. We +! * explicitly instantiate the most common usages. +! */ +! template class __default_alloc_template; +! template class __default_alloc_template; +! #ifdef __STL_TEMPLATE_NESTED_CLASS_BUG +! template class vxw_lock ; +! template class vxw_lock ; +! #endif + #endif + template class __malloc_alloc_template<0>; ++ #endif ++ #endif -- cgit v0.12