summaryrefslogtreecommitdiff
path: root/gnu/egcs
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>1999-08-23 20:32:32 +0000
committerMarc Espie <espie@cvs.openbsd.org>1999-08-23 20:32:32 +0000
commitef233545e6c3dcf885a8b3178a859a23604b359c (patch)
tree8f4f503c82a377012f9429ed7e24abfbd6aabb98 /gnu/egcs
parent20915043a05410a0247b150f77f71c94c43ce2ae (diff)
Update to gcc 2.95.1, official release.
Diffstat (limited to 'gnu/egcs')
-rw-r--r--gnu/egcs/ChangeLog16
-rw-r--r--gnu/egcs/FAQ1034
-rw-r--r--gnu/egcs/INSTALL/README15
-rw-r--r--gnu/egcs/config/ChangeLog12
-rw-r--r--gnu/egcs/config/mpw/ChangeLog12
-rw-r--r--gnu/egcs/configure2
-rw-r--r--gnu/egcs/contrib/ChangeLog12
-rw-r--r--gnu/egcs/etc/ChangeLog12
-rw-r--r--gnu/egcs/faq.html1039
-rw-r--r--gnu/egcs/gcc/BUGS6
-rw-r--r--gnu/egcs/gcc/README8
-rw-r--r--gnu/egcs/gcc/config/m68k/m68k.md4
-rw-r--r--gnu/egcs/gcc/config/m68k/mot3300-crt0.S2
-rw-r--r--gnu/egcs/gcc/config/m68k/mot3300Mcrt0.S2
-rw-r--r--gnu/egcs/gcc/config/m88k/dgux.h2
-rw-r--r--gnu/egcs/gcc/config/rs6000/rs6000.md479
-rw-r--r--gnu/egcs/gcc/config/sh/lib1funcs.asm6
-rw-r--r--gnu/egcs/gcc/config/sh/sh.c34
-rw-r--r--gnu/egcs/gcc/config/sh/sh.h1
-rw-r--r--gnu/egcs/gcc/config/sh/sh.md25
-rw-r--r--gnu/egcs/gcc/cp/ChangeLog86
-rw-r--r--gnu/egcs/gcc/cp/class.c53
-rw-r--r--gnu/egcs/gcc/cp/error.c5
-rw-r--r--gnu/egcs/gcc/cp/parse.y1
-rw-r--r--gnu/egcs/gcc/cp/typeck2.c4
-rw-r--r--gnu/egcs/gcc/dwarf2out.c8
-rw-r--r--gnu/egcs/gcc/dwarfout.c4
-rw-r--r--gnu/egcs/gcc/f/BUGS2
-rw-r--r--gnu/egcs/gcc/f/ChangeLog15
-rw-r--r--gnu/egcs/gcc/f/NEWS2
-rw-r--r--gnu/egcs/gcc/f/bugs.texi2
-rw-r--r--gnu/egcs/gcc/f/ffe.texi2
-rw-r--r--gnu/egcs/gcc/f/news.texi2
-rw-r--r--gnu/egcs/gcc/f/root.texi2
-rw-r--r--gnu/egcs/gcc/f/version.c2
-rw-r--r--gnu/egcs/gcc/fix-header.c4
-rw-r--r--gnu/egcs/gcc/fixinc/README2
-rw-r--r--gnu/egcs/gcc/fixinc/fixincl.sh12
-rw-r--r--gnu/egcs/gcc/fixinc/fixincl.x1
-rw-r--r--gnu/egcs/gcc/fixinc/inclhack.def1
-rw-r--r--gnu/egcs/gcc/fixinc/inclhack.sh13
-rw-r--r--gnu/egcs/gcc/fixinc/inclhack.tpl12
-rw-r--r--gnu/egcs/gcc/fixincludes1
-rw-r--r--gnu/egcs/gcc/flow.c12
-rw-r--r--gnu/egcs/gcc/ginclude/va-ppc.h160
-rw-r--r--gnu/egcs/gcc/intl/ChangeLog12
-rw-r--r--gnu/egcs/gcc/java/ChangeLog16
-rw-r--r--gnu/egcs/gcc/java/jvgenmain.c1
-rw-r--r--gnu/egcs/gcc/just-fixinc2
-rw-r--r--gnu/egcs/gcc/mkinstalldirs2
-rw-r--r--gnu/egcs/gcc/po/ChangeLog12
-rw-r--r--gnu/egcs/gcc/po/gcc.pot8407
-rw-r--r--gnu/egcs/gcc/real.c52
-rw-r--r--gnu/egcs/gcc/reg-stack.c53
-rw-r--r--gnu/egcs/gcc/system.h2
-rw-r--r--gnu/egcs/gcc/tree.c7
-rw-r--r--gnu/egcs/install/BUILD82
-rw-r--r--gnu/egcs/install/CONFIGURE137
-rw-r--r--gnu/egcs/install/DOWNLOAD39
-rw-r--r--gnu/egcs/install/FINALINSTALL29
-rw-r--r--gnu/egcs/install/INDEX51
-rw-r--r--gnu/egcs/install/SPECIFIC497
-rw-r--r--gnu/egcs/install/TEST13
-rw-r--r--gnu/egcs/install/build.html99
-rw-r--r--gnu/egcs/install/configure.html181
-rw-r--r--gnu/egcs/install/dec-osf-shlibstdc++.patch27
-rw-r--r--gnu/egcs/install/download.html38
-rw-r--r--gnu/egcs/install/finalinstall.html37
-rw-r--r--gnu/egcs/install/index.html50
-rw-r--r--gnu/egcs/install/sco_osr5_g77.patch27
-rw-r--r--gnu/egcs/install/specific.html482
-rw-r--r--gnu/egcs/install/test.html21
-rw-r--r--gnu/egcs/libio/ChangeLog26
-rw-r--r--gnu/egcs/libio/dbz/dbzmain.c2
-rw-r--r--gnu/egcs/libio/dbz/fake.c2
-rw-r--r--gnu/egcs/libio/iostream.cc65
-rw-r--r--gnu/egcs/libio/iostream.h1
-rw-r--r--gnu/egcs/libio/isgetline.cc12
-rw-r--r--gnu/egcs/libio/isgetsb.cc4
-rw-r--r--gnu/egcs/libio/isscan.cc10
-rw-r--r--gnu/egcs/libio/stdio/ChangeLog12
-rw-r--r--gnu/egcs/libio/tests/ChangeLog12
-rw-r--r--gnu/egcs/libio/testsuite/ChangeLog12
-rw-r--r--gnu/egcs/libstdc++/ChangeLog24
-rw-r--r--gnu/egcs/libstdc++/Makefile.in4
-rw-r--r--gnu/egcs/libstdc++/stdexcepti.cc4
-rw-r--r--gnu/egcs/libstdc++/stl/ChangeLog17
-rw-r--r--gnu/egcs/libstdc++/stl/pthread_alloc18
-rw-r--r--gnu/egcs/libstdc++/tests/ChangeLog12
-rw-r--r--gnu/egcs/libstdc++/testsuite/ChangeLog12
90 files changed, 13376 insertions, 380 deletions
diff --git a/gnu/egcs/ChangeLog b/gnu/egcs/ChangeLog
index 39e0be0c64d..9018b7143ef 100644
--- a/gnu/egcs/ChangeLog
+++ b/gnu/egcs/ChangeLog
@@ -1,3 +1,19 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Aug 4 02:07:14 1999 Jeffrey A Law (law@cygnus.com)
+
+ * config.sub (vxworks case): Use os=-vxworks, not os=vxworks.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Tue Jun 22 23:39:29 1999 Tom Tromey <tromey@cygnus.com>
* configure.in (target_libs): Added target-zlib.
diff --git a/gnu/egcs/FAQ b/gnu/egcs/FAQ
new file mode 100644
index 00000000000..1c43cac7624
--- /dev/null
+++ b/gnu/egcs/FAQ
@@ -0,0 +1,1034 @@
+
+ GCC Frequently Asked Questions
+
+ The latest version of this document is always available at
+ [1]http://www.gnu.org/software/gcc/faq.html.
+
+ This FAQ tries to answer specific questions concerning GCC. For
+ general information regarding C resp. C++, please check the
+ [2]comp.lang.c FAQ, [3]comp.lang.c++ FAQ, and the [4]comp.std.c++ FAQ.
+ _________________________________________________________________
+
+ Questions
+
+ 1. [5]General information
+ 1. [6]What is the relationship between GCC and EGCS
+ 2. [7]What is the relationship between GCC and Cygnus
+ 3. [8]What is an open development model?
+ 4. [9]How to report bugs
+ 5. [10]How do I get a bug fixed or a feature added?
+ 2. [11]Installation
+ 1. [12]Problems building the Fortran compiler
+ 2. [13]How to install multiple versions of GCC
+ 3. [14]Dynamic linker is unable to find GCC libraries
+ 4. [15]libstdc++/libio tests fail badly with --enable-shared
+ 5. [16]GCC can not find GNU as/GNU ld
+ 6. [17]cpp: Usage:... Error
+ 3. [18]Testsuite problems
+ 1. [19]Why is there no testsuite in GCC 2.95
+ 2. [20]Unable to run the testsuite
+ 3. [21]How do I pass flags like -fnew-abi to the testsuite?
+ 4. [22]How can I run the test suite with multiple options?
+ 4. [23]Platform-specific issues
+ 1. [24]Problems with exception handling on x86 platforms
+ 2. [25]Problems with Invalid `asm' statements
+ 3. [26]Building Linux kernels
+ 4. [27]How do I compile X11 headers with g++
+ 5. [28]Signal 11 on GNU/Linux
+ 6. [29]How to build a cross compiler
+ 5. [30]Bugs and Non-Bugs
+ 1. [31]FD_ZERO macro
+ 2. [32]Octave 2.0.13 does not compile
+ 6. [33]Miscellaneous
+ 1. [34]Virtual memory exhausted
+ 2. [35]Snapshots, how, when, why
+ 3. [36]Friend Templates
+ 4. [37]Where to find libg++
+ 5. [38]Why do I need autoconf, bison, xgettext, automake, etc
+ 6. [39]Problems debugging GCC code
+ 7. [40]Conflicts when using cvs update
+ 8. [41]Using GCC with GNAT/Ada
+ 9. [42]Using GCC with GNU Pascal
+ 10. [43]Using CVS to download snapshots
+ 11. [44]Why can't I build a shared library?
+ 12. [45]Dealing with spam on the lists
+ 13. [46]How to work around too long C++ symbol names?
+ (-fsquangle)
+ 14. [47]When building from CVS sources, I see 'gperf: invalid
+ option -- F', even with the most current version of gperf.
+ 15. [48]When building C++, the linker says my constructors,
+ destructors or virtual tables are undefined, but I defined
+ them
+ 16. [49]What is libstdc++-v3 and how can I use it with g++?
+ _________________________________________________________________
+
+ General information
+
+What is the relationship between GCC and EGCS
+
+ In 1990/1991 gcc version 1 had reached a point of stability. For the
+ targets it could support, it worked well. It had limitations inherent
+ in its design that would be difficult to resolve, so a major effort
+ was made to resolve those limitiations and gcc version 2 was the
+ result.
+
+ When we had gcc2 in a useful state, development efforts on gcc1
+ stopped and we all concentrated on making gcc2 better than gcc1 could
+ ever be. This is the kind of step forward we wanted to make with the
+ EGCS project when it was formed in 1997.
+
+ In April 1999 the Free Software Foundation officially halted
+ development on the gcc2 compiler and appointed the EGCS project as the
+ official GCC maintainers.
+
+ We are in the process of merging GCC and EGCS, which will take some
+ time. The net result will be a single project which will carry forward
+ GCC development under the ultimate control of the [50]GCC Steering
+ Committee.
+ _________________________________________________________________
+
+What is the relationship between GCC and Cygnus
+
+ It is a common mis-conception that Cygnus controls either directly or
+ indirectly GCC.
+
+ While Cygnus does donate hardware, network connections, code and
+ developer time to GCC development, Cygnus does not control GCC.
+
+ Overall control of GCC is in the hands of the [51]GCC Steering
+ Committee which includes people from a variety of different
+ organizations and backgrounds. The purpose of the steering committee
+ is to make decisions in the best interest of GCC and to help ensure
+ that no individual or company has control over the project.
+
+ To summarize, Cygnus contributes to GCCproject, but does not exert a
+ controlling influence over GCC.
+ _________________________________________________________________
+
+What is an open development model?
+
+ With GCC, we are going to try a bazaar style[52][1] approach to its
+ development: We make snapshots publicly available to anyone who wants
+ to try them; we're going to welcome anyone to join the development
+ mailing list. All of the discussions on the development mailing list
+ are available via the web. We're going to be making releases with a
+ much higher frequency than they have been made in the past.
+
+ In addition to weekly snapshots of the GCC development sources, we
+ have the sources readable from a CVS server by anyone. Furthermore we
+ are using remote CVS to allow remote maintainers write access to the
+ sources.
+
+ There have been many potential gcc developers who were not able to
+ participate in gcc development in the past. We want these people to
+ help in any way they can; we ultimately want GCC to be the best
+ compiler in the world.
+
+ A compiler is a complicated piece of software, there will still be
+ strong central maintainers who will reject patches, who will demand
+ documentation of implementations, and who will keep the level of
+ quality as high as it is today. Code that could use wider testing may
+ be integrated--code that is simply ill-conceived won't be.
+
+ GCC is not the first piece of software to use this open development
+ process; FreeBSD, the Emacs lisp repository, and the Linux kernel are
+ a few examples of the bazaar style of development.
+
+ With GCC, we will be adding new features and optimizations at a rate
+ that has not been done since the creation of gcc2; these additions
+ will inevitably have a temporarily destabilizing effect. With the help
+ of developers working together with this bazaar style development, the
+ resulting stability and quality levels will be better than we've had
+ before.
+
+ _[1]_ We've been discussing different development models a lot over
+ the past few months. The paper which started all of this introduced
+ two terms: A _cathedral_ development model versus a _bazaar_
+ development model. The paper is written by Eric S. Raymond, it is
+ called ``[53]The Cathedral and the Bazaar''. The paper is a useful
+ starting point for discussions.
+ _________________________________________________________________
+
+How to report bugs
+
+ There are complete instructions in the [54]gcc info manual, section
+ Bugs. The manual can also be read using `_M-x info_' in Emacs, or if
+ the GNU info program is installed on your system by `info --node
+ "(gcc)Bugs"'. Or see the file [55]BUGS included with the GCC source
+ code.
+
+ Before you report a bug for the _C++ compiler_, please check the
+ [56]list of well-known bugs. If you want to report a bug with _egcs
+ 1.0.x_, we recommend upgrading to the current release first.
+
+ In short, if gcc says Internal compiler error (or any other error that
+ you'd like us to be able to reproduce, for that matter), please mail a
+ bug report to [57]gcc-bugs@gcc.gnu.org or [58]bug-gcc@gnu.org
+ including:
+ * The GCC version
+ * The system type
+ * All options you passed to the compiler
+ * Preprocessed output of the source file that caused the compiler
+ error
+
+ All this can normally be accomplished by mailing the command line, the
+ output of the command, and the resulting `_your-file_.i' for C, or
+ `_your-file_.ii' for C++, corresponding to:
+
+ gcc -v --save-temps _all-your-options_ _your-file_.c
+
+ Typically the CPP output (extension .i for C or .ii for C++) will be
+ large, so please compress the resulting file with one of the popular
+ compression programs such as bzip2, gzip, zip, pkzip or compress (in
+ decreasing order of preference). Use maximum compression (-9) if
+ available. Please include the compressed CPP output in your bug
+ report.
+
+ Since we're supposed to be able to re-create the assembly output
+ (extension .s), you usually don't have to include it in the bug
+ report, although you may want to post parts of it to point out
+ assembly code you consider to be wrong.
+
+ Whether to use MIME attachments or uuencode is up to you. In any case,
+ make sure the compiler command line, version and error output are in
+ plain text, so that we don't have to decode the bug report in order to
+ tell who should take care of it. A meaningful subject indicating
+ language and platform also helps.
+
+ The gcc lists have message size limits (100 kbytes) and bug reports
+ over those limits will currently be bounced. We're trying to find a
+ way to allow larger bug reports to be posted, but this is currently
+ impossible (unless you use MIME partials, which most people are unable
+ to handle anyway, so you'd better avoid them for now). So, although we
+ prefer to have complete bug reports archived, if you cannot reduce the
+ bug report below the limit, please make it available for ftp or http
+ and post the URL. Another alternative is to break the preprocessed
+ output in multiple files (using split, for example) and post them in
+ separate messages, but we prefer to have self-contained bug reports in
+ single messages.
+
+ If you fail to supply enough information for a bug report to be
+ reproduced, someone will probably ask you to post additional
+ information (or just ignore your bug report, if they're in a bad day,
+ so try to get it right on the first posting :-). In this case, please
+ post the additional information to the bug reporting mailing list, not
+ just to the person who requested it, unless explicitly told so. If
+ possible, please include in this follow-up all the information you had
+ supplied in the incomplete bug report (including the preprocessor
+ output), so that the new bug report is self-contained.
+ _________________________________________________________________
+
+How do I get a bug fixed or a feature added?
+
+ There are lots of ways to get something fixed. The list below may be
+ incomplete, but it covers many of the common cases. These are listed
+ roughly in order of increasing difficulty for the average GCC user,
+ meaning someone who is not skilled in the internals of GCC, and where
+ difficulty is measured in terms of the time required to fix the bug.
+ No alternative is better than any other; each has it's benefits and
+ disadvantages.
+ * Hire someone to fix it for you. There are various companies and
+ individuals providing support for GCC. This alternative costs
+ money, but is relatively likely to get results.
+ * Report the problem to gcc-bugs and hope that someone will be kind
+ enough to fix it for you. While this is certainly possible, and
+ often happens, there is no guarantee that it will. You should not
+ expect the same response from gcc-bugs that you would see from a
+ commercial support organization since the people who read
+ gcc-bugs, if they choose to help you, will be volunteering their
+ time. This alternative will work best if you follow the directions
+ on [59]submitting bugreports.
+ * Fix it yourself. This alternative will probably bring results, if
+ you work hard enough, but will probably take a lot of time, and,
+ depending on the quality of your work and the perceived benefits
+ of your changes, your code may or may not ever make it into an
+ official release of GCC.
+ _________________________________________________________________
+
+ Installation
+
+Problems building the Fortran compiler
+
+ The Fortran front end can not be built with most vendor compilers; it
+ must be built with gcc. As a result, you may get an error if you do
+ not follow the install instructions carefully.
+
+ In particular, instead of using "make" to build GCC, you should use
+ "make bootstrap" if you are building a native compiler or "make cross"
+ if you are building a cross compiler.
+
+ It has also been reported that the Fortran compiler can not be built
+ on Red Hat 4.X GNU/Linux for the Alpha. Fixing this may require
+ upgrading binutils or to Red Hat 5.0; we'll provide more information
+ as it becomes available.
+ _________________________________________________________________
+
+How to install multiple versions of gcc
+
+ It may be desirable to install multiple versions of the compiler on
+ the same system. This can be done by using different prefix paths at
+ configure time and a few symlinks.
+
+ Basically, configure the two compilers with different --prefix
+ options, then build and install each compiler. Assume you want "gcc"
+ to be the latest compiler and available in /usr/local/bin; also assume
+ that you want "gcc2" to be the older gcc2 compiler and also available
+ in /usr/local/bin.
+
+ The easiest way to do this is to configure the new GCC with
+ --prefix=/usr/local/gcc and the older gcc2 with
+ --prefix=/usr/local/gcc2. Build and install both compilers. Then make
+ a symlink from /usr/local/bin/gcc to /usr/local/gcc/bin/gcc and from
+ /usr/local/bin/gcc2 to /usr/local/gcc2/bin/gcc. Create similar links
+ for the "g++", "c++" and "g77" compiler drivers.
+
+ An alternative to using symlinks is to configure with a
+ --program-transform-name option. This option specifies a sed command
+ to process installed program names with. Using it you can, for
+ instance, have all the new GCC programs installed as "new-gcc" and the
+ like. You will still have to specify different --prefix options for
+ new GCC and old GCC, because it is only the executable program names
+ that are transformed. The difference is that you (as administrator) do
+ not have to set up symlinks, but must specify additional directories
+ in your (as a user) PATH. A complication with --program-transform-name
+ is that the sed command invariably contains characters significant to
+ the shell, and these have to be escaped correctly, also it is not
+ possible to use "^" or "$" in the command. Here is the option to
+ prefix "new-" to the new GCC installed programs
+ "--program-transform-name='s,\\\\(.*\\\\),new-\\\\1,'". With the above
+ --prefix option, that will install the new GCC programs into
+ /usr/local/gcc/bin with names prefixed by "new-". You can use
+ --program-transform-name if you have multiple versions of GCC, and
+ wish to be sure about which version you are invoking.
+
+ If you use --prefix, GCC may have difficulty locating a GNU assembler
+ or linker on your system, [60]GCC can not find GNU as/GNU ld explains
+ how to deal with this.
+ _________________________________________________________________
+
+Dynamic linker is unable to find GCC libraries
+
+ This problem manifests itself by programs not finding shared libraries
+ they depend on when the programs are started. Note this problem often
+ manifests itself with failures in the libio/libstdc++ tests after
+ configuring with --enable-shared and building GCC.
+
+ GCC does not specify a runpath so that the dynamic linker can find
+ dynamic libraries at runtime.
+
+ The short explanation is that if you always pass a -R option to the
+ linker, then your programs become dependent on directories which may
+ be NFS mounted, and programs may hang unnecessarily when an NFS server
+ goes down.
+
+ The problem is not programs that do require the directories; those
+ programs are going to hang no matter what you do. The problem is
+ programs that do not require the directories.
+
+ SunOS effectively always passed a -R option for every -L option; this
+ was a bad idea, and so it was removed for Solaris. We should not
+ recreate it.
+
+ However, if you feel you really need such an option to be passed
+ automatically to the linker, you may add it to the gcc specs file.
+ This file can be found in the same directory that contains cc1 (run
+ gcc -print-prog-name=cc1 to find it). You may add linker flags such as
+ -R or -rpath, depending on platform and linker, to the *link or *lib
+ specs.
+
+ Another alterative is to install a wrapper script around gcc, g++ or
+ ld that adds the appropriate directory to the environment variable
+ LD_RUN_PATH or equivalent (again, it's platform-dependent).
+
+ Yet another option, that works on a few platforms, is to hard-code the
+ full pathname of the library into its soname. This can only be
+ accomplished by modifying the appropriate .ml file within
+ libstdc++/config (and also libg++/config, if you are building libg++),
+ so that $(libdir)/ appears just before the library name in -soname or
+ -h options.
+ _________________________________________________________________
+
+GCC can not find GNU as/GNU ld
+
+ GCC searches the PATH for an assembler and a loader, but it only does
+ so after searching a directory list hard-coded in the gcc executables.
+ Since, on most platforms, the hard-coded list includes directories in
+ which the system asembler and loader can be found, you may have to
+ take one of the following actions to arrange that gcc uses the GNU
+ versions of those programs.
+
+ To ensure that GCC finds the GNU assembler (the GNU loader), which are
+ required by [61]some configurations, you should configure these with
+ the same --prefix option as you used for GCC. Then build & install GNU
+ as (GNU ld) and proceed with building GCC.
+
+ Another alternative is to create links to GNU as and ld in any of the
+ directories printed by the command `gcc -print-search-dirs | grep
+ '^programs:''. The link to `ld' should be named `real-ld' if `ld'
+ already exists. If such links do not exist while you're compiling GCC,
+ you may have to create them in the build directories too, within the
+ gcc directory _and_ in all the gcc/stage* subdirectories.
+
+ GCC 2.95 allows you to specify the full pathname of the assembler and
+ the linker to use. The configure flags are `--with-as=/path/to/as' and
+ `--with-ld=/path/to/ld'. GCC will try to use these pathnames before
+ looking for `as' or `(real-)ld' in the standard search dirs. If, at
+ configure-time, the specified programs are found to be GNU utilities,
+ `--with-gnu-as' and `--with-gnu-ld' need not be used; these flags will
+ be auto-detected. One drawback of this option is that it won't allow
+ you to override the search path for assembler and linker with
+ command-line options -B/path/ if the specified filenames exist.
+ _________________________________________________________________
+
+cpp: Usage:... Error
+
+ If you get an error like this when building GCC (particularly when
+ building __mulsi3), then you likely have a problem with your
+ environment variables.
+ cpp: Usage: /usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/2.7.2.3/cpp
+ [switches] input output
+
+ First look for an explicit '.' in either LIBRARY_PATH or
+ GCC_EXEC_PREFIX from your environment. If you do not find an explicit
+ '.', look for an empty pathname in those variables. Note that ':' at
+ either the start or end of these variables is an implicit '.' and will
+ cause problems.
+
+ Also note '::' in these paths will also cause similar problems.
+ _________________________________________________________________
+
+ Testsuite problems
+
+Why is there no testsuite in GCC 2.95
+
+ The GCC testsuite is not included in the GCC 2.95 release due to the
+ uncertain copyright status of some tests.
+
+ The GCC team will be reviewing the entire testsuite to find and remove
+ any tests with uncertain copyright status. Once those tests are
+ removed from the testsuite, the testsuite as a whole will be
+ copyrighted under the terms of the GPL and included in future GCC
+ releases.
+
+ It is believed that only a few tests have uncertain copyright status
+ and thus only a few tests will need to be removed from the testsuite.
+ _________________________________________________________________
+
+Unable to run the testsuite
+
+ If you get a message about unable to find "standard.exp" when trying
+ to run the GCC testsuites, then your dejagnu is too old to run the GCC
+ tests. You will need to get a newer version of dejagnu; we've made a
+ [62]dejagnu snapshot available until a new version of dejagnu can be
+ released.
+ _________________________________________________________________
+
+How do I pass flags like -fnew-abi to the testsuite?
+
+ If you invoke runtest directly, you can use the --tool_opts option,
+ e.g:
+ runtest --tool_opts "-fnew-abi -fno-honor-std" <other options>
+
+ Or, if you use make check you can use the make variable RUNTESTFLAGS,
+ e.g:
+ make RUNTESTFLAGS='--tool_opts "-fnew-abi -fno-honor-std"' check-g++
+ _________________________________________________________________
+
+How can I run the test suite with multiple options?
+
+ If you invoke runtest directly, you can use the --target_board option,
+ e.g:
+ runtest --target_board "unix{-fPIC,-fpic,}" <other options>
+
+ Or, if you use make check you can use the make variable RUNTESTFLAGS,
+ e.g:
+ make RUNTESTFLAGS='--target_board "unix{-fPIC,-fpic,}"' check-gcc
+
+ Either of these examples will run the tests three times. Once with
+ -fPIC, once with -fpic, and once with no additional flags.
+
+ This technique is particularly useful on multilibbed targets.
+ _________________________________________________________________
+
+ Platform-specific issues
+
+ Please read the [63]host/target specific installation notes, too.
+
+Problems with exception handling on x86 platforms
+
+ If you are using the GNU assembler (aka gas) on an x86 platform and
+ exception handling is not working correctly, then odds are you're
+ using a buggy assembler. Releases of binutils prior to 2.9 are known
+ to assemble exception handling code incorrectly.
+
+ We recommend binutils-2.9.1 or newer. Some post-2.9.1 snapshots of
+ binutils fix some subtle bugs, particularly on x86 and alpha. They are
+ available at [64]ftp://tsx-11.mit.edu/pub/linux/packages/GCC/. The
+ 2.9.1.0.15 snapshot is known to work fine on those platforms; other
+ than that, be aware that snapshots are in general untested and may not
+ work (or even build). Use them at your own risk.
+ _________________________________________________________________
+
+Problems with invalid `asm' statements
+
+ Previous releases of GCC (for example, GCC 2.7.2 or EGCS 1.1.2) did
+ not detect as invalid a clobber specifier that clobbered an operand.
+ Instead, it could spuriously and silently generate incorrect code for
+ certain non-obvious cases of source code. Even more unfortunately, the
+ manual (Using and Porting GCC, section Extended Asm, see the [65]bug
+ report entry) did not explicitly say that it was invalid to specify
+ clobber registers that were destined to overlap operands; it could
+ arguably be interpreted that it was correct to clobber an input
+ operand to mark it as not holding a usable value after the asm.
+
+ For the general case, there is no way to tell whether a specified
+ clobber is _intended_ to overlap with a specific (input) operand or is
+ a program error, where the choice of actual register for operands
+ failed to _avoid_ the clobbered register. Such unavoidable overlap is
+ detected by versions GCC 2.95 and newer, and flagged as an error
+ rather than accepted. An error message is given, such as:
+ foo.c: In function `foo':
+ foo.c:7: Invalid `asm' statement:
+ foo.c:7: fixed or forbidden register 0 (ax) was spilled for class AREG.
+
+ Unfortunately, a lot of existing software, for example the [66]Linux
+ kernel version 2.0.35 for the Intel x86, has constructs where input
+ operands are marked as clobbered.
+
+ The manual now describes how to write constructs with operands that
+ are modified by the construct, but not actually used. To write an asm
+ which modifies an input operand but does not output anything usable,
+ specify that operand as an _output operand_ outputting to an _unused
+ dummy variable_.
+
+ In the following example for the x86 architecture (taken from the
+ Linux 2.0.35 kernel -- include/asm-i386/delay.h), the register-class
+ constraint "a" denotes a register class containing the single register
+ "ax" (aka. "eax"). It is therefore invalid to clobber "ax"; this
+ operand has to be specified as an output as well as an input. The
+ following code is therefore _invalid_:
+extern __inline__ void
+__delay (int loops)
+{
+ __asm__ __volatile__
+ (".align 2,0x90\n1:\tdecl %0\n\tjns 1b"
+ : /* no outputs */
+ : "a" (loops)
+ : "ax");
+}
+
+ It could be argued that since the register class for "a" contains only
+ a single register, this could be detected as an "obvious" intended
+ clobber of the input operand. While that is feasible, it opens up for
+ further "obvious" cases, where the level of obviousness changes from
+ person to person. As there is a correct way to write such asm
+ constructs, this obviousness-detection is not needed other than for
+ reasons of compatibility with an existing code-base, and that code
+ base can be corrected.
+
+ This corrected and clobber-less version, is _valid_ for GCC 2.95 as
+ well as for previous versions of GCC and EGCS:
+extern __inline__ void
+__delay (int loops)
+{
+ int dummy;
+
+ __asm__ __volatile__
+ (".align 2,0x90\n1:\tdecl %0\n\tjns 1b"
+ : "=a" (dummy)
+ : "0" (loops));
+}
+
+ Note that the asm construct now has an output operand, but it is
+ unused. Normally asm constructs with only unused output operands may
+ be removed by gcc, unless marked volatile as above.
+ _________________________________________________________________
+
+Building Linux kernels
+
+ The linux kernel violates certain aliasing rules specified in the
+ ANSI/ISO standard. Starting with GCC 2.95, the gcc optimizer by
+ default relies on these rules to produce more efficient code and thus
+ will produce malfunctioning kernels. To work around this problem, the
+ flag -fno-strict-aliasing must be added to the CFLAGS variable in the
+ main kernel Makefile.
+
+ If you try to build a 2.0.x kernel for Intel machines with any
+ compiler other than GCC 2.7.2, then you are on your own. The 2.0.x
+ kernels are to be built only with gcc 2.7.2. They use certain asm
+ constructs which are incorrect, but (by accident) happen to work with
+ gcc 2.7.2. If you insist on building 2.0.x kernels with egcs, you may
+ be interested in this [67]patch which fixes some of the asm problems.
+ You will also want to change asm constructs to [68]avoid clobbering
+ their input operands.
+
+ If you installed a recent binutils/gas snapshot on your GNU/Linux
+ system, you may not be able to build the kernel because objdump does
+ not understand the "-k" switch. The solution for this problem is to
+ remove /usr/bin/encaps. (This is an obsolete program that was part of
+ older binutils distributions; the Linux kernel's Makefile looks for
+ this program to decide if you have an old or a new binutils. Problems
+ occur if you installed a new binutils but haven't removed encaps,
+ because the Makefile thinks you have the old one.)
+
+ Finally, you may get errors with the X driver of the form
+ _X11TransSocketUNIXConnect: Can't connect: errno = 111
+
+ This is a kernel bug. The function sys_iopl in
+ arch/i386/kernel/ioport.c does an illegal hack which used to work but
+ is now broken since GCC optimizes more aggressively . The newer 2.1.x
+ kernels already have a fix which should also work in 2.0.32.
+ _________________________________________________________________
+
+How do I compile X11 headers with g++
+
+ When compiling X11 headers with a GCC 2.95 or newer, g++ will complain
+ that types are missing. These headers assume that omitting the type
+ means 'int'; this assumption is wrong for C++.
+
+ g++ accepts such (illegal) constructs with the option -fpermissive; it
+ will assume that missing type is 'int' (as defined by the C89
+ standard).
+
+ Since the upcoming C99 standard also obsoletes the implicit type
+ assumptions, the X11 headers have to get fixed eventually.
+ _________________________________________________________________
+
+How to build a cross compiler
+
+ Building cross compilers is a rather complex undertaking because they
+ usually need additional software (cross assembler, cross linker,
+ target libraries, target include files, etc).
+
+ We recommend reading the [69]crossgcc FAQ for information about
+ building cross compilers.
+
+ If you have all the pieces available, then `make cross' should build a
+ cross compiler. `make LANGUAGES="c c++" install' will install the
+ cross compiler.
+
+ Note that if you're trying to build a cross compiler in a tree which
+ includes binutils-2.8 in addition to GCC, then you're going to need to
+ make a couple minor tweaks so that the cross assembler, linker and nm
+ utilities will be found.
+
+ binutils-2.8 builds those files as gas.new, ld.new and nm.new; GCC
+ looks for them using gas-new, ld-new and nm-new, so you may have to
+ arrange for any symlinks which point to <file>.new to be changed to
+ <file>-new.
+ _________________________________________________________________
+
+ Bugs and Non-Bugs
+
+ Unfortunately, improvements in tools that are widely used are sooner
+ or later bound to break _something_. Sometimes, the code that breaks
+ was wrong, and then that code should be fixed, even if it works for
+ earlier versions of gcc or other compilers. The following problems
+ with some releases of widely used packages have been identified:
+
+ There is a separate [70]list of well-known bugs describing known
+ deficiencies. Naturally we'd like that list to be of zero length.
+
+ To report a bug, see [71]How to report bugs.
+ _________________________________________________________________
+
+FD_ZERO macro
+
+ The FD_ZERO macro in (e.g.) libc-5.4.46 is incorrect. It uses
+ [72]invalid asm clobbers. The following rewrite by Ulrich Drepper
+ <drepper@cygnus.com> should fix this for glibc 2.0:
+ # define __FD_ZERO(fdsetp) \
+ do { \
+ int __d0, __d1; \
+ __asm__ __volatile__ ("cld; rep; stosl" \
+ : "=m" (((__fd_mask *) \
+ (fdsetp))[__FDELT (__FD_SETSIZE)]), \
+ "=&c" (__d0), "=&D" (__d1) \
+ : "a" (0), "1" (sizeof (__fd_set) \
+ / sizeof (__fd_mask)), \
+ "2" ((__fd_mask *) (fdsetp)) \
+ : "memory"); \
+ } while (0)
+ _________________________________________________________________
+
+Octave 2.0.13 does not compile
+
+ Apparently Octave 2.0.13 uses some C++ features which have been
+ obsoleted and thus fails to build with EGCS 1.1 and later. This
+ [73]patch to Octave should fix this.
+
+ Octave 2.0.13.96, a test release, has been compiled without patches by
+ egcs 1.1.2. It is available at
+ [74]ftp://ftp.che.wisc.edu/pub/octave/test-releases/.
+ _________________________________________________________________
+
+ Miscellaneous
+
+Virtual memory exhausted error
+
+ This error means your system ran out of memory; this can happen for
+ large files, particularly when optimizing. If you're getting this
+ error you should consider trying to simplify your files or reducing
+ the optimization level.
+
+ Note that using -pedantic or -Wreturn-type can cause an explosion in
+ the amount of memory needed for template-heavy C++ code, such as code
+ that uses STL. Also note that -Wall includes -Wreturn-type, so if you
+ use -Wall you will need to specify -Wno-return-type to turn it off.
+ _________________________________________________________________
+
+Snapshots, how, when, why
+
+ We make snapshots of the GCC sources about once a week; there is no
+ predetermined schedule. These snapshots are intended to give everyone
+ access to work in progress. Any given snapshot may generate incorrect
+ code or even fail to build.
+
+ If you plan on downloading and using snapshots, we highly recommend
+ you subscribe to the GCC mailing lists. See [75]mailing lists on the
+ main GCC page for instructions on how to subscribe.
+
+ When using the diff files to update from older snapshots to newer
+ snapshots, make sure to use "-E" and "-p" arguments to patch so that
+ empty files are deleted and full pathnames are provided to patch. If
+ your version of patch does not support "-E", you'll need to get a
+ newer version. Also note that you may need autoconf, autoheader and
+ various other programs if you use diff files to update from one
+ snapshot to the next.
+ _________________________________________________________________
+
+Friend Templates
+
+ In order to make a specialization of a template function a friend of a
+ (possibly template) class, you must explicitly state that the friend
+ function is a template, by appending angle brackets to its name, and
+ this template function must have been declared already. Here's an
+ example:
+template <typename T> class foo {
+ friend void bar(foo<T>);
+}
+
+ The above declaration declares a non-template function named bar, so
+ it must be explicitly defined for _each_ specialization of foo. A
+ template definition of bar won't do, because it is unrelated with the
+ non-template declaration above. So you'd have to end up writing:
+void bar(foo<int>) { /* ... */ }
+void bar(foo<void>) { /* ... */ }
+
+ If you meant bar to be a template function, you should have
+ forward-declared it as follows. Note that, since the template function
+ declaration refers to the template class, the template class must be
+ forward-declared too:
+template <typename T>
+class foo;
+
+template <typename T>
+void bar(foo<T>);
+
+template <typename T>
+class foo {
+ friend void bar<>(foo<T>);
+};
+
+template <typename T>
+void bar(foo<T>) { /* ... */ }
+
+ In this case, the template argument list could be left empty, because
+ it can be implicitly deduced from the function arguments, but the
+ angle brackets must be present, otherwise the declaration will be
+ taken as a non-template function. Furthermore, in some cases, you may
+ have to explicitly specify the template arguments, to remove
+ ambiguity.
+
+ An error in the last public comment draft of the ANSI/ISO C++ Standard
+ and the fact that previous releases of gcc would accept such friend
+ declarations as template declarations has led people to believe that
+ the forward declaration was not necessary, but, according to the final
+ version of the Standard, it is.
+ _________________________________________________________________
+
+Where to find libg++
+
+ Many folks have been asking where to find libg++ for GCC. First we
+ should point out that few programs actually need libg++; most only
+ need libstdc++/libio which are included in the GCC distribution.
+
+ If you do need libg++ you can get a libg++ release that works with GCC
+ from [76]ftp://egcs.cygnus.com/pub/egcs/infrastructure/. Note that the
+ 2.8.2 snapshot pre-dates the 2.8.1.2 release.
+ _________________________________________________________________
+
+autoconf, bison, xgettext, automake, etc
+
+ If you're using diffs up dated from one snapshot to the next, or if
+ you're using the CVS repository, you may need several additional
+ programs to build GCC.
+
+ These include, but are not necessarily limited to autoconf, automake,
+ bison, and xgettext.
+
+ This is necessary because neither diff nor cvs keep timestamps
+ correct. This causes problems for generated files as "make" may think
+ those generated files are out of date and try to regenerate them.
+
+ An easy way to work around this problem is to use the egcs_update
+ script in the contrib subdirectory of egcs, which handles this
+ transparently without requiring installation of any additional tools.
+
+ When building from diffs or CVS or if you modified some sources, you
+ may also need to obtain development versions of some GNU tools, as the
+ production versions do not necessarily handle all features needed to
+ rebuild egcs.
+
+ Autoconf is available from [77]http://sourceware.cygnus.com/autoconf/;
+ have a look at [78]ftp://egcs.cygnus.com/pub/egcs/infrastructure/ for
+ the other packages.
+ _________________________________________________________________
+
+Conflicts when using cvs update
+
+ It is not uncommon to get CVS conflict messages for some generated
+ files when updating your local sources from the CVS repository.
+ Typically such conflicts occur with bison or autoconf generated files.
+
+ As long as you haven't been making modifications to the generated
+ files or the generator files, it is safe to delete the offending file,
+ then run cvs update again to get a new copy.
+ _________________________________________________________________
+
+Problems debugging GCC code
+
+ On some systems GCC will produce dwarf debug records by default;
+ however the gdb-4.16 release may not be able to read such debug
+ records.
+
+ You can either use the argument "-gstabs" instead of "-g" or pick up a
+ copy of gdb-4.17 to work around the problem.
+ _________________________________________________________________
+
+Using GCC with GNAT/Ada
+
+ The GNU Ada front-end is not currently supported by GCC; however, it
+ is possible to build the GNAT compiler with a little work.
+
+ First, retrieve the gnat-3.10p sources. The sources for the Ada front
+ end and runtime all live in the "ada" subdirectory. Move that
+ subdirectory to egcs/gcc/ada.
+
+ Second, apply the patch found in egcs/gcc/README.gnat.
+
+ Finally, rebuild per the GNAT build instructions.
+ _________________________________________________________________
+
+Using GCC with GNU Pascal
+
+ The [79]GNU Pascal front-end does work with EGCS 1.1 It does not work
+ with EGCS 1.0.x and the main branch of the CVS repository. A tarball
+ can be found at
+ [80]ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/.
+ _________________________________________________________________
+
+Using CVS to download snapshots
+
+ It is possible to checkout specific snapshots with CVS or to check out
+ the latest snapshot.
+
+ We use CVS tags to identify each snapshot we make. Snapshot tags have
+ the form "egcs_ss_YYYYMMDD". In addition, the latest official snapshot
+ always has the tag "egcs_latest_snapshot".
+ _________________________________________________________________
+
+Why can't I build a shared library?
+
+ When building a shared library you may get an error message from the
+ linker like `assert pure-text failed:' or `DP relative code in file'.
+
+ This kind of error occurs when you've failed to provide proper flags
+ to gcc when linking the shared library.
+
+ You can get this error even if all the .o files for the shared library
+ were compiled with the proper PIC option. When building a shared
+ library, gcc will compile additional code to be included in the
+ library. That additional code must also be compiled with the proper
+ PIC option.
+
+ Adding the proper PIC option (-fpic or -fPIC) to the link line which
+ creates the shared library will fix this problem on targets that
+ support PIC in this manner. For example:
+ gcc -c -fPIC myfile.c
+ gcc -shared -o libmyfile.so -fPIC myfile.o
+ _________________________________________________________________
+
+How to work around too long C++ symbol names? (-fsquangle)
+
+ If the standard assembler of your platform can't cope with the large
+ symbol names that the default g++ name mangling mechanism produces,
+ your best bet is to use GNU as, from the GNU binutils package.
+
+ Unfortunately, GNU as does not support all platforms supported by
+ egcs, so you may have to use an experimental work-around: the
+ -fsquangle option, that enables compression of symbol names.
+
+ Note that this option is still under development, and subject to
+ change. Since it modifies the name mangling mechanism, you'll need to
+ build libstdc++ and any other C++ libraries with this option enabled.
+ Furthermore, if this option changes its behavior in the future, you'll
+ have to rebuild them all again. :-(
+
+ This option can be enabled by default by initializing
+ `flag_do_squangling' with `1' in `gcc/cp/decl2.c' (it is not
+ initialized by default), then rebuilding egcs and any C++ libraries.
+ _________________________________________________________________
+
+When building from CVS sources, I see 'gperf: invalid option -- F', even with
+the most current version of gperf.
+
+ The current version of gperf (v2.7) does not support the -F flag which
+ is used when building egcs from CVS sources. You will need to obtain a
+ patch for gperf and rebuild the program; this patch is available at
+ [81]ftp://egcs.cygnus.com/pub/egcs/infrastructure/
+
+ Patches for other tools, particularly autoconf, may also be necessary
+ if you're building from CVS sources. Please see the [82]FAQ entry
+ regarding these tools to determine if anything else is needed.
+
+ These patched utilities should _only_ be required if you are building
+ from CVS sources. For example, gperf is used to generate C code for a
+ perfect hash function given an input file. Distributions of egcs
+ already contain the generated C code, while the CVS sources will
+ provide only the gperf input file. So gperf should only be necessary
+ if you are building anything obtained from CVS.
+ _________________________________________________________________
+
+When building C++, the linker says my constructors, destructors or virtual
+tables are undefined, but I defined them
+
+ The ISO C++ Standard specifies that all virtual methods of a class
+ that are not pure-virtual must be defined, but does not require any
+ diagnostic for violations of this rule [class.virtual]/8. Based on
+ this assumption, egcs will only emit the implicitly defined
+ constructors, the assignment operator, the destructor and the virtual
+ table of a class in the translation unit that defines its first such
+ non-inline method.
+
+ Therefore, if you fail to define this particular method, the linker
+ may complain about the lack of definitions for apparently unrelated
+ symbols. Unfortunately, in order to improve this error message, it
+ might be necessary to change the linker, and this can't always be
+ done.
+
+ The solution is to ensure that all virtual methods that are not pure
+ are defined. Note that a destructor must be defined even if it is
+ declared pure-virtual [class.dtor]/7.
+ _________________________________________________________________
+
+What is libstdc++-v3 and how can I use it with g++?
+
+ From the [83]libstdc++-FAQ: "The EGCS Standard C++ Library v3, or
+ libstdc++-2.90.x, is an ongoing project to implement the ISO 14882
+ Standard C++ library as described in chapters 17 through 27 and annex
+ D."
+
+ At the moment the libstdc++-v3 is no "drop in replacement" for GCC's
+ libstdc++. The best way to use it is as follows:
+ 1. Build and install GCC
+ 2. Build and install libstdc++-v3
+ 3. Use compiler flags to use the new libstdc++
+
+ Please note that the libstdc++-v3 is not yet complete and should only
+ be used by experienced programmers.
+
+ For more information please refer to the [84]libstdc++-v3 homepage
+ _________________________________________________________________
+
+ [85]Return to the GCC home page
+
+ _Last modified: August 15, 1999_
+
+References
+
+ 1. http://www.gnu.org/software/gcc/faq.html
+ 2. http://www.eskimo.com/~scs/C-faq/top.html
+ 3. http://www.cerfnet.com/~mpcline/On-Line-C++-FAQs/
+ 4. http://reality.sgi.com/austern_mti/std-c++/faq.html
+ 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#general
+ 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gcc
+ 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cygnus
+ 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#open-development
+ 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
+ 10. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#support
+ 11. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#installation
+ 12. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#fortran
+ 13. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#multiple
+ 14. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#rpath
+ 15. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#rpath
+ 16. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gas
+ 17. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#environ
+ 18. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#testsuite
+ 19. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#testsuite
+ 20. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#dejagnu
+ 21. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#testoptions
+ 22. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#multipletests
+ 23. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#platform
+ 24. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#x86eh
+ 25. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#asmclobber
+ 26. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#linuxkernel
+ 27. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#X11R6
+ 28. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#sig11
+ 29. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cross
+ 30. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugs
+ 31. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#fdzero
+ 32. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#octave
+ 33. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#misc
+ 34. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#memexhausted
+ 35. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#snapshot
+ 36. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#friend
+ 37. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#libg++
+ 38. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#generated_files
+ 39. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gdb
+ 40. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#conflicts
+ 41. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gnat
+ 42. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gpc
+ 43. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cvssnapshots
+ 44. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#picflag-needed
+ 45. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/spam.html
+ 46. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#squangle
+ 47. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gperf
+ 48. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#vtables
+ 49. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#libstdc++
+ 50. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/steering.html
+ 51. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/steering.html
+ 52. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cathedral-vs-bazaar
+ 53. http://locke.ccil.org/~esr/writings/cathedral.html
+ 54. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/onlinedocs/
+ 55. http://egcs.cygnus.com/cgi-bin/cvsweb.cgi/~checkout~/egcs/gcc/BUGS?content-type=text/plain&only_with_tag=HEAD
+ 56. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/bugs.html
+ 57. mailto:gcc-bugs@gcc.gnu.org
+ 58. mailto:bug-gcc@gnu.org
+ 59. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
+ 60. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gas
+ 61. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html
+ 62. ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-19981026.tar.gz
+ 63. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html
+ 64. ftp://tsx-11.mit.edu/pub/linux/packages/GCC/
+ 65. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
+ 66. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#linuxkernel
+ 67. http://www.suse.de/~florian/kernel+egcs.html
+ 68. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#asmclobber
+ 69. http://www.objsw.com/CrossGCC/
+ 70. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/bugs.html
+ 71. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
+ 72. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#asmclobber
+ 73. http://www.che.wisc.edu/octave/mailing-lists/bug-octave/1998/270
+ 74. ftp://ftp.che.wisc.edu/pub/octave/test-releases/
+ 75. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/index.html#mailinglists
+ 76. ftp://egcs.cygnus.com/pub/egcs/infrastructure/
+ 77. http://sourceware.cygnus.com/autoconf/
+ 78. ftp://egcs.cygnus.com/pub/egcs/infrastructure/
+ 79. http://home.pages.de/~GNU-Pascal/
+ 80. ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/
+ 81. ftp://egcs.cygnus.com/pub/egcs/infrastructure
+ 82. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#generated_files
+ 83. http://sourceware.cygnus.com/libstdc++/faq/
+ 84. http://sourceware.cygnus.com/libstdc++/
+ 85. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/index.html
diff --git a/gnu/egcs/INSTALL/README b/gnu/egcs/INSTALL/README
index 5fd9648bfef..7c888f53a8c 100644
--- a/gnu/egcs/INSTALL/README
+++ b/gnu/egcs/INSTALL/README
@@ -1,9 +1,10 @@
-This directory has been obsoleted for egcs snapshots and CVS access.
+The installation instructions are no longer in this directory. Instead
+they can be found in the "install" directory at the toplevel of the GCC
+distribution (ie gcc-2.95/install). For HTML browsing start with
+install/index.html, for plaintext, start with install/INDEX.
-Instead check out the toplevel "wwwdocs" as a sibling of your egcs
-tree or read these files via the egcs web site
-http://egcs.cygnus.com
+Moving the installation instructions in this manner makes it significantly
+easier to share code between the distribution and the web pages.
-
-Copies of the relevant files will be copied into this directory for
-releases.
+This directory (INSTALL) will be completely removed in the next major
+GCC release.
diff --git a/gnu/egcs/config/ChangeLog b/gnu/egcs/config/ChangeLog
index 6d9cdfcf086..a3865fd9017 100644
--- a/gnu/egcs/config/ChangeLog
+++ b/gnu/egcs/config/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Tue Feb 2 22:51:21 1999 Philip Blundell <philb@gnu.org>
* mh-armpic: New file. Patch from Jim Pick <jim@jimpick.com>.
diff --git a/gnu/egcs/config/mpw/ChangeLog b/gnu/egcs/config/mpw/ChangeLog
index 3cdefbf7a75..dea9fdbc8d5 100644
--- a/gnu/egcs/config/mpw/ChangeLog
+++ b/gnu/egcs/config/mpw/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Tue Nov 26 12:34:12 1996 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Fix some comments.
diff --git a/gnu/egcs/configure b/gnu/egcs/configure
index f5a6a283389..ebc654e9150 100644
--- a/gnu/egcs/configure
+++ b/gnu/egcs/configure
@@ -86,7 +86,7 @@ subdirs=
target_alias=NOTARGET
target_makefile_frag=
undefs=NOUNDEFS
-version="$Revision: 1.1.1.1 $"
+version="$Revision: 1.1.1.2 $"
x11=default
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
diff --git a/gnu/egcs/contrib/ChangeLog b/gnu/egcs/contrib/ChangeLog
index 5a48bc515ba..d39ccd2f3f3 100644
--- a/gnu/egcs/contrib/ChangeLog
+++ b/gnu/egcs/contrib/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_summary: Replace egcs with gcc. Update e-mail address.
diff --git a/gnu/egcs/etc/ChangeLog b/gnu/egcs/etc/ChangeLog
index 95cfd399fd0..86bd82bbd74 100644
--- a/gnu/egcs/etc/ChangeLog
+++ b/gnu/egcs/etc/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Mon Nov 23 16:46:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* configure.in: Use AC_PREREQ(2.12.1).
diff --git a/gnu/egcs/faq.html b/gnu/egcs/faq.html
new file mode 100644
index 00000000000..61be1809567
--- /dev/null
+++ b/gnu/egcs/faq.html
@@ -0,0 +1,1039 @@
+<html>
+<head>
+<title>GCC Frequently Asked Questions</title>
+</head>
+<body>
+
+<h1 align="center">GCC Frequently Asked Questions</h1>
+
+<p>The latest version of this document is always available at <a href="
+http://www.gnu.org/software/gcc/faq.html">http://www.gnu.org/software/gcc/faq.html</a>.</p>
+
+<p>This FAQ tries to answer specific questions concerning GCC. For
+general information regarding C resp. C++, please check the
+<a href="http://www.eskimo.com/~scs/C-faq/top.html">comp.lang.c FAQ</a>,
+<a href="http://www.cerfnet.com/~mpcline/On-Line-C++-FAQs/">
+comp.lang.c++ FAQ</a>, and the
+<a href="http://reality.sgi.com/austern_mti/std-c++/faq.html">
+comp.std.c++ FAQ</a>.</p>
+
+<hr>
+
+<h1>Questions</h1>
+<ol>
+ <li><a href="#general">General information</a>
+ <ol>
+ <li><a href="#gcc">What is the relationship between GCC and EGCS</a></li>
+ <li><a href="#cygnus">What is the relationship between GCC and Cygnus</a></li>
+ <li><a href="#open-development">What is an open development model?</a></li>
+ <li><a href="#bugreport">How to report bugs</a></li>
+ <li><a href="#support">How do I get a bug fixed or a feature added?</a></li>
+ </ol></li>
+
+ <li><a href="#installation">Installation</a>
+ <ol>
+ <li><a href="#fortran">Problems building the Fortran compiler</a></li>
+ <li><a href="#multiple">How to install multiple versions of GCC</a></li>
+ <li><a href="#rpath">Dynamic linker is unable to find GCC libraries</a></li>
+ <li><a href="#rpath">libstdc++/libio tests fail badly with --enable-shared</a></li>
+ <li><a href="#gas">GCC can not find GNU as/GNU ld</a></li>
+ <li><a href="#environ">cpp: Usage:... Error</a></li>
+ </ol></li>
+
+ <li><a href="#testsuite">Testsuite problems</a>
+ <ol>
+ <li><a href="#testsuite">Why is there no testsuite in GCC 2.95</a></li>
+ <li><a href="#dejagnu">Unable to run the testsuite</a></li>
+ <li><a href="#testoptions">How do I pass flags like
+ <code>-fnew-abi</code> to the testsuite?</a></li>
+ <li><a href="#multipletests">How can I run the test suite with multiple options?</a></li>
+ </ol></li>
+
+ <li><a href="#platform">Platform-specific issues</a>
+ <ol>
+ <li><a href="#x86eh">Problems with exception handling on x86 platforms</a></li>
+ <li><a href="#asmclobber">Problems with <tt>Invalid `asm' statement</tt>s</a></li>
+ <li><a href="#linuxkernel">Building Linux kernels</a> </li>
+ <li><a href="#X11R6">How do I compile X11 headers with g++</a> </li>
+ <li><a href="#sig11">Signal 11 on GNU/Linux</a></li>
+ <li><a href="#cross">How to build a cross compiler</a></li>
+ </ol></li>
+
+ <li><a href="#bugs">Bugs and Non-Bugs</a>
+ <ol>
+ <li><a href="#fdzero">FD_ZERO macro</a></li>
+ <li><a href="#octave">Octave 2.0.13 does not compile</a></li>
+ </ol></li>
+
+ <li><a href="#misc">Miscellaneous</a>
+ <ol>
+ <li><a href="#memexhausted">Virtual memory exhausted</a></li>
+ <li><a href="#snapshot">Snapshots, how, when, why</a></li>
+ <li><a href="#friend">Friend Templates</a></li>
+ <li><a href="#libg++">Where to find libg++</a></li>
+ <li><a href="#generated_files">Why do I need autoconf, bison, xgettext, automake, etc </a></li>
+ <li><a href="#gdb">Problems debugging GCC code</a></li>
+ <li><a href="#conflicts">Conflicts when using cvs update </a></li>
+ <li><a href="#gnat">Using GCC with GNAT/Ada</a></li>
+ <li><a href="#gpc">Using GCC with GNU Pascal</a></li>
+ <li><a href="#cvssnapshots">Using CVS to download snapshots </a></li>
+ <li><a href="#picflag-needed">Why can't I build a shared library?</a></li>
+ <li><a href="spam.html">Dealing with spam on the lists</a></li>
+ <li><a href="#squangle">How to work around too long C++ symbol names?
+ (<tt>-fsquangle</tt>)</a></li>
+ <li><a href="#gperf">When building from CVS sources, I see 'gperf: invalid option -- F',
+ even with the most current version of gperf.</a></li>
+ <li><a href="#vtables">When building C++, the linker says my constructors, destructors or virtual tables are undefined, but I defined them</a></li>
+ <li><a href="#libstdc++">What is libstdc++-v3 and how can I use it with g++?</a></li>
+ </ol></li>
+</ol>
+
+
+<hr>
+<a name="general"></a>
+<h1>General information</h1>
+
+<h2><a name="gcc">What is the relationship between GCC and EGCS</a></h2>
+
+<p>In 1990/1991 gcc version 1 had reached a point of stability. For the
+targets it could support, it worked well. It had limitations inherent in
+its design that would be difficult to resolve, so a major effort was made
+to resolve those limitiations and gcc version 2 was the result.</p>
+
+<p>When we had gcc2 in a useful state, development efforts on gcc1 stopped
+and we all concentrated on making gcc2 better than gcc1 could ever be. This
+is the kind of step forward we wanted to make with the EGCS project when it
+was formed in 1997.</p>
+
+<p>In April 1999 the Free Software Foundation officially halted development
+on the gcc2 compiler and appointed the EGCS project as the official GCC
+maintainers.</p>
+
+<p>We are in the process of merging GCC and EGCS, which will take some time.
+The net result will be a single project which will carry forward GCC development
+under the ultimate control of the
+<a href="steering.html">GCC Steering Committee</a>.</p>
+
+<hr>
+<h2><a name="cygnus">What is the relationship between GCC and Cygnus</a></h2>
+
+<p>It is a common mis-conception that Cygnus controls either directly or
+indirectly GCC.</p>
+
+<p>While Cygnus does donate hardware, network connections, code and
+developer time to GCC development, Cygnus does not control GCC.
+
+<p>Overall control of GCC is in the hands of the
+<a href="steering.html">GCC Steering Committee</a>
+which includes people from a variety of different organizations and
+backgrounds. The purpose of the steering committee is to make decisions in
+the best interest of GCC and to help ensure that no individual or company
+has control over the project.</p>
+
+<p>To summarize, Cygnus contributes to GCCproject, but does not exert
+a controlling influence over GCC.</p>
+
+<hr>
+<h2><a name="open-development">What is an open development model?</a></h2>
+
+<p>With GCC, we are going to try a bazaar style<a
+href="#cathedral-vs-bazaar"><b>[1]</b></a> approach to its
+development: We make snapshots publicly available to anyone who wants to
+try them; we're going to welcome anyone to join the development mailing list.
+All of the discussions on the development mailing list are available via the
+web. We're going to be making releases with a much higher frequency than
+they have been made in the past.</p>
+
+<p>In addition to weekly snapshots of the GCC development sources, we
+have the sources readable from a CVS server by anyone. Furthermore we
+are using remote CVS to allow remote maintainers write access to the sources.</p>
+
+<p>There have been many potential gcc developers who were not able to
+participate in gcc development in the past. We want these people to
+help in any way they can; we ultimately want GCC to be the best compiler
+in the world.</p>
+
+<p>A compiler is a complicated piece of software, there will still be
+strong central maintainers who will reject patches, who will demand
+documentation of implementations, and who will keep the level of
+quality as high as it is today. Code that could use wider testing may
+be integrated--code that is simply ill-conceived won't be.</p>
+
+<p>GCC is not the first piece of software to use this open development
+process; FreeBSD, the Emacs lisp repository, and the Linux kernel are a
+few examples of the bazaar style of development.</p>
+
+<p>With GCC, we will be adding new features and optimizations at a
+rate that has not been done since the creation of gcc2; these additions
+will inevitably have a temporarily destabilizing effect. With the help
+of developers working together with this bazaar style development, the
+resulting stability and quality levels will be better than we've had
+before.</p>
+
+<blockquote>
+<a name="cathedral-vs-bazaar"><b>[1]</b></a>
+ We've been discussing different development models a lot over the
+ past few months. The paper which started all of this introduced two
+ terms: A <b>cathedral</b> development model versus a <b>bazaar</b>
+ development model. The paper is written by Eric S. Raymond, it is
+ called ``<a
+ href="http://locke.ccil.org/~esr/writings/cathedral.html">The
+ Cathedral and the Bazaar</a>''. The paper is a useful starting point
+ for discussions.
+</blockquote>
+
+<hr>
+<h2><a name="bugreport">How to report bugs</a></h2>
+
+<p>There are complete instructions in the
+<a href="onlinedocs/">gcc info manual</a>, section Bugs.
+The manual can also be read using `<i>M-x <tt>info</tt></i>' in Emacs, or if
+the GNU <tt>info</tt> program is installed on your system by `<tt>info --node
+"(gcc)Bugs"</tt>'. Or see the file
+<a href="http://egcs.cygnus.com/cgi-bin/cvsweb.cgi/~checkout~/egcs/gcc/BUGS?content-type=text/plain&only_with_tag=HEAD">BUGS</a>
+included with the GCC source code.</p>
+
+<p>Before you report a bug for the <em>C++ compiler</em>, please check
+the <a href="bugs.html">list of well-known bugs</a>. If you
+want to report a bug with <em>egcs 1.0.x</em>, we recommend upgrading
+to the current release first.</p>
+
+<p>In short, if gcc says <tt>Internal compiler error</tt> (or any
+other error that you'd like us to be able to reproduce, for that
+matter), please mail a bug report to <a
+href="mailto:gcc-bugs@gcc.gnu.org">gcc-bugs@gcc.gnu.org</a> or
+<a href="mailto:bug-gcc@gnu.org">bug-gcc@gnu.org</a> including:</p>
+
+<ul>
+ <li>The GCC version</li>
+ <li>The system type</li>
+ <li>All options you passed to the compiler</li>
+ <li>Preprocessed output of the source file that caused the compiler error</li>
+</ul>
+
+<p>All this can normally be accomplished by mailing the command line, the
+output of the command, and the resulting `<tt><i>your-file</i>.i</tt>' for C,
+or `<tt><i>your-file</i>.ii</tt>' for C++, corresponding to:</p>
+
+<p><tt>gcc -v --save-temps <i>all-your-options</i> <i>your-file</i>.c</tt></p>
+
+<p>Typically the CPP output (extension <code>.i</code> for C or
+<code>.ii</code> for C++) will be large, so please compress the
+resulting file with one of the popular compression programs such as
+<tt>bzip2</tt>, <tt>gzip</tt>, <tt>zip</tt>, <tt>pkzip</tt> or
+<tt>compress</tt> (in decreasing order of preference). Use maximum
+compression (<code>-9</code>) if available. Please include the
+compressed CPP output in your bug report.</p>
+
+<p>Since we're supposed to be able to re-create the assembly output
+(extension <code>.s</code>), you usually don't have to include it in
+the bug report, although you may want to post parts of it to point out
+assembly code you consider to be wrong.</p>
+
+<p>Whether to use MIME attachments or <code>uuencode</code> is up to
+you. In any case, make sure the compiler command line, version and
+error output are in plain text, so that we don't have to decode the
+bug report in order to tell who should take care of it. A meaningful
+subject indicating language and platform also helps.</p>
+
+<p>The gcc lists have message size limits (100 kbytes) and bug reports
+over those limits will currently be bounced. We're trying to find a
+way to allow larger bug reports to be posted, but this is currently
+impossible (unless you use MIME partials, which most people are unable
+to handle anyway, so you'd better avoid them for now). So, although
+we prefer to have complete bug reports archived, if you cannot reduce
+the bug report below the limit, please make it available for ftp or
+http and post the URL. Another alternative is to break the
+preprocessed output in multiple files (using <code>split</code>, for
+example) and post them in separate messages, but we prefer to have
+self-contained bug reports in single messages.</p>
+
+<p>If you fail to supply enough information for a bug report to be
+reproduced, someone will probably ask you to post additional
+information (or just ignore your bug report, if they're in a bad day,
+so try to get it right on the first posting :-). In this case, please
+post the additional information to the bug reporting mailing list, not
+just to the person who requested it, unless explicitly told so. If
+possible, please include in this follow-up all the information you had
+supplied in the incomplete bug report (including the preprocessor
+output), so that the new bug report is self-contained.</p>
+
+<hr>
+<h2><a name="support">How do I get a bug fixed or a feature added?</a></h2>
+
+<p>There are lots of ways to get something fixed. The list below may be
+incomplete, but it covers many of the common cases. These are listed
+roughly in order of increasing difficulty for the average GCC user,
+meaning someone who is not skilled in the internals of GCC, and where
+difficulty is measured in terms of the time required to fix the bug.
+No alternative is better than any other; each has it's benefits and
+disadvantages.</p>
+
+<ul>
+<li>Hire someone to fix it for you. There are various companies and
+ individuals providing support for GCC. This alternative costs
+ money, but is relatively likely to get results.</li>
+
+<li>Report the problem to gcc-bugs and hope that someone will be kind
+ enough to fix it for you. While this is certainly possible, and
+ often happens, there is no guarantee that it will. You should
+ not expect the same response from gcc-bugs that you would see
+ from a commercial support organization since the people who read
+ gcc-bugs, if they choose to help you, will be volunteering their
+ time. This alternative will work best if you follow the directions
+ on <a href="#bugreport">submitting bugreports</a>.</li>
+
+<li>Fix it yourself. This alternative will probably bring results,
+ if you work hard enough, but will probably take a lot of time,
+ and, depending on the quality of your work and the perceived
+ benefits of your changes, your code may or may not ever make it
+ into an official release of GCC.</li>
+</ul>
+
+<hr>
+<a name="installation"></a>
+<h1>Installation</h1>
+
+<h2><a name="fortran">Problems building the Fortran compiler</a></h2>
+
+<p>The Fortran front end can not be built with most vendor compilers; it must
+be built with gcc. As a result, you may get an error if you do not follow
+the install instructions carefully.</p>
+
+<p>In particular, instead of using "make" to build GCC, you should use
+"make bootstrap" if you are building a native compiler or "make cross"
+if you are building a cross compiler.</p>
+
+<p>It has also been reported that the Fortran compiler can not be built
+on Red Hat 4.X GNU/Linux for the Alpha. Fixing this may require upgrading
+binutils or to Red Hat 5.0; we'll provide more information as it becomes
+available.</p>
+
+<hr>
+<h2><a name="multiple">How to install multiple versions of gcc</a></h2>
+
+<p>It may be desirable to install multiple versions of the compiler on
+the same system. This can be done by using different prefix paths at
+configure time and a few symlinks.</p>
+
+<p>Basically, configure the two compilers with different --prefix options,
+then build and install each compiler. Assume you want "gcc" to be the latest
+compiler and available in /usr/local/bin; also assume that you want "gcc2"
+to be the older gcc2 compiler and also available in /usr/local/bin.</p>
+
+<p>The easiest way to do this is to configure the new GCC with
+--prefix=/usr/local/gcc
+and the older gcc2 with --prefix=/usr/local/gcc2. Build and install both
+compilers. Then make a symlink from /usr/local/bin/gcc to
+/usr/local/gcc/bin/gcc and from /usr/local/bin/gcc2 to /usr/local/gcc2/bin/gcc.
+Create similar links for the "g++", "c++" and "g77" compiler drivers.</p>
+
+<p>An alternative to using symlinks is to configure with a
+--program-transform-name option. This option specifies a sed command to
+process installed program names with. Using it you can, for instance,
+have all the new GCC programs installed as "new-gcc" and the like. You
+will still have to specify different --prefix options for new GCC and
+old GCC, because it is only the executable program names that are
+transformed. The difference is that you (as administrator) do not have
+to set up symlinks, but must specify additional directories in your (as
+a user) PATH. A complication with --program-transform-name is that the
+sed command invariably contains characters significant to the shell,
+and these have to be escaped correctly, also it is not possible to use
+"^" or "$" in the command. Here is the option to prefix "new-" to the
+new GCC installed programs
+"--program-transform-name='s,\\\\(.*\\\\),new-\\\\1,'". With the above
+--prefix option, that will install the new GCC programs into
+/usr/local/gcc/bin with names prefixed by "new-". You can use
+--program-transform-name if you have multiple versions of GCC, and
+wish to be sure about which version you are invoking.</p>
+
+<p>If you use --prefix, GCC may have difficulty locating a GNU
+assembler or linker on your system, <a href="#gas">GCC can not find GNU
+as/GNU ld</a> explains how to deal with this.</p>
+
+<hr>
+<h2><a name="rpath">Dynamic linker is unable to find GCC libraries</a></h2>
+
+<p>This problem manifests itself by programs not finding shared libraries
+they depend on when the programs are started. Note this problem often manifests
+itself with failures in the libio/libstdc++ tests after configuring with
+--enable-shared and building GCC.</p>
+
+<p>GCC does not specify a runpath so that the dynamic linker can find dynamic
+libraries at runtime.</p>
+
+<p>The short explanation is that if you always pass a -R option to the
+linker, then your programs become dependent on directories which
+may be NFS mounted, and programs may hang unnecessarily when an
+NFS server goes down.</p>
+
+<p>The problem is not programs that do require the directories; those
+programs are going to hang no matter what you do. The problem is
+programs that do not require the directories.</p>
+
+<p>SunOS effectively always passed a -R option for every -L option;
+this was a bad idea, and so it was removed for Solaris. We should
+not recreate it.</p>
+
+<p>However, if you feel you really need such an option to be passed
+automatically to the linker, you may add it to the gcc specs file.
+This file can be found in the same directory that contains cc1 (run
+<code>gcc -print-prog-name=cc1</code> to find it). You may add linker
+flags such as <code>-R</code> or <code>-rpath</code>, depending on
+platform and linker, to the <code>*link</code> or <code>*lib</code>
+specs.</p>
+
+<p>Another alterative is to install a wrapper script around gcc, g++
+or ld that adds the appropriate directory to the environment variable
+<code>LD_RUN_PATH</code> or equivalent (again, it's
+platform-dependent).</p>
+
+<p>Yet another option, that works on a few platforms, is to hard-code
+the full pathname of the library into its soname. This can only be
+accomplished by modifying the appropriate <tt>.ml</tt> file within
+<tt>libstdc++/config</tt> (and also <tt>libg++/config</tt>, if you are
+building libg++), so that <code>$(libdir)/</code> appears just before
+the library name in <code>-soname</code> or <code>-h</code> options.</p>
+
+<hr>
+<h2><a name="gas">GCC can not find GNU as/GNU ld</a></h2>
+<p>GCC searches the PATH for an assembler and a loader, but it only
+does so after searching a directory list hard-coded in the gcc
+executables. Since, on most platforms, the hard-coded list includes
+directories in which the system asembler and loader can be found, you
+may have to take one of the following actions to arrange that gcc uses
+the GNU versions of those programs.</p>
+
+<p>To ensure that GCC finds the GNU assembler (the GNU loader), which
+are required by <a href="install/specific.html">some configurations</A>,
+you should configure these with the same --prefix option as you used
+for GCC. Then build & install GNU as (GNU ld) and proceed with
+building GCC.</p>
+
+<p>Another alternative is to create links to GNU as and ld in any of
+the directories printed by the command `<tt>gcc -print-search-dirs |
+grep '^programs:'</tt>'. The link to `<tt>ld</tt>' should be named
+`<tt>real-ld</tt>' if `<tt>ld</tt>' already exists. If such links do
+not exist while you're compiling GCC, you may have to create them in
+the build directories too, within the <tt>gcc</tt> directory
+<em>and</em> in all the <tt>gcc/stage*</tt> subdirectories.</p>
+
+<p>GCC 2.95 allows you to specify the full pathname of the assembler
+and the linker to use. The configure flags are
+`<tt>--with-as=/path/to/as</tt>' and `<tt>--with-ld=/path/to/ld</tt>'.
+GCC will try to use these pathnames before looking for `<tt>as</tt>'
+or `<tt>(real-)ld</tt>' in the standard search dirs. If, at
+configure-time, the specified programs are found to be GNU utilities,
+`<tt>--with-gnu-as</tt>' and `<tt>--with-gnu-ld</tt>' need not be
+used; these flags will be auto-detected. One drawback of this option
+is that it won't allow you to override the search path for assembler
+and linker with command-line options <tt>-B/path/</tt> if the
+specified filenames exist.</p>
+
+<hr>
+<h2><a name="environ">cpp: Usage:... Error</a></h2>
+
+<p>If you get an error like this when building GCC (particularly when building
+__mulsi3), then you likely have a problem with your environment variables.</p>
+<pre>
+ cpp: Usage: /usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/2.7.2.3/cpp
+ [switches] input output
+</pre>
+<p>First look for an explicit '.' in either LIBRARY_PATH or GCC_EXEC_PREFIX
+from your environment. If you do not find an explicit '.', look for
+an empty pathname in those variables. Note that ':' at either the start
+or end of these variables is an implicit '.' and will cause problems.</p>
+
+<p>Also note '::' in these paths will also cause similar problems.</p>
+
+
+<hr>
+<a name="testsuite"></a>
+<h1>Testsuite problems</h1>
+
+<h2><a name="testsuite">Why is there no testsuite in GCC 2.95</a></h2>
+
+<p>The GCC testsuite is not included in the GCC 2.95 release due to the
+uncertain copyright status of some tests.</p>
+
+<p>The GCC team will be reviewing the entire testsuite to find and remove
+any tests with uncertain copyright status. Once those tests are removed
+from the testsuite, the testsuite as a whole will be copyrighted under the
+terms of the GPL and included in future GCC releases.</p>
+
+<p>It is believed that only a few tests have uncertain copyright status and
+thus only a few tests will need to be removed from the testsuite.</p>
+
+
+<hr>
+<h2><a name="dejagnu">Unable to run the testsuite</a></h2>
+
+<p>If you get a message about unable to find "standard.exp" when trying to
+run the GCC testsuites, then your dejagnu is too old to run the GCC tests.
+You will need to get a newer version of dejagnu; we've made a
+<a href="ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-19981026.tar.gz">
+dejagnu snapshot</a> available until a new version of dejagnu can be released.</p>
+
+<hr>
+<h2><a name="testoptions">How do I pass flags like
+ <code>-fnew-abi</code> to the testsuite?</a></h2>
+
+<p>If you invoke <code>runtest</code> directly, you can use the
+<code>--tool_opts</code> option, e.g:</p>
+<pre>
+ runtest --tool_opts "-fnew-abi -fno-honor-std" &lt;other options&gt;
+</pre>
+<p>Or, if you use <code>make check</code> you can use the
+<code>make</code> variable <code>RUNTESTFLAGS</code>, e.g:</p>
+<pre>
+ make RUNTESTFLAGS='--tool_opts "-fnew-abi -fno-honor-std"' check-g++
+</pre>
+
+<hr>
+<h2><a name="multipletests"> How can I run the test suite with multiple options? </a></h2>
+
+<p>If you invoke <code>runtest</code> directly, you can use the
+<code>--target_board</code> option, e.g:</p>
+<pre>
+ runtest --target_board "unix{-fPIC,-fpic,}" &lt;other options&gt;
+</pre>
+<p>Or, if you use <code>make check</code> you can use the
+<code>make</code> variable <code>RUNTESTFLAGS</code>, e.g:</p>
+<pre>
+ make RUNTESTFLAGS='--target_board "unix{-fPIC,-fpic,}"' check-gcc
+</pre>
+<p>Either of these examples will run the tests three times. Once
+with <code>-fPIC</code>, once with <code>-fpic</code>, and once with
+no additional flags.</p>
+
+<p>This technique is particularly useful on multilibbed targets.</p>
+
+
+<hr>
+<a name="platform"></a>
+<h1>Platform-specific issues</h1>
+
+<p>Please read the <a href="install/specific.html">host/target specific installation</a> notes, too.</p>
+
+<h2><a name="x86eh">Problems with exception handling on x86 platforms</a></h2>
+
+<p>If you are using the GNU assembler (aka gas) on an x86 platform and
+exception handling is not working correctly, then odds are you're using a
+buggy assembler. Releases of binutils prior to 2.9 are known to
+assemble exception handling code incorrectly.</p>
+
+<p>We recommend binutils-2.9.1 or newer. Some post-2.9.1 snapshots of
+binutils fix some subtle bugs, particularly on x86 and alpha. They
+are available at <a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/">
+ftp://tsx-11.mit.edu/pub/linux/packages/GCC/</A>. The 2.9.1.0.15
+snapshot is known to work fine on those platforms; other than that, be
+aware that snapshots are in general untested and may not work (or even
+build). Use them at your own risk.</p>
+
+
+<hr>
+<h2><a name="asmclobber">Problems with invalid `asm' statements</a></h2>
+
+<p>Previous releases of GCC (for example, GCC 2.7.2 or EGCS 1.1.2)
+did not detect as invalid a clobber specifier that clobbered an operand.
+Instead, it could spuriously and silently generate incorrect code for
+certain non-obvious cases of source code. Even more unfortunately, the
+manual (Using and Porting GCC, section Extended Asm, see the
+<a href="#bugreport"> bug report entry</a>) did not explicitly say that it was invalid to specify clobber registers that were destined to overlap
+operands; it could arguably be interpreted that it was correct to clobber
+an input operand to mark it as not holding a usable value after the asm.</p>
+
+<p>For the general case, there is no way to tell whether a specified
+clobber is <i>intended</i> to overlap with a specific (input) operand or
+is a program error, where the choice of actual register for operands
+failed to <i>avoid</i> the clobbered register. Such unavoidable overlap
+is detected by versions GCC 2.95 and newer, and flagged
+as an error rather than accepted. An error message is given, such as:</p>
+<pre>
+ foo.c: In function `foo':
+ foo.c:7: Invalid `asm' statement:
+ foo.c:7: fixed or forbidden register 0 (ax) was spilled for class AREG.
+</pre>
+<p>Unfortunately, a lot of existing software, for example the
+<a href="#linuxkernel">Linux kernel</a> version 2.0.35 for the Intel x86,
+has constructs where input operands are marked as clobbered.</p>
+
+<p>The manual now describes how to write constructs with operands that
+are modified by the construct, but not actually used. To write an asm
+which modifies an input operand but does not output anything usable,
+specify that operand as an <b>output operand</b> outputting to an
+<b>unused dummy variable</b>.</p>
+
+<p>In the following example for the x86 architecture (taken from the Linux
+2.0.35 kernel -- <tt>include/asm-i386/delay.h</tt>), the register-class
+constraint <tt>"a"</tt> denotes a register class containing the single
+register <tt>"ax"</tt> (aka. <tt>"eax"</tt>). It is therefore invalid
+to clobber <tt>"ax"</tt>; this operand has to be specified as an output
+as well as an input. The following code is therefore <b>invalid</b>:</p>
+<pre>
+extern __inline__ void
+__delay (int loops)
+{
+ __asm__ __volatile__
+ (".align 2,0x90\n1:\tdecl %0\n\tjns 1b"
+ : /* no outputs */
+ : "a" (loops)
+ : "ax");
+}
+</pre>
+<p>It could be argued that since the register class for <tt>"a"</tt> contains
+only a single register, this could be detected as an "obvious" intended
+clobber of the input operand. While that is feasible, it opens up for
+further "obvious" cases, where the level of obviousness changes from
+person to person. As there is a correct way to write such asm constructs,
+this obviousness-detection is not needed other than for reasons of
+compatibility with an existing code-base, and that code base can be
+corrected.</p>
+<p>This corrected and clobber-less version, is <b>valid</b> for GCC 2.95
+as well as for previous versions of GCC and EGCS:</p>
+<pre>
+extern __inline__ void
+__delay (int loops)
+{
+ int dummy;
+
+ __asm__ __volatile__
+ (".align 2,0x90\n1:\tdecl %0\n\tjns 1b"
+ : "=a" (dummy)
+ : "0" (loops));
+}
+</pre>
+<p>Note that the asm construct now has an output operand, but it is unused.
+Normally asm constructs with only unused output operands may be removed by
+gcc, unless marked <tt>volatile</tt> as above.</p>
+
+
+<hr>
+<h2><a name="linuxkernel">Building Linux kernels</a></h2>
+
+<p>The linux kernel violates certain aliasing rules specified in the
+ANSI/ISO standard. Starting with GCC 2.95, the gcc optimizer
+by default relies on these rules to produce more efficient code and thus
+will produce malfunctioning kernels.
+To work around this problem, the flag <CODE>-fno-strict-aliasing</CODE>
+must be added to the <CODE>CFLAGS</CODE> variable in the main kernel Makefile.</p>
+
+<p>If you try to build a 2.0.x kernel for Intel machines with any compiler
+other than GCC 2.7.2, then you are on your own.
+The 2.0.x kernels are to be built only with
+gcc 2.7.2. They use certain <code>asm</code> constructs which are
+incorrect, but (by accident) happen to work with gcc 2.7.2. If you
+insist on building 2.0.x kernels with egcs, you may be interested in
+this <a href="http://www.suse.de/~florian/kernel+egcs.html">patch</a>
+which fixes some of the asm problems. You will also want to change
+asm constructs to <a href="#asmclobber">avoid clobbering their input
+operands</a>.</p>
+
+<p>If you installed a recent binutils/gas snapshot on your GNU/Linux
+system, you may not be able to build the kernel because objdump does
+not understand the "-k" switch. The solution for this problem is to
+remove /usr/bin/encaps. (This is an obsolete program that was part of
+older binutils distributions; the Linux kernel's Makefile looks for
+this program to decide if you have an old or a new binutils. Problems
+occur if you installed a new binutils but haven't removed encaps,
+because the Makefile thinks you have the old one.)</p>
+
+<p>Finally, you may get errors with the X driver of the form </p>
+<pre>
+ _X11TransSocketUNIXConnect: Can't connect: errno = 111
+</pre>
+
+<p>This is a kernel bug. The function sys_iopl in arch/i386/kernel/ioport.c
+does an illegal hack which used to work but is now broken since GCC optimizes
+more aggressively . The newer 2.1.x kernels already have a fix which should
+also work in 2.0.32.</p>
+
+<hr>
+<h2><a name="X11R6">How do I compile X11 headers with g++</a></h2>
+
+<p>When compiling X11 headers with a GCC 2.95 or newer, g++ will
+complain that types are missing. These headers assume that omitting
+the type means 'int'; this assumption is wrong for C++.</p>
+
+<p>g++ accepts such (illegal) constructs with the option -fpermissive;
+it will assume that missing type is 'int' (as defined by the C89
+standard).</p>
+
+<p>Since the upcoming C99 standard also obsoletes the implicit type
+assumptions, the X11 headers have to get fixed eventually.</p>
+
+<hr>
+<h2><a name="cross">How to build a cross compiler</a></h2>
+
+<p> Building cross compilers is a rather complex undertaking because they
+usually need additional software (cross assembler, cross linker, target
+libraries, target include files, etc).</p>
+
+<p>We recommend reading the <a href="http://www.objsw.com/CrossGCC/">
+crossgcc FAQ</a> for information about building cross compilers.</p>
+
+<p>If you have all the pieces available, then `make cross' should build a
+cross compiler. `make LANGUAGES="c c++" install' will install the cross
+compiler.</p>
+
+<p>Note that if you're trying to build a cross compiler in a tree which
+includes binutils-2.8 in addition to GCC, then you're going to need to
+make a couple minor tweaks so that the cross assembler, linker and
+nm utilities will be found.</p>
+
+<p>binutils-2.8 builds those files as gas.new, ld.new and nm.new; GCC
+looks for them using gas-new, ld-new and nm-new, so you may have to arrange
+for any symlinks which point to &lt;file&gt;.new to be changed to &lt;file&gt;-new.</p>
+
+
+<hr>
+<a name="bugs"></a>
+<h1>Bugs and Non-Bugs</h1>
+
+<p>Unfortunately, improvements in tools that are widely used are
+sooner or later bound to break <em>something</em>. Sometimes, the
+code that breaks was wrong, and then that code should be fixed, even
+if it works for earlier versions of gcc or other compilers. The
+following problems with some releases of widely used packages have
+been identified:</p>
+
+<p>There is a separate <a href="bugs.html">list of well-known bugs</a>
+describing known deficiencies. Naturally we'd like that list to be of
+zero length.</p>
+
+<p>To report a bug, see <a href="#bugreport">How to report bugs</a>.</p>
+
+<hr>
+<h2><a name="fdzero">FD_ZERO macro</a></h2>
+
+<p>The FD_ZERO macro in (e.g.) libc-5.4.46 is incorrect. It uses <a
+href="#asmclobber">invalid asm clobbers</a>. The following rewrite by
+Ulrich Drepper &lt;drepper@cygnus.com&gt; should fix this for glibc
+2.0:</p>
+
+<pre>
+ # define __FD_ZERO(fdsetp) \
+ do { \
+ int __d0, __d1; \
+ __asm__ __volatile__ ("cld; rep; stosl" \
+ : "=m" (((__fd_mask *) \
+ (fdsetp))[__FDELT (__FD_SETSIZE)]), \
+ "=&amp;c" (__d0), "=&amp;D" (__d1) \
+ : "a" (0), "1" (sizeof (__fd_set) \
+ / sizeof (__fd_mask)), \
+ "2" ((__fd_mask *) (fdsetp)) \
+ : "memory"); \
+ } while (0)
+</pre>
+
+<hr>
+<h2><a name="octave">Octave 2.0.13 does not compile</a></h2>
+
+<p>Apparently Octave 2.0.13 uses some C++ features which have been
+obsoleted and thus fails to build with EGCS 1.1 and later. This <a
+href="http://www.che.wisc.edu/octave/mailing-lists/bug-octave/1998/270">patch
+to Octave</a> should fix this.</p>
+
+<p>Octave 2.0.13.96, a test release, has been compiled without patches by
+egcs 1.1.2. It is available at
+<a href="ftp://ftp.che.wisc.edu/pub/octave/test-releases/">
+ftp://ftp.che.wisc.edu/pub/octave/test-releases/</a>.</p>
+
+
+<hr>
+<a name="misc"></a>
+<h1>Miscellaneous</h1>
+
+<h2><a name="memexhausted">Virtual memory exhausted error</a></h2>
+
+<p> This error means your system ran out of memory; this can happen for large
+files, particularly when optimizing. If you're getting this error you should
+consider trying to simplify your files or reducing the optimization level.</p>
+
+<p>Note that using -pedantic or -Wreturn-type can cause an explosion in the
+amount of memory needed for template-heavy C++ code, such as code that uses
+STL. Also note that -Wall includes -Wreturn-type, so if you use -Wall you
+will need to specify -Wno-return-type to turn it off.</p>
+
+<hr>
+<h2><a name="snapshot">Snapshots, how, when, why</a></h2>
+
+<p> We make snapshots of the GCC sources about once a week; there is no
+predetermined schedule. These snapshots are intended to give everyone
+access to work in progress. Any given snapshot may generate incorrect code
+or even fail to build.</p>
+
+<p>If you plan on downloading and using snapshots, we highly recommend you
+subscribe to the GCC mailing lists. See <a href="index.html#mailinglists">
+mailing lists</a> on the main GCC page for instructions on how to subscribe.</p>
+
+<p>When using the diff files to update from older snapshots to newer snapshots,
+make sure to use "-E" and "-p" arguments to patch so that empty files are
+deleted and full pathnames are provided to patch. If your version of
+patch does not support "-E", you'll need to get a newer version. Also note
+that you may need autoconf, autoheader and various other programs if you use
+diff files to update from one snapshot to the next.</p>
+
+
+<hr>
+<h2><a name="friend">Friend Templates</a></h2>
+
+<p>In order to make a specialization of a template function a friend
+of a (possibly template) class, you must explicitly state that the
+friend function is a template, by appending angle brackets to its
+name, and this template function must have been declared already.
+Here's an example:</p>
+<pre>
+template &lt;typename T&gt; class foo {
+ friend void bar(foo&lt;T&gt;);
+}
+</pre>
+<p>The above declaration declares a non-template function named
+<TT>bar</TT>, so it must be explicitly defined for <B>each</B>
+specialization of <TT>foo</TT>. A template definition of <TT>bar</TT>
+won't do, because it is unrelated with the non-template declaration
+above. So you'd have to end up writing:</p>
+<pre>
+void bar(foo&lt;int&gt;) { /* ... */ }
+void bar(foo&lt;void&gt;) { /* ... */ }
+</pre>
+<p>If you meant <TT>bar</TT> to be a template function, you should
+have forward-declared it as follows. Note that, since the template
+function declaration refers to the template class, the template class
+must be forward-declared too:</p>
+<pre>
+template &lt;typename T&gt;
+class foo;
+
+template &lt;typename T&gt;
+void bar(foo&lt;T&gt;);
+
+template &lt;typename T&gt;
+class foo {
+ friend void bar&lt;&gt;(foo&lt;T&gt;);
+};
+
+template &lt;typename T&gt;
+void bar(foo&lt;T&gt;) { /* ... */ }
+</pre>
+<p>In this case, the template argument list could be left empty,
+because it can be implicitly deduced from the function arguments, but
+the angle brackets must be present, otherwise the declaration will be
+taken as a non-template function. Furthermore, in some cases, you may
+have to explicitly specify the template arguments, to remove
+ambiguity.</p>
+
+<p>An error in the last public comment draft of the ANSI/ISO C++
+Standard and the fact that previous releases of gcc would accept such
+friend declarations as template declarations has led people to believe
+that the forward declaration was not necessary, but, according to the
+final version of the Standard, it is.</p>
+
+<hr>
+<h2><a name="libg++">Where to find libg++</a></h2>
+
+<p>Many folks have been asking where to find libg++ for GCC. First we
+should point out that few programs actually need libg++; most only need
+libstdc++/libio which are included in the GCC distribution.</p>
+
+<p>If you do need libg++ you can get a libg++ release that works with
+GCC from <a
+href="ftp://egcs.cygnus.com/pub/egcs/infrastructure/">ftp://egcs.cygnus.com/pub/egcs/infrastructure/</a>.
+Note that the 2.8.2 snapshot pre-dates the 2.8.1.2 release.</p>
+
+<hr>
+<h2><a name="generated_files">autoconf, bison, xgettext, automake, etc</a></h2>
+
+<p>If you're using diffs up dated from one snapshot to the next, or
+if you're using the CVS repository, you may need several additional programs
+to build GCC.</p>
+
+<p>These include, but are not necessarily limited to autoconf, automake,
+bison, and xgettext.</p>
+
+<p>This is necessary because neither diff nor cvs keep timestamps
+correct. This causes problems for generated files as "make" may think
+those generated files are out of date and try to regenerate them.</p>
+
+<p>An easy way to work around this problem is to use the egcs_update
+script in the contrib subdirectory of egcs, which handles this
+transparently without requiring installation of any additional tools.</p>
+
+
+<p>When building from diffs or CVS or if you modified some sources,
+you may also need to obtain development versions of some GNU tools, as
+the production versions do not necessarily handle all features needed
+to rebuild egcs.</p>
+
+<p>Autoconf is available from
+<a href="http://sourceware.cygnus.com/autoconf/">
+http://sourceware.cygnus.com/autoconf/</a>; have a look at
+<a href="ftp://egcs.cygnus.com/pub/egcs/infrastructure/">
+ftp://egcs.cygnus.com/pub/egcs/infrastructure/</a> for the other packages.
+</p>
+
+<hr>
+<h2><a name="conflicts">Conflicts when using cvs update</a></h2>
+
+<p>It is not uncommon to get CVS conflict messages for some generated files
+when updating your local sources from the CVS repository. Typically such
+conflicts occur with bison or autoconf generated files.</p>
+
+<p>As long as you haven't been making modifications to the generated files
+or the generator files, it is safe to delete the offending file, then run
+cvs update again to get a new copy.</p>
+
+<hr>
+<h2><a name="gdb">Problems debugging GCC code</a></h2>
+
+<p>On some systems GCC will produce dwarf debug records by default; however
+the gdb-4.16 release may not be able to read such debug records.</p>
+
+<p>You can either use the argument "-gstabs" instead of "-g" or pick up
+a copy of gdb-4.17 to work around the problem.
+
+<hr>
+<h2><a name="gnat">Using GCC with GNAT/Ada </a></h2>
+<p>The GNU Ada front-end is not currently supported by GCC; however, it is
+possible to build the GNAT compiler with a little work.</p>
+
+<p>First, retrieve the gnat-3.10p sources. The sources for the Ada front
+end and runtime all live in the "ada" subdirectory. Move that subdirectory
+to egcs/gcc/ada.</p>
+
+<p>Second, apply the patch found in egcs/gcc/README.gnat.</p>
+
+<p>Finally, rebuild per the GNAT build instructions.</p>
+
+<hr>
+<h2><a name="gpc">Using GCC with GNU Pascal</a></h2>
+
+<p>The <a href="http://home.pages.de/~GNU-Pascal/">GNU Pascal</a>
+front-end does work with EGCS 1.1 It does not work with EGCS 1.0.x and
+the main branch of the CVS repository. A tarball can be found at
+<A HREF="ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/">
+ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/</A>.</p>
+
+<hr>
+<h2><a name="cvssnapshots">Using CVS to download snapshots</a></h2>
+
+<p>It is possible to checkout specific snapshots with CVS or to check
+out the latest snapshot.</p>
+
+<p>We use CVS tags to identify each snapshot we make. Snapshot tags have
+the form "egcs_ss_YYYYMMDD". In addition, the latest official snapshot always
+has the tag "egcs_latest_snapshot".</p>
+
+
+<hr>
+<h2><a name="picflag-needed">Why can't I build a shared library?</a></h2>
+
+<p>When building a shared library you may get an error message from the
+linker like `assert pure-text failed:' or `DP relative code in file'.</p>
+
+<p>This kind of error occurs when you've failed to provide proper flags
+to gcc when linking the shared library. </p>
+
+<p>You can get this error even if all the .o files for the shared library were
+compiled with the proper PIC option. When building a shared library, gcc will
+compile additional code to be included in the library. That additional code
+must also be compiled with the proper PIC option.</p>
+
+<p>Adding the proper PIC option (<tt>-fpic</tt> or <tt>-fPIC</tt>) to the link
+line which creates the shared library will fix this problem on targets that
+support PIC in this manner. For example:</p>
+<pre>
+ gcc -c -fPIC myfile.c
+ gcc -shared -o libmyfile.so -fPIC myfile.o
+</pre>
+
+
+<hr>
+<h2><a name="squangle">How to work around too long C++ symbol names?
+(<tt>-fsquangle</tt>)</a></h2>
+
+<p>If the standard assembler of your platform can't cope with the
+large symbol names that the default g++ name mangling mechanism
+produces, your best bet is to use GNU as, from the GNU binutils
+package.</p>
+
+<p>Unfortunately, GNU as does not support all platforms supported by
+egcs, so you may have to use an experimental work-around: the
+<tt>-fsquangle</tt> option, that enables compression of symbol names.</p>
+
+<p>Note that this option is still under development, and subject to
+change. Since it modifies the name mangling mechanism, you'll need to
+build libstdc++ and any other C++ libraries with this option enabled.
+Furthermore, if this option changes its behavior in the future, you'll
+have to rebuild them all again. :-(</p>
+
+<p>This option can be enabled by default by initializing
+`flag_do_squangling' with `1' in `gcc/cp/decl2.c' (it is not
+initialized by default), then rebuilding egcs and any C++ libraries.</p>
+
+<hr>
+<h2><a name="gperf">When building from CVS sources, I see 'gperf:
+invalid option -- F', even with the most current version of gperf.
+</a></h2>
+
+<p>The current version of gperf (v2.7) does not support the -F flag
+which is used when building egcs from CVS sources. You will need to
+obtain a patch for gperf and rebuild the program; this patch is available
+at <a href="ftp://egcs.cygnus.com/pub/egcs/infrastructure">
+ftp://egcs.cygnus.com/pub/egcs/infrastructure/</a></p>
+
+<p>Patches for other tools, particularly autoconf, may also be necessary
+if you're building from CVS sources. Please see the
+<a href="#generated_files">FAQ entry</a> regarding these tools to
+determine if anything else is needed.</p>
+
+<p>These patched utilities should <strong>only</strong> be required if
+you are building from CVS sources. For example, gperf is used to
+generate C code for a perfect hash function given an input file.
+Distributions of egcs already contain the generated C code, while the
+CVS sources will provide only the gperf input file. So gperf should
+only be necessary if you are building anything obtained from CVS.</p>
+
+<hr>
+<h2><a name="vtables">When building C++, the linker says my constructors, destructors or virtual tables are undefined, but I defined them</a></h2>
+
+<p>The ISO C++ Standard specifies that all virtual methods of a class
+that are not pure-virtual must be defined, but does not require any
+diagnostic for violations of this rule [class.virtual]/8. Based on
+this assumption, egcs will only emit the implicitly defined
+constructors, the assignment operator, the destructor and the virtual
+table of a class in the translation unit that defines its first such
+non-inline method.</p>
+
+<p>Therefore, if you fail to define this particular method, the linker
+may complain about the lack of definitions for apparently unrelated
+symbols. Unfortunately, in order to improve this error message, it
+might be necessary to change the linker, and this can't always be
+done.</p>
+
+<p>The solution is to ensure that all virtual methods that are not
+pure are defined. Note that a destructor must be defined even if it
+is declared pure-virtual [class.dtor]/7.</p>
+
+<hr>
+<h2><a name="libstdc++">What is libstdc++-v3 and how can I use it with g++?</a></h2>
+
+<p>From the <a href="http://sourceware.cygnus.com/libstdc++/faq/">libstdc++-FAQ</a>: "The EGCS Standard C++ Library v3, or libstdc++-2.90.x, is an ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D."</p>
+
+<p>At the moment the libstdc++-v3 is no "drop in replacement" for GCC's libstdc++. The best way to use it is as follows:</p>
+<ol>
+ <li>Build and install GCC</li>
+ <li>Build and install libstdc++-v3</li>
+ <li>Use compiler flags to use the new libstdc++</li>
+</ol>
+<p>Please note that the libstdc++-v3 is not yet complete and should only be used by experienced programmers.</p>
+
+<p>For more information please refer to the <a href="http://sourceware.cygnus.com/libstdc++/">libstdc++-v3 homepage</a></p>
+
+<hr>
+
+<p><a href="index.html">Return to the GCC home page</a></p>
+<p><i>Last modified: August 15, 1999</i></p>
+
+</body>
+</html>
diff --git a/gnu/egcs/gcc/BUGS b/gnu/egcs/gcc/BUGS
index e628a6467ed..2d875a092ef 100644
--- a/gnu/egcs/gcc/BUGS
+++ b/gnu/egcs/gcc/BUGS
@@ -1,4 +1,4 @@
-If you think you may have found a bug in GNU CC, please
+If you think you may have found a bug in GCC, please
read the Bugs section of the GCC manual for advice on
(1) how to tell when to report a bug,
@@ -22,6 +22,6 @@ a like manner. (Standalone Info is part of the Texinfo distribution.)
(3) By hand. Search for the chapter "Reporting Bugs" in gcc.texi, or
cat /usr/local/info/gcc* | more "+/^File: gcc.info, Node: Bugs,"
-You may also want to take a look at the EGCS FAQ, in which there are
+You may also want to take a look at the GCC FAQ, in which there are
additional instructions for submitting bug reports:
- http://egcs.cygnus.com/faq.html#bugreport
+ http://www.gnu.org/software/gcc/faq.html#bugreport
diff --git a/gnu/egcs/gcc/README b/gnu/egcs/gcc/README
index bf233151172..a12bf759463 100644
--- a/gnu/egcs/gcc/README
+++ b/gnu/egcs/gcc/README
@@ -1,8 +1,8 @@
-This directory contains the gcc version 2.95 release of the GNU C
-compiler. It includes all of the support for compiling C++ and
-Objective C, including a run-time library for Objective C.
+This directory contains the GNU Compiler Collection (GCC) version 2.95.
+It includes all of the support for compiling C, C++, Objective C, Fortran,
+Java, and Chill.
-The GNU C compiler is free software. See the file COPYING for copying
+The GNU Compiler Collection is free software. See the file COPYING for copying
permission.
See the file gcc.texi (together with other files that it includes) for
diff --git a/gnu/egcs/gcc/config/m68k/m68k.md b/gnu/egcs/gcc/config/m68k/m68k.md
index a8dac721d99..59a509cadaa 100644
--- a/gnu/egcs/gcc/config/m68k/m68k.md
+++ b/gnu/egcs/gcc/config/m68k/m68k.md
@@ -3599,7 +3599,7 @@
[(set (match_operand:DI 0 "general_operand" "=o,d")
(and:DI (match_operand:DI 1 "general_operand" "%0,0")
(match_operand:DI 2 "general_operand" "dn,don")))]
- ""
+ "!TARGET_5200"
"*
{
CC_STATUS_INIT;
@@ -3959,7 +3959,7 @@
[(set (match_operand:DI 0 "general_operand" "=od")
(xor:DI (match_operand:DI 1 "general_operand" "%0")
(match_operand:DI 2 "general_operand" "dn")))]
- ""
+ "!TARGET_5200"
"*
{
CC_STATUS_INIT;
diff --git a/gnu/egcs/gcc/config/m68k/mot3300-crt0.S b/gnu/egcs/gcc/config/m68k/mot3300-crt0.S
index 31dc26618d7..489261421b1 100644
--- a/gnu/egcs/gcc/config/m68k/mot3300-crt0.S
+++ b/gnu/egcs/gcc/config/m68k/mot3300-crt0.S
@@ -93,6 +93,6 @@ __stop_monitor:
COMM splimit%,4
COMM environ,4
- IDENT ("$Id: mot3300-crt0.S,v 1.1.1.1 1999/05/26 13:35:41 espie Exp $")
+ IDENT ("$Id: mot3300-crt0.S,v 1.1.1.2 1999/08/23 20:30:20 espie Exp $")
IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)")
IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)")
diff --git a/gnu/egcs/gcc/config/m68k/mot3300Mcrt0.S b/gnu/egcs/gcc/config/m68k/mot3300Mcrt0.S
index 522ce66243c..0d24fbf4b66 100644
--- a/gnu/egcs/gcc/config/m68k/mot3300Mcrt0.S
+++ b/gnu/egcs/gcc/config/m68k/mot3300Mcrt0.S
@@ -137,6 +137,6 @@ LOCAL_LABEL(endofstart):
COMM environ,4
COMM _countbase,4
- IDENT ("$Id: mot3300Mcrt0.S,v 1.1.1.1 1999/05/26 13:35:41 espie Exp $")
+ IDENT ("$Id: mot3300Mcrt0.S,v 1.1.1.2 1999/08/23 20:30:20 espie Exp $")
IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)")
IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)")
diff --git a/gnu/egcs/gcc/config/m88k/dgux.h b/gnu/egcs/gcc/config/m88k/dgux.h
index 8c9e9b04936..de5755d4570 100644
--- a/gnu/egcs/gcc/config/m88k/dgux.h
+++ b/gnu/egcs/gcc/config/m88k/dgux.h
@@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */
(TARGET_SVR4 ? DWARF_DEBUG : SDB_DEBUG)
#ifndef VERSION_INFO2
-#define VERSION_INFO2 "$Revision: 1.1.1.1 $"
+#define VERSION_INFO2 "$Revision: 1.1.1.2 $"
#endif
#ifndef NO_BUGS
#define AS_BUG_IMMEDIATE_LABEL
diff --git a/gnu/egcs/gcc/config/rs6000/rs6000.md b/gnu/egcs/gcc/config/rs6000/rs6000.md
index 085db80462d..bb23a1a32a2 100644
--- a/gnu/egcs/gcc/config/rs6000/rs6000.md
+++ b/gnu/egcs/gcc/config/rs6000/rs6000.md
@@ -931,7 +931,7 @@
(match_operand:SI 2 "reg_or_short_operand" "r,I,r,I"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r,r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{cax.|add.} %3,%1,%2
{ai.|addic.} %3,%1,%2
@@ -946,7 +946,7 @@
(match_operand:SI 2 "reg_or_short_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(plus:SI (match_dup 1)
(match_dup 2)))
@@ -963,7 +963,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
{cax.|add.} %0,%1,%2
{ai.|addic.} %0,%1,%2
@@ -979,7 +979,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "")
(plus:SI (match_dup 1) (match_dup 2)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(plus:SI (match_dup 1)
(match_dup 2)))
@@ -1022,7 +1022,7 @@
(compare:CC (not:SI (match_operand:SI 1 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 2 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
nor. %2,%1,%1
#"
@@ -1034,7 +1034,7 @@
(compare:CC (not:SI (match_operand:SI 1 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 2 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 2)
(not:SI (match_dup 1)))
(set (match_dup 0)
@@ -1048,7 +1048,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(not:SI (match_dup 1)))]
- ""
+ "! TARGET_POWERPC64"
"@
nor. %0,%1,%1
#"
@@ -1061,7 +1061,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(not:SI (match_dup 1)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(not:SI (match_dup 1)))
(set (match_dup 2)
@@ -1104,7 +1104,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- "TARGET_POWERPC"
+ "TARGET_POWERPC && ! TARGET_POWERPC64"
"@
subf. %3,%2,%1
#"
@@ -1117,7 +1117,7 @@
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(minus:SI (match_dup 1)
(match_dup 2)))
@@ -1148,7 +1148,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(minus:SI (match_dup 1)
(match_dup 2)))]
- "TARGET_POWERPC"
+ "TARGET_POWERPC && ! TARGET_POWERPC64"
"@
subf. %0,%2,%1
#"
@@ -1163,7 +1163,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "")
(minus:SI (match_dup 1)
(match_dup 2)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(minus:SI (match_dup 1)
(match_dup 2)))
@@ -1324,7 +1324,7 @@
""
"
{
- if (!TARGET_POWER)
+ if (! TARGET_POWER)
{
emit_insn (gen_abssi2_nopower (operands[0], operands[1]));
DONE;
@@ -1341,7 +1341,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
(abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0")))
(clobber (match_scratch:SI 2 "=&r,&r"))]
- "!TARGET_POWER"
+ "! TARGET_POWER"
"*
{
return (TARGET_POWERPC)
@@ -1354,7 +1354,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
(abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0")))
(clobber (match_scratch:SI 2 "=&r,&r"))]
- "!TARGET_POWER && reload_completed"
+ "! TARGET_POWER && reload_completed"
[(set (match_dup 2) (ashiftrt:SI (match_dup 1) (const_int 31)))
(set (match_dup 0) (xor:SI (match_dup 2) (match_dup 1)))
(set (match_dup 0) (minus:SI (match_dup 0) (match_dup 2)))]
@@ -1370,7 +1370,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
(neg:SI (abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0"))))
(clobber (match_scratch:SI 2 "=&r,&r"))]
- "!TARGET_POWER"
+ "! TARGET_POWER"
"*
{
return (TARGET_POWERPC)
@@ -1383,7 +1383,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
(neg:SI (abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0"))))
(clobber (match_scratch:SI 2 "=&r,&r"))]
- "!TARGET_POWER && reload_completed"
+ "! TARGET_POWER && reload_completed"
[(set (match_dup 2) (ashiftrt:SI (match_dup 1) (const_int 31)))
(set (match_dup 0) (xor:SI (match_dup 2) (match_dup 1)))
(set (match_dup 0) (minus:SI (match_dup 2) (match_dup 0)))]
@@ -1400,7 +1400,7 @@
(compare:CC (neg:SI (match_operand:SI 1 "gpc_reg_operand" "r"))
(const_int 0)))
(clobber (match_scratch:SI 2 "=r"))]
- ""
+ "! TARGET_POWERPC64"
"neg. %2,%1"
[(set_attr "type" "compare")])
@@ -1410,7 +1410,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(neg:SI (match_dup 1)))]
- ""
+ "! TARGET_POWERPC64"
"neg. %0,%1"
[(set_attr "type" "compare")])
@@ -1874,7 +1874,7 @@
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r,r,r,r,r,r,r"))
(clobber (match_scratch:CC 4 "=X,X,X,X,X,x,x,X"))]
- ""
+ "! TARGET_POWERPC64"
"@
and. %3,%1,%2
{andil.|andi.} %3,%1,%b2
@@ -1894,7 +1894,7 @@
(const_int 0)))
(clobber (match_scratch:SI 3 ""))
(clobber (match_scratch:CC 4 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(parallel [(set (match_dup 3)
(and:SI (match_dup 1)
(match_dup 2)))
@@ -1913,7 +1913,7 @@
(and:SI (match_dup 1)
(match_dup 2)))
(clobber (match_scratch:CC 4 "=X,X,X,X,X,x,x,X"))]
- ""
+ "! TARGET_POWERPC64"
"@
and. %0,%1,%2
{andil.|andi.} %0,%1,%b2
@@ -1935,7 +1935,7 @@
(and:SI (match_dup 1)
(match_dup 2)))
(clobber (match_scratch:CC 4 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(parallel [(set (match_dup 0)
(and:SI (match_dup 1)
(match_dup 2)))
@@ -1983,7 +1983,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
or. %3,%1,%2
#"
@@ -1996,7 +1996,7 @@
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(ior:SI (match_dup 1)
(match_dup 2)))
@@ -2013,7 +2013,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(ior:SI (match_dup 1)
(match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
or. %0,%1,%2
#"
@@ -2027,7 +2027,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "")
(ior:SI (match_dup 1) (match_dup 2)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(ior:SI (match_dup 1)
(match_dup 2)))
@@ -2090,7 +2090,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
xor. %3,%1,%2
#"
@@ -2103,7 +2103,7 @@
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(xor:SI (match_dup 1)
(match_dup 2)))
@@ -2120,7 +2120,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(xor:SI (match_dup 1)
(match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
xor. %0,%1,%2
#"
@@ -2134,7 +2134,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "")
(xor:SI (match_dup 1) (match_dup 2)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(xor:SI (match_dup 1)
(match_dup 2)))
@@ -2172,7 +2172,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r,r")))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
eqv. %3,%1,%2
#"
@@ -2185,7 +2185,7 @@
(match_operand:SI 2 "gpc_reg_operand" "")))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(not:SI (xor:SI (match_dup 1)
(match_dup 2))))
@@ -2201,7 +2201,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(not:SI (xor:SI (match_dup 1) (match_dup 2))))]
- ""
+ "! TARGET_POWERPC64"
"@
eqv. %0,%1,%2
#"
@@ -2216,7 +2216,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "")
(not:SI (xor:SI (match_dup 1)
(match_dup 2))))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(not:SI (xor:SI (match_dup 1)
(match_dup 2))))
@@ -2238,7 +2238,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
andc. %3,%2,%1
#"
@@ -2251,7 +2251,7 @@
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(and:SI (not:SI (match_dup 1))
(match_dup 2)))
@@ -2268,7 +2268,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(and:SI (not:SI (match_dup 1))
(match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
andc. %0,%2,%1
#"
@@ -2283,7 +2283,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "")
(and:SI (not:SI (match_dup 1))
(match_dup 2)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(and:SI (not:SI (match_dup 1))
(match_dup 2)))
@@ -2305,7 +2305,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
orc. %3,%2,%1
#"
@@ -2318,7 +2318,7 @@
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(ior:SI (not:SI (match_dup 1))
(match_dup 2)))
@@ -2334,7 +2334,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(ior:SI (not:SI (match_dup 1)) (match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
orc. %0,%2,%1
#"
@@ -2348,7 +2348,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "")
(ior:SI (not:SI (match_dup 1))
(match_dup 2)))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(ior:SI (not:SI (match_dup 1))
(match_dup 2)))
@@ -2370,7 +2370,7 @@
(not:SI (match_operand:SI 2 "gpc_reg_operand" "r,r")))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
nand. %3,%1,%2
#"
@@ -2383,7 +2383,7 @@
(not:SI (match_operand:SI 2 "gpc_reg_operand" "")))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(ior:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))
@@ -2400,7 +2400,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(ior:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))]
- ""
+ "! TARGET_POWERPC64"
"@
nand. %0,%1,%2
#"
@@ -2415,7 +2415,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "")
(ior:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(ior:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))
@@ -2437,7 +2437,7 @@
(not:SI (match_operand:SI 2 "gpc_reg_operand" "r,r")))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
nor. %3,%1,%2
#"
@@ -2450,7 +2450,7 @@
(not:SI (match_operand:SI 2 "gpc_reg_operand" "")))
(const_int 0)))
(clobber (match_scratch:SI 3 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 3)
(and:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))
@@ -2467,7 +2467,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(and:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))]
- ""
+ "! TARGET_POWERPC64"
"@
nor. %0,%1,%2
#"
@@ -2482,7 +2482,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "")
(and:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 0)
(and:SI (not:SI (match_dup 1))
(not:SI (match_dup 2))))
@@ -2594,10 +2594,10 @@
;; Rotate and shift insns, in all their variants. These support shifts,
;; field inserts and extracts, and various combinations thereof.
(define_expand "insv"
- [(set (zero_extract (match_operand 0 "gpc_reg_operand" "+r")
- (match_operand:SI 1 "const_int_operand" "i")
- (match_operand:SI 2 "const_int_operand" "i"))
- (match_operand 3 "gpc_reg_operand" "r"))]
+ [(set (zero_extract (match_operand 0 "gpc_reg_operand" "")
+ (match_operand:SI 1 "const_int_operand" "")
+ (match_operand:SI 2 "const_int_operand" ""))
+ (match_operand 3 "gpc_reg_operand" ""))]
""
"
{
@@ -2722,10 +2722,10 @@
}")
(define_expand "extzv"
- [(set (match_operand 0 "gpc_reg_operand" "=r")
- (zero_extract (match_operand 1 "gpc_reg_operand" "r")
- (match_operand:SI 2 "const_int_operand" "i")
- (match_operand:SI 3 "const_int_operand" "i")))]
+ [(set (match_operand 0 "gpc_reg_operand" "")
+ (zero_extract (match_operand 1 "gpc_reg_operand" "")
+ (match_operand:SI 2 "const_int_operand" "")
+ (match_operand:SI 3 "const_int_operand" "")))]
""
"
{
@@ -2768,7 +2768,7 @@
(match_operand:SI 3 "const_int_operand" "i"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=r"))]
- ""
+ "! TARGET_POWERPC64"
"*
{
int start = INTVAL (operands[3]) & 31;
@@ -2806,7 +2806,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(zero_extract:SI (match_dup 1) (match_dup 2) (match_dup 3)))]
- ""
+ "! TARGET_POWERPC64"
"*
{
int start = INTVAL (operands[3]) & 31;
@@ -2901,7 +2901,7 @@
(match_operand:SI 2 "reg_or_cint_operand" "ri"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r"))]
- ""
+ "! TARGET_POWERPC64"
"{rl%I2nm.|rlw%I2nm.} %3,%1,%h2,0xffffffff"
[(set_attr "type" "delayed_compare")])
@@ -2912,7 +2912,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(rotate:SI (match_dup 1) (match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"{rl%I2nm.|rlw%I2nm.} %0,%1,%h2,0xffffffff"
[(set_attr "type" "delayed_compare")])
@@ -2932,7 +2932,7 @@
(match_operand:SI 3 "mask_operand" "T"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=r"))]
- ""
+ "! TARGET_POWERPC64"
"{rl%I2nm.|rlw%I2nm.} %4,%1,%h2,%m3,%M3"
[(set_attr "type" "delayed_compare")])
@@ -2945,7 +2945,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(and:SI (rotate:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
- ""
+ "! TARGET_POWERPC64"
"{rl%I2nm.|rlw%I2nm.} %0,%1,%h2,%m3,%M3"
[(set_attr "type" "delayed_compare")])
@@ -3072,7 +3072,7 @@
(match_operand:SI 2 "reg_or_cint_operand" "ri"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=r"))]
- "! TARGET_POWER"
+ "! TARGET_POWER && ! TARGET_POWERPC64"
"{sl|slw}%I2. %3,%1,%h2"
[(set_attr "type" "delayed_compare")])
@@ -3097,7 +3097,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(ashift:SI (match_dup 1) (match_dup 2)))]
- "! TARGET_POWER"
+ "! TARGET_POWER && ! TARGET_POWERPC64"
"{sl|slw}%I2. %0,%1,%h2"
[(set_attr "type" "delayed_compare")])
@@ -3117,7 +3117,7 @@
(match_operand:SI 3 "mask_operand" "T"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=r"))]
- "includes_lshift_p (operands[2], operands[3])"
+ "! TARGET_POWERPC64 && includes_lshift_p (operands[2], operands[3])"
"{rlinm.|rlwinm.} %4,%1,%h2,%m3,%M3"
[(set_attr "type" "delayed_compare")])
@@ -3130,7 +3130,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(and:SI (ashift:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
- "includes_lshift_p (operands[2], operands[3])"
+ "! TARGET_POWERPC64 && includes_lshift_p (operands[2], operands[3])"
"{rlinm.|rlwinm.} %0,%1,%h2,%m3,%M3"
[(set_attr "type" "delayed_compare")])
@@ -3190,7 +3190,7 @@
(match_operand:SI 2 "reg_or_cint_operand" "O,ri"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=X,r"))]
- "! TARGET_POWER"
+ "! TARGET_POWER && ! TARGET_POWERPC64"
"@
mr. %1,%1
{sr|srw}%I2. %3,%1,%h2"
@@ -3218,7 +3218,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(lshiftrt:SI (match_dup 1) (match_dup 2)))]
- "! TARGET_POWER"
+ "! TARGET_POWER && ! TARGET_POWERPC64"
"@
mr. %0,%1
{sr|srw}%I2. %0,%1,%h2"
@@ -3240,7 +3240,7 @@
(match_operand:SI 3 "mask_operand" "T"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=r"))]
- "includes_rshift_p (operands[2], operands[3])"
+ "! TARGET_POWERPC64 && includes_rshift_p (operands[2], operands[3])"
"{rlinm.|rlwinm.} %4,%1,%s2,%m3,%M3"
[(set_attr "type" "delayed_compare")])
@@ -3253,7 +3253,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(and:SI (lshiftrt:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
- "includes_rshift_p (operands[2], operands[3])"
+ "! TARGET_POWERPC64 && includes_rshift_p (operands[2], operands[3])"
"{rlinm.|rlwinm.} %0,%1,%s2,%m3,%M3"
[(set_attr "type" "delayed_compare")])
@@ -3745,10 +3745,10 @@
"")
(define_expand "movsfcc"
- [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
+ [(set (match_operand:SF 0 "gpc_reg_operand" "")
(if_then_else:SF (match_operand 1 "comparison_operator" "")
- (match_operand:SF 2 "gpc_reg_operand" "f")
- (match_operand:SF 3 "gpc_reg_operand" "f")))]
+ (match_operand:SF 2 "gpc_reg_operand" "")
+ (match_operand:SF 3 "gpc_reg_operand" "")))]
"TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT"
"
{
@@ -3992,10 +3992,10 @@
"")
(define_expand "movdfcc"
- [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
+ [(set (match_operand:DF 0 "gpc_reg_operand" "")
(if_then_else:DF (match_operand 1 "comparison_operator" "")
- (match_operand:DF 2 "gpc_reg_operand" "f")
- (match_operand:DF 3 "gpc_reg_operand" "f")))]
+ (match_operand:DF 2 "gpc_reg_operand" "")
+ (match_operand:DF 3 "gpc_reg_operand" "")))]
"TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT"
"
{
@@ -5775,14 +5775,14 @@
(define_insn "elf_high"
[(set (match_operand:SI 0 "gpc_reg_operand" "=b")
(high:SI (match_operand 1 "" "")))]
- "TARGET_ELF && !TARGET_64BIT"
+ "TARGET_ELF && ! TARGET_64BIT"
"{liu|lis} %0,%1@ha")
(define_insn "elf_low"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b")
(match_operand 2 "" "")))]
- "TARGET_ELF && !TARGET_64BIT"
+ "TARGET_ELF && ! TARGET_64BIT"
"{cal|la} %0,%2@l(%1)")
;; Set up a register with a value from the GOT table
@@ -6015,7 +6015,7 @@
(compare:CC (match_operand:SI 1 "gpc_reg_operand" "r")
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))]
- ""
+ "! TARGET_POWERPC64"
"mr. %0,%1"
[(set_attr "type" "compare")])
@@ -6624,8 +6624,8 @@
#if HOST_BITS_PER_WIDE_INT == 32
operands[4] = (INTVAL (operands[1]) & 0x80000000) ? constm1_rtx : const0_rtx;
#else
- operands[4] = (HOST_WIDE_INT) INTVAL (operands[1]) >> 32;
- operands[1] = INTVAL (operands[1]) & 0xffffffff;
+ operands[4] = GEN_INT ((HOST_WIDE_INT) INTVAL (operands[1]) >> 32);
+ operands[1] = GEN_INT (INTVAL (operands[1]) & 0xffffffff);
#endif
}")
@@ -6896,7 +6896,7 @@
[(set (match_operand:TI 0 "reg_or_mem_operand" "=m,????r,????r")
(match_operand:TI 1 "reg_or_mem_operand" "r,r,m"))
(clobber (match_scratch:SI 2 "=X,X,X"))]
- "TARGET_STRING && !TARGET_POWER && ! TARGET_POWERPC64
+ "TARGET_STRING && ! TARGET_POWER && ! TARGET_POWERPC64
&& (gpc_reg_operand (operands[0], TImode) || gpc_reg_operand (operands[1], TImode))"
"*
{
@@ -7126,7 +7126,7 @@
[(set (mem:SI (match_operand:SI 1 "gpc_reg_operand" "b"))
(match_operand:SI 2 "gpc_reg_operand" "r"))
(clobber (match_scratch:SI 3 "X"))])]
- "TARGET_STRING && !TARGET_POWER"
+ "TARGET_STRING && ! TARGET_POWER"
"{stsi|stswi} %2,%1,%O0"
[(set_attr "type" "store")])
@@ -7207,7 +7207,7 @@
(clobber (reg:SI 11))
(clobber (reg:SI 12))
(clobber (match_scratch:SI 5 "X"))]
- "TARGET_STRING && !TARGET_POWER
+ "TARGET_STRING && ! TARGET_POWER
&& ((INTVAL (operands[2]) > 24 && INTVAL (operands[2]) < 32) || INTVAL (operands[2]) == 0)
&& (REGNO (operands[0]) < 5 || REGNO (operands[0]) > 12)
&& (REGNO (operands[1]) < 5 || REGNO (operands[1]) > 12)
@@ -7266,7 +7266,7 @@
(clobber (reg:SI 11))
(clobber (reg:SI 12))
(clobber (match_scratch:SI 5 "X"))]
- "TARGET_STRING && !TARGET_POWER
+ "TARGET_STRING && ! TARGET_POWER
&& INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 32
&& (REGNO (operands[0]) < 7 || REGNO (operands[0]) > 12)
&& (REGNO (operands[1]) < 7 || REGNO (operands[1]) > 12)
@@ -7319,7 +7319,7 @@
(clobber (reg:SI 11))
(clobber (reg:SI 12))
(clobber (match_scratch:SI 5 "X"))]
- "TARGET_STRING && !TARGET_POWER
+ "TARGET_STRING && ! TARGET_POWER
&& INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16
&& (REGNO (operands[0]) < 9 || REGNO (operands[0]) > 12)
&& (REGNO (operands[1]) < 9 || REGNO (operands[1]) > 12)
@@ -7336,7 +7336,7 @@
(use (match_operand 3 "" ""))
(clobber (match_scratch:DI 4 ""))
(clobber (match_scratch:SI 5 ""))])]
- "TARGET_STRING && !TARGET_64BIT"
+ "TARGET_STRING && ! TARGET_64BIT"
"")
(define_insn ""
@@ -7346,7 +7346,7 @@
(use (match_operand:SI 3 "immediate_operand" "i"))
(clobber (match_scratch:DI 4 "=&r"))
(clobber (match_scratch:SI 5 "=q"))]
- "TARGET_STRING && TARGET_POWER && !TARGET_64BIT
+ "TARGET_STRING && TARGET_POWER && ! TARGET_64BIT
&& INTVAL (operands[2]) > 4 && INTVAL (operands[2]) <= 8"
"{lsi|lswi} %4,%1,%2\;{stsi|stswi} %4,%0,%2"
[(set_attr "type" "load")
@@ -7359,7 +7359,7 @@
(use (match_operand:SI 3 "immediate_operand" "i"))
(clobber (match_scratch:DI 4 "=&r"))
(clobber (match_scratch:SI 5 "X"))]
- "TARGET_STRING && !TARGET_POWER && !TARGET_64BIT
+ "TARGET_STRING && ! TARGET_POWER && ! TARGET_64BIT
&& INTVAL (operands[2]) > 4 && INTVAL (operands[2]) <= 8"
"{lsi|lswi} %4,%1,%2\;{stsi|stswi} %4,%0,%2"
[(set_attr "type" "load")
@@ -7396,7 +7396,7 @@
(use (match_operand:SI 3 "immediate_operand" "i"))
(clobber (match_scratch:SI 4 "=&r"))
(clobber (match_scratch:SI 5 "X"))]
- "TARGET_STRING && !TARGET_POWER
+ "TARGET_STRING && ! TARGET_POWER
&& INTVAL (operands[2]) > 0 && INTVAL (operands[2]) <= 4"
"{lsi|lswi} %4,%1,%2\;{stsi|stswi} %4,%0,%2"
[(set_attr "type" "load")
@@ -8881,7 +8881,7 @@
(const_int 0)))
(set (match_operand:SI 3 "gpc_reg_operand" "=r")
(match_op_dup 1 [(match_dup 2) (const_int 0)]))]
- ""
+ "! TARGET_POWERPC64"
"%D1mfcr %3\;{rlinm.|rlwinm.} %3,%3,%J1,1"
[(set_attr "type" "delayed_compare")
(set_attr "length" "12")])
@@ -10124,17 +10124,29 @@
"{br|blr}"
[(set_attr "type" "jmpreg")])
-(define_insn "indirect_jump"
- [(set (pc) (match_operand:SI 0 "register_operand" "c,l"))]
+(define_expand "indirect_jump"
+ [(set (pc) (match_operand 0 "register_operand" ""))]
""
+ "
+{
+ if (TARGET_32BIT)
+ emit_jump_insn (gen_indirect_jumpsi (operands[0]));
+ else
+ emit_jump_insn (gen_indirect_jumpdi (operands[0]));
+ DONE;
+}")
+
+(define_insn "indirect_jumpsi"
+ [(set (pc) (match_operand:SI 0 "register_operand" "c,l"))]
+ "TARGET_32BIT"
"@
bctr
{br|blr}"
[(set_attr "type" "jmpreg")])
-(define_insn ""
+(define_insn "indirect_jumpdi"
[(set (pc) (match_operand:DI 0 "register_operand" "c,l"))]
- "TARGET_POWERPC64"
+ "TARGET_64BIT"
"@
bctr
{br|blr}"
@@ -10160,7 +10172,7 @@
(match_dup 2)))
(parallel [(set (pc) (match_dup 3))
(use (label_ref (match_operand 1 "" "")))])]
- ""
+ "TARGET_32BIT"
"
{ operands[0] = force_reg (SImode, operands[0]);
operands[2] = force_reg (SImode, gen_rtx_LABEL_REF (VOIDmode, operands[1]));
@@ -10173,7 +10185,7 @@
(match_dup 2)))
(parallel [(set (pc) (match_dup 3))
(use (label_ref (match_operand 1 "" "")))])]
- ""
+ "TARGET_64BIT"
"
{ operands[0] = force_reg (DImode, operands[0]);
operands[2] = force_reg (DImode, gen_rtx_LABEL_REF (VOIDmode, operands[1]));
@@ -10184,7 +10196,7 @@
[(set (pc)
(match_operand:SI 0 "register_operand" "c,l"))
(use (label_ref (match_operand 1 "" "")))]
- ""
+ "TARGET_32BIT"
"@
bctr
{br|blr}"
@@ -10194,7 +10206,7 @@
[(set (pc)
(match_operand:DI 0 "register_operand" "c,l"))
(use (label_ref (match_operand 1 "" "")))]
- "TARGET_POWERPC64"
+ "TARGET_64BIT"
"@
bctr
{br|blr}"
@@ -10209,6 +10221,19 @@
;; so loop.c knows what to generate.
(define_expand "decrement_and_branch_on_count"
+ [(use (match_operand 0 "register_operand" ""))
+ (use (label_ref (match_operand 1 "" "")))]
+ ""
+ "
+{
+ if (TARGET_POWERPC64)
+ emit_jump_insn (gen_ctrdi (operands[0], operands[1]));
+ else
+ emit_jump_insn (gen_ctrsi (operands[0], operands[1]));
+ DONE;
+}")
+
+(define_expand "ctrsi"
[(parallel [(set (pc) (if_then_else (ne (match_operand:SI 0 "register_operand" "")
(const_int 1))
(label_ref (match_operand 1 "" ""))
@@ -10218,16 +10243,29 @@
(const_int -1)))
(clobber (match_scratch:CC 2 ""))
(clobber (match_scratch:SI 3 ""))])]
- ""
+ "! TARGET_POWERPC64"
+ "")
+
+(define_expand "ctrdi"
+ [(parallel [(set (pc) (if_then_else (ne (match_operand:DI 0 "register_operand" "")
+ (const_int 1))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:DI (match_dup 0)
+ (const_int -1)))
+ (clobber (match_scratch:CC 2 ""))
+ (clobber (match_scratch:DI 3 ""))])]
+ "TARGET_POWERPC64"
"")
;; We need to be able to do this for any operand, including MEM, or we
;; will cause reload to blow up since we don't allow output reloads on
;; JUMP_INSNs.
-;; In order that the length attribute is calculated correctly, the
+;; For the length attribute to be calculated correctly, the
;; label MUST be operand 0.
-(define_insn ""
+(define_insn "*ctrsi_internal1"
[(set (pc)
(if_then_else (ne (match_operand:SI 1 "register_operand" "c,*r,*r")
(const_int 1))
@@ -10238,7 +10276,7 @@
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x"))
(clobber (match_scratch:SI 4 "=X,X,r"))]
- ""
+ "! TARGET_POWERPC64"
"*
{
if (which_alternative != 0)
@@ -10251,7 +10289,7 @@
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
-(define_insn ""
+(define_insn "*ctrsi_internal2"
[(set (pc)
(if_then_else (ne (match_operand:SI 1 "register_operand" "c,*r,*r")
(const_int 1))
@@ -10262,7 +10300,55 @@
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x"))
(clobber (match_scratch:SI 4 "=X,X,r"))]
- ""
+ "! TARGET_POWERPC64"
+ "*
+{
+ if (which_alternative != 0)
+ return \"#\";
+ else if (get_attr_length (insn) == 8)
+ return \"bdz %l0\";
+ else
+ return \"{bdn|bdnz} %$+8\;b %l0\";
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "*,12,16")])
+
+(define_insn "*ctrdi_internal1"
+ [(set (pc)
+ (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r")
+ (const_int 1))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))
+ (set (match_operand:DI 2 "register_operand" "=1,*r,m*q*c*l")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 "=X,&x,&x"))
+ (clobber (match_scratch:DI 4 "=X,X,r"))]
+ "TARGET_POWERPC64"
+ "*
+{
+ if (which_alternative != 0)
+ return \"#\";
+ else if (get_attr_length (insn) == 8)
+ return \"{bdn|bdnz} %l0\";
+ else
+ return \"bdz %$+8\;b %l0\";
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "*,12,16")])
+
+(define_insn "*ctrdi_internal2"
+ [(set (pc)
+ (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r")
+ (const_int 1))
+ (pc)
+ (label_ref (match_operand 0 "" ""))))
+ (set (match_operand:DI 2 "register_operand" "=1,*r,m*q*c*l")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 "=X,&x,&x"))
+ (clobber (match_scratch:DI 4 "=X,X,r"))]
+ "TARGET_POWERPC64"
"*
{
if (which_alternative != 0)
@@ -10276,7 +10362,8 @@
(set_attr "length" "*,12,16")])
;; Similar, but we can use GE since we have a REG_NONNEG.
-(define_insn ""
+
+(define_insn "*ctrsi_internal3"
[(set (pc)
(if_then_else (ge (match_operand:SI 1 "register_operand" "c,*r,*r")
(const_int 0))
@@ -10287,7 +10374,7 @@
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&X"))
(clobber (match_scratch:SI 4 "=X,X,r"))]
- "find_reg_note (insn, REG_NONNEG, 0)"
+ "! TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
"*
{
if (which_alternative != 0)
@@ -10300,7 +10387,7 @@
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
-(define_insn ""
+(define_insn "*ctrsi_internal4"
[(set (pc)
(if_then_else (ge (match_operand:SI 1 "register_operand" "c,*r,*r")
(const_int 0))
@@ -10311,7 +10398,7 @@
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&X"))
(clobber (match_scratch:SI 4 "=X,X,r"))]
- "find_reg_note (insn, REG_NONNEG, 0)"
+ "! TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
"*
{
if (which_alternative != 0)
@@ -10324,7 +10411,57 @@
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
-(define_insn ""
+(define_insn "*ctrdi_internal3"
+ [(set (pc)
+ (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r")
+ (const_int 0))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))
+ (set (match_operand:DI 2 "register_operand" "=1,*r,m*q*c*l")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 "=X,&x,&X"))
+ (clobber (match_scratch:DI 4 "=X,X,r"))]
+ "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
+ "*
+{
+ if (which_alternative != 0)
+ return \"#\";
+ else if (get_attr_length (insn) == 8)
+ return \"{bdn|bdnz} %l0\";
+ else
+ return \"bdz %$+8\;b %l0\";
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "*,12,16")])
+
+(define_insn "*ctrdi_internal4"
+ [(set (pc)
+ (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r")
+ (const_int 0))
+ (pc)
+ (label_ref (match_operand 0 "" ""))))
+ (set (match_operand:DI 2 "register_operand" "=1,*r,m*q*c*l")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 "=X,&x,&X"))
+ (clobber (match_scratch:DI 4 "=X,X,r"))]
+ "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
+ "*
+{
+ if (which_alternative != 0)
+ return \"#\";
+ else if (get_attr_length (insn) == 8)
+ return \"bdz %l0\";
+ else
+ return \"{bdn|bdnz} %$+8\;b %l0\";
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "*,12,16")])
+
+;; Similar but use EQ
+
+(define_insn "*ctrsi_internal5"
[(set (pc)
(if_then_else (eq (match_operand:SI 1 "register_operand" "c,*r,*r")
(const_int 1))
@@ -10335,7 +10472,7 @@
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x"))
(clobber (match_scratch:SI 4 "=X,X,r"))]
- ""
+ "! TARGET_POWERPC64"
"*
{
if (which_alternative != 0)
@@ -10348,7 +10485,7 @@
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
-(define_insn ""
+(define_insn "*ctrsi_internal6"
[(set (pc)
(if_then_else (eq (match_operand:SI 1 "register_operand" "c,*r,*r")
(const_int 1))
@@ -10359,7 +10496,55 @@
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x"))
(clobber (match_scratch:SI 4 "=X,X,r"))]
- ""
+ "! TARGET_POWERPC64"
+ "*
+{
+ if (which_alternative != 0)
+ return \"#\";
+ else if (get_attr_length (insn) == 8)
+ return \"{bdn|bdnz} %l0\";
+ else
+ return \"bdz %$+8\;b %l0\";
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "*,12,16")])
+
+(define_insn "*ctrdi_internal5"
+ [(set (pc)
+ (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r")
+ (const_int 1))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))
+ (set (match_operand:DI 2 "register_operand" "=1,*r,m*q*c*l")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 "=X,&x,&x"))
+ (clobber (match_scratch:DI 4 "=X,X,r"))]
+ "TARGET_POWERPC64"
+ "*
+{
+ if (which_alternative != 0)
+ return \"#\";
+ else if (get_attr_length (insn) == 8)
+ return \"bdz %l0\";
+ else
+ return \"{bdn|bdnz} %$+8\;b %l0\";
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "*,12,16")])
+
+(define_insn "*ctrdi_internal6"
+ [(set (pc)
+ (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r")
+ (const_int 1))
+ (pc)
+ (label_ref (match_operand 0 "" ""))))
+ (set (match_operand:DI 2 "register_operand" "=1,*r,m*q*c*l")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 "=X,&x,&x"))
+ (clobber (match_scratch:DI 4 "=X,X,r"))]
+ "TARGET_POWERPC64"
"*
{
if (which_alternative != 0)
@@ -10372,6 +10557,8 @@
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
+;; Now the splitters if we could not allocate the CTR register
+
(define_split
[(set (pc)
(if_then_else (match_operator 2 "comparison_operator"
@@ -10384,7 +10571,7 @@
(const_int -1)))
(clobber (match_scratch:CC 3 ""))
(clobber (match_scratch:SI 4 ""))]
- "reload_completed"
+ "! TARGET_POWERPC64 && reload_completed"
[(parallel [(set (match_dup 3)
(compare:CC (plus:SI (match_dup 1)
(const_int -1))
@@ -10410,7 +10597,8 @@
(plus:SI (match_dup 1) (const_int -1)))
(clobber (match_scratch:CC 3 ""))
(clobber (match_scratch:SI 4 ""))]
- "reload_completed && ! gpc_reg_operand (operands[0], SImode)"
+ "! TARGET_POWERPC64 && reload_completed
+ && ! gpc_reg_operand (operands[0], SImode)"
[(parallel [(set (match_dup 3)
(compare:CC (plus:SI (match_dup 1)
(const_int -1))
@@ -10426,6 +10614,61 @@
"
{ operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3],
const0_rtx); }")
+(define_split
+ [(set (pc)
+ (if_then_else (match_operator 2 "comparison_operator"
+ [(match_operand:DI 1 "gpc_reg_operand" "")
+ (const_int 1)])
+ (match_operand 5 "" "")
+ (match_operand 6 "" "")))
+ (set (match_operand:DI 0 "gpc_reg_operand" "")
+ (plus:DI (match_dup 1)
+ (const_int -1)))
+ (clobber (match_scratch:CC 3 ""))
+ (clobber (match_scratch:DI 4 ""))]
+ "TARGET_POWERPC64 && reload_completed"
+ [(parallel [(set (match_dup 3)
+ (compare:CC (plus:DI (match_dup 1)
+ (const_int -1))
+ (const_int 0)))
+ (set (match_dup 0)
+ (plus:DI (match_dup 1)
+ (const_int -1)))])
+ (set (pc) (if_then_else (match_dup 7)
+ (match_dup 5)
+ (match_dup 6)))]
+ "
+{ operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3],
+ const0_rtx); }")
+
+(define_split
+ [(set (pc)
+ (if_then_else (match_operator 2 "comparison_operator"
+ [(match_operand:DI 1 "gpc_reg_operand" "")
+ (const_int 1)])
+ (match_operand 5 "" "")
+ (match_operand 6 "" "")))
+ (set (match_operand:DI 0 "general_operand" "")
+ (plus:DI (match_dup 1) (const_int -1)))
+ (clobber (match_scratch:CC 3 ""))
+ (clobber (match_scratch:DI 4 ""))]
+ "TARGET_POWERPC64 && reload_completed
+ && ! gpc_reg_operand (operands[0], DImode)"
+ [(parallel [(set (match_dup 3)
+ (compare:CC (plus:DI (match_dup 1)
+ (const_int -1))
+ (const_int 0)))
+ (set (match_dup 4)
+ (plus:DI (match_dup 1)
+ (const_int -1)))])
+ (set (match_dup 0)
+ (match_dup 4))
+ (set (pc) (if_then_else (match_dup 7)
+ (match_dup 5)
+ (match_dup 6)))]
+ "
+{ operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3],
+ const0_rtx); }")
(define_insn "trap"
[(trap_if (const_int 1) (const_int 0))]
diff --git a/gnu/egcs/gcc/config/sh/lib1funcs.asm b/gnu/egcs/gcc/config/sh/lib1funcs.asm
index bf9ea9a3efa..4db8ddc6c43 100644
--- a/gnu/egcs/gcc/config/sh/lib1funcs.asm
+++ b/gnu/egcs/gcc/config/sh/lib1funcs.asm
@@ -707,7 +707,7 @@ ___movstrSI4:
mov.l r0,@(0,r4)
___movstrSI0:
rts
- or r0,r0,r0
+ nop
.align 4
@@ -855,9 +855,9 @@ ___mulsi3:
sts macl,r0
hiset: sts macl,r0 ! r0 = bb*dd
- mulu r2,r5 | brewing macl = aa*dd
+ mulu r2,r5 ! brewing macl = aa*dd
sts macl,r1
- mulu r3,r4 | brewing macl = cc*bb
+ mulu r3,r4 ! brewing macl = cc*bb
sts macl,r2
add r1,r2
shll16 r2
diff --git a/gnu/egcs/gcc/config/sh/sh.c b/gnu/egcs/gcc/config/sh/sh.c
index 41c5ac5ecac..feca33e1b22 100644
--- a/gnu/egcs/gcc/config/sh/sh.c
+++ b/gnu/egcs/gcc/config/sh/sh.c
@@ -2641,7 +2641,7 @@ fixup_addr_diff_vecs (first)
for (insn = first; insn; insn = NEXT_INSN (insn))
{
- rtx vec_lab, pat, prev, prevpat, x;
+ rtx vec_lab, pat, prev, prevpat, x, braf_label;
if (GET_CODE (insn) != JUMP_INSN
|| GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC)
@@ -2664,10 +2664,15 @@ fixup_addr_diff_vecs (first)
if (GET_CODE (x) == LABEL_REF && XEXP (x, 0) == vec_lab)
break;
}
+
+ /* Emit the reference label of the braf where it belongs, right after
+ the casesi_jump_2 (i.e. braf). */
+ braf_label = XEXP (XEXP (SET_SRC (XVECEXP (prevpat, 0, 0)), 1), 0);
+ emit_label_after (braf_label, prev);
+
/* Fix up the ADDR_DIF_VEC to be relative
to the reference address of the braf. */
- XEXP (XEXP (pat, 0), 0)
- = XEXP (XEXP (SET_SRC (XVECEXP (prevpat, 0, 0)), 1), 0);
+ XEXP (XEXP (pat, 0), 0) = braf_label;
}
}
@@ -4304,29 +4309,6 @@ fp_one_operand (op)
}
int
-braf_label_ref_operand(op, mode)
- rtx op;
- enum machine_mode mode;
-{
- rtx prev;
-
- if (GET_CODE (op) != LABEL_REF)
- return 0;
- prev = prev_real_insn (XEXP (op, 0));
- if (GET_CODE (prev) != JUMP_INSN)
- return 0;
- prev = PATTERN (prev);
- if (GET_CODE (prev) != PARALLEL || XVECLEN (prev, 0) != 2)
- return 0;
- prev = XVECEXP (prev, 0, 0);
- if (GET_CODE (prev) != SET)
- return 0;
- prev = SET_SRC (prev);
- if (GET_CODE (prev) != PLUS || XEXP (prev, 1) != op)
- return 0;
-}
-
-int
tertiary_reload_operand (op, mode)
rtx op;
enum machine_mode mode;
diff --git a/gnu/egcs/gcc/config/sh/sh.h b/gnu/egcs/gcc/config/sh/sh.h
index 2f2a000b89d..40b79363b6f 100644
--- a/gnu/egcs/gcc/config/sh/sh.h
+++ b/gnu/egcs/gcc/config/sh/sh.h
@@ -2120,7 +2120,6 @@ extern struct rtx_def *get_fpscr_rtx ();
{"arith_reg_operand", {SUBREG, REG}}, \
{"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT}}, \
{"binary_float_operator", {PLUS, MULT}}, \
- {"braf_label_ref_operand", {LABEL_REF}}, \
{"commutative_float_operator", {PLUS, MULT}}, \
{"fp_arith_reg_operand", {SUBREG, REG}}, \
{"fp_extended_operand", {SUBREG, REG, FLOAT_EXTEND}}, \
diff --git a/gnu/egcs/gcc/config/sh/sh.md b/gnu/egcs/gcc/config/sh/sh.md
index 04992a18773..e4648bb325f 100644
--- a/gnu/egcs/gcc/config/sh/sh.md
+++ b/gnu/egcs/gcc/config/sh/sh.md
@@ -3203,19 +3203,13 @@
;; For all later processors.
(define_insn "casesi_jump_2"
[(set (pc) (plus:SI (match_operand:SI 0 "register_operand" "r")
- (match_operand 1 "braf_label_ref_operand" "")))
+ (label_ref (match_operand 1 "" ""))))
(use (label_ref (match_operand 2 "" "")))]
- ""
+ "! INSN_UID (operands[1]) || prev_real_insn (operands[1]) == insn"
"braf %0%#"
[(set_attr "needs_delay_slot" "yes")
(set_attr "type" "jump_ind")])
-(define_insn "dummy_jump"
- [(set (pc) (const_int 0))]
- ""
- ""
- [(set_attr "length" "0")])
-
;; Call subroutine returning any type.
;; ??? This probably doesn't work.
@@ -3302,20 +3296,9 @@
reg));
emit_insn (gen_casesi_worker_0 (reg2, reg, operands[3]));
if (TARGET_SH2)
- {
- rtx lab = gen_label_rtx ();
- emit_jump_insn (gen_casesi_jump_2 (reg2,
- gen_rtx (LABEL_REF, VOIDmode, lab),
- operands[3]));
- emit_label (lab);
- /* Put a fake jump after the label, lest some optimization might
- delete the barrier and LAB. */
- emit_jump_insn (gen_dummy_jump ());
- }
+ emit_jump_insn (gen_casesi_jump_2 (reg2, gen_label_rtx (), operands[3]));
else
- {
- emit_jump_insn (gen_casesi_jump_1 (reg2, operands[3]));
- }
+ emit_jump_insn (gen_casesi_jump_1 (reg2, operands[3]));
/* For SH2 and newer, the ADDR_DIFF_VEC is not actually relative to
operands[3], but to lab. We will fix this up in
machine_dependent_reorg. */
diff --git a/gnu/egcs/gcc/cp/ChangeLog b/gnu/egcs/gcc/cp/ChangeLog
index a52af365e48..82d1a8bc239 100644
--- a/gnu/egcs/gcc/cp/ChangeLog
+++ b/gnu/egcs/gcc/cp/ChangeLog
@@ -1,3 +1,89 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+1999-08-12 Mark Mitchell <mark@codesourcery.com>
+
+ * decl2.c (lang_decode_option): Deprecate signatures.
+
+1999-08-11 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de>
+
+ * lex.c (do_identifier): If we find a hidden type after a global
+ was selected already, continue using the global.
+
+1999-08-10 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de>
+
+ * decl2.c (set_decl_namespace): Do not complain about non-matching
+ decls if processing a template.
+
+1999-08-09 Jason Merrill <jason@yorick.cygnus.com>
+
+ * parse.y (function_try_block): Call end_protect_partials
+ before expand_start_all_catch.
+
+1999-08-06 Jason Merrill <jason@yorick.cygnus.com>
+
+ * pt.c (maybe_get_template_decl_from_type_decl): Make sure that
+ we're looking at a class.
+
+ * decl.c (lookup_name_real): Set the complain flag if we're
+ looking for a namespace member.
+
+ * decl.c (pushdecl): Only give an error for shadowing a parm
+ from *this* function.
+
+ * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only
+ build_expr_from_tree on the args of a TEMPLATE_ID_EXPR.
+
+ * class.c (mark_overriders): Fix order of args to overrides.
+ (warn_hidden): Likewise. Fix for having virtual and non-virtual
+ functions with the same name.
+
+ * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro.
+ * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for
+ virtual functions and MI. Simplify.
+
+ * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL
+ from op new to warning.
+
+ * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style
+ casts in system headers or extern "C" blocks.
+
+ * pt.c (do_decl_instantiation): Downgrade duplicate instantiation
+ errors to pedwarn.
+
+ * error.c (dump_type_real): Handle TREE_LIST again.
+
+ * typeck.c (comp_target_parms): Don't complain about
+ converting from () to (...) if !flag_strict_prototype.
+
+ * class.c (instantiate_type): Downgrade errors for object-dependent
+ memfn refs to pedwarn.
+
+1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * pt.c (tsubst): Use build_index_type to build in-template array
+ index type. Fixes g++.oliva/dwarf1.C.
+ * decl.c (grokdeclarator): Likewise, just for consistency, as it
+ doesn't seem to trigger the bug without it.
+
+Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
+
+ * typeck2.c: Update URLs and mail addresses.
+
+1999-08-03 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * decl.c (start_decl): Set attributes before duplicate_decls call.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com)
+
+ * g++FAQ.texi: Deleted per Joe Buck's request.
+ * Makefile.in: Corresponding changes.
+
Sat Jul 17 23:50:47 1999 Jeffrey A Law (law@cygnus.com)
* Makefile.in (INTERFACE): Bump to 2.
diff --git a/gnu/egcs/gcc/cp/class.c b/gnu/egcs/gcc/cp/class.c
index 31dcb67126f..400c67de41a 100644
--- a/gnu/egcs/gcc/cp/class.c
+++ b/gnu/egcs/gcc/cp/class.c
@@ -2785,18 +2785,18 @@ get_basefndecls (fndecl, t)
/* Mark the functions that have been hidden with their overriders.
Since we start out with all functions already marked with a hider,
- no need to mark functions that are just hidden. */
+ no need to mark functions that are just hidden.
+
+ Subroutine of warn_hidden. */
static void
mark_overriders (fndecl, base_fndecls)
tree fndecl, base_fndecls;
{
- while (base_fndecls)
+ for (; base_fndecls; base_fndecls = TREE_CHAIN (base_fndecls))
{
- if (overrides (TREE_VALUE (base_fndecls), fndecl))
+ if (overrides (fndecl, TREE_VALUE (base_fndecls)))
TREE_PURPOSE (base_fndecls) = fndecl;
-
- base_fndecls = TREE_CHAIN (base_fndecls);
}
}
@@ -2884,8 +2884,15 @@ warn_hidden (t)
tree binfos = BINFO_BASETYPES (TYPE_BINFO (t));
int i, n_baseclasses = binfos ? TREE_VEC_LENGTH (binfos) : 0;
- fndecl = OVL_CURRENT (fns);
- if (DECL_VINDEX (fndecl) == NULL_TREE)
+ /* First see if we have any virtual functions in this batch. */
+ for (; fns; fns = OVL_NEXT (fns))
+ {
+ fndecl = OVL_CURRENT (fns);
+ if (DECL_VINDEX (fndecl))
+ break;
+ }
+
+ if (fns == NULL_TREE)
continue;
/* First we get a list of all possible functions that might be
@@ -2900,38 +2907,28 @@ warn_hidden (t)
}
fns = OVL_NEXT (fns);
- if (fns)
- fndecl = OVL_CURRENT (fns);
- else
- fndecl = NULL_TREE;
/* ...then mark up all the base functions with overriders, preferring
overriders to hiders. */
if (base_fndecls)
- while (fndecl)
+ for (; fns; fns = OVL_NEXT (fns))
{
- mark_overriders (fndecl, base_fndecls);
-
- fns = OVL_NEXT (fns);
- if (fns)
- fndecl = OVL_CURRENT (fns);
- else
- fndecl = NULL_TREE;
+ fndecl = OVL_CURRENT (fns);
+ if (DECL_VINDEX (fndecl))
+ mark_overriders (fndecl, base_fndecls);
}
/* Now give a warning for all base functions without overriders,
as they are hidden. */
- while (base_fndecls)
+ for (; base_fndecls; base_fndecls = TREE_CHAIN (base_fndecls))
{
- if (! overrides (TREE_VALUE (base_fndecls),
- TREE_PURPOSE (base_fndecls)))
+ if (! overrides (TREE_PURPOSE (base_fndecls),
+ TREE_VALUE (base_fndecls)))
{
/* Here we know it is a hider, and no overrider exists. */
cp_warning_at ("`%D' was hidden", TREE_VALUE (base_fndecls));
cp_warning_at (" by `%D'", TREE_PURPOSE (base_fndecls));
}
-
- base_fndecls = TREE_CHAIN (base_fndecls);
}
}
}
@@ -5019,15 +5016,15 @@ instantiate_type (lhstype, rhs, flags)
field = OVL_FUNCTION (field);
if (TREE_CODE (field) == FUNCTION_DECL)
{
- cp_error ("object-dependent reference `%E' can only be used in a call",
+ cp_pedwarn ("object-dependent reference `%E' can only be used in a call",
DECL_NAME (field));
- cp_error (" to form a pointer to member function, say `&%T::%E'",
+ cp_pedwarn (" to form a pointer to member function, say `&%T::%E'",
t, DECL_NAME (field));
}
else
- cp_error ("object-dependent reference can only be used in a call");
+ cp_pedwarn ("object-dependent reference can only be used in a call");
}
- return error_mark_node;
+ return r;
}
return r;
diff --git a/gnu/egcs/gcc/cp/error.c b/gnu/egcs/gcc/cp/error.c
index ed316e1dafc..4da1d2f3b87 100644
--- a/gnu/egcs/gcc/cp/error.c
+++ b/gnu/egcs/gcc/cp/error.c
@@ -211,6 +211,11 @@ dump_type_real (t, v, canonical_name)
OB_PUTS ("{unknown type}");
break;
+ case TREE_LIST:
+ /* A list of function parms. */
+ dump_parameters (t, 0, canonical_name);
+ break;
+
case IDENTIFIER_NODE:
OB_PUTID (t);
break;
diff --git a/gnu/egcs/gcc/cp/parse.y b/gnu/egcs/gcc/cp/parse.y
index 677730ca336..7b5d3bdede9 100644
--- a/gnu/egcs/gcc/cp/parse.y
+++ b/gnu/egcs/gcc/cp/parse.y
@@ -3390,6 +3390,7 @@ function_try_block:
}
ctor_initializer_opt compstmt
{
+ end_protect_partials ();
expand_start_all_catch ();
}
handler_seq
diff --git a/gnu/egcs/gcc/cp/typeck2.c b/gnu/egcs/gcc/cp/typeck2.c
index 55039f9aa33..6322157e624 100644
--- a/gnu/egcs/gcc/cp/typeck2.c
+++ b/gnu/egcs/gcc/cp/typeck2.c
@@ -344,7 +344,7 @@ my_friendly_abort (i)
else
ack ("Internal compiler error %d.", i);
ack ("Please submit a full bug report.");
- ack ("See <URL:http://gcc.gnu.org/faq.html#bugreport> for instructions.");
+ ack ("See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions.");
}
else
error ("confused by earlier errors, bailing out");
@@ -359,7 +359,7 @@ my_friendly_abort (i)
error ("Internal compiler error %d.", i);
error ("Please submit a full bug report.");
- fatal ("See <URL:http://egcs.cygnus.com/faq.html#bugreport> for instructions.");
+ fatal ("See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions.");
}
void
diff --git a/gnu/egcs/gcc/dwarf2out.c b/gnu/egcs/gcc/dwarf2out.c
index 2e29c72c359..de3d26fcb34 100644
--- a/gnu/egcs/gcc/dwarf2out.c
+++ b/gnu/egcs/gcc/dwarf2out.c
@@ -5135,6 +5135,11 @@ output_abbrev_section ()
fprintf (asm_out_file, "\t%s\t0,0\n", ASM_BYTE_OP);
}
+
+ /* We need to properly terminate the abbrev table for this
+ compilation unit, as per the standard, and not rely on
+ workarounds in e.g. gdb. */
+ fprintf (asm_out_file, "\t%s\t0\n", ASM_BYTE_OP);
}
/* Output location description stack opcode's operands (if any). */
@@ -7183,7 +7188,8 @@ add_location_or_const_value_attribute (die, decl)
rtl = DECL_INCOMING_RTL (decl);
else if (! BYTES_BIG_ENDIAN
&& TREE_CODE (declared_type) == INTEGER_TYPE
- && TYPE_SIZE (declared_type) <= TYPE_SIZE (passed_type))
+ && (GET_MODE_SIZE (TYPE_MODE (declared_type))
+ <= GET_MODE_SIZE (TYPE_MODE (passed_type))))
rtl = DECL_INCOMING_RTL (decl);
}
diff --git a/gnu/egcs/gcc/dwarfout.c b/gnu/egcs/gcc/dwarfout.c
index 0a30a9775cf..8e0d018da49 100644
--- a/gnu/egcs/gcc/dwarfout.c
+++ b/gnu/egcs/gcc/dwarfout.c
@@ -1413,6 +1413,10 @@ fundamental_type_code (type)
if (TYPE_PRECISION (type) == CHAR_TYPE_SIZE)
return (TREE_UNSIGNED (type) ? FT_unsigned_char : FT_char);
+ /* In C++, __java_boolean is an INTEGER_TYPE with precision == 1 */
+ if (TYPE_PRECISION (type) == 1)
+ return FT_boolean;
+
abort ();
case REAL_TYPE:
diff --git a/gnu/egcs/gcc/f/BUGS b/gnu/egcs/gcc/f/BUGS
index 2efe6e259c2..6f04b2b08f7 100644
--- a/gnu/egcs/gcc/f/BUGS
+++ b/gnu/egcs/gcc/f/BUGS
@@ -33,7 +33,7 @@ is expected to contain documentation that is most consistent with the
An online, "live" version of this document (derived directly from
the mainline, development version of `g77' within `egcs') is available
-via `http://egcs.cygnus.com/onlinedocs/g77_bugs.html'. Follow the
+via `http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html'. Follow the
"Known Bugs" link.
For information on bugs that might afflict people who configure,
diff --git a/gnu/egcs/gcc/f/ChangeLog b/gnu/egcs/gcc/f/ChangeLog
index d82b2574f07..a3755f4c2e1 100644
--- a/gnu/egcs/gcc/f/ChangeLog
+++ b/gnu/egcs/gcc/f/ChangeLog
@@ -1,3 +1,18 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
+
+ * g77spec.c: Update URLS and mail addresses.
+ * root.texi: Update URLS and mail addresses.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+ * version.c: No longer a prerelease.
+
Sat Jul 17 21:57:07 1999 Jeffrey A Law (law@cygnus.com)
* root.texi: Clear DEVEOPMENT per Craig's instructions.
diff --git a/gnu/egcs/gcc/f/NEWS b/gnu/egcs/gcc/f/NEWS
index 3849c2d0217..b8b524309ca 100644
--- a/gnu/egcs/gcc/f/NEWS
+++ b/gnu/egcs/gcc/f/NEWS
@@ -64,7 +64,7 @@ about previous `g77' versions up-to-date.
An online, "live" version of this document (derived directly from
the mainline, development version of `g77' within `egcs') is available
-at `http://egcs.cygnus.com/onlinedocs/g77_news.html'.
+at `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'.
The following information was last updated on 1999-07-08:
diff --git a/gnu/egcs/gcc/f/bugs.texi b/gnu/egcs/gcc/f/bugs.texi
index 77665daa6ea..3f4cd903920 100644
--- a/gnu/egcs/gcc/f/bugs.texi
+++ b/gnu/egcs/gcc/f/bugs.texi
@@ -79,7 +79,7 @@ An online, ``live'' version of this document
(derived directly from the mainline, development version
of @code{g77} within @code{egcs})
is available via
-@uref{http://egcs.cygnus.com/onlinedocs/g77_bugs.html}.
+@uref{http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html}.
Follow the ``Known Bugs'' link.
@ifset DOC-G77
diff --git a/gnu/egcs/gcc/f/ffe.texi b/gnu/egcs/gcc/f/ffe.texi
index 7a8b0e8790c..e30333280d1 100644
--- a/gnu/egcs/gcc/f/ffe.texi
+++ b/gnu/egcs/gcc/f/ffe.texi
@@ -21,7 +21,7 @@ search for the string TBD.
If you want to help by working on one or more of these items,
email me at @email{@value{email-burley}}.
If you're planning to do more than just research issues and offer comments,
-see @uref{http://egcs.cygnus.com/contribute.html} for steps you might
+see @uref{http://www.gnu.org/software/contribute.html} for steps you might
need to take first.
@menu
diff --git a/gnu/egcs/gcc/f/news.texi b/gnu/egcs/gcc/f/news.texi
index 9a929c237ec..a4b6d6837ad 100644
--- a/gnu/egcs/gcc/f/news.texi
+++ b/gnu/egcs/gcc/f/news.texi
@@ -146,7 +146,7 @@ An online, ``live'' version of this document
(derived directly from the mainline, development version
of @code{g77} within @code{egcs})
is available at
-@uref{http://egcs.cygnus.com/onlinedocs/g77_news.html}.
+@uref{http://www.gnu.org/software/gcc/onlinedocs/g77_news.html}.
@end ifclear
The following information was last updated on @value{last-update-news}:
diff --git a/gnu/egcs/gcc/f/root.texi b/gnu/egcs/gcc/f/root.texi
index 3fb29ee3483..dce97c07d43 100644
--- a/gnu/egcs/gcc/f/root.texi
+++ b/gnu/egcs/gcc/f/root.texi
@@ -17,7 +17,7 @@
@clear FSF-G77
@set email-general gcc@@gcc.gnu.org
-@set email-bugs gcc-bugs@@gcc.gnu.org
+@set email-bugs gcc-bugs@@gcc.gnu.org or bug-gcc@@gnu.org
@set path-g77 egcs/gcc/f
@set path-libf2c egcs/libf2c
diff --git a/gnu/egcs/gcc/f/version.c b/gnu/egcs/gcc/f/version.c
index 21369a22dee..97605df107c 100644
--- a/gnu/egcs/gcc/f/version.c
+++ b/gnu/egcs/gcc/f/version.c
@@ -1 +1 @@
-const char *ffe_version_string = "0.5.25 19990718 (prerelease)";
+const char *ffe_version_string = "0.5.25 19990816 (release)";
diff --git a/gnu/egcs/gcc/fix-header.c b/gnu/egcs/gcc/fix-header.c
index dfde8e5c560..af0577e43c4 100644
--- a/gnu/egcs/gcc/fix-header.c
+++ b/gnu/egcs/gcc/fix-header.c
@@ -1127,7 +1127,7 @@ main (argc, argv)
special_file_handling = stdio_h;
include_entry = std_include_table;
while (include_entry->name != NULL
- && (include_entry->name == CONTINUED
+ && ((strcmp (include_entry->name, CONTINUED) == 0)
|| strcmp (inc_filename, include_entry->name) != 0))
include_entry++;
@@ -1140,7 +1140,7 @@ main (argc, argv)
if (entry->flags)
add_symbols (entry->flags, entry->names);
entry++;
- if (entry->name != CONTINUED)
+ if (strcmp (entry->name, CONTINUED) != 0)
break;
}
}
diff --git a/gnu/egcs/gcc/fixinc/README b/gnu/egcs/gcc/fixinc/README
index 5481fbfe106..bd5a8011f3f 100644
--- a/gnu/egcs/gcc/fixinc/README
+++ b/gnu/egcs/gcc/fixinc/README
@@ -56,4 +56,4 @@ please see "POSSIBLE PROBLEMS" above. Thank you.
Regards,
Bruce <fixincludes@autogen.freeservers.com>
Robert <RobertLipe@usa.net>
- Manfred <manfred@s-direktnet.de> \ No newline at end of file
+ Manfred <manfred@s-direktnet.de>
diff --git a/gnu/egcs/gcc/fixinc/fixincl.sh b/gnu/egcs/gcc/fixinc/fixincl.sh
index 73bb35e17b4..56eebd60bc4 100644
--- a/gnu/egcs/gcc/fixinc/fixincl.sh
+++ b/gnu/egcs/gcc/fixinc/fixincl.sh
@@ -406,8 +406,10 @@ done
#
# # # # # # # # # # # # # # # # # # # # #
-cd $ORIGDIR
-rm -f include/assert.h
-cp ${srcdir}/assert.h include/assert.h || exit 1
-chmod a+r include/assert.h
-
+if [ x${INSTALL_ASSERT_H} != x ] && [ -f ${srcdir}/assert.h ]
+then
+ cd $ORIGDIR
+ rm -f include/assert.h
+ cp ${srcdir}/assert.h include/assert.h || exit 1
+ chmod a+r include/assert.h
+fi
diff --git a/gnu/egcs/gcc/fixinc/fixincl.x b/gnu/egcs/gcc/fixinc/fixincl.x
index aacc190f327..bbd17eac8e0 100644
--- a/gnu/egcs/gcc/fixinc/fixincl.x
+++ b/gnu/egcs/gcc/fixinc/fixincl.x
@@ -2821,6 +2821,7 @@ const char* apzSysz_Stdlib_For_SunPatch[] = { "sed",
"-e", "s/char[ \t]*\\*[ \t]*calloc/void \\*\tcalloc/g",
"-e", "s/char[ \t]*\\*[ \t]*malloc/void \\*\tmalloc/g",
"-e", "s/char[ \t]*\\*[ \t]*realloc/void \\*\trealloc/g",
+ "-e", "s/char[ \t]*\\*[ \t]*bsearch/void \\*\tbsearch/g",
"-e", "s/int[ \t][ \t]*exit/void\texit/g",
"-e", "/typedef[ \ta-zA-Z_]*[ \t]size_t[ \t]*;/i\\\n\
#ifndef _GCC_SIZE_T\\\n\
diff --git a/gnu/egcs/gcc/fixinc/inclhack.def b/gnu/egcs/gcc/fixinc/inclhack.def
index 7a9e305adb1..6872cad61d0 100644
--- a/gnu/egcs/gcc/fixinc/inclhack.def
+++ b/gnu/egcs/gcc/fixinc/inclhack.def
@@ -2000,6 +2000,7 @@ fix = {
sed = "s/char[ \t]*\\*[ \t]*calloc/void \\*\tcalloc/g";
sed = "s/char[ \t]*\\*[ \t]*malloc/void \\*\tmalloc/g";
sed = "s/char[ \t]*\\*[ \t]*realloc/void \\*\trealloc/g";
+ sed = "s/char[ \t]*\\*[ \t]*bsearch/void \\*\tbsearch/g";
sed = "s/int[ \t][ \t]*exit/void\texit/g";
sed = "/typedef[ \ta-zA-Z_]*[ \t]size_t[ \t]*;/i\\\n"
diff --git a/gnu/egcs/gcc/fixinc/inclhack.sh b/gnu/egcs/gcc/fixinc/inclhack.sh
index 6be26e98b8d..f6fab88798b 100644
--- a/gnu/egcs/gcc/fixinc/inclhack.sh
+++ b/gnu/egcs/gcc/fixinc/inclhack.sh
@@ -2331,6 +2331,7 @@ extern unsigned int\
-e 's/char[ ]*\*[ ]*calloc/void \* calloc/g' \
-e 's/char[ ]*\*[ ]*malloc/void \* malloc/g' \
-e 's/char[ ]*\*[ ]*realloc/void \* realloc/g' \
+ -e 's/char[ ]*\*[ ]*bsearch/void \* bsearch/g' \
-e 's/int[ ][ ]*exit/void exit/g' \
-e '/typedef[ a-zA-Z_]*[ ]size_t[ ]*;/i\
#ifndef _GCC_SIZE_T\
@@ -3093,8 +3094,10 @@ done
#
# # # # # # # # # # # # # # # # # # # # #
-cd $ORIGDIR
-rm -f include/assert.h
-cp ${srcdir}/assert.h include/assert.h || exit 1
-chmod a+r include/assert.h
-
+if [ x${INSTALL_ASSERT_H} != x ] && [ -f ${srcdir}/assert.h ]
+then
+ cd $ORIGDIR
+ rm -f include/assert.h
+ cp ${srcdir}/assert.h include/assert.h || exit 1
+ chmod a+r include/assert.h
+fi
diff --git a/gnu/egcs/gcc/fixinc/inclhack.tpl b/gnu/egcs/gcc/fixinc/inclhack.tpl
index 44f37981864..587a8e53143 100644
--- a/gnu/egcs/gcc/fixinc/inclhack.tpl
+++ b/gnu/egcs/gcc/fixinc/inclhack.tpl
@@ -416,11 +416,13 @@ done
#
# # # # # # # # # # # # # # # # # # # # #
-cd $ORIGDIR
-rm -f include/assert.h
-cp ${srcdir}/assert.h include/assert.h || exit 1
-chmod a+r include/assert.h
-[=
+if [ x${INSTALL_ASSERT_H} != x ] && [ -f ${srcdir}/assert.h ]
+then
+ cd $ORIGDIR
+ rm -f include/assert.h
+ cp ${srcdir}/assert.h include/assert.h || exit 1
+ chmod a+r include/assert.h
+fi[=
# Make the output file executable
# =][=
diff --git a/gnu/egcs/gcc/fixincludes b/gnu/egcs/gcc/fixincludes
index ea031833016..e5cc1c373b6 100644
--- a/gnu/egcs/gcc/fixincludes
+++ b/gnu/egcs/gcc/fixincludes
@@ -1002,6 +1002,7 @@ if [ -r ${LIB}/$file ]; then
-e 's/char[ ]*\*[ ]*calloc/void \* calloc/g' \
-e 's/char[ ]*\*[ ]*malloc/void \* malloc/g' \
-e 's/char[ ]*\*[ ]*realloc/void \* realloc/g' \
+ -e 's/char[ ]*\*[ ]*bsearch/void \* bsearch/g' \
-e 's/int[ ][ ]*exit/void exit/g' \
-e "/$size_t_pattern/"'i\
#ifndef _GCC_SIZE_T\
diff --git a/gnu/egcs/gcc/flow.c b/gnu/egcs/gcc/flow.c
index edcee2919ad..ac8fd6337ff 100644
--- a/gnu/egcs/gcc/flow.c
+++ b/gnu/egcs/gcc/flow.c
@@ -1562,7 +1562,12 @@ delete_unreachable_blocks ()
check that the edge is not a FALLTHRU edge. */
if ((s = b->succ) != NULL
&& s->succ_next == NULL
- && s->dest == c)
+ && s->dest == c
+ /* If the last insn is not a normal conditional jump
+ (or an unconditional jump), then we can not tidy the
+ fallthru edge because we can not delete the jump. */
+ && GET_CODE (b->end) == JUMP_INSN
+ && condjump_p (b->end))
tidy_fallthru_edge (s, b, c);
}
@@ -1581,6 +1586,11 @@ delete_unreachable_blocks ()
&& (s->flags & EDGE_EH) == 0
&& (c = s->dest) != EXIT_BLOCK_PTR
&& c->pred->pred_next == NULL
+ /* If the last insn is not a normal conditional jump
+ (or an unconditional jump), then we can not merge
+ the blocks because we can not delete the jump. */
+ && GET_CODE (b->end) == JUMP_INSN
+ && condjump_p (b->end)
&& merge_blocks (s, b, c))
continue;
diff --git a/gnu/egcs/gcc/ginclude/va-ppc.h b/gnu/egcs/gcc/ginclude/va-ppc.h
index 6d81497174d..de299b59cf9 100644
--- a/gnu/egcs/gcc/ginclude/va-ppc.h
+++ b/gnu/egcs/gcc/ginclude/va-ppc.h
@@ -17,10 +17,10 @@
/* Note that the names in this structure are in the user's namespace, but
that the V.4 abi explicitly states that these names should be used. */
typedef struct __va_list_tag {
- char gpr; /* index into the array of 8 GPRs stored in the
+ unsigned char gpr; /* index into the array of 8 GPRs stored in the
register save area gpr=0 corresponds to r3,
gpr=1 to r4, etc. */
- char fpr; /* index into the array of 8 FPRs stored in the
+ unsigned char fpr; /* index into the array of 8 FPRs stored in the
register save area fpr=0 corresponds to f1,
fpr=1 to f2, etc. */
char *overflow_arg_area; /* location on stack that holds the next
@@ -51,13 +51,13 @@ typedef struct {
/* Macros to access the register save area */
/* We cast to void * and then to TYPE * because this avoids
a warning about increasing the alignment requirement. */
-#define __VA_FP_REGSAVE(AP,TYPE) \
+#define __VA_FP_REGSAVE(AP,OFS,TYPE) \
((TYPE *) (void *) (&(((__va_regsave_t *) \
- (AP)->reg_save_area)->__fp_save[(int)(AP)->fpr])))
+ (AP)->reg_save_area)->__fp_save[OFS])))
-#define __VA_GP_REGSAVE(AP,TYPE) \
+#define __VA_GP_REGSAVE(AP,OFS,TYPE) \
((TYPE *) (void *) (&(((__va_regsave_t *) \
- (AP)->reg_save_area)->__gp_save[(int)(AP)->gpr])))
+ (AP)->reg_save_area)->__gp_save[OFS])))
/* Common code for va_start for both varargs and stdarg. We allow all
the work to be done by __builtin_saveregs. It returns a pointer to
@@ -88,60 +88,106 @@ typedef struct {
#define __va_float_p(TYPE) (__builtin_classify_type(*(TYPE *)0) == 8)
#endif
-#define __va_longlong_p(TYPE) \
- ((__builtin_classify_type(*(TYPE *)0) == 1) && (sizeof(TYPE) == 8))
-
#define __va_aggregate_p(TYPE) (__builtin_classify_type(*(TYPE *)0) >= 12)
#define __va_size(TYPE) ((sizeof(TYPE) + sizeof (long) - 1) / sizeof (long))
-#define va_arg(AP,TYPE) \
-__extension__ (*({ \
- register TYPE *__ptr; \
- \
- if (__va_float_p (TYPE) && (AP)->fpr < 8) \
- { \
- __ptr = __VA_FP_REGSAVE (AP, TYPE); \
- (AP)->fpr++; \
- } \
- \
- else if (__va_aggregate_p (TYPE) && (AP)->gpr < 8) \
- { \
- __ptr = * __VA_GP_REGSAVE (AP, TYPE *); \
- (AP)->gpr++; \
- } \
- \
- else if (!__va_float_p (TYPE) && !__va_aggregate_p (TYPE) \
- && (AP)->gpr + __va_size(TYPE) <= 8 \
- && (!__va_longlong_p(TYPE) \
- || (AP)->gpr + __va_size(TYPE) <= 8)) \
- { \
- if (__va_longlong_p(TYPE) && ((AP)->gpr & 1) != 0) \
- (AP)->gpr++; \
- \
- __ptr = __VA_GP_REGSAVE (AP, TYPE); \
- (AP)->gpr += __va_size (TYPE); \
- } \
- \
- else if (!__va_float_p (TYPE) && !__va_aggregate_p (TYPE) \
- && (AP)->gpr < 8) \
- { \
- (AP)->gpr = 8; \
- __ptr = (TYPE *) (void *) (__va_overflow(AP)); \
- __va_overflow(AP) += __va_size (TYPE) * sizeof (long); \
- } \
- \
- else if (__va_aggregate_p (TYPE)) \
- { \
- __ptr = * (TYPE **) (void *) (__va_overflow(AP)); \
- __va_overflow(AP) += sizeof (TYPE *); \
- } \
- else \
- { \
- __ptr = (TYPE *) (void *) (__va_overflow(AP)); \
- __va_overflow(AP) += __va_size (TYPE) * sizeof (long); \
- } \
- \
- __ptr; \
+/* This symbol isn't defined. It is used to flag type promotion violations
+ at link time. We can only do this when optimizing. Use __builtin_trap
+ instead of abort so that we don't require a prototype for abort.
+
+ __builtin_trap stuff is not available on the gcc-2.95 branch, so we just
+ avoid calling it for now. */
+
+#ifdef __OPTIMIZE__
+extern void __va_arg_type_violation(void) __attribute__((__noreturn__));
+#else
+#define __va_arg_type_violation()
+#endif
+
+#define va_arg(AP,TYPE) \
+__extension__ (*({ \
+ register TYPE *__ptr; \
+ \
+ if (__va_float_p (TYPE) && sizeof (TYPE) < 16) \
+ { \
+ unsigned char __fpr = (AP)->fpr; \
+ if (__fpr < 8) \
+ { \
+ __ptr = __VA_FP_REGSAVE (AP, __fpr, TYPE); \
+ (AP)->fpr = __fpr + 1; \
+ } \
+ else if (sizeof (TYPE) == 8) \
+ { \
+ unsigned long __addr = (unsigned long) (__va_overflow (AP)); \
+ __ptr = (TYPE *)((__addr + 7) & -8); \
+ __va_overflow (AP) = (char *)(__ptr + 1); \
+ } \
+ else \
+ { \
+ /* float is promoted to double. */ \
+ __va_arg_type_violation (); \
+ } \
+ } \
+ \
+ /* Aggregates and long doubles are passed by reference. */ \
+ else if (__va_aggregate_p (TYPE) || __va_float_p (TYPE)) \
+ { \
+ unsigned char __gpr = (AP)->gpr; \
+ if (__gpr < 8) \
+ { \
+ __ptr = * __VA_GP_REGSAVE (AP, __gpr, TYPE *); \
+ (AP)->gpr = __gpr + 1; \
+ } \
+ else \
+ { \
+ TYPE **__pptr = (TYPE **) (__va_overflow (AP)); \
+ __ptr = * __pptr; \
+ __va_overflow (AP) = (char *) (__pptr + 1); \
+ } \
+ } \
+ \
+ /* Only integrals remaining. */ \
+ else \
+ { \
+ /* longlong is aligned. */ \
+ if (sizeof (TYPE) == 8) \
+ { \
+ unsigned char __gpr = (AP)->gpr; \
+ if (__gpr < 7) \
+ { \
+ __gpr += __gpr & 1; \
+ __ptr = __VA_GP_REGSAVE (AP, __gpr, TYPE); \
+ (AP)->gpr = __gpr + 2; \
+ } \
+ else \
+ { \
+ unsigned long __addr = (unsigned long) (__va_overflow (AP)); \
+ __ptr = (TYPE *)((__addr + 7) & -8); \
+ (AP)->gpr = 8; \
+ __va_overflow (AP) = (char *)(__ptr + 1); \
+ } \
+ } \
+ else if (sizeof (TYPE) == 4) \
+ { \
+ unsigned char __gpr = (AP)->gpr; \
+ if (__gpr < 8) \
+ { \
+ __ptr = __VA_GP_REGSAVE (AP, __gpr, TYPE); \
+ (AP)->gpr = __gpr + 1; \
+ } \
+ else \
+ { \
+ __ptr = (TYPE *) __va_overflow (AP); \
+ __va_overflow (AP) = (char *)(__ptr + 1); \
+ } \
+ } \
+ else \
+ { \
+ /* Everything else was promoted to int. */ \
+ __va_arg_type_violation (); \
+ } \
+ } \
+ __ptr; \
}))
#define va_end(AP) ((void)0)
diff --git a/gnu/egcs/gcc/intl/ChangeLog b/gnu/egcs/gcc/intl/ChangeLog
index 198950159da..4d91d013124 100644
--- a/gnu/egcs/gcc/intl/ChangeLog
+++ b/gnu/egcs/gcc/intl/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1998-04-29 Ulrich Drepper <drepper@cygnus.com>
* intl/localealias.c (read_alias_file): Use unsigned char for
diff --git a/gnu/egcs/gcc/java/ChangeLog b/gnu/egcs/gcc/java/ChangeLog
index b2e151f2c30..c31058f1b53 100644
--- a/gnu/egcs/gcc/java/ChangeLog
+++ b/gnu/egcs/gcc/java/ChangeLog
@@ -1,3 +1,19 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Tue Aug 10 00:28:31 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * jvgenmain.c (main): NUL-terminate name_obstack.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1999-06-29 Tom Tromey <tromey@cygnus.com>
* jvspec.c (lang_specific_driver): Recognize --help.
diff --git a/gnu/egcs/gcc/java/jvgenmain.c b/gnu/egcs/gcc/java/jvgenmain.c
index 0f9e6287827..4f82847d043 100644
--- a/gnu/egcs/gcc/java/jvgenmain.c
+++ b/gnu/egcs/gcc/java/jvgenmain.c
@@ -96,6 +96,7 @@ main (int argc, const char **argv)
gcc_obstack_init (&name_obstack);
append_gpp_mangled_classtype (&name_obstack, classname);
+ obstack_1grow (&name_obstack, '\0');
mangled_classname = obstack_finish (&name_obstack);
if (argc > 2 && strcmp (argv[2], "-") != 0)
diff --git a/gnu/egcs/gcc/just-fixinc b/gnu/egcs/gcc/just-fixinc
index 06372ade738..a04028a1ce9 100644
--- a/gnu/egcs/gcc/just-fixinc
+++ b/gnu/egcs/gcc/just-fixinc
@@ -1,5 +1,5 @@
#!/bin/sh
-# $Id: just-fixinc,v 1.1.1.1 1999/05/26 13:34:24 espie Exp $
+# $Id: just-fixinc,v 1.1.1.2 1999/08/23 20:28:37 espie 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 --git a/gnu/egcs/gcc/mkinstalldirs b/gnu/egcs/gcc/mkinstalldirs
index a185ab4bb24..5ff7c74965e 100644
--- a/gnu/egcs/gcc/mkinstalldirs
+++ b/gnu/egcs/gcc/mkinstalldirs
@@ -4,7 +4,7 @@
# Created: 1993-05-16
# Public domain
-# $Id: mkinstalldirs,v 1.1.1.1 1999/05/26 13:34:27 espie Exp $
+# $Id: mkinstalldirs,v 1.1.1.2 1999/08/23 20:28:41 espie Exp $
errstatus=0
diff --git a/gnu/egcs/gcc/po/ChangeLog b/gnu/egcs/gcc/po/ChangeLog
index faa0051899c..416a951f7e2 100644
--- a/gnu/egcs/gcc/po/ChangeLog
+++ b/gnu/egcs/gcc/po/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
* POTFILES.in: Track latest file renamings.
diff --git a/gnu/egcs/gcc/po/gcc.pot b/gnu/egcs/gcc/po/gcc.pot
new file mode 100644
index 00000000000..e21c90f1153
--- /dev/null
+++ b/gnu/egcs/gcc/po/gcc.pot
@@ -0,0 +1,8407 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\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, <n>)"
+msgstr ""
+
+#: c-pragma.c:135
+#, c-format
+msgid ""
+"#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, "
+"<n>)"
+msgstr ""
+
+#: c-pragma.c:269
+msgid "malformed `#pragma pack'"
+msgstr ""
+
+#: c-pragma.c:278
+msgid "malformed '#pragma pack(push[,id],<n>)'"
+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"
+" ... <real contents of file> ...\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 <filename.h>' !"
+msgstr ""
+
+#: cccp.c:4518 cpplib.c:1011
+#, c-format
+msgid "`#%s' expects \"FILENAME\" or <FILENAME>"
+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<Class<Type>>' 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 <typeinfo> 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 <URL:http://egcs.cygnus.com/faq.html#bugreport> 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 <filename.h>'"
+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 <FILENAME>'"
+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 <stdarg.h>; 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 <objc/objc.h>"
+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 <istring> ] [ filename ... ]'\n"
+msgstr ""
+
+#: protoize.c:830
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ 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 ""
diff --git a/gnu/egcs/gcc/real.c b/gnu/egcs/gcc/real.c
index 2d615757af1..a3fda6d4c91 100644
--- a/gnu/egcs/gcc/real.c
+++ b/gnu/egcs/gcc/real.c
@@ -269,34 +269,34 @@ do { \
/* Emulator uses target format internally
but host stores it in host endian-ness. */
-#define GET_REAL(r,e) \
-do { \
- if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \
- e53toe ((unsigned EMUSHORT *) (r), (e)); \
- else \
- { \
- unsigned EMUSHORT w[4]; \
- w[3] = ((EMUSHORT *) r)[0]; \
- w[2] = ((EMUSHORT *) r)[1]; \
- w[1] = ((EMUSHORT *) r)[2]; \
- w[0] = ((EMUSHORT *) r)[3]; \
- e53toe (w, (e)); \
- } \
+#define GET_REAL(r,e) \
+do { \
+ if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \
+ e53toe ((unsigned EMUSHORT *) (r), (e)); \
+ else \
+ { \
+ unsigned EMUSHORT w[4]; \
+ bcopy (((EMUSHORT *) r), &w[3], sizeof (EMUSHORT)); \
+ bcopy (((EMUSHORT *) r) + 1, &w[2], sizeof (EMUSHORT)); \
+ bcopy (((EMUSHORT *) r) + 2, &w[1], sizeof (EMUSHORT)); \
+ bcopy (((EMUSHORT *) r) + 3, &w[0], sizeof (EMUSHORT)); \
+ e53toe (w, (e)); \
+ } \
} while (0)
-#define PUT_REAL(e,r) \
-do { \
- if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \
- etoe53 ((e), (unsigned EMUSHORT *) (r)); \
- else \
- { \
- unsigned EMUSHORT w[4]; \
- etoe53 ((e), w); \
- *((EMUSHORT *) r) = w[3]; \
- *((EMUSHORT *) r + 1) = w[2]; \
- *((EMUSHORT *) r + 2) = w[1]; \
- *((EMUSHORT *) r + 3) = w[0]; \
- } \
+#define PUT_REAL(e,r) \
+do { \
+ if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \
+ etoe53 ((e), (unsigned EMUSHORT *) (r)); \
+ else \
+ { \
+ unsigned EMUSHORT w[4]; \
+ etoe53 ((e), w); \
+ bcopy (&w[3], ((EMUSHORT *) r), sizeof (EMUSHORT)); \
+ bcopy (&w[2], ((EMUSHORT *) r) + 1, sizeof (EMUSHORT)); \
+ bcopy (&w[1], ((EMUSHORT *) r) + 2, sizeof (EMUSHORT)); \
+ bcopy (&w[0], ((EMUSHORT *) r) + 3, sizeof (EMUSHORT)); \
+ } \
} while (0)
#else /* not REAL_ARITHMETIC */
diff --git a/gnu/egcs/gcc/reg-stack.c b/gnu/egcs/gcc/reg-stack.c
index 8a27b9563b6..dd4a87e697c 100644
--- a/gnu/egcs/gcc/reg-stack.c
+++ b/gnu/egcs/gcc/reg-stack.c
@@ -2640,43 +2640,46 @@ change_stack (insn, old, new, when)
if (old->top != new->top)
abort ();
- /* Loop here emitting swaps until the stack is correct. The
- worst case number of swaps emitted is N + 2, where N is the
+ /* If the stack is not empty (new->top != -1), loop here emitting
+ swaps until the stack is correct.
+
+ The worst case number of swaps emitted is N + 2, where N is the
depth of the stack. In some cases, the reg at the top of
stack may be correct, but swapped anyway in order to fix
other regs. But since we never swap any other reg away from
its correct slot, this algorithm will converge. */
- do
- {
- /* Swap the reg at top of stack into the position it is
- supposed to be in, until the correct top of stack appears. */
+ if (new->top != -1)
+ do
+ {
+ /* Swap the reg at top of stack into the position it is
+ supposed to be in, until the correct top of stack appears. */
- while (old->reg[old->top] != new->reg[new->top])
- {
- for (reg = new->top; reg >= 0; reg--)
- if (new->reg[reg] == old->reg[old->top])
- break;
+ while (old->reg[old->top] != new->reg[new->top])
+ {
+ for (reg = new->top; reg >= 0; reg--)
+ if (new->reg[reg] == old->reg[old->top])
+ break;
- if (reg == -1)
- abort ();
+ if (reg == -1)
+ abort ();
- emit_swap_insn (insn, old,
- FP_MODE_REG (old->reg[reg], DFmode));
- }
+ emit_swap_insn (insn, old,
+ FP_MODE_REG (old->reg[reg], DFmode));
+ }
- /* See if any regs remain incorrect. If so, bring an
+ /* See if any regs remain incorrect. If so, bring an
incorrect reg to the top of stack, and let the while loop
above fix it. */
- for (reg = new->top; reg >= 0; reg--)
- if (new->reg[reg] != old->reg[reg])
- {
- emit_swap_insn (insn, old,
- FP_MODE_REG (old->reg[reg], DFmode));
- break;
- }
- } while (reg >= 0);
+ for (reg = new->top; reg >= 0; reg--)
+ if (new->reg[reg] != old->reg[reg])
+ {
+ emit_swap_insn (insn, old,
+ FP_MODE_REG (old->reg[reg], DFmode));
+ break;
+ }
+ } while (reg >= 0);
/* At this point there must be no differences. */
diff --git a/gnu/egcs/gcc/system.h b/gnu/egcs/gcc/system.h
index 93ba4c3a365..7d6082ccf29 100644
--- a/gnu/egcs/gcc/system.h
+++ b/gnu/egcs/gcc/system.h
@@ -399,7 +399,7 @@ extern void fatal PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORE
#else
#define abort() fatal ("Internal compiler error in `%s', at %s:%d\n" \
"Please submit a full bug report.\n" \
- "See <URL:http://egcs.cygnus.com/faq.html#bugreport> for instructions.", \
+ "See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions.", \
__PRETTY_FUNCTION__, trim_filename (__FILE__), __LINE__)
#endif /* recent gcc */
diff --git a/gnu/egcs/gcc/tree.c b/gnu/egcs/gcc/tree.c
index b61c11587ec..5e29d2f9115 100644
--- a/gnu/egcs/gcc/tree.c
+++ b/gnu/egcs/gcc/tree.c
@@ -3300,7 +3300,6 @@ build_type_attribute_variant (ttype, attribute)
current_obstack = TYPE_OBSTACK (ttype);
ntype = copy_node (ttype);
- current_obstack = ambient_obstack;
TYPE_POINTER_TO (ntype) = 0;
TYPE_REFERENCE_TO (ntype) = 0;
@@ -3335,6 +3334,12 @@ build_type_attribute_variant (ttype, attribute)
ntype = type_hash_canon (hashcode, ntype);
ttype = build_qualified_type (ntype, TYPE_QUALS (ttype));
+
+ /* We must restore the current obstack after the type_hash_canon call,
+ because type_hash_canon calls type_hash_add for permanent types, and
+ then type_hash_add calls oballoc expecting to get something permanent
+ back. */
+ current_obstack = ambient_obstack;
}
return ttype;
diff --git a/gnu/egcs/install/BUILD b/gnu/egcs/install/BUILD
new file mode 100644
index 00000000000..6bf0322b9c4
--- /dev/null
+++ b/gnu/egcs/install/BUILD
@@ -0,0 +1,82 @@
+
+ Installing GCC: Building
+
+ Now that GCC is configured, you are ready to build the compiler and
+ runtime libraries.
+
+ We _highly_ recommend that GCC be built using GNU make; other versions
+ may work, then again they might not. To be safe build with GNU make.
+
+Building a native compiler
+
+ For a native build issue the command `make bootstrap'. This will build
+ the entire GCC system, which includes the following steps:
+ * Build host tools necessary to build the compiler such as texinfo,
+ bison, gperf.
+ * Build target tools for use by the compiler such as gas, gld, and
+ binutils if they have been properly unpacked into the GCC source
+ tree.
+ * Perform a 3-stage bootstrap of the compiler.
+ * Perform a comparison test of the stage2 and stage3 compilers.
+ * Build runtime libraries using the stage3 compiler from the
+ previous step.
+
+ If you are short on disk space you might consider `make
+ bootstrap-lean' instead. This is identical to `make bootstrap' except
+ that object files from the stage1 and stage2 of the 3-stage bootstrap
+ of the compiler are deleted as soon as they are no longer needed.
+
+ If you want to save additional space during the bootstrap and in the
+ final installation as well, you can build the compiler binaries
+ without debugging information with "make CFLAGS='-O' LIBCFLAGS='-g
+ -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap". This
+ will save roughly 40% of disk space both for the bootstrap and the
+ final installation. (Libraries will still contain debugging
+ information.)
+
+ If you used the flag --enable-languages=... to restrict the compilers
+ to be built, only those you've actually enabled will be built. This
+ will of course only build those runtime libraries, for which the
+ particular compiler has been built. Please note, that re-defining
+ LANGUAGES when calling `make bootstrap' _*does not*_ work anymore!
+
+Building a cross compiler
+
+ We recommend reading the [1]crossgcc FAQ for information about
+ building cross compilers.
+
+ When building a cross compiler, it is not generally possible to do a
+ 3-stage bootstrap of the compiler. This makes for an interesting
+ problem as parts of GCC can only be built with GCC.
+
+ To build a cross compiler, we first recommend building and installing
+ a native compiler. You can then use the native GCC compiler to build
+ the cross compiler.
+
+ Assuming you have already installed a native copy of GCC and
+ configured your corss compiler, issue the command "make", which
+ performs the following steps:
+ * Build host tools necessary to build the compiler such as texinfo,
+ bison, gperf.
+ * Build target tools for use by the compiler such as gas, gld, and
+ binutils if they have been properly unpacked into the GCC source
+ tree.
+ * Build the compiler (single stage only).
+ * Build runtime libraries using the compiler from the previous step.
+
+ Note that if an error occurs in any step the make process will exit.
+
+Building in parallel
+
+ If you have a multiprocessor you can use `make bootstrap MAKE="make -j
+ 2" -j 2' instead of just `make bootstrap' when building GCC. You can
+ use a bigger number instead of two if you like. In most cases, it
+ won't help to use a number bigger than the number of processors in
+ your machine.
+ _________________________________________________________________
+
+ _Last modified on July 16, 1999._
+
+References
+
+ 1. http://www.objsw.com/CrossGCC/
diff --git a/gnu/egcs/install/CONFIGURE b/gnu/egcs/install/CONFIGURE
new file mode 100644
index 00000000000..9f88368b332
--- /dev/null
+++ b/gnu/egcs/install/CONFIGURE
@@ -0,0 +1,137 @@
+
+ Installing GCC: Configuration
+
+ Like most GNU software, GCC must be configured before it can be built.
+ This document describes the recommended configuration procedure for
+ both native and cross targets.
+
+ We use _srcdir_ to refer to the toplevel source directory for GCC; we
+ use _objdir_ to refer to the toplevel build/object directory.
+
+ First, we _highly_ recommend that GCC be built into a separate
+ directory than the sources which does _not_ reside within the source
+ tree. This is how we generally build GCC; building where _srcdir_ ==
+ _objdir_ should still work, but doesn't get extensive testing;
+ building where _objdir_ is a subdirectory of _srcdir_ is unsupported.
+
+ Second, when configuring a native system, either "cc" or "gcc" must be
+ in your path or you must set CC in your environment before running
+ configure. Otherwise the configuration scripts may fail.
+
+ To configure GCC:
+
+ % mkdir _objdir_
+ % cd _objdir_
+ % _srcdir_/configure _[target]_ _[options]_
+
+ _target specification_
+ * GCC has code to correctly determine the correct value for _target_
+ for nearly all native systems. Therefore, we highly recommend you
+ not provide a configure target when configuring a native compiler.
+ * _target_ must be specified when configuring a cross compiler;
+ examples of valid targets would be i960-rtems, m68k-coff, sh-elf,
+ etc.
+
+ _options specification_
+
+ Use _options_ to override several configure time options for GCC. A
+ partial list of supported options:
+ * --prefix=_dirname_ -- Specify the toplevel installation directory.
+ This is the recommended way to install the tools into a directory
+ other than the default. The toplevel installation directory
+ defaults to /usr/local.
+ We _highly_ recommend against _prefix_ being the same or a
+ subdirectory of _objdir_ or vice versa.
+ These additional options control where certain parts of the
+ distribution are installed. Normally you should not need to use
+ these options.
+ + --with-local-prefix=_dirname_ -- Specify the installation
+ directory for local include files. The default is /usr/local.
+ + --with-gxx-include-dir=_dirname_ -- Specify the installation
+ directory for g++ header files. The default is
+ /usr/local/include/g++.
+ * --enable-shared -- Build shared versions of the C++ runtime
+ libraries if supported --disable-shared is the default.
+ * --enable-haifa -- Enable the new Haifa instruction scheduler in
+ the compiler; the new scheduler can significantly improve code on
+ some targets.
+ For EGCS 1.0.x releases --disable-haifa is the default on all
+ platforms except the HPPA.
+ For newer releases --disable-haifa is the default on all platforms
+ except the alpha, hppa, powerpc, rs6000, SPARC and m32r.
+ * --with-gnu-as -- Specify that the compiler should assume the GNU
+ assembler (aka gas) is available.
+ * --with-gnu-ld -- Specify that the compiler should assume the GNU
+ linker (aka gld) is available.
+ * --with-stabs -- Specify that stabs debugging information should be
+ used instead of whatever format the host normally uses. Normally
+ GCC uses the same debug format as the host system.
+ * --enable-multilib -- Specify that multiple target libraries should
+ be built to support different target variants, calling
+ conventions, etc. This is the default.
+ * --enable-threads -- Specify that the target supports threads. This
+ affects only the Objective-C compiler and runtime library.
+ * --enable-threads=_lib_ -- Specify that _lib_ is the thread support
+ library. This affects only the Objective-C compiler and runtime
+ library.
+ * --with-cpu=_cpu_ -- Specify which cpu variant the compiler should
+ generate code for by default. This is currently only supported on
+ the some ports, specifically arm, powerpc, and SPARC. If configure
+ does not recognize the model name (e.g. arm700, 603e, or
+ ultrasparc) you provide, please check the configure script for a
+ complete list of supported models.
+ * --enable-target-optspace -- Specify that target libraries should
+ be optimzied for code space instead of code speed. This is the
+ default for the m32r platform.
+ * --enable-cpp -- Specify that a shell script which emulates
+ traditional cpp functionality should be installed.
+ * --enable-cpplib -- Specify that the functionality of CPP should be
+ integrated into the compiler itself. This is still under
+ development, but may be useful in limited situations. This option
+ is never enabled by default.
+ * --without-fast-fixincludes -- Specify that the old, slower method
+ of fixing the system header files should be used. EGCS 1.1.x and
+ older releases default to the slow version. GCC 2.95 and newer
+ releases will default to the fast version.
+ * --enable-version-specific-runtime-libs -- Specify that runtime
+ libraries should be installed in the compiler specific
+ subdirectory (${libsubdir}) rather than the usual places. In
+ addition, libstdc++'s include files will be installed in
+ ${libsubdir}/include/g++ unless you overruled it by using
+ --with-gxx-include-dir=_dirname_. Using this option is
+ particularly useful if you intend to use several versions of
+ egcs/gcc in parallel. This is currently supported by libf2c and
+ libstdc++.
+ * --enable-languages=_lang1_,_lang2_,... -- Specify that only a
+ particular subset of compilers and their runtime libraries should
+ be built. For a list of valid values for _lang_x you can issue the
+ following command in the gcc directory of your GCC source tree:
+ grep language= */config-lang.in
+ Currently, you can use any of the following: CHILL, c++, f77, java
+ and objc. Please note, that this switch does not work with EGCS
+ 1.1.2 or older versions of egcs. It will be supported in GCC 2.95
+ and newer version.
+ If you do not pass this flag, all languages available in the gcc
+ sub-tree will be configured. Re-defining LANGUAGES when calling
+ make bootstrap _*does not*_ work anymore, as those language
+ sub-directories might not have been configured!
+ * --with-dwarf2 -- Specify that the compiler should use DWARF2
+ debugging information as the default.
+
+ Some options which only apply to building cross compilers:
+ * --with-headers=_dir_ -- Specifies a directory which has target
+ include files. These include files will be copied into the gcc
+ install directory. Fixincludes will be run on these files to make
+ them compatible with gcc.
+ * --with-libs=_"dir1 dir2 ... dirN"_ -- Specifies a list of
+ directories which contain the target runtime libraries. These
+ libraries will be copied into the gcc install directory.
+ * --with-newlib -- Specifies that "newlib" is being used as the
+ target C library. This causes __eprintf to be omitted from
+ libgcc.a on the assumption that it will be provided by newlib.
+
+ Note that each --enable option has a corresponding --disable option
+ and that each --with option has a corresponding --without option.
+ _________________________________________________________________
+
+ _Last modified on July 16, 1999._
diff --git a/gnu/egcs/install/DOWNLOAD b/gnu/egcs/install/DOWNLOAD
new file mode 100644
index 00000000000..18036253bc9
--- /dev/null
+++ b/gnu/egcs/install/DOWNLOAD
@@ -0,0 +1,39 @@
+
+ Downloading GCC
+
+ GCC is distributed via FTP tarballs compressed with gzip or bzip2. It
+ is possible to download a full distribution or specific components.
+
+ The full distribution includes the C, C++, Objective-C, Fortran, Java,
+ and Chill compilers. The full distribution also includes runtime
+ libraries for C++, Objective-C and Fortran. In the future the GNU
+ compiler testsuites will be included in the full distribution.
+
+ If you choose to download specific components, you must download the
+ core gcc distribution plus any language specific distributions you
+ wish to use. The core distribution includes the C language front-end
+ as well as the shared componenets. Each language has a tarball which
+ includes the language front-end as well as the language runtime (when
+ appropriate).
+
+ Unpack the core distribution as well as any language specific
+ distributions in the same directory.
+
+ XXX FSF mirror sites
+
+ [1]FTP download from egcs.cygnus.com (USA California)
+
+ [2]FTP download from go.cygnus.com (USA California -- High speed link
+ provided by Stanford)
+
+ GCC releases are available on many [3]FTP mirror sites. If possible,
+ please use one of these.
+ _________________________________________________________________
+
+ _Last modified on July 16, 1999._
+
+References
+
+ 1. ftp://egcs.cygnus.com/pub/egcs/releases/index.html
+ 2. ftp://go.cygnus.com/pub/sourceware.cygnus.com/pub/egcs/releases/index.html
+ 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/mirrors.html
diff --git a/gnu/egcs/install/FINALINSTALL b/gnu/egcs/install/FINALINSTALL
new file mode 100644
index 00000000000..9092666ffae
--- /dev/null
+++ b/gnu/egcs/install/FINALINSTALL
@@ -0,0 +1,29 @@
+
+ Installing GCC: Final installation
+
+ Now that GCC has been built and tested, you can install it with `cd
+ _objdir_; make install' for a native compiler or `cd _objdir_; make
+ install LANGUAGES="c c++"' for a cross compiler (note installing cross
+ compilers will be easier in the next release!).
+
+ That step completes the installation of GCC; user level binaries can
+ be found in _prefix_/bin where _prefix_ is the value you specified
+ with the --prefix to configure (or /usr/local by default).
+
+ If you don't mind, please quickly review the [1]build status page. If
+ your system is not listed, send a note to [2]gcc@gcc.gnu.org
+ indicating that you successfully built and installed GCC. Include the
+ output from running _srcdir_/config.guess. (Do not send us the
+ config.guess file itself, just the output from running it!)
+
+ If you find a bug, please report it following our [3]bug reporting
+ guidlines.
+ _________________________________________________________________
+
+ _Last modified on July 16, 1999._
+
+References
+
+ 1. http://egcs.cygnus.com/gcc-2.95/buildstat.html
+ 2. mailto:gcc@gcc.gnu.org
+ 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
diff --git a/gnu/egcs/install/INDEX b/gnu/egcs/install/INDEX
new file mode 100644
index 00000000000..baf49be2b50
--- /dev/null
+++ b/gnu/egcs/install/INDEX
@@ -0,0 +1,51 @@
+
+ Installing GCC
+
+ The latest version of this document is always available at
+ [1]http://egcs.cygnus.com/install/.
+
+ This document describes the generic installation procedure for GCC as
+ well as detailing some target specific installation instructions.
+
+ GCC includes several components that previously were separate
+ distributions with their own installation instructions. This document
+ supercedes all package specific installation instructions. We provide
+ the component specific installation information in the source
+ distribution for historical reference purposes only.
+
+ We recommend you read the entire generic installation instructions as
+ well as any target specific installation instructions before you
+ proceed to configure, build, test and install GCC.
+
+ If something goes wrong in the configure, build, test or install
+ procedures, first double check that you followed the generic and
+ target specific installation instructions carefully. Then check the
+ [2]FAQ to see if your problem is covered before you file a bug report.
+
+ _Before_ starting the build/install procedure _please_ browse the
+ [3]host/target specific installation notes.
+
+ The installation procedure is broken into five steps.
+ * [4]downloading the source
+ * [5]configure
+ * [6]build
+ * [7]test (optional)
+ * [8]install
+ _________________________________________________________________
+
+ [9]Return to the GCC home page
+ _________________________________________________________________
+
+ _Last modified on July 15, 1999._
+
+References
+
+ 1. http://egcs.cygnus.com/install/
+ 2. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html
+ 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html
+ 4. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/download.html
+ 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/configure.html
+ 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/build.html
+ 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/test.html
+ 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/finalinstall.html
+ 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/index.html
diff --git a/gnu/egcs/install/SPECIFIC b/gnu/egcs/install/SPECIFIC
new file mode 100644
index 00000000000..e7a5db8c6e7
--- /dev/null
+++ b/gnu/egcs/install/SPECIFIC
@@ -0,0 +1,497 @@
+
+ Host/Target specific installation notes for GCC
+
+ Please read this document carefully _before_ installing the GNU
+ Compiler Collection on your machine.
+ * [1]alpha*-dec-osf*
+ * [2]hppa*-hp-hpux*
+ * [3]hppa*-hp-hpux9
+ * [4]hppa*-hp-hpux10
+ * [5]i?86-*-linux*
+ * [6]i?86-*-sco3.2v5*
+ * [7]i?86-*-udk
+ * [8]*-ibm-aix*
+ * [9]m68k-*-nextstep*
+ * [10]m68k-sun-sunos4.1.1
+ * [11]mips*-sgi-irix[45]
+ * [12]mips*-sgi-irix6
+ * [13]powerpc-*-linux-gnu*
+ * [14]sparc-sun-solaris2.7
+ * [15]sparc-sun-sunos*
+ * [16]sparc-unknown-linux-gnulibc1
+ * [17]sparc64-*-*
+ * [18]GCC with Windows or OS/2
+ _________________________________________________________________
+
+ alpha*-dec-linux*
+
+ GNU/Linux Alpha EV56 or PCA56 hosts running Red Hat 4.2 or 5.0 may see
+ errors of this sort:
+ Error: Unknown pseudo-op: `.arch'
+
+ This is a signal that a new assembler is needed if you want to
+ generate BWX insns for your machine.
+
+ The version of GCC shipped with Red Hat 4.2 (2.7.0.2) has a fault
+ wherein it will silently generate incorrect code. The version shipped
+ with Red Hat 5.0 (2.8.0.1) is not broken, but required an extra
+ -m21164a argument on the command-line. In order to visibly trap
+ 2.7.0.2, I now issue DEC's .arch pseudo into the assembly. Relieving
+ the problem of mucking with command-line arguments for 2.8.0.1 is a
+ pleasant side effect.
+
+ If you've got Red Hat 5.0 installed, you may grab binutils 2.9.1 and
+ be happy. If you've got Red Hat 4.2, bugs make it much harder to
+ upgrade pieces on your own, and you are better off upgrading the
+ entire system.
+
+ In either case, your problem may be bypassed by not emitting BWX code
+ by default. Do this by using
+ configure alphaev5-unknown-linux-gnulibc1
+
+ if you have RH 4.2, or
+ configure alphaev5-unknown-linux-gnu
+
+ if you have RH 5.0.
+
+ The following error:
+ Error: macro requires $at register while noat in effect
+
+ also indicates that you should upgrade to a newer version of the
+ assembler, 2.9 or later. If you can not upgrade the assembler, the
+ compiler option "-Wa,-m21164a" may work around this problem.
+ _________________________________________________________________
+
+ alpha*-dec-osf*
+
+ If you install a shared libstdc++ and, when you link a non-trivial C++
+ program (for example, gcc/testsuite/g++.other/delete3.C), the linker
+ reports a couple of errors about multiply-defined symbols (for
+ example, nothrow, __throw and terminate(void)), you've probably got a
+ linker bug, for which there's no known fix. The officially recommended
+ work-around is to remove the shared libstdc++.
+
+ An alternative solution is to arrange that all symbols from libgcc get
+ copied to the shared libstdc++; see detailed solution below.
+ (Surprising as it may seem, this does indeed fix the problem!) _Beware_
+ that this may bring you binary-compatibility problems in the future,
+ if you don't use the same work-around next time you build libstdc++:
+ if programs start to depend on libstdc++ to provide symbols that used
+ to be only in libgcc, you must arrange that libstdc++ keeps providing
+ them, otherwise the programs will have to be relinked.
+
+ The magic spell is to add -Wl,-all,-lgcc,-none to the definition of
+ macro SHDEPS in libstdc++/config/dec-osf.ml _before_
+ alpha*-dec-osf*/libstdc++/Makefile is created (a [19]patch that does
+ just that is available). If the Makefile already exists, run
+ ./config.status within directory alpha*-dec-osf*/libstdc++ (and
+ alpha*-dec-osf*/ieee/libstdc++, if it also exists). Remove any
+ existing libstdc++.so* from such directories, and run make
+ all-target-libstdc++ in the top-level directory, then make
+ install-target-libstdc++.
+
+ If you have already removed the build tree, you may just remove
+ libstdc++.so.2.10.0 from the install tree and re-create it with the
+ command gcc -shared -o libstdc++.so.2.10.0
+ -Wl,-all,-lstdc++,-lgcc,-none -lm. If the ieee sub-directory exists,
+ repeat this command in it, with the additional flag -mieee.
+ _________________________________________________________________
+
+ hppa*-hp-hpux*
+
+ We _highly_ recommend using gas/binutils-2.8 or newer on all hppa
+ platforms; you may encounter a variety of problems when using the HP
+ assembler.
+
+ If you wish to use pa-risc 2.0 architecture support, you must use
+ either the HP assembler or a recent [20]snapshot of gas.
+
+ More specific information to hppa*-hp-hpux* targets follows.
+ _________________________________________________________________
+
+ hppa*-hp-hpux9
+
+ The HP assembler has major problems on this platform. We've tried to
+ work around the worst of the problems. However, those workarounds may
+ be causing linker crashes in some circumstances; the workarounds also
+ probably prevent shared libraries from working. Use the GNU assembler
+ to avoid these problems.
+
+ The configuration scripts for GCC will also trigger a bug in the hpux9
+ shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
+ /bin/ksh in your environment.
+ _________________________________________________________________
+
+ hppa*-hp-hpux10
+
+ For hpux10.20, we _highly_ recommend you pick up the latest sed patch
+ PHCO_15468 from HP. HP has two sites which provide patches free of
+ charge:
+ * [21]US, Canada, Asia-Pacific, and Latin-America
+ * [22]Europe
+
+ The HP assembler on these systems is much better than the hpux9
+ assembler, but still has some problems. Most notably the assembler
+ inserts timestamps into each object file it creates, causing the
+ 3-stage comparison test to fail during a `make bootstrap'. You should
+ be able to continue by saying `make all' after getting the failure
+ from `make bootstrap'.
+ _________________________________________________________________
+
+ i?86-*-linux*
+
+ You will need binutils-2.9.1.0.15 or newer for exception handling to
+ work.
+
+ If you receive Signal 11 errors when building on GNU/Linux, then it is
+ possible you have a hardware problem. Further information on this can
+ be found on [23]www.bitwizard.nl.
+ _________________________________________________________________
+
+ i?86-*-sco3.2v5*
+
+ If you are building languages other than C, you must follow the
+ instructions about invoking `make bootstrap' because the native
+ OpenServer compiler will build a cc1plus that will not correctly parse
+ many valid C++ programs including those in libgcc.a. _You must do a
+ `make bootstrap' if you are building with the native compiler._
+
+ Use of the `-march-pentiumpro' flag can result in unrecognized opcodes
+ when using the native assembler. While it's rather rare to see these
+ emitted by GCC yet, errors of the basic form:
+ /usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
+ /usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
+
+ are symptoms of this problem. You may work around this by not building
+ affected files with that flag or by using the GNU assembler. Users of
+ GNU assembler should see the note below for hazards on doing so.
+
+ If you choose to configure with --enable-shared you should also
+ specificy --with-gnu-as --disable-multilib even if you are not using
+ the GNU assembler. In doing so you will give up the ability to
+ generate COFF executables as described below. This combination of
+ flags is necessary to suppress negative interactions with multilibing.
+
+ The native SCO assembler that is provided with the OS at no charge is
+ normally required. If, however, you must be able to use the GNU
+ assembler you may configure this package using the flags
+ --with-gnu-as. You must use a recent version of GNU binutils; version
+ 2.9.1 seems to work well. If you select this option, you will be
+ unable to reliably build COFF images. In general, the --with-gnu-as
+ option isn't as well tested as the native assembler.
+
+ Unlike various prereleases of GCC that used -belf and defaulted to
+ COFF, you must now use the -melf and -mcoff flags to toggle between
+ the two object file formats. ELF is now the default.
+
+ Look in gcc/config/i386/sco5.h (search for "messy") for additional
+ OpenServer-specific flags.
+
+ Systems based on OpenServer before 5.0.4 (`uname -X' will tell you
+ what you're running) require TLS597 from ftp.sco.com/TLS for C++
+ constructors and destructors to work right.
+
+ The system linker in (at least) 5.0.4 and 5.0.5 will sometimes do the
+ wrong thing for a construct that GCC will emit for PIC code. This can
+ be seen as execution testsuite failures when using -fPIC on
+ 921215-1.c, 931002-1.c, nestfunc-1.c, and gcov-1.c. For 5.0.5, an
+ updated linker that will cure this problem is available. You must
+ install both [24]ftp://ftp.sco.com/Supplements/rs505a/ and
+ [25]OSS499A.
+
+ The dynamic linker in OpenServer 5.0.5 (earlier versions may show the
+ same problem) aborts on certain g77-compiled programs. It's
+ particluarly likely to be triggered by building Fortran code with the
+ -fPIC flag. Although it's conceivable that the error could be
+ triggered by other code, only G77-compiled code has been observed to
+ cause this abort. If you are getting core dumps immediately upon
+ execution of your g77 program - and especially if it's compiled with
+ -fPIC - try applying [26]`sco_osr5_g77.patch' to your libf2c and
+ rebuilding GCC. Affected faults, when analyzed in a debugger, will
+ show a stack backtrace with a fault occurring in rtld() and the
+ program running as /usr/lib/ld.so.1. This problem has been reported to
+ SCO engineering and will hopefully be addressed in later releases.
+ _________________________________________________________________
+
+ i?86-*-udk
+
+ This target emulates the SCO Universal Development Kit and requires
+ that package be installed. (If it is installed, you will have a
+ /udk/usr/ccs/bin/cc file present.) It's very much like the
+ i?86-*-unixware7* target but is meant to be used when hosting on a
+ system where UDK isn't the default compiler such as OpenServer 5 or
+ Unixware 2. This target will generate binaries that will run on
+ OpenServer, Unixware 2, or Unixware 7, with the same warnings and
+ caveats as the SCO UDK.
+
+ You can stage1 with either your native compiler or with UDK. If you
+ don't do a full bootstrap when initially building with your native
+ compiler you will have an utterly unusable pile of bits as your
+ reward.
+
+ This target is a little tricky to build because we have to distinguish
+ it from the native tools (so it gets headers, startups, and libraries
+ from the right place) while making the tools not think we're actually
+ building a cross compiler. The easiest way to do this is with a
+ configure command like this:
+ CC=/udk/usr/ccs/bin/cc _/your/path/to/_gcc/configure --host=i686-pc-udk --tar
+get=i686-pc-udk --exec-prefix=udk-
+
+ _You should substitute 'i686' in the above command with the
+ appropriate processor for your host._
+
+ You should follow this with a `make bootstrap' then `make install'.
+ You can then access the UDK-targeted GCC tools by adding udk- before
+ the commonly known name. For example, to invoke the C compiler, you
+ would use `udk-gcc'. They will coexist peacefully with any
+ native-target GCC tools you may have installed.
+ _________________________________________________________________
+
+ *-ibm-aix*
+
+ AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
+ newer is recommended to build on this platform.
+
+ Some versions of the AIX binder (linker) can fail with a relocation
+ overflow severe error when the -bbigtoc option is used to link
+ GCC-produced object files into an executable that overflows the TOC. A
+ fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND
+ -BBIGTOC) is available from IBM Customer Support and from its
+ [27]service.boulder.ibm.com website as PTF U455193.
+
+ Binutils does not support AIX 4.3 (at least through release 2.9). GNU
+ as and GNU ld will not work properly and one should not configure GCC
+ to use those GNU utilities. Use the native AIX tools which do
+ interoperate with GCC.
+
+ AIX 4.3 utilizes a new "large format" archive to support both 32-bit
+ and 64-bit object modules. The routines provided in AIX 4.3.0 and AIX
+ 4.3.1 to parse archive libraries did not handle the new format
+ correctly. These routines are used by GCC and result in error messages
+ during linking such as "not a COFF file". The version of the routines
+ shipped with AIX 4.3.1 should work for a 32-bit environment. The -g
+ option of the archive command may be used to create archives of 32-bit
+ objects using the original "small format". A correct version of the
+ routines is shipped with AIX 4.3.2.
+
+ The initial assembler shipped with AIX 4.3.0 generates incorrect
+ object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM
+ COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer
+ Support and from its [28]service.boulder.ibm.com website as PTF
+ U453956. This fix is incorporated in AIX 4.3.1 and above.
+
+ The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
+ core with a segmentation fault when invoked by any version of GCC. A
+ fix for APAR IX87327 will be available from IBM Customer Support.
+ _________________________________________________________________
+
+ m68k-*-nextstep*
+
+ You absolutely _must_ use GNU sed and GNU make on this platform.
+
+ On NEXTSTEP 3.x where x < 3 the build of GCC will abort during stage1
+ with an error message like this:
+ _eh
+ /usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
+ /usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
+ valued 95 (_).
+
+ The reason for this is the fact that NeXT's assembler for these
+ versions of the operating system does not support the .section pseudo
+ op that's needed for full C++ exception functionality.
+
+ As NeXT's assembler is a derived work from GNU as, a free replacement
+ that does can be obtained at
+ [29]ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s
+ .tar.gz.
+
+ If you try to build the integrated C++ & C++ runtime libraries on this
+ system you will run into trouble with include files. The way to get
+ around this is to use the following sequence. Note you must have write
+ permission to the directory _prefix_ you secified in the configuration
+ preocess of GCC for this sequence to work.
+ cd bld-gcc
+ make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+ cd gcc
+ make bootstrap
+ make install-headers-tar
+ cd ..
+ make bootstrap3
+ _________________________________________________________________
+
+ m68k-sun-sunos4.1.1
+
+ It is reported that you may need the GNU assembler on this platform.
+ _________________________________________________________________
+
+ mips*-sgi-irix[45]
+
+ You must use GAS on these platforms, as the native assembler can not
+ handle the code for exception handling support. Either of these
+ messages indicates that you are using the MIPS assembler when instead
+ you should be using GAS:
+ as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
+ .4byte $LECIE1-$LSCIE1
+ as0: Error: ./libgcc2.c, line 1:malformed statement
+
+ or:
+ as0: Error: /src/bld-gcc/gcc/libgcc2.c, line 1:undefined symbol in expression
+ .word $LECIE1-$LSCIE1
+
+ These systems don't have ranlib, which various components in GCC need;
+ you should be able to avoid this problem by installing GNU binutils,
+ which includes a functional ranlib for this system.
+
+ You may get the following warning on irix4 platforms, it can be safely
+ ignored.
+ warning: foo.o does not have gp tables for all its sections.
+
+ When building GCC, the build process loops rebuilding cc1 over and
+ over again. This happens on mips-sgi-irix5.2, and possibly other
+ platforms.
+ It has been reported that this is a known bug in the make shipped with
+ IRIX 5.2. We recommend you use GNU make instead of the vendor supplied
+ make program; however, you may have success with "smake" on IRIX 5.2
+ if you do not have GNU make available.
+
+ See [30]http://reality.sgi.com/ariel/freeware for more information
+ about using GCC on IRIX platforms.
+ _________________________________________________________________
+
+ mips*-sgi-irix6
+
+ You must _not_ use GAS on irix6 platforms; doing so will only cause
+ problems.
+
+ These systems don't have ranlib, which various components in GCC need;
+ you should be able to avoid this problem by making a dummy script
+ called ranlib which just exits with zero status and placing it in your
+ path.
+
+ GCC does not currently support generating O32 ABI binaries in the
+ mips-sgi-irix6 configurations. It used to be possible to create a GCC
+ with O32 ABI only support by configuring it for the mips-sgi-irix5
+ target. See the link below for details.
+
+ GCC does not correctly pass/return structures which are smaller than
+ 16 bytes and which are not 8 bytes. The problem is very involved and
+ difficult to fix. It affects a number of other targets also, but IRIX
+ 6 is affected the most, because it is a 64 bit target, and 4 byte
+ structures are common. The exact problem is that structures are being
+ padded at the wrong end, e.g. a 4 byte structure is loaded into the
+ lower 4 bytes of the register when it should be loaded into the upper
+ 4 bytes of the register.
+
+ GCC is consistent with itself, but not consistent with the SGI C
+ compiler [and the SGI supplied runtime libraries], so the only
+ failures that can happen are when there are library functions that
+ take/return such structures. There are very few such library
+ functions. I can only recall seeing two of them: inet_ntoa, and
+ semctl.
+
+ See [31]http://reality.sgi.com/ariel/freeware for more information
+ about using GCC on IRIX platforms.
+ _________________________________________________________________
+
+ powerpc-*-linux-gnu*
+
+ You will need [32]binutils-2.9.4.0.8 or newer for a working GCC. It is
+ strongly recommended to recompile binutils if you initially built it
+ with gcc-2.7.2.x.
+ _________________________________________________________________
+
+ sparc-sun-solaris2.7
+
+ Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
+ the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 and
+ later, including all EGCS releases. To avoid this problem, do not
+ install Sun patch 107058-01 until after Sun releases a patch for bug
+ 4210064. Sun has a fix for this bug but (as of 1999-06-24) has not yet
+ released it as a patch.
+ _________________________________________________________________
+
+ sparc-sun-sunos*
+
+ A bug in the SunOS4 linker will cause it to crash when linking -fPIC
+ compiled objects (and will therefore not allow you to build shared
+ libraries).
+
+ To fix this problem you can either use the most recent version of
+ binutils or get the latest SunOS4 linker patch (patch ID 100170-10)
+ from Sun's patch site.
+ _________________________________________________________________
+
+ sparc-unknown-linux-gnulibc1
+
+ It has been reported that you might need [33]binutils-2.8.1.0.23 for
+ this platform, too.
+ _________________________________________________________________
+
+ sparc64-*-*
+
+ GCC version 2.95 is not able to compile code correctly for sparc64
+ targets. Users of the Linux kernel, at least, can use the sparc32
+ program to start up a new shell invocation with an environment that
+ causes configure to recognize (via uname -a) the system as sparc-*-*
+ instead.
+
+ _all ELF targets (SVR4, Solaris, etc.)_
+ C++ support is significantly better on ELF targets if you use the GNU
+ linker; duplicate copies of inlines, vtables and template
+ instantiations will be discarded automatically.
+ _________________________________________________________________
+
+ GCC with Windows or OS/2
+
+ GCC does not currently support Windows, either natively or with the
+ cygwin32 dll. However Mumit Khan has been working on supporting
+ Windows with GCC. You should check out his site if you're interested
+ in Windows support. [34]GNU Win32 related projects
+
+ GCC does not currently support OS/2. However, Andrew Zabolotny has
+ been working on a generic os/2 port with pgcc. The current code code
+ can be found at [35]http://www.goof.com/pcg/os2/.
+ _________________________________________________________________
+
+ [36]Return to the GCC Installation page
+
+ _Last modified on August 15, 1999._
+
+References
+
+ 1. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#alpha*-dec-osf*
+ 2. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux*
+ 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux9
+ 4. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux10
+ 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-linux*
+ 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-sco3.2v5*
+ 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-udk
+ 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#*-ibm-aix*
+ 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#m68k-*-nextstep*
+ 10. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#m68k-sun-sunos4.1.1
+ 11. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#mips*-sgi-irix[45]
+ 12. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#mips*-sgi-irix6
+ 13. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#powerpc-*-linux-gnu*
+ 14. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-sun-solaris2.7
+ 15. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-sun-sunos*
+ 16. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-unknown-linux-gnulibc1
+ 17. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc64-*-*
+ 18. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#win+os2
+ 19. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/dec-osf-shlibstdc++.patch
+ 20. ftp://sourceware.cygnus.com/pub/binutils/snapshots
+ 21. http://us-support.external.hp.com/
+ 22. http://europe-support.external.hp.com/
+ 23. http://www.bitwizard.nl/sig11/
+ 24. ftp://ftp.sco.com/Supplements/rs505a/
+ 25. ftp://ftp.sco.com/SLS/
+ 26. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/sco_osr5_g77.patch
+ 27. http://service.boulder.ibm.com/
+ 28. http://service.boulder.ibm.com/
+ 29. ftp://ftp.next.peak.org/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz
+ 30. http://reality.sgi.com/ariel/freeware/
+ 31. http://reality.sgi.com/ariel/freeware/
+ 32. ftp://ftp.varesearch.com/pub/support/hjl/binutils
+ 33. ftp://ftp.yggdrasil.com/private/hjl
+ 34. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
+ 35. http://www.goof.com/pcg/os2/
+ 36. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/index.html
diff --git a/gnu/egcs/install/TEST b/gnu/egcs/install/TEST
new file mode 100644
index 00000000000..be13f665991
--- /dev/null
+++ b/gnu/egcs/install/TEST
@@ -0,0 +1,13 @@
+
+ Installation Instructions: Testing GCC
+
+ The testsuite has been temporarily removed from the gcc distributions
+ until the copyright status of some tests can be determined. It is
+ hoped that the testsuite will be included in the gcc releases again
+ soon.
+
+ Until the testsuite is included it is impossible to run the testsuite.
+ Sorry.
+ _________________________________________________________________
+
+ _Last modified on July 15, 1999._
diff --git a/gnu/egcs/install/build.html b/gnu/egcs/install/build.html
new file mode 100644
index 00000000000..55123828006
--- /dev/null
+++ b/gnu/egcs/install/build.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<title>Installing GCC: Building</title>
+</head>
+<body>
+<h1 align="center">Installing GCC: Building</h1>
+
+<p>Now that GCC is configured, you are ready to build the compiler and
+runtime libraries.
+
+<p>We <b>highly</b> recommend that GCC be built using GNU make; other
+versions may work, then again they might not. To be safe build with GNU make.
+
+<h2>Building a native compiler</h2>
+
+<p>For a native build issue the command `<code>make bootstrap</code>'. This
+will build the entire GCC system, which includes the following steps:
+
+<ul>
+ <li> Build host tools necessary to build the compiler such as texinfo, bison,
+ gperf.<p>
+
+ <li> Build target tools for use by the compiler such as gas, gld, and
+ binutils if they have been properly unpacked into the GCC source tree.<p>
+
+ <li> Perform a 3-stage bootstrap of the compiler.<p>
+
+ <li> Perform a comparison test of the stage2 and stage3 compilers.<p>
+
+ <li> Build runtime libraries using the stage3 compiler from the previous
+ step.
+</ul>
+
+<p>If you are short on disk space you might consider `<code>make
+bootstrap-lean</code>' instead. This is identical to `<code>make
+bootstrap</code>' except that object files from the stage1 and
+stage2 of the 3-stage bootstrap of the compiler are deleted as
+soon as they are no longer needed.
+
+<p>If you want to save additional space during the bootstrap and in
+the final installation as well, you can build the compiler binaries
+without debugging information with "make CFLAGS='-O' LIBCFLAGS='-g
+-O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap". This will save
+roughly 40% of disk space both for the bootstrap and the final installation.
+(Libraries will still contain debugging information.)
+
+<p>If you used the flag <code>--enable-languages=...</code> to restrict
+the compilers to be built, only those you've actually enabled will be
+built. This will of course only build those runtime libraries, for
+which the particular compiler has been built. Please note,
+that re-defining LANGUAGES when calling `<code>make bootstrap</code>'
+<b>*does not*</b> work anymore!
+
+<h2>Building a cross compiler</h2>
+
+<p> We recommend reading the
+<a href="http://www.objsw.com/CrossGCC/">
+crossgcc FAQ</a> for information about building cross compilers.
+
+<p>When building a cross compiler, it is not generally possible to do a
+3-stage bootstrap of the compiler. This makes for an interesting problem
+as parts of GCC can only be built with GCC.
+
+<p>To build a cross compiler, we first recommend building and installing a
+native compiler. You can then use the native GCC compiler to build the
+cross compiler.
+
+<p>Assuming you have already installed a native copy of GCC and configured
+your corss compiler, issue the command "make", which performs the
+following steps:
+<ul>
+ <li> Build host tools necessary to build the compiler such as texinfo, bison,
+ gperf.<p>
+
+ <li> Build target tools for use by the compiler such as gas, gld, and
+ binutils if they have been properly unpacked into the GCC source tree.<p>
+
+ <li> Build the compiler (single stage only).<p>
+
+ <li> Build runtime libraries using the compiler from the previous
+ step.
+</ul>
+
+<p>Note that if an error occurs in any step the make process will exit.
+
+<h2>Building in parallel</h2>
+
+<p> If you have a multiprocessor you can use `<code>make bootstrap
+MAKE="make -j 2" -j 2</code>' instead of just `<code>make bootstrap</code>'
+when building GCC. You can use a bigger number instead of two if
+you like. In most cases, it won't help to use a number bigger than
+the number of processors in your machine.
+
+<p>
+<hr>
+<i>Last modified on July 16, 1999.</i>
+
+</body>
+</html>
diff --git a/gnu/egcs/install/configure.html b/gnu/egcs/install/configure.html
new file mode 100644
index 00000000000..f27ab3a6d67
--- /dev/null
+++ b/gnu/egcs/install/configure.html
@@ -0,0 +1,181 @@
+<html>
+<head>
+<title>Installing GCC: Configuration</title>
+</head>
+<body>
+<h1 align="center">Installing GCC: Configuration</h1>
+
+<p>Like most GNU software, GCC must be configured before it can be built.
+This document describes the recommended configuration procedure
+for both native and cross targets.
+
+<p>We use <i>srcdir</i> to refer to the toplevel source directory for
+GCC; we use <i>objdir</i> to refer to the toplevel build/object
+directory.
+
+<p>First, we <b>highly</b> recommend that GCC be built into a
+separate directory than the sources which does <b>not</b> reside
+within the source tree. This is how we generally build GCC; building
+where <i>srcdir</i> == <i>objdir</i> should still work, but doesn't
+get extensive testing; building where <i>objdir</i> is a subdirectory
+of <i>srcdir</i> is unsupported.
+
+<p>Second, when configuring a native system, either "cc" or "gcc" must be in
+your path or you must set CC in your environment before running configure.
+Otherwise the configuration scripts may fail.
+
+<p>To configure GCC:
+
+<blockquote>
+<tt>
+ <br>% mkdir <i>objdir</i>
+ <br>% cd <i>objdir</i>
+ <br>% <i>srcdir</i>/configure <b>[target]</b> <b>[options]</b>
+</tt>
+</blockquote>
+
+
+<p><b>target specification</b>
+<ul>
+ <li>GCC has code to correctly determine the correct value for
+ <b>target</b> for nearly all native systems. Therefore, we highly
+ recommend you not provide a configure target when configuring a
+ native compiler.
+
+ <li> <b>target</b> must be specified when configuring a cross compiler;
+ examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc.
+</ul>
+
+
+<p><b> options specification</b>
+
+<p>Use <b>options</b> to override several configure time options for
+GCC. A partial list of supported <tt>options</tt>:
+
+<ul>
+ <li> <tt>--prefix=</tt><i>dirname</i> -- Specify the toplevel installation
+ directory. This is the recommended way to install the tools into a directory
+ other than the default. The toplevel installation directory defaults to
+ /usr/local.
+
+ <p> We <b>highly</b> recommend against <i>prefix</i> being the same or a
+ subdirectory of <i>objdir</i> or vice versa.
+
+ <p>These additional options control where certain parts of the distribution
+ are installed. Normally you should not need to use these options.
+ <ul>
+ <li> <tt>--with-local-prefix=</tt><i>dirname</i> -- Specify the installation
+ directory for local include files. The default is /usr/local.
+
+ <li> <tt>--with-gxx-include-dir=</tt><i>dirname</i> -- Specify the installation
+ directory for g++ header files. The default is /usr/local/include/g++.
+ </ul>
+
+ <li> <tt>--enable-shared</tt> -- Build shared versions of the C++ runtime
+ libraries if supported <tt>--disable-shared</tt> is the default.
+
+ <li> <tt>--enable-haifa</tt> -- Enable the new Haifa instruction scheduler
+ in the compiler; the new scheduler can significantly improve code on some
+ targets.
+ <br>For EGCS 1.0.x releases <tt>--disable-haifa</tt> is the default on all
+ platforms except the HPPA.
+ <br>For newer releases <tt>--disable-haifa</tt> is the default on all
+ platforms except the alpha, hppa, powerpc, rs6000, SPARC and m32r.
+
+ <li> <tt>--with-gnu-as</tt> -- Specify that the compiler should assume the GNU
+ assembler (aka gas) is available.
+
+ <li> <tt>--with-gnu-ld</tt> -- Specify that the compiler should assume the GNU
+ linker (aka gld) is available.
+
+ <li> <tt>--with-stabs</tt> -- Specify that stabs debugging information should be used
+ instead of whatever format the host normally uses. Normally GCC uses the
+ same debug format as the host system.
+
+ <li> <tt>--enable-multilib</tt> -- Specify that multiple target libraries
+ should be built to support different target variants, calling conventions,
+ etc. This is the default.
+
+ <li> <tt>--enable-threads</tt> -- Specify that the target supports threads.
+ This affects only the Objective-C compiler and runtime library.
+
+ <li> <tt>--enable-threads=</tt><i>lib</i> -- Specify that <i>lib</i> is the
+ thread support library. This affects only the Objective-C compiler and
+ runtime library.
+
+ <li> <tt>--with-cpu=</tt><i>cpu</i> -- Specify which cpu variant the
+ compiler should generate code for by default. This is currently
+ only supported on the some ports, specifically arm, powerpc, and
+ SPARC. If configure does not recognize the model name (e.g. arm700,
+ 603e, or ultrasparc) you provide, please check the configure script
+ for a complete list of supported models.
+
+ <li> <tt>--enable-target-optspace</tt> -- Specify that target libraries should be optimzied for code space instead of code speed. This is the default for
+ the m32r platform.
+
+ <li> <tt>--enable-cpp</tt> -- Specify that a shell script which emulates
+ traditional cpp functionality should be installed.
+
+ <li> <tt>--enable-cpplib</tt> -- Specify that the functionality of CPP should
+ be integrated into the compiler itself. This is still under development, but
+ may be useful in limited situations. This option is never enabled by default.
+
+ <li> <tt>--without-fast-fixincludes</tt> -- Specify that the old, slower
+ method of fixing the system header files should be used.
+ EGCS 1.1.x and older releases default to the slow version. GCC 2.95 and
+ newer releases will default to the fast version.
+
+ <li> <tt>--enable-version-specific-runtime-libs</tt> -- Specify that runtime
+ libraries should be installed in the compiler specific subdirectory
+ (<tt>${libsubdir}</tt>) rather than the usual places.
+ In addition, libstdc++'s include files will be installed in
+ <tt>${libsubdir}/include/g++</tt> unless you overruled it by using
+ <tt>--with-gxx-include-dir=</tt><i>dirname</i>.
+ Using this option is particularly useful if you intend to use several
+ versions of egcs/gcc in parallel. This is currently supported by <tt>libf2c</tt>
+ and <tt>libstdc++</tt>.
+
+ <li> <tt>--enable-languages=</tt><i>lang1</i><tt>,</tt><i>lang2</i><tt>,...</tt>
+ -- Specify that only a particular subset of compilers and their runtime libraries
+ should be built. For a list of valid values for <i>lang</i><tt>x</tt> you can issue
+ the following command in the <tt>gcc</tt> directory of your GCC source tree:<br>
+ <tt>
+ grep language= */config-lang.in
+ </tt><br>
+ Currently, you can use any of the following: <tt>CHILL</tt>, <tt>c++</tt>,
+ <tt>f77</tt>, <tt>java</tt> and <tt>objc</tt>. Please note, that this switch
+ does not work with EGCS 1.1.2 or older versions of egcs. It will be supported
+ in GCC 2.95 and newer version.<br>
+ If you do not pass this flag, all languages available in the <tt>gcc</tt> sub-tree
+ will be configured. Re-defining LANGUAGES when calling <tt>make bootstrap</tt>
+ <b>*does not*</b> work anymore, as those language sub-directories might not have been
+ configured!
+ <li> <tt>--with-dwarf2</tt> -- Specify that the compiler should use DWARF2
+ debugging information as the default.
+
+</ul>
+
+<p>Some options which only apply to building cross compilers:
+<ul>
+ <li> <tt>--with-headers=</tt><i>dir</i> -- Specifies a directory which has
+ target include files. These include files will be copied into the gcc
+ install directory. Fixincludes will be run on these files to make them
+ compatible with gcc.
+ <li> <tt>--with-libs=</tt><i>"dir1 dir2 ... dirN"</i> -- Specifies a list of
+ directories which contain the target runtime libraries. These libraries will
+ be copied into the gcc install directory.
+ <li> <tt>--with-newlib</tt> -- Specifies that "newlib" is being used as the target
+ C library. This causes __eprintf to be omitted from libgcc.a on the
+ assumption that it will be provided by newlib.
+</ul>
+
+<p>Note that each <tt>--enable</tt> option has a corresponding <tt>--disable</tt> option and
+that each <tt>--with</tt> option has a corresponding <tt>--without</tt> option.
+
+
+<p>
+<hr>
+<i>Last modified on July 16, 1999.</i>
+
+</body>
+</html>
diff --git a/gnu/egcs/install/dec-osf-shlibstdc++.patch b/gnu/egcs/install/dec-osf-shlibstdc++.patch
new file mode 100644
index 00000000000..1b2a4acbe3a
--- /dev/null
+++ b/gnu/egcs/install/dec-osf-shlibstdc++.patch
@@ -0,0 +1,27 @@
+Index: libstdc++/ChangeLog
+from Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * config/dec-osf.ml: Force all of libgcc into libstdc++, to avoid
+ multiply-defined linker errors.
+
+Index: libstdc++/config/dec-osf.ml
+===================================================================
+RCS file: /egcs/carton/cvsfiles/egcs/libstdc++/config/dec-osf.ml,v
+retrieving revision 1.2
+diff -u -r1.2 dec-osf.ml
+--- libstdc++/config/dec-osf.ml 1998/08/30 21:18:41 1.2
++++ libstdc++/config/dec-osf.ml 1999/07/15 07:40:11
+@@ -3,4 +3,12 @@
+
+ LIBS = $(ARLIB) $(ARLINK) $(SHLIB) $(SHLINK)
+ DEPLIBS = ../$(SHLIB)
+-SHDEPS = -lm
++SHDEPS = -lm -Wl,-all,-lgcc,-none
++# Some testcases in the testsuite required symbols from libgcc, say,
++# __pure_virtual, that would not have been copied into libstdc++
++# without this -Wl switch above. But __pure_virtual depended on other
++# symbols of libgcc that had been copied to libstdc++. However,
++# DU4.0d's ld would report such symbols as duplicates, and refuse to
++# link. Forcing some symbols from libgcc into libstdc++ ensures that
++# we don't get such late undefined symbols, avoiding the bogus
++# multiple-definition errors.
diff --git a/gnu/egcs/install/download.html b/gnu/egcs/install/download.html
new file mode 100644
index 00000000000..a3ed652bb5f
--- /dev/null
+++ b/gnu/egcs/install/download.html
@@ -0,0 +1,38 @@
+<html>
+<head>
+<title>Downloading GCC</title>
+</head>
+<body>
+<h1 align="center">Downloading GCC</h1>
+
+<p>GCC is distributed via FTP tarballs compressed with gzip or bzip2. It is
+possible to download a full distribution or specific components.
+
+<p>The full distribution includes the C, C++, Objective-C, Fortran, Java,
+and Chill compilers. The full distribution also includes runtime libraries
+for C++, Objective-C and Fortran. In the future the GNU compiler testsuites
+will be included in the full distribution.
+
+<p>If you choose to download specific components, you must download the core
+gcc distribution plus any language specific distributions you wish to
+use. The core distribution includes the C language front-end as well as the
+shared componenets. Each language has a tarball which includes the language
+front-end as well as the language runtime (when appropriate).
+
+<p>Unpack the core distribution as well as any language specific distributions
+in the same directory.
+
+<p>XXX FSF mirror sites
+<p><a href="ftp://egcs.cygnus.com/pub/egcs/releases/index.html">
+FTP download from egcs.cygnus.com (USA California)</a>
+<p><a href="ftp://go.cygnus.com/pub/sourceware.cygnus.com/pub/egcs/releases/index.html">
+FTP download from go.cygnus.com (USA California -- High speed link
+provided by Stanford)</a>
+<p>GCC releases are available on many <a href="../mirrors.html">FTP mirror sites</a>. If possible, please use one of these.
+
+<p>
+<hr>
+<i>Last modified on July 16, 1999.</i>
+
+</body>
+</html>
diff --git a/gnu/egcs/install/finalinstall.html b/gnu/egcs/install/finalinstall.html
new file mode 100644
index 00000000000..5c11a503213
--- /dev/null
+++ b/gnu/egcs/install/finalinstall.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+<title>Installing GCC: Final installation</title>
+</head>
+<body>
+<h1 align="center">Installing GCC: Final installation</h1>
+
+<p>Now that GCC has been built and tested, you can install it with
+`<code>cd <i>objdir</i>; make install</code>' for a native compiler or
+`<code>cd <i>objdir</i>; make install LANGUAGES="c c++"</code>' for
+a cross compiler (note installing cross compilers will be easier in the
+next release!).
+
+
+<p>That step completes the installation of GCC; user level binaries can
+be found in <i>prefix</i>/bin where <i>prefix</i> is the value you specified
+with the --prefix to configure (or /usr/local by default).
+
+<p>If you don't mind, please quickly review the <a
+href="http://egcs.cygnus.com/gcc-2.95/buildstat.html">build status page</a>.
+If your system is not listed, send a note to
+<a href="mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org</a> indicating
+that you successfully built and installed GCC.
+
+Include the output from running <i>srcdir</i>/config.guess. (Do not
+send us the config.guess file itself, just the output from running
+it!)
+
+<p>If you find a bug, please report it following our <a
+href="../faq.html#bugreport">bug reporting guidlines</a>.
+
+<p>
+<hr>
+<i>Last modified on July 16, 1999.</i>
+
+</body>
+</html>
diff --git a/gnu/egcs/install/index.html b/gnu/egcs/install/index.html
new file mode 100644
index 00000000000..981ec480695
--- /dev/null
+++ b/gnu/egcs/install/index.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<title>Installing GCC</title>
+</head>
+<body>
+<h1 align="center">Installing GCC</h1>
+
+<p>The latest version of this document is always available at <a href="
+http://egcs.cygnus.com/install/">http://egcs.cygnus.com/install/</a>.
+
+<p>This document describes the generic installation procedure for GCC as
+well as detailing some target specific installation instructions.
+
+<p>GCC includes several components that previously were separate distributions
+with their own installation instructions. This document supercedes all
+package specific installation instructions. We provide the component specific
+installation information in the source distribution for historical reference
+purposes only.
+
+<p>We recommend you read the entire generic installation instructions as
+well as any target specific installation instructions before you proceed
+to configure, build, test and install GCC.
+
+<p>If something goes wrong in the configure, build, test or install
+procedures, first double check that you followed the generic and target
+specific installation instructions carefully. Then check the
+<a href="../faq.html">FAQ</a> to see if your problem is covered before you file
+a bug report.
+
+<p><em>Before</em> starting the build/install procedure <em>please</em> browse
+the <a href="specific.html">host/target specific installation notes</a>.
+
+<p>The installation procedure is broken into five steps.
+
+<ul>
+
+ <li> <a href="download.html">downloading the source</a>
+ <li> <a href="configure.html">configure</a>
+ <li> <a href="build.html">build</a>
+ <li> <a href="test.html">test</a> (optional)
+ <li> <a href="finalinstall.html">install</a>
+
+</ul>
+
+<hr>
+<a href="../index.html">Return to the GCC home page</a>
+<hr>
+<i>Last modified on July 15, 1999.</i>
+</body>
+</html>
diff --git a/gnu/egcs/install/sco_osr5_g77.patch b/gnu/egcs/install/sco_osr5_g77.patch
new file mode 100644
index 00000000000..f41e8c050b8
--- /dev/null
+++ b/gnu/egcs/install/sco_osr5_g77.patch
@@ -0,0 +1,27 @@
+Index: libf2c/libI77/lread.c
+===================================================================
+RCS file: /cvs/egcs/egcs/libf2c/libI77/lread.c,v
+retrieving revision 1.4
+diff -u -p -r1.4 lread.c
+--- lread.c 1999/03/17 08:21:19 1.4
++++ lread.c 1999/07/11 03:42:33
+@@ -70,7 +70,18 @@ un_getc(int x, FILE *f__cf)
+ #endif
+ { return ungetc(x,f__cf); }
+ #else
+-#define un_getc ungetc
++ /* The OpenServer 5.0.5 dynamic linker aborts on g77 programs
++ * that link against this object. Simply changing the shape of
++ * this relocation is enough to circumvent the bug in the dynamic
++ * linker.
++ */
++#if 0
++ #define un_getc ungetc
++#else
++ typedef int (blah) (int c, FILE *stream);
++ blah *un_getc = ungetc;
++#endif
++
+ #ifdef KR_headers
+ extern int ungetc();
+ #else
diff --git a/gnu/egcs/install/specific.html b/gnu/egcs/install/specific.html
new file mode 100644
index 00000000000..ff2f3f521d4
--- /dev/null
+++ b/gnu/egcs/install/specific.html
@@ -0,0 +1,482 @@
+<html>
+<head>
+<title>Host/Target specific installation notes for GCC</title>
+</head>
+<body>
+
+<h1 align="center">Host/Target specific installation notes for GCC</h1>
+
+<p>Please read this document carefully <i>before</i> installing the GNU Compiler Collection on your machine.</p>
+
+<ul>
+ <li><a href="#alpha*-dec-osf*">alpha*-dec-osf*</a></li>
+ <li><a href="#hppa*-hp-hpux*">hppa*-hp-hpux*</a></li>
+ <li><a href="#hppa*-hp-hpux9">hppa*-hp-hpux9</a></li>
+ <li><a href="#hppa*-hp-hpux10">hppa*-hp-hpux10</a></li>
+ <li><a href="#ix86-*-linux*">i?86-*-linux*</a></li>
+ <li><a href="#ix86-*-sco3.2v5*">i?86-*-sco3.2v5*</a></li>
+ <li><a href="#ix86-*-udk">i?86-*-udk</a></li>
+ <li><a href="#*-ibm-aix*">*-ibm-aix*</a></li>
+ <li><a href="#m68k-*-nextstep*">m68k-*-nextstep*</a></li>
+ <li><a href="#m68k-sun-sunos4.1.1">m68k-sun-sunos4.1.1</a></li>
+ <li><a href="#mips*-sgi-irix[45]">mips*-sgi-irix[45]</a></li>
+ <li><a href="#mips*-sgi-irix6">mips*-sgi-irix6</a></li>
+ <li><a href="#powerpc-*-linux-gnu*">powerpc-*-linux-gnu*</a></li>
+ <li><a href="#sparc-sun-solaris2.7">sparc-sun-solaris2.7</a></li>
+ <li><a href="#sparc-sun-sunos*">sparc-sun-sunos*</a></li>
+ <li><a href="#sparc-unknown-linux-gnulibc1">sparc-unknown-linux-gnulibc1</a></li>
+ <li><a href="#sparc64-*-*">sparc64-*-*</a></li>
+ <li><a href="#win+os2">GCC with Windows or OS/2</a></li>
+</ul>
+
+
+<!-- -------- host/target specific issues start here ---------------- -->
+
+
+<hr>
+<h3><a name="alpha*-dec-linux*">alpha*-dec-linux*</a></h3>
+
+<p>GNU/Linux Alpha EV56 or PCA56 hosts running Red Hat 4.2 or 5.0 may
+see errors of this sort:</p>
+<pre>
+ Error: Unknown pseudo-op: `.arch'
+</pre>
+<p>This is a signal that a new assembler is needed if you want to generate BWX insns for your machine.</p>
+
+<p>The version of GCC shipped with Red Hat 4.2 (2.7.0.2) has a fault wherein
+it will silently generate incorrect code. The version shipped with
+Red Hat 5.0 (2.8.0.1) is not broken, but required an extra -m21164a
+argument on the command-line. In order to visibly trap 2.7.0.2,
+I now issue DEC's .arch pseudo into the assembly. Relieving the
+problem of mucking with command-line arguments for 2.8.0.1 is a
+pleasant side effect.</p>
+
+<p>If you've got Red Hat 5.0 installed, you may grab binutils 2.9.1
+and be happy. If you've got Red Hat 4.2, bugs make it much harder
+to upgrade pieces on your own, and you are better off upgrading
+the entire system.</p>
+
+<p>In either case, your problem may be bypassed by not emitting BWX
+code by default. Do this by using</p>
+<pre>
+ configure alphaev5-unknown-linux-gnulibc1
+</pre>
+<p>if you have RH 4.2, or</p>
+<pre>
+ configure alphaev5-unknown-linux-gnu
+</pre>
+<p>if you have RH 5.0.</p>
+
+<p>The following error:</p>
+<pre>
+ Error: macro requires $at register while noat in effect
+</pre>
+<p>also indicates that you should upgrade to a newer version of
+the assembler, 2.9 or later. If you can not upgrade the assembler, the
+compiler option "-Wa,-m21164a" may work around this problem.</p>
+
+
+<hr>
+<h3><a name="alpha*-dec-osf*">alpha*-dec-osf*</a></h3>
+
+<p>If you install a shared libstdc++ and, when you link a non-trivial C++
+program (for example, <code>gcc/testsuite/g++.other/delete3.C</code>),
+the linker reports a couple of errors about multiply-defined symbols
+(for example, <code>nothrow</code>, <code>__throw</code> and
+<code>terminate(void)</code>), you've probably got a linker bug, for
+which there's no known fix. The officially recommended work-around is
+to remove the shared libstdc++.</p>
+
+<p>An alternative solution is to arrange that all symbols from
+<code>libgcc</code> get copied to the shared <code>libstdc++</code>;
+see detailed solution below. (Surprising as it may seem, this does
+indeed fix the problem!) <b>Beware</b> that this may bring you
+binary-compatibility problems in the future, if you don't use the same
+work-around next time you build <code>libstdc++</code>: if programs
+start to depend on <code>libstdc++</code> to provide symbols that used
+to be only in <code>libgcc</code>, you must arrange that
+<code>libstdc++</code> keeps providing them, otherwise the programs
+will have to be relinked.</p>
+
+<p>The magic spell is to add <code>-Wl,-all,-lgcc,-none</code> to the
+definition of macro <code>SHDEPS</code> in
+<code>libstdc++/config/dec-osf.ml</code> <b>before</b>
+<code>alpha*-dec-osf*/libstdc++/Makefile</code> is created (a <a
+href="dec-osf-shlibstdc++.patch">patch</a> that does just that is
+available). If the Makefile already exists, run
+<code>./config.status</code> within directory
+<code>alpha*-dec-osf*/libstdc++</code> (and
+<code>alpha*-dec-osf*/ieee/libstdc++</code>, if it also exists).
+Remove any existing <code>libstdc++.so*</code> from such directories,
+and run <code>make all-target-libstdc++</code> in the top-level
+directory, then <code>make install-target-libstdc++</code>.</p>
+
+<p>If you have already removed the build tree, you may just remove
+<code>libstdc++.so.2.10.0</code> from the install tree and re-create
+it with the command <code>gcc -shared -o libstdc++.so.2.10.0
+-Wl,-all,-lstdc++,-lgcc,-none -lm</code>. If the <code>ieee</code>
+sub-directory exists, repeat this command in it, with the additional
+flag <code>-mieee</code>.</p>
+
+<hr>
+<h3><a name="hppa*-hp-hpux*">hppa*-hp-hpux*</a></h3>
+
+<p>We <b>highly</b> recommend using gas/binutils-2.8 or newer on all hppa
+platforms; you may encounter a variety of problems when using the HP assembler.</p>
+
+<p>If you wish to use pa-risc 2.0 architecture support, you must use either the
+HP assembler or a recent
+<a href="ftp://sourceware.cygnus.com/pub/binutils/snapshots">snapshot of gas</a>.</p>
+
+<p>More specific information to hppa*-hp-hpux* targets follows.</p>
+
+<hr>
+<h3><a name="hppa*-hp-hpux9">hppa*-hp-hpux9</a></h3>
+
+<p>The HP assembler has major problems on this platform. We've tried to work
+around the worst of the problems. However, those workarounds may be causing
+linker crashes in some circumstances; the workarounds also probably prevent
+shared libraries from working. Use the GNU assembler to avoid these problems.</p>
+
+<p>The configuration scripts for GCC will also trigger a bug in the hpux9
+shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
+/bin/ksh in your environment.</p>
+
+<hr>
+<h3><a name="hppa*-hp-hpux10">hppa*-hp-hpux10</a></h3>
+
+<p>For hpux10.20, we <b>highly</b> recommend you pick up the latest sed
+patch <code>PHCO_15468</code> from HP. HP has two sites which provide patches free of charge:</p>
+<ul>
+ <li><a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
+Latin-America</a></li>
+ <li><a href="http://europe-support.external.hp.com">Europe</a></li>
+</ul>
+
+<p>The HP assembler on these systems is much better than the hpux9 assembler,
+but still has some problems. Most notably the assembler inserts timestamps
+into each object file it creates, causing the 3-stage comparison test to fail
+during a `<code>make bootstrap</code>'. You should be able to continue by
+saying `<code>make all</code>' after getting the failure from `<code>make
+bootstrap</code>'.</p>
+
+
+<hr>
+<h3><a name="ix86-*-linux*">i?86-*-linux*</a></h3>
+<p>You will need binutils-2.9.1.0.15 or newer for exception handling to work.</p>
+
+<p>If you receive Signal 11 errors when building on GNU/Linux, then it is
+possible you have a hardware problem. Further information on this can be
+found on <a href="http://www.bitwizard.nl/sig11/">www.bitwizard.nl.</a></p>
+
+<hr>
+<h3><a name="ix86-*-sco3.2v5*">i?86-*-sco3.2v5*</a></h3>
+
+<p>If you are building languages other than C, you must follow the instructions
+about invoking `<code>make bootstrap</code>' because the native OpenServer
+compiler will build a <code>cc1plus</code> that will not correctly parse many
+valid C++ programs including those in <code>libgcc.a</code>. <b>You must do a `<code>make bootstrap</code>' if you are building with the native compiler.</b></p>
+
+<p>Use of the `<code>-march-pentiumpro</code>' flag can result in
+unrecognized opcodes when using the native assembler. While
+it's rather rare to see these emitted by GCC yet, errors of the basic form:</p>
+<pre>
+ /usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
+ /usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
+</pre>
+<p>are symptoms of this problem. You may work around this by not
+building affected files with that flag or by using the GNU assembler.
+Users of GNU assembler should see the note below for hazards on doing so.</p>
+
+<p>If you choose to configure with <code>--enable-shared</code> you should also
+specificy <code>--with-gnu-as --disable-multilib</code> even if you are not
+using the GNU assembler. In doing so you will give up the ability
+to generate COFF executables as described below. This combination
+of flags is necessary to suppress negative interactions with multilibing.</p>
+
+<p>The native SCO assembler that is provided with the OS at no charge
+is normally required. If, however, you must be able to use the GNU
+assembler you may configure this package using the flags <code>--with-gnu-as</code>.
+You must use a recent version of GNU binutils; version 2.9.1 seems to work well.
+If you select this option, you will be unable to reliably build COFF
+images. In general, the <code>--with-gnu-as</code> option isn't as well tested as the native assembler.</p>
+
+<p>Unlike various prereleases of GCC that used <code>-belf</code> and
+defaulted to COFF, you must now use the <code>-melf</code> and
+<code>-mcoff</code> flags to toggle between the two object file formats.
+ELF is now the default.</p>
+
+<p>Look in <code>gcc/config/i386/sco5.h</code> (search for "messy") for additional OpenServer-specific flags.</p>
+
+<p>Systems based on OpenServer before 5.0.4 (`<code>uname -X</code>' will
+tell you what you're running) require TLS597 from ftp.sco.com/TLS for
+C++ constructors and destructors to work right.</p>
+
+<p>The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
+do the wrong thing for a construct that GCC will emit for PIC
+code. This can be seen as execution testsuite failures when using
+-fPIC on 921215-1.c, 931002-1.c, nestfunc-1.c, and gcov-1.c.
+For 5.0.5, an updated linker that will cure this problem is
+available. You must install both <a href="ftp://ftp.sco.com/Supplements/rs505a/">
+ftp://ftp.sco.com/Supplements/rs505a/</a> and <a href="ftp://ftp.sco.com/SLS/">
+OSS499A</a>.</p>
+
+<p>The dynamic linker in OpenServer 5.0.5 (earlier versions may show
+the same problem) aborts on certain g77-compiled programs. It's particluarly
+likely to be triggered by building Fortran code with the <code>-fPIC</code>
+flag.
+Although it's conceivable that the error could be triggered by other
+code, only G77-compiled code has been observed to cause this abort.
+If you are getting core dumps immediately upon execution of your
+g77 program - and especially if it's compiled with -fPIC - try applying
+<a href="sco_osr5_g77.patch"><code>`sco_osr5_g77.patch'</code></a> to your libf2c and
+rebuilding
+GCC. Affected faults, when analyzed in a debugger, will show a stack
+backtrace with a fault occurring in <code>rtld()</code> and the program
+running as <code>/usr/lib/ld.so.1</code>. This problem has been reported to SCO engineering
+and will hopefully be addressed in later releases.</p>
+
+
+<hr>
+<h3><a name="ix86-*-udk">i?86-*-udk</a></h3>
+
+<p>This target emulates the SCO Universal Development Kit and requires that
+package be installed. (If it is installed, you will have a <code>/udk/usr/ccs/bin/cc </code>file present.) It's very much like the <code>i?86-*-unixware7*</code> target
+but is meant to be used when hosting on a system where UDK isn't the
+default compiler such as OpenServer 5 or Unixware 2. This target will
+generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
+with the same warnings and caveats as the SCO UDK.</p>
+
+<p>You can stage1 with either your native compiler or with UDK. If you
+don't do a full bootstrap when initially building with your native compiler
+you will have an utterly unusable pile of bits as your reward.</p>
+
+<p>This target is a little tricky to build because we have to distinguish
+it from the native tools (so it gets headers, startups, and libraries
+from the right place) while making the tools not think we're actually
+building a cross compiler. The easiest way to do this is with a configure
+command like this:</p>
+<pre>
+ CC=/udk/usr/ccs/bin/cc <i>/your/path/to/</i>gcc/configure --host=i686-pc-udk --target=i686-pc-udk --exec-prefix=udk-
+</pre>
+<p><i>You should substitute 'i686' in the above command with the appropriate
+processor for your host.</i></p>
+
+<p>You should follow this with a `<code>make bootstrap</code>' then
+`<code>make install</code>'. You can then access the UDK-targeted GCC
+tools by adding <code>udk-</code> before the commonly known name. For example, to invoke the C compiler, you would use `<code>udk-gcc</code>'. They will coexist peacefully with any native-target GCC tools you may have installed.</p>
+
+
+<hr>
+<h3><a name="*-ibm-aix*">*-ibm-aix*</a></h3>
+<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
+
+<p>AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
+newer is recommended to build on this platform.</p>
+
+<p>Some versions of the AIX binder (linker) can fail with a relocation
+overflow severe error when the -bbigtoc option is used to link
+GCC-produced object files into an executable that overflows the TOC. A fix
+for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
+available from IBM Customer Support and from its
+<a href="http://service.boulder.ibm.com/">service.boulder.ibm.com</a>
+website as PTF U455193.</p>
+
+<p>Binutils does not support AIX 4.3 (at least through release 2.9).
+GNU as and GNU ld will not work properly and one should not configure GCC
+to use those GNU utilities. Use the native AIX tools which do interoperate
+with GCC.</p>
+
+<p>AIX 4.3 utilizes a new &quot;large format&quot; archive to support both
+32-bit and 64-bit object modules. The routines provided in AIX 4.3.0 and
+AIX 4.3.1 to parse archive libraries did not handle the new format correctly.
+These routines are used by GCC and result in error messages during linking
+such as &quot;not a COFF file&quot;. The version of the routines shipped
+with AIX 4.3.1 should work for a 32-bit environment. The <tt>-g</tt> option
+of the archive command may be used to create archives of 32-bit objects
+using the original "small format". A correct version of the routines is
+shipped with AIX 4.3.2.</p>
+
+<p>The initial assembler shipped with AIX 4.3.0 generates incorrect object
+files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM COMPILER FAILS
+TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
+<a href="http://service.boulder.ibm.com/">service.boulder.ibm.com</a>
+website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.</p>
+
+<p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
+with a segmentation fault when invoked by any version of GCC. A fix for
+APAR IX87327 will be available from IBM Customer Support.</p>
+
+<hr>
+<h3><a name="m68k-*-nextstep*">m68k-*-nextstep*</a></h3>
+
+<p>You absolutely <b>must</b> use GNU sed and GNU make on this platform.</p>
+
+<p>On NEXTSTEP 3.x where x &lt; 3 the build of GCC will abort during
+stage1 with an error message like this:</p>
+<pre>
+ _eh
+ /usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
+ /usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
+ valued 95 (_).
+</pre>
+<p>The reason for this is the fact that NeXT's assembler for these
+versions of the operating system does not support the .section
+pseudo op that's needed for full C++ exception functionality.</p>
+
+<p>As NeXT's assembler is a derived work from GNU as, a free
+replacement that does can be obtained at
+<a href="ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz">ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz</a>.
+</p>
+
+<p>If you try to build the integrated C++ & C++ runtime libraries on this system
+you will run into trouble with include files. The way to get around this is
+to use the following sequence. Note you must have write permission to
+the directory <i>prefix</i> you secified in the configuration preocess of GCC for this sequence to work.</p>
+<pre>
+ cd bld-gcc
+ make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+ cd gcc
+ make bootstrap
+ make install-headers-tar
+ cd ..
+ make bootstrap3
+</pre>
+
+
+<hr>
+<h3><a name="m68k-sun-sunos4.1.1">m68k-sun-sunos4.1.1</a></h3>
+
+<p>It is reported that you may need the GNU assembler on this platform.</p>
+
+<hr>
+<h3><a name="mips*-sgi-irix[45]">mips*-sgi-irix[45]</a></h3>
+
+<p>You must use GAS on these platforms, as the native assembler can not handle the code for exception handling support. Either of these messages indicates that you are using the MIPS assembler when instead you should be using GAS:</p>
+<pre>
+ as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
+ .4byte $LECIE1-$LSCIE1
+ as0: Error: ./libgcc2.c, line 1:malformed statement
+</pre>
+<p>or:</p>
+<pre>
+ as0: Error: /src/bld-gcc/gcc/libgcc2.c, line 1:undefined symbol in expression
+ .word $LECIE1-$LSCIE1
+</pre>
+
+<p>These systems don't have ranlib, which various components in GCC need; you
+should be able to avoid this problem by installing GNU binutils, which includes
+a functional ranlib for this system.</p>
+
+<p>You may get the following warning on irix4 platforms, it can be safely
+ignored.</p>
+<pre>
+ warning: foo.o does not have gp tables for all its sections.
+</pre>
+
+<p>When building GCC, the build process loops rebuilding cc1 over and
+over again. This happens on mips-sgi-irix5.2, and possibly other platforms.<br>
+It has been reported that this is a known bug in the make shipped with
+IRIX 5.2. We recommend you use GNU make instead of the vendor supplied
+make program; however, you may have success with "smake" on IRIX 5.2 if
+you do not have GNU make available.</p>
+
+<p>See <a href="http://reality.sgi.com/ariel/freeware/">
+http://reality.sgi.com/ariel/freeware</a> for more information about using GCC on IRIX platforms.</p>
+
+<hr>
+<h3><a name="mips*-sgi-irix6">mips*-sgi-irix6</a></h3>
+
+<p>You must <i>not</i> use GAS on irix6 platforms; doing so will only cause problems.</p>
+
+<p>These systems don't have ranlib, which various components in GCC need; you
+should be able to avoid this problem by making a dummy script called ranlib
+which just exits with zero status and placing it in your path.</p>
+
+<p>GCC does not currently support generating O32 ABI binaries in the
+mips-sgi-irix6 configurations. It used to be possible to create a GCC with O32 ABI only support by configuring it for the mips-sgi-irix5 target. See the link below for details.</p>
+
+<p>GCC does not correctly pass/return structures which are
+smaller than 16 bytes and which are not 8 bytes. The problem is very
+involved and difficult to fix. It affects a number of other targets also,
+but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte
+structures are common. The exact problem is that structures are being padded
+at the wrong end, e.g. a 4 byte structure is loaded into the lower 4 bytes
+of the register when it should be loaded into the upper 4 bytes of the
+register. </p>
+
+<p>GCC is consistent with itself, but not consistent with the SGI C compiler
+[and the SGI supplied runtime libraries], so the only failures that can
+happen are when there are library functions that take/return such
+structures. There are very few such library functions. I can only recall
+seeing two of them: inet_ntoa, and semctl. </p>
+
+<p>See <a href="http://reality.sgi.com/ariel/freeware/">
+http://reality.sgi.com/ariel/freeware</a> for more information about using GCC on IRIX platforms.</p>
+
+<hr>
+<h3><a name="powerpc-*-linux-gnu*">powerpc-*-linux-gnu*</a></h3>
+
+<p>You will need
+<a href="ftp://ftp.varesearch.com/pub/support/hjl/binutils">binutils-2.9.4.0.8</a> or newer for a working GCC. It is strongly recommended to recompile binutils
+if you initially built it with gcc-2.7.2.x.</p>
+
+
+<hr>
+<h3><a name="sparc-sun-solaris2.7">sparc-sun-solaris2.7</a></h3>
+
+<p>Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
+the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
+and later, including all EGCS releases. To avoid this problem, do not
+install Sun patch 107058-01 until after Sun releases a patch for bug
+4210064. Sun has a fix for this bug but (as of 1999-06-24) has not
+yet released it as a patch.</p>
+
+
+<hr>
+<h3><a name="sparc-sun-sunos*">sparc-sun-sunos*</a></h3>
+
+<p>A bug in the SunOS4 linker will cause it to crash when linking -fPIC compiled
+objects (and will therefore not allow you to build shared libraries).</p>
+
+<p>To fix this problem you can either use the most recent version of binutils or
+get the latest SunOS4 linker patch (patch ID 100170-10) from Sun's patch site.</p>
+
+
+<hr>
+<h3><a name="sparc-unknown-linux-gnulibc1">sparc-unknown-linux-gnulibc1</a></h3>
+
+<p>It has been reported that you might need
+<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.23</a>
+for this platform, too.</p>
+
+<hr>
+<h3><a name="sparc64-*-*">sparc64-*-*</a></h3>
+
+<p>GCC version 2.95 is not able to compile code correctly for <code>sparc64</code> targets. Users of the Linux kernel, at least, can use the <code>sparc32</code> program to start up a new shell invocation with an environment that causes <code>configure</code> to recognize (via <code>uname -a</code>) the system as <code>sparc-*-*</code> instead.</p>
+
+<p><b>all ELF targets (SVR4, Solaris, etc.)</b><br>
+C++ support is significantly better on ELF targets if you use the GNU
+linker; duplicate copies of inlines, vtables and template instantiations
+will be discarded automatically.</p>
+
+
+<hr>
+<h3><a name="win+os2"></a>GCC with Windows or OS/2</h3>
+
+<p>GCC does not currently support Windows, either natively or with the
+cygwin32 dll. However Mumit Khan has been working on supporting Windows
+with GCC. You should check out his site if you're interested in Windows
+support.
+<a href="http://www.xraylith.wisc.edu/~khan/software/gnu-win32/">GNU Win32 related projects</a></p>
+
+<p>GCC does not currently support OS/2. However, Andrew Zabolotny has been
+working on a generic os/2 port with pgcc. The current code code can be found
+at <a href="http://www.goof.com/pcg/os2/">http://www.goof.com/pcg/os2/</a>.</p>
+
+<hr>
+<p><a href="./index.html">Return to the GCC Installation page</a></p>
+<p><i>Last modified on August 15, 1999.</i></p>
+
+</body>
+</html>
diff --git a/gnu/egcs/install/test.html b/gnu/egcs/install/test.html
new file mode 100644
index 00000000000..4113bb3c4d1
--- /dev/null
+++ b/gnu/egcs/install/test.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+<title>Installation Instructions: Testing GCC</title>
+</head>
+
+<body>
+<h1 align="center">Installation Instructions: Testing GCC</h1>
+
+<p>The testsuite has been temporarily removed from the gcc distributions
+until the copyright status of some tests can be determined. It is hoped
+that the testsuite will be included in the gcc releases again soon.
+
+<p>Until the testsuite is included it is impossible to run the testsuite.
+Sorry.
+
+
+<hr>
+<i>Last modified on July 15, 1999.</i>
+
+</body>
+</html>
diff --git a/gnu/egcs/libio/ChangeLog b/gnu/egcs/libio/ChangeLog
index ec6f2347fcc..5996c046607 100644
--- a/gnu/egcs/libio/ChangeLog
+++ b/gnu/egcs/libio/ChangeLog
@@ -1,3 +1,29 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+1999-08-08 Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * streambuf.h (ios::streamsize): Declare as _IO_ssize_t, as in the
+ global scope.
+
+1999-08-07 Andreas Schwab <schwab@suse.de>
+
+ * iostream.cc: Add missing calls to isfx and setup a cleanup
+ region for the locked stream.
+ * iostream.h: Likewise.
+ * isgetline.cc: Likewise.
+ * isgetsb.cc: Likewise.
+ * isscan.cc: Likewise.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Mon Jun 28 09:25:23 1999 Hans-Peter Nilsson <hp@bitrange.com>
* configure.in (post-target): Use "$(topsrcdir)", not "$(srcdir)/..".
diff --git a/gnu/egcs/libio/dbz/dbzmain.c b/gnu/egcs/libio/dbz/dbzmain.c
index 0f8589b3d52..887538a57dc 100644
--- a/gnu/egcs/libio/dbz/dbzmain.c
+++ b/gnu/egcs/libio/dbz/dbzmain.c
@@ -19,7 +19,7 @@
#define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0)
#ifndef lint
-static char RCSid[] = "$Header: /cvs/OpenBSD/src/gnu/egcs/libio/dbz/dbzmain.c,v 1.1.1.1 1999/05/26 13:38:40 espie Exp $";
+static char RCSid[] = "$Header: /cvs/OpenBSD/src/gnu/egcs/libio/dbz/dbzmain.c,v 1.1.1.2 1999/08/23 20:32:04 espie Exp $";
#endif
char *progname;
diff --git a/gnu/egcs/libio/dbz/fake.c b/gnu/egcs/libio/dbz/fake.c
index 7815ee6d292..9f86a178c3f 100644
--- a/gnu/egcs/libio/dbz/fake.c
+++ b/gnu/egcs/libio/dbz/fake.c
@@ -13,7 +13,7 @@
#define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0)
#ifndef lint
-static char RCSid[] = "$Header: /cvs/OpenBSD/src/gnu/egcs/libio/dbz/fake.c,v 1.1.1.1 1999/05/26 13:38:40 espie Exp $";
+static char RCSid[] = "$Header: /cvs/OpenBSD/src/gnu/egcs/libio/dbz/fake.c,v 1.1.1.2 1999/08/23 20:32:04 espie Exp $";
#endif
int midonly = 0; /* just message ids, rest not realistic */
diff --git a/gnu/egcs/libio/iostream.cc b/gnu/egcs/libio/iostream.cc
index 4b1d9d80a9b..4b75fca764d 100644
--- a/gnu/egcs/libio/iostream.cc
+++ b/gnu/egcs/libio/iostream.cc
@@ -71,6 +71,8 @@ int skip_ws(streambuf* sb)
istream& istream::get(char& c)
{
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
int ch = _strbuf->sbumpc();
if (ch == EOF) {
set(ios::eofbit|ios::failbit);
@@ -80,6 +82,8 @@ istream& istream::get(char& c)
c = (char)ch;
_gcount = 1;
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
else
_gcount = 0;
@@ -102,10 +106,12 @@ istream& istream::ignore(int n /* = 1 */, int delim /* = EOF */)
{
_gcount = 0;
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* sb = _strbuf;
if (delim == EOF) {
_gcount = sb->ignore(n);
- return *this;
+ goto unlock;
}
for (;;) {
#if 0
@@ -122,6 +128,9 @@ istream& istream::ignore(int n /* = 1 */, int delim /* = EOF */)
if (ch == delim)
break;
}
+ unlock:
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -129,9 +138,13 @@ istream& istream::ignore(int n /* = 1 */, int delim /* = EOF */)
istream& istream::read(char *s, streamsize n)
{
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
_gcount = _strbuf->sgetn(s, n);
if (_gcount != n)
set(ios::failbit|ios::eofbit);
+ isfx();
+ _IO_cleanup_region_end (0);
}
else
_gcount = 0;
@@ -184,11 +197,15 @@ streampos istream::tellg()
istream& istream::operator>>(char& c)
{
if (ipfx0()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
int ch = _strbuf->sbumpc();
if (ch == EOF)
set(ios::eofbit|ios::failbit);
else
c = (char)ch;
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -200,6 +217,8 @@ istream::operator>> (char* ptr)
int w = width(0);
if (ipfx0())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* sb = _strbuf;
for (;;)
{
@@ -219,6 +238,8 @@ istream::operator>> (char* ptr)
}
if (p == ptr)
set(ios::failbit);
+ isfx();
+ _IO_cleanup_region_end (0);
}
*p = '\0';
return *this;
@@ -234,6 +255,9 @@ static int read_int(istream& stream, unsigned LONGEST& val, int& neg)
{
if (!stream.ipfx0())
return 0;
+ int retval;
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ stream._strbuf);
register streambuf* sb = stream.rdbuf();
int base = 10;
int ndigits = 0;
@@ -254,7 +278,7 @@ static int read_int(istream& stream, unsigned LONGEST& val, int& neg)
ch = sb->sbumpc();
if (ch == EOF) {
val = 0;
- return 1;
+ goto unlock;
}
if (ch == 'x' || ch == 'X') {
base = 16;
@@ -290,19 +314,26 @@ static int read_int(istream& stream, unsigned LONGEST& val, int& neg)
if (ndigits == 0)
goto fail;
else
- return 1;
+ goto unlock;
}
ndigits++;
val = base * val + digit;
ch = sb->sbumpc();
}
- return 1;
+ unlock:
+ retval = 1;
+ goto out;
fail:
stream.set(ios::failbit);
- return 0;
+ retval = 0;
+ goto out;
eof_fail:
stream.set(ios::failbit|ios::eofbit);
- return 0;
+ retval = 0;
+ out:
+ stream.isfx();
+ _IO_cleanup_region_end (0);
+ return retval;
}
#define READ_INT(TYPE) \
@@ -334,6 +365,8 @@ istream& istream::operator>>(long double& x)
{
if (ipfx0())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
#if _G_HAVE_LONG_DOUBLE_IO
scan("%Lg", &x);
#else
@@ -341,6 +374,8 @@ istream& istream::operator>>(long double& x)
scan("%lg", &y);
x = y;
#endif
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -348,20 +383,34 @@ istream& istream::operator>>(long double& x)
istream& istream::operator>>(double& x)
{
if (ipfx0())
+ {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
scan("%lg", &x);
+ isfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
istream& istream::operator>>(float& x)
{
if (ipfx0())
+ {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
scan("%g", &x);
+ isfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
istream& istream::operator>>(register streambuf* sbuf)
{
if (ipfx0()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* inbuf = rdbuf();
// FIXME: Should optimize!
for (;;) {
@@ -375,6 +424,8 @@ istream& istream::operator>>(register streambuf* sbuf)
break;
}
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -789,8 +840,8 @@ ostream& ostream::operator<<(const char *s)
if (flags() & ios::left && padding > 0) // Left adjustment.
if (_IO_padn(sbuf, fill_char, padding) != padding)
set(ios::badbit);
- osfx();
failed:
+ osfx();
_IO_cleanup_region_end (0);
}
return *this;
diff --git a/gnu/egcs/libio/iostream.h b/gnu/egcs/libio/iostream.h
index f3de3639906..19fbf8a4d95 100644
--- a/gnu/egcs/libio/iostream.h
+++ b/gnu/egcs/libio/iostream.h
@@ -173,6 +173,7 @@ protected:
int get() { if (!ipfx1()) return EOF;
else { int ch = _strbuf->sbumpc();
if (ch == EOF) set(ios::eofbit);
+ isfx();
return ch;
} }
int peek();
diff --git a/gnu/egcs/libio/isgetline.cc b/gnu/egcs/libio/isgetline.cc
index 02b34927eb8..5e48a000c09 100644
--- a/gnu/egcs/libio/isgetline.cc
+++ b/gnu/egcs/libio/isgetline.cc
@@ -37,6 +37,8 @@ istream& istream::getline(char* buf, int len, char delim)
int ch;
if (ipfx1())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
streambuf *sb = rdbuf();
_gcount = _IO_getline_info(sb, buf, len - 1, delim, -1, &ch);
if (ch != EOF)
@@ -48,6 +50,8 @@ istream& istream::getline(char* buf, int len, char delim)
set(ios::failbit);
sb->sungetc(); // Leave delimiter unread.
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
else
ch = EOF;
@@ -67,11 +71,15 @@ istream& istream::get(char* buf, int len, char delim)
}
if (ipfx1())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
streambuf *sbuf = rdbuf();
int ch;
_gcount = _IO_getline_info(sbuf, buf, len - 1, delim, -1, &ch);
if (_gcount == 0 && ch == EOF)
set(ios::failbit|ios::eofbit);
+ isfx();
+ _IO_cleanup_region_end (0);
}
buf[_gcount] = '\0';
return *this;
@@ -123,6 +131,8 @@ char *_sb_readline (streambuf *sb, long& total, char terminator)
istream& istream::gets(char **s, char delim /* = '\n' */)
{
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
long size = 0;
streambuf *sb = rdbuf();
*s = _sb_readline (sb, size, delim);
@@ -132,6 +142,8 @@ istream& istream::gets(char **s, char delim /* = '\n' */)
if (_gcount == 0)
set(ios::failbit);
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
else {
_gcount = 0;
diff --git a/gnu/egcs/libio/isgetsb.cc b/gnu/egcs/libio/isgetsb.cc
index 55617e649a0..655c972589a 100644
--- a/gnu/egcs/libio/isgetsb.cc
+++ b/gnu/egcs/libio/isgetsb.cc
@@ -31,6 +31,8 @@ istream& istream::get(streambuf& sb, char delim /* = '\n' */)
_gcount = 0;
if (ipfx1())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* isb = rdbuf();
for (;;)
{
@@ -54,6 +56,8 @@ istream& istream::get(streambuf& sb, char delim /* = '\n' */)
if (delimp != NULL)
break;
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
diff --git a/gnu/egcs/libio/isscan.cc b/gnu/egcs/libio/isscan.cc
index 64d4bc682f8..977559c2cba 100644
--- a/gnu/egcs/libio/isscan.cc
+++ b/gnu/egcs/libio/isscan.cc
@@ -29,10 +29,14 @@ the executable file might be covered by the GNU General Public License. */
istream& istream::scan(const char *format ...)
{
if (ipfx0()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
va_list ap;
va_start(ap, format);
_strbuf->vscan(format, ap, this);
va_end(ap);
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -40,6 +44,12 @@ istream& istream::scan(const char *format ...)
istream& istream::vscan(const char *format, _IO_va_list args)
{
if (ipfx0())
+ {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
_strbuf->vscan(format, args, this);
+ isfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
diff --git a/gnu/egcs/libio/stdio/ChangeLog b/gnu/egcs/libio/stdio/ChangeLog
index f98baec0955..e4a185f3f2b 100644
--- a/gnu/egcs/libio/stdio/ChangeLog
+++ b/gnu/egcs/libio/stdio/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1997-09-04 16:11 Ulrich Drepper <drepper@cygnus.com>
* Makefile.in (STDIO_OBJECTS): Lose feof.o and ferror.o. Add getc.o
diff --git a/gnu/egcs/libio/tests/ChangeLog b/gnu/egcs/libio/tests/ChangeLog
index dc9a375a162..324137dee5c 100644
--- a/gnu/egcs/libio/tests/ChangeLog
+++ b/gnu/egcs/libio/tests/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
* tFile.cc (t4): Cast TMPFILE to char* in the call to unlink, to
diff --git a/gnu/egcs/libio/testsuite/ChangeLog b/gnu/egcs/libio/testsuite/ChangeLog
index 0f7b926b2dc..497b141c9d1 100644
--- a/gnu/egcs/libio/testsuite/ChangeLog
+++ b/gnu/egcs/libio/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Wed Nov 25 01:00:07 1998 Marc Espie <espie@quatramaran.ens.fr>
* Makefile.in (just-check): Ignore errors.
diff --git a/gnu/egcs/libstdc++/ChangeLog b/gnu/egcs/libstdc++/ChangeLog
index 22652d62609..4462244e90d 100644
--- a/gnu/egcs/libstdc++/ChangeLog
+++ b/gnu/egcs/libstdc++/ChangeLog
@@ -1,3 +1,27 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Thu Aug 5 02:00:13 1999 Loren Rittle <ljrittle@acm.org>
+
+ * Makefile.in (MARLINK, MSHLINK): Handle library version
+ number components with more than one numeric digit.
+
+Mon Aug 2 00:40:10 1999 Jeffrey A Law (law@cygnus.com)
+
+ 1999-07-16 Markus Gyger (mgyger@gmu.edu)
+ * stdexcepti.cc (__out_of_range): Use std:: qualifier for names
+ in std.
+ (__length_error): Likewise.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Sat Jul 17 23:49:59 1999 Jeffrey A Law (law@cygnus.com)
* Makefile.in (INTERFACE): Bump to 3.
diff --git a/gnu/egcs/libstdc++/Makefile.in b/gnu/egcs/libstdc++/Makefile.in
index 6b4b57d721d..eb9ec77412c 100644
--- a/gnu/egcs/libstdc++/Makefile.in
+++ b/gnu/egcs/libstdc++/Makefile.in
@@ -32,11 +32,11 @@ HEADERS= cassert cctype cerrno cfloat ciso646 climits clocale cmath complex \
ARLIB = libstdc++.a.$(VERSION)
ARLINK = libstdc++.a
-MARLINK = libstdc++.a.`echo $(VERSION) | sed 's/\([0-9][.][0-9]\).*/\1/'`
+MARLINK = libstdc++.a.`echo $(VERSION) | sed 's/\([0-9]*[.][0-9]*\).*/\1/'`
SHLIB = libstdc++.so.$(VERSION)
SHARLIB = libstdc++-sh.a
SHLINK = libstdc++.so
-MSHLINK = libstdc++.so.`echo $(VERSION) | sed 's/\([0-9][.][0-9]\).*/\1/'`
+MSHLINK = libstdc++.so.`echo $(VERSION) | sed 's/\([0-9]*[.][0-9]*\).*/\1/'`
SHFLAGS =
SHDEPS =
diff --git a/gnu/egcs/libstdc++/stdexcepti.cc b/gnu/egcs/libstdc++/stdexcepti.cc
index 3b03acd63f4..9c02c71f497 100644
--- a/gnu/egcs/libstdc++/stdexcepti.cc
+++ b/gnu/egcs/libstdc++/stdexcepti.cc
@@ -12,10 +12,10 @@
void
__out_of_range (const char *s)
{
- throw out_of_range (s);
+ throw std::out_of_range (s);
}
void __length_error (const char *s)
{
- throw length_error (s);
+ throw std::length_error (s);
}
diff --git a/gnu/egcs/libstdc++/stl/ChangeLog b/gnu/egcs/libstdc++/stl/ChangeLog
index 06bd7bce67a..22d31b0190e 100644
--- a/gnu/egcs/libstdc++/stl/ChangeLog
+++ b/gnu/egcs/libstdc++/stl/ChangeLog
@@ -1,3 +1,20 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Sun Aug 8 21:06:16 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * pthread_alloc: Solaris' ctype.h defines _U to 01; use _Up as
+ template parameter instead.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1999-07-11 Martin v. Löwis (loewis@informatik.hu-berlin.de)
* stl_function.h (bind1st, bind2nd): Rename __opr to __oper,
diff --git a/gnu/egcs/libstdc++/stl/pthread_alloc b/gnu/egcs/libstdc++/stl/pthread_alloc
index 887d8e8a154..1852908095b 100644
--- a/gnu/egcs/libstdc++/stl/pthread_alloc
+++ b/gnu/egcs/libstdc++/stl/pthread_alloc
@@ -376,13 +376,13 @@ public:
typedef const _Tp& const_reference;
typedef _Tp value_type;
- template <class _U> struct rebind {
- typedef pthread_allocator<_U> other;
+ template <class _Up> struct rebind {
+ typedef pthread_allocator<_Up> other;
};
pthread_allocator() __STL_NOTHROW {}
pthread_allocator(const pthread_allocator& a) __STL_NOTHROW {}
- template <class _U> pthread_allocator(const pthread_allocator<_U>&)
+ template <class _Up> pthread_allocator(const pthread_allocator<_Up>&)
__STL_NOTHROW {}
~pthread_allocator() __STL_NOTHROW {}
@@ -416,8 +416,8 @@ public:
typedef const void* const_pointer;
typedef void value_type;
- template <class _U> struct rebind {
- typedef pthread_allocator<_U> other;
+ template <class _Up> struct rebind {
+ typedef pthread_allocator<_Up> other;
};
};
@@ -451,16 +451,16 @@ struct _Alloc_traits<_Tp, _Pthread_alloc_template<_Max_size> >
allocator_type;
};
-template <class _Tp, class _U, size_t _Max>
-struct _Alloc_traits<_Tp, __allocator<_U, _Pthread_alloc_template<_Max> > >
+template <class _Tp, class _Up, size_t _Max>
+struct _Alloc_traits<_Tp, __allocator<_Up, _Pthread_alloc_template<_Max> > >
{
static const bool _S_instanceless = true;
typedef simple_alloc<_Tp, _Pthread_alloc_template<_Max> > _Alloc_type;
typedef __allocator<_Tp, _Pthread_alloc_template<_Max> > allocator_type;
};
-template <class _Tp, class _U>
-struct _Alloc_traits<_Tp, pthread_allocator<_U> >
+template <class _Tp, class _Up>
+struct _Alloc_traits<_Tp, pthread_allocator<_Up> >
{
static const bool _S_instanceless = true;
typedef simple_alloc<_Tp, _Pthread_alloc_template<> > _Alloc_type;
diff --git a/gnu/egcs/libstdc++/tests/ChangeLog b/gnu/egcs/libstdc++/tests/ChangeLog
index 87ce0fc6c19..dcec430d525 100644
--- a/gnu/egcs/libstdc++/tests/ChangeLog
+++ b/gnu/egcs/libstdc++/tests/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
1998-07-17 Jason Merrill <jason@yorick.cygnus.com>
* tmap.cc: Use less<int>.
diff --git a/gnu/egcs/libstdc++/testsuite/ChangeLog b/gnu/egcs/libstdc++/testsuite/ChangeLog
index 7b1a9f0c3c5..784b623a6dd 100644
--- a/gnu/egcs/libstdc++/testsuite/ChangeLog
+++ b/gnu/egcs/libstdc++/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
Wed Nov 25 01:00:07 1998 Marc Espie <espie@quatramaran.ens.fr>
* Makefile.in (just-check): Ignore errors.