1This file contains information about GCC releases which has been generated
2automatically from the online release notes.  It covers releases of GCC
3(and the former EGCS project) since EGCS 1.0, on the line of development
4that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
5see ONEWS.
6
7======================================================================
8http://gcc.gnu.org/gcc-3.4/index.html
9
10                           GCC 3.4 Release Series
11
12   September 6, 2004
13
14   The  [1]GNU project and the GCC developers are pleased to announce the
15   release of GCC 3.4.2.
16
17   This release is a bug-fix release, containing fixes for regressions in
18   GCC 3.4.1 relative to previous releases of GCC.
19
20   July 1, 2004
21
22   The  [2]GNU project and the GCC developers are pleased to announce the
23   release of GCC 3.4.1.
24
25   This release is a bug-fix release, containing fixes for regressions in
26   GCC 3.4.0 relative to previous releases of GCC.
27
28   April 18, 2004
29
30   The  [3]GNU project and the GCC developers are pleased to announce the
31   release of GCC 3.4.0.
32
33   The   GCC  3.4  release  series  includes  numerous  [4]new  features,
34   improvements,  bug  fixes,  and other changes, thanks to an [5]amazing
35   group of volunteers.
36
37Release History
38
39   GCC 3.4.2
40          September 6, 2004 ([6]changes)
41
42   GCC 3.4.1
43          July 1, 2004 ([7]changes)
44
45   GCC 3.4.0
46          April 18, 2004 ([8]changes)
47
48References and Acknowledgements
49
50   GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
51   supports  several  other languages aside from C, it now stands for the
52   GNU Compiler Collection.
53
54   A  list  of [9]successful builds is updated as new information becomes
55   available.
56
57   The  GCC  developers would like to thank the numerous people that have
58   contributed  new  features, improvements, bug fixes, and other changes
59   as  well  as test results to GCC. This [10]amazing group of volunteers
60   is what makes GCC successful.
61
62   For  additional  information  about  GCC  please  refer to the [11]GCC
63   project web site or contact the [12]GCC development mailing list.
64
65   To  obtain  GCC  please  use  [13]our mirror sites, one of the [14]GNU
66   mirror sites, or [15]our CVS server.
67     _________________________________________________________________
68
69   Please  send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There
70   are also [17]other ways to contact the FSF.
71
72   These pages are maintained by [18]the GCC team.
73
74
75    For  questions  related  to the use of GCC, please consult these web
76    pages    and    the    [19]GCC   manuals.   If   that   fails,   the
77    [20]gcc-help@gcc.gnu.org mailing list might help.
78    Please  send  comments on these web pages and the development of GCC
79    to    our    developer    mailing   list   at   [21]gcc@gnu.org   or
80    [22]gcc@gcc.gnu.org. All of our lists have [23]public archives.
81
82   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
83   330, Boston, MA 02111, USA.
84
85   Verbatim  copying and distribution of this entire article is permitted
86   in any medium, provided this notice is preserved.
87
88   Last modified 2004-09-06 [24]Valid XHTML 1.0
89
90References
91
92   1. http://www.gnu.org/
93   2. http://www.gnu.org/
94   3. http://www.gnu.org/
95   4. http://gcc.gnu.org/gcc-3.4/changes.html
96   5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
97   6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
98   7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1
99   8. http://gcc.gnu.org/gcc-3.4/changes.html
100   9. http://gcc.gnu.org/gcc-3.4/buildstat.html
101  10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
102  11. http://gcc.gnu.org/index.html
103  12. mailto:gcc@gcc.gnu.org
104  13. http://gcc.gnu.org/mirrors.html
105  14. http://www.gnu.org/order/ftp.html
106  15. http://gcc.gnu.org/cvs.html
107  16. mailto:gnu@gnu.org
108  17. http://www.gnu.org/home.html#ContactInfo
109  18. http://gcc.gnu.org/about.html
110  19. http://gcc.gnu.org/onlinedocs/
111  20. mailto:gcc-help@gcc.gnu.org
112  21. mailto:gcc@gnu.org
113  22. mailto:gcc@gcc.gnu.org
114  23. http://gcc.gnu.org/lists.html
115  24. http://validator.w3.org/check/referer
116======================================================================
117http://gcc.gnu.org/gcc-3.4/changes.html
118
119                           GCC 3.4 Release Series
120                      Changes, New Features, and Fixes
121
122   GCC 3.4 has [1]many improvements in the C++ frontend. Before reporting
123   a  bug,  please  make sure it's really GCC, and not your code, that is
124   broken.
125
126Caveats
127
128     * GNU Make is now required to build GCC.
129     * With  -nostdinc  the  preprocessor  used  to  ignore both standard
130       include   paths   and   include  paths  contained  in  environment
131       variables. It was neither documented nor intended that environment
132       variable paths be ignored, so this has been corrected.
133     * GCC  no  longer  accepts the options -fvolatile, -fvolatile-global
134       and  -fvolatile-static.  It is unlikely that they worked correctly
135       in any 3.x release.
136     * GCC no longer ships <varargs.h>. Use <stdarg.h> instead.
137     * Support  for  all  the  systems  [2]obsoleted  in GCC 3.3 has been
138       removed from GCC 3.4. See below for a [3]list of systems which are
139       obsoleted in this release.
140     * GCC  now requires an ISO C90 (ANSI C89) C compiler to build. K&R C
141       compilers will not work.
142     * The  implementation  of the [4]MIPS ABIs has changed. As a result,
143       the  code  generated  for  certain MIPS targets will not be binary
144       compatible with earlier releases.
145     * In  previous  releases,  the  MIPS port had a fake "hilo" register
146       with the user-visible name accum. This register has been removed.
147     * The  implementation of the [5]SPARC ABIs has changed. As a result,
148       the  code  generated  will  not  be binary compatible with earlier
149       releases in certain cases.
150     * The  configure  option --enable-threads=pthreads has been removed;
151       use  --enable-threads=posix  instead,  which  should have the same
152       effect.
153     * Code   size   estimates   used   by  inlining  heuristics  for  C,
154       Objective-C, C++ and Java have been redesigned significantly. As a
155       result     the     parameters     of    -finline-insns,    --param
156       max-inline-insns-single  and --param max-inline-insns-auto need to
157       be reconsidered.
158     * --param  max-inline-slope  and  --param min-inline-insns have been
159       removed;  they  are  not  needed  for  the  new bottom-up inlining
160       heuristics.
161     * The    new   unit-at-a-time   compilation   scheme   has   several
162       compatibility issues:
163          + The  order  in  which functions, variables, and top-level asm
164            statements are emitted may have changed. Code relying on some
165            particular ordering needs to be updated. The majority of such
166            top-level   asm   statements   can  be  replaced  by  section
167            attributes.
168          + Unreferenced static variables and functions are removed. This
169            may  result  in  undefined  references  when an asm statement
170            refers to the variable/function directly. In that case either
171            the  variable/function  shall  be  listed  in  asm  statement
172            operand  or  in  the  case  of  top-level  asm statements the
173            attribute used shall be used to force function/variable to be
174            always  output  and  considered as a possibly used by unknown
175            code.
176            For  variables  the attribute is accepted only by GCC 3.4 and
177            newer,  while  for  earlier  versions it is sufficient to use
178            unused  to  silence  warnings  about  the variables not being
179            referenced.  To  keep  code  portable  across  different  GCC
180            versions, you can use appropriate preprocessor conditionals.
181          + Static functions now can use non-standard passing conventions
182            that  may  break  asm  statements calling functions directly.
183            Again  the  attribute  used  shall  be  used  to prevent this
184            behavior.
185       As  a  temporary  workaround, -fno-unit-at-a-time can be used, but
186       this scheme may not be supported by future releases of GCC.
187     * GCC  3.4  automatically  places  zero-initialized variables in the
188       .bss  section  on some operating systems. Versions of GNU Emacs up
189       to  (and  including)  21.3 will not work correctly when using this
190       optimization;  you can use -fno-zero-initialized-in-bss to disable
191       it.
192
193General Optimizer Improvements
194
195     * Usability  of  the  profile feedback and coverage testing has been
196       improved.
197          + Performance  of profiled programs has been improved by faster
198            profile merging code.
199          + Better  use  of  the  profile feedback for optimization (loop
200            unrolling and loop peeling).
201          + File  locking support allowing fork() calls and parallel runs
202            of profiled programs.
203          + Coverage file format has been redesigned.
204          + gcov coverage tool has been improved.
205          + make profiledbootstrap available to build a faster compiler.
206            Experiments  made  on  i386 hardware showed an 11% speedup on
207            -O0  and  a 7.5% speedup on -O2 compilation of a [6]large C++
208            testcase.
209          + New value profiling pass enabled via -fprofile-values
210          + New value profile transformations pass enabled via -fvpt aims
211            to optimize some code sequences by exploiting knowledge about
212            value  ranges  or  other  properties  of the operands. At the
213            moment  a  conversion  of  expensive  divisions  into cheaper
214            operations has been implemented.
215          + New -fprofile-generate and -fprofile-use command line options
216            to simplify the use of profile feedback.
217     * A  new  unit-at-a-time  compilation scheme for C, Objective-C, C++
218       and  Java  which  is  enabled via -funit-at-a-time (and implied by
219       -O2).  In  this  scheme a whole file is parsed first and optimized
220       later.  The  following  basic  inter-procedural  optimizations are
221       implemented:
222          + Removal of unreachable functions and variables
223          + Discovery  of  local functions (functions with static linkage
224            whose address is never taken)
225          + On i386, these local functions use register parameter passing
226            conventions.
227          + Reordering  of  functions  in  topological  order of the call
228            graph  to enable better propagation of optimizing hints (such
229            as the stack alignments needed by functions) in the back end.
230          + Call  graph  based  out-of-order  inlining  heuristics  which
231            allows  to  limit  overall  compilation  unit growth (--param
232            inline-unit-growth).
233       Overall, the unit-at-a-time scheme produces a 1.3% improvement for
234       the  SPECint2000  benchmark  on  the i386 architecture (AMD Athlon
235       CPU).
236     * More  realistic  code  size  estimates  used  by  inlining  for C,
237       Objective-C,  C++  and Java. The growth of large functions can now
238       be   limited   via   --param   large-function-insns   and  --param
239       large-function-growth.
240     * A  new  cfg-level  loop  optimizer  pass  replaces  the  old  loop
241       unrolling  pass  and  adds  two other loop transformations -- loop
242       peeling and loop unswitching -- and also uses the profile feedback
243       to  limit  code  growth.  (The  three optimizations are enabled by
244       -funroll-loops,    -fpeel-loops    and   -funswitch-loops   flags,
245       respectively).
246       The  old  loop unroller still can be enabled by -fold-unroll-loops
247       and  may  produce  better  code in some cases, especially when the
248       webizer optimization pass is not run.
249     * A new web construction pass enabled via -fweb (and implied by -O3)
250       improves the quality of register allocation, CSE, first scheduling
251       pass  and  some  other  optimization  passes by avoiding re-use of
252       pseudo registers with non-overlapping live ranges. The pass almost
253       always improves code quality but does make debugging difficult and
254       thus is not enabled by default by -O2
255       The pass is especially effective as cleanup after code duplication
256       passes, such as the loop unroller or the tracer.
257     * Experimental  implementations of superblock or trace scheduling in
258       the    second    scheduling    pass    can    be    enabled    via
259       -fsched2-use-superblocks and -fsched2-use-traces, respectively.
260
261New Languages and Language specific improvements
262
263  Ada
264
265     * The  Ada  front end has been updated to include numerous bug fixes
266       and enhancements. These include:
267          + Improved project file support
268          + Additional set of warnings about potential wrong code
269          + Improved error messages
270          + Improved code generation
271          + Improved cross reference information
272          + Improved inlining
273          + Better run-time check elimination
274          + Better error recovery
275          + More efficient implementation of unbounded strings
276          + Added      features     in     GNAT.Sockets,     GNAT.OS_Lib,
277            GNAT.Debug_Pools, ...
278          + New      GNAT.xxxx      packages      (e.g.     GNAT.Strings,
279            GNAT.Exception_Action)
280          + New pragmas
281          + New -gnatS switch replacing gnatpsta
282          + Implementation  of  new  Ada  features (in particular limited
283            with, limited aggregates)
284
285  C/Objective-C/C++
286
287     * Precompiled  headers  are  now  supported. Precompiled headers can
288       dramatically speed up compilation of some projects. There are some
289       known  defects  in  the  current precompiled header implementation
290       that   will   result   in  compiler  crashes  in  relatively  rare
291       situations.  Therefore, precompiled headers should be considered a
292       "technology  preview" in this release. Read the manual for details
293       about how to use precompiled headers.
294     * File  handling  in  the  preprocessor  has  been rewritten. GCC no
295       longer  gets  confused  by  symlinks  and hardlinks, and now has a
296       correct  implementation  of  #import  and  #pragma once. These two
297       directives have therefore been un-deprecated.
298     * The undocumented extension that allowed C programs to have a label
299       at  the  end  of  a  compound statement, which has been deprecated
300       since GCC 3.0, has been removed.
301     * The   cast-as-lvalue  extension  has  been  removed  for  C++  and
302       deprecated for C and Objective-C. In particular, code like this:
303        int i;
304        (char) i = 5;
305
306       or this:
307        char *p;
308        ((int *) p)++;
309
310       is  no  longer accepted for C++ and will not be accepted for C and
311       Objective-C in a future version.
312     * The conditional-expression-as-lvalue extension has been deprecated
313       for C and Objective-C. In particular, code like this:
314        int a, b, c;
315        (a ? b : c) = 2;
316
317       will not be accepted for C and Objective-C in a future version.
318     * The  compound-expression-as-lvalue  extension  has been deprecated
319       for C and Objective-C. In particular, code like this:
320        int a, b;
321        (a, b) = 2;
322
323       will  not be accepted for C and Objective-C in a future version. A
324       possible non-intrusive workaround is the following:
325        (*(a, &b)) = 2;
326
327     * Several  [7]built-in  functions  such  as  __builtin_popcount  for
328       counting  bits,  finding the highest and lowest bit in a word, and
329       parity have been added.
330     * The  -fwritable-strings  option  has  been  deprecated and will be
331       removed.
332     * Many  C math library functions are now recognized as built-ins and
333       optimized.
334     * The  C, C++, and Objective-C compilers can now handle source files
335       written in any character encoding supported by the host C library.
336       The  default input character set is taken from the current locale,
337       and  may  be  overridden  with  the  -finput-charset  command line
338       option.  In  the  future  we  will add support for inline encoding
339       markers.
340
341  C++
342
343     * G++  is  now  much  closer to full conformance to the ISO/ANSI C++
344       standard.  This  means,  among other things, that a lot of invalid
345       constructs which used to be accepted in previous versions will now
346       be rejected. It is very likely that existing C++ code will need to
347       be fixed. This document lists some of the most common issues.
348     * A  hand-written  recursive-descent  C++  parser  has  replaced the
349       YACC-derived C++ parser from previous GCC releases. The new parser
350       contains much improved infrastructure needed for better parsing of
351       C++  source  codes,  handling  of extensions, and clean separation
352       (where  possible)  between  proper semantics analysis and parsing.
353       The new parser fixes many bugs that were found in the old parser.
354     * You   must   now   use  the  typename  and  template  keywords  to
355       disambiguate dependent names, as required by the C++ standard.
356        struct K {
357          typedef int mytype_t;
358        };
359
360        template <class T1> struct A {
361          template <class T2> struct B {
362              void callme(void);
363            };
364
365          template <int N> void bar(void)
366          {
367            // Use 'typename' to tell the parser that T1::mytype_t names
368            //  a type. This is needed because the name is dependent (in
369            //  this case, on template parameter T1).
370            typename T1::mytype_t x;
371            x = 0;
372          }
373        };
374
375        template <class T> void template_func(void)
376        {
377          // Use 'template' to prefix member templates within
378          //  dependent types (a has type A<T>, which depends on
379          //  the template parameter T).
380          A<T> a;
381          a.template bar<0>();
382
383          // Use 'template' to tell the parser that B is a nested
384          //  template class (dependent on template parameter T), and
385          //  'typename' because the whole A<T>::B<int> is
386          //  the name of a type (again, dependent).
387          typename A<T>::template B<int> b;
388          b.callme();
389        }
390
391        void non_template_func(void)
392        {
393          // Outside of any template class or function, no names can be
394          //  dependent, so the use of the keyword 'typename' and 'template'
395          //  is not needed (and actually forbidden).
396          A<K> a;
397          a.bar<0>();
398          A<K>::B<float> b;
399          b.callme();
400        }
401     * In  a  template  definition, unqualified names will no longer find
402       members of a dependent base. For example,
403        template <typename T> struct B {
404          int m;
405          int n;
406          int f ();
407          int g ();
408        };
409        int n;
410        int g ();
411        template <typename T> struct C : B<T> {
412          void g ()
413          {
414            m = 0; // error
415            f ();  // error
416            n = 0; // ::n is modified
417            g ();  // ::g is called
418          }
419        };
420       You  must  make the names dependent by prefixing them with this->.
421       Here is the corrected definition of C<T>::g,
422        template <typename T> void C<T>::g ()
423        {
424          this->m = 0;
425          this->f ();
426          this->n = 0
427          this->g ();
428        }
429     * In  templates, all non-dependent names are now looked up and bound
430       at definition time (while parsing the code), instead of later when
431       the template is instantiated. For instance:
432        void foo(int);
433
434        template <int> struct A {
435          static void bar(void){
436            foo('a');
437          }
438        };
439
440        void foo(char);
441
442        int main()
443        {
444          A<0>::bar();    // Calls foo(int), used to call foo(char).
445        }
446             * In  an  explicit  instantiation  of  a  class  template,  you must
447       use class or struct before the template-id:
448        template <int N>
449        class A {};
450
451        template A<0>;         // error, not accepted anymore
452        template class A<0>;   // OK
453     * The  "named  return value" and "implicit typename" extensions have
454       been removed.
455     * Default  arguments in function types have been deprecated and will
456       be removed.
457     * ARM-style   name-injection   of   friend   declarations  has  been
458       deprecated  and  will  be  removed. For example: struct S { friend
459       void  f();  };  void  g()  { f(); } will not be accepted by future
460       versions  of  G++;  instead  a  declaration of "f" will need to be
461       present outside of the scope of "S".
462     * Covariant  returns  are  implemented for all but varadic functions
463       that require an adjustment.
464     * When  -pedantic  is  used,  G++  now  issues errors about spurious
465       semicolons. For example,
466        namespace N {}; // Invalid semicolon.
467        void f() {}; // Invalid semicolon.
468     * G++  no  longer  accepts  attributes  for  a  declarator after the
469       initializer associated with that declarator. For example,
470        X x(1) __attribute__((...));
471       is no longer accepted. Instead, use:
472        X x __attribute__((...)) (1);
473     * Inside the scope of a template class, the name of the class itself
474       can  be  treated  as  either a class or a template. So GCC used to
475       accept  the  class name as argument of type template, and template
476       template  parameter.  However  this is not C++ standard compliant.
477       Now  the name is not treated as a valid template template argument
478       unless  you  qualify  the name by its scope. For example, the code
479       below no longer compiles.
480        template <template <class> class TT> class X {};
481        template <class T> class Y {
482          X<Y> x; // Invalid, Y is always a type template parameter.
483        };
484       The valid code for the above example is
485          X< ::Y> x; // Valid.
486       (Notice the space between < and : to prevent GCC to interpret this
487       as a digraph for [.)
488     * Friend  declarations  that  refer  to template specializations are
489       rejected  if  the  template  has  not  already  been declared. For
490       example,
491        template <typename T>
492        class C {
493          friend void f<> (C&);
494        };
495       is rejected. You must first declare f as a template,
496        template <typename T>
497        void f(T);
498     * In  case  of  friend  declarations,  every name used in the friend
499       declaration  must  be accessible at the point of that declaration.
500       Previous  versions  of  G++  used to be less strict about this and
501       allowed   friend  declarations  for  private  class  members,  for
502       example.  See  the  ISO  C++ Standard Committee's [8]defect report
503       #209 for details.
504     * Declaration  of member functions of class templates as friends are
505       supported. For example,
506        template <typename T> struct A {
507          void f();
508        };
509        class C {
510          template <typename T> friend void A<T>::f();
511        };
512     * You must use template <> to introduce template specializations, as
513       required by the standard. For example,
514        template <typename T>
515        struct S;
516
517        struct S<int> { };
518       is rejected. You must write,
519        template <> struct S<int> {};
520     * G++ used to accept code like this,
521        struct S {
522          int h();
523          void f(int i = g());
524          int g(int i = h());
525        };
526       This  behavior  is not mandated by the standard. Now G++ issues an
527       error  about  this  code.  To  avoid  the error, you must move the
528       declaration  of  g  before  the  declaration  of  f.  The  default
529       arguments for g must be visible at the point where it is called.
530     * The   C++   ABI   Section   3.3.3  specifications  for  the  array
531       construction   routines  __cxa_vec_new2  and  __cxa_vec_new3  were
532       changed  to  return NULL when the allocator argument returns NULL.
533       These changes are incorporated into the libstdc++ runtime library.
534     * Using a name introduced by a typedef in a friend declaration or in
535       an explicit instantiation is now rejected, as specified by the ISO
536       C++ standard.
537        class A;
538        typedef A B;
539        class C {
540          friend class B;      // error, no typedef name here
541          friend B;            // error, friend always needs class/struct/enum
542          friend class A;      // OK
543        };
544
545        template <int> class Q {};
546        typedef Q<0> R;
547        template class R;      // error, no typedef name here
548        template class Q<0>;   // OK
549     * When  allocating an array with a new expression, GCC used to allow
550       parentheses  around the type name. This is actually ill-formed and
551       it is now rejected:
552        int* a = new (int)[10];    // error, not accepted anymore
553        int* a = new int[10];      // OK
554     * When  binding  an  rvalue  of  class type to a reference, the copy
555       constructor  of  the  class  must  be  accessible.  For  instance,
556       consider the following code:
557        class A
558        {
559        public:
560          A();
561
562        private:
563          A(const A&);   // private copy ctor
564        };
565
566        A makeA(void);
567        void foo(const A&);
568
569        void bar(void)
570        {
571          foo(A());       // error, copy ctor is not accessible
572          foo(makeA());   // error, copy ctor is not accessible
573
574          A a1;
575          foo(a1);        // OK, a1 is a lvalue
576        }
577       This  might  be  surprising  at first sight, especially since most
578       popular compilers do not correctly implement this rule ([9]further
579       details).
580     * When  forming a pointer to member or a pointer to member function,
581       access  checks  for  class visibility (public, protected, private)
582       are  now  performed using the qualifying scope of the name itself.
583       This is better explained with an example:
584        class A
585        {
586        public:
587          void pub_func();
588        protected:
589          void prot_func();
590        private:
591          void priv_func();
592        };
593
594        class B : public A
595        {
596        public:
597          void foo()
598          {
599            &A::pub_func;   // OK, pub_func is accessible through A
600            &A::prot_func;  // error, cannot access prot_func through A
601            &A::priv_func;  // error, cannot access priv_func through A
602
603            &B::pub_func;   // OK, pub_func is accessible through B
604            &B::prot_func;  // OK, can access prot_func through B (within B)
605            &B::priv_func;  // error, cannot access priv_func through B
606          }
607        };
608
609    Runtime Library (libstdc++)
610
611     * Optimization work:
612          + Streamlined  streambuf,  filebuf,  separate  synched  with  C
613            Standard I/O streambuf.
614          + All formatted I/O now uses cached locale information.
615          + STL  optimizations (memory/speed for list, red-black trees as
616            used by sets and maps).
617          + More use of GCC builtins.
618          + String      optimizations      (avoid      contention      on
619            increment/decrement-and-test  of  the  reference count in the
620            empty-string   object,   constructor   from   input_iterators
621            speedup).
622     * Static linkage size reductions.
623     * Large File Support (files larger than 2 GB on 32-bit systems).
624     * Wide   character   and  variable  encoding  filebuf  work  (UTF-8,
625       Unicode).
626     * Generic character traits.
627     * Also  support  wchar_t  specializations  on Mac OS 10.3.x, FreeBSD
628       5.x, Solaris 2.7 and above, AIX 5.x, Irix 6.5.
629     * The allocator class is now standard-conformant, and two additional
630       extension    allocators    have    been    added,   mt_alloc   and
631       bitmap_allocator.
632     * PCH support: -include bits/stdc++.h (2x compile speedup).
633     * Rewrote __cxa_demangle with support for C++ style allocators.
634     * New debug modes for STL containers and iterators.
635     * Testsuite  rewrite:  five  times  as many tests, plus increasingly
636       sophisticated  tests,  including  I/O,  MT, multi-locale, wide and
637       narrow characters.
638     * Use current versions of GNU "autotools" for build/configuration.
639
640  Objective-C
641
642     * The Objective-C front end has been updated to include the numerous
643       bug  fixes  and  enhancements previously available only in Apple's
644       version of GCC. These include:
645          + Structured exception (@try... @catch... @finally, @throw) and
646            synchronization (@synchronized) support. These are accessible
647            via  the  -fobjc-exceptions  switch; as of this writing, they
648            may only be used in conjunction with -fnext-runtime on Mac OS
649            X  10.3  and  later.  See [10]Options Controlling Objective-C
650            Dialect for more information.
651          + An overhaul of @encode logic. The C99 _Bool and C++ bool type
652            may  now be encoded as 'B'. In addition, the back-end/codegen
653            dependencies have been removed.
654          + An  overhaul  of message dispatch construction, ensuring that
655            the  various  receiver  types (and casts thereof) are handled
656            properly, and that correct diagnostics are issued.
657          + Support  for "Zero-Link" (-fzero-link) and "Fix-and-Continue"
658            (-freplace-objc-classes) debugging modes, currently available
659            on  Mac  OS  X  10.3  and  later. See [11]Options Controlling
660            Objective-C Dialect for more information.
661          + Access  to optimized runtime entry points (-fno-nil-receivers
662            )  on  the  assumption  that message receivers are never nil.
663            This  is  currently available on Mac OS X 10.3 and later. See
664            [12]Options   Controlling   Objective-C   Dialect   for  more
665            information.
666
667  Java
668
669     * Compiling  a  .jar  file  will  now cause non-.class entries to be
670       automatically compiled as resources.
671     * libgcj has been ported to Darwin.
672     * Jeff  Sturm has adapted Jan Hubicka's call graph optimization code
673       to gcj.
674     * libgcj  has  a  new gcjlib URL type; this lets URLClassLoader load
675       code from shared libraries.
676     * libgcj   has   been  much  more  completely  merged  with  [13]GNU
677       Classpath.
678     * Class loading is now much more correct; in particular the caller's
679       class loader is now used when that is required.
680     * [14]Eclipse 2.x will run out of the box using gij.
681     * Parts  of  java.nio  have  been  implemented.  Direct and indirect
682       buffers work, as do fundamental file and socket operations.
683     * java.awt  has  been  improved,  though  it  is still not ready for
684       general use.
685     * The  HTTP  protocol  handler  now uses HTTP/1.1 and can handle the
686       POST method.
687     * The  MinGW  port  has matured. Enhancements include socket timeout
688       support, thread interruption, improved Runtime.exec() handling and
689       support for accented characters in filenames.
690
691  Fortran
692
693     * Fortran improvements are listed in the [15]Fortran documentation.
694
695New Targets and Target Specific Improvements
696
697  Alpha
698
699     * Several   [16]built-in   functions   have   been   added  such  as
700       __builtin_alpha_zap   to   allow   utilizing   the   more  obscure
701       instructions of the CPU.
702     * Parameter  passing  of  complex arguments has changed to match the
703       [17]ABI.  This  change is incompatible with previous GCC versions,
704       but  does  fix  compatibility  with the Tru64 compiler and several
705       corner cases where GCC was incompatible with itself.
706
707  ARM
708
709     * Nicolas   Pitre  has  contributed  his  hand-coded  floating-point
710       support  code for ARM. It is both significantly smaller and faster
711       than  the  existing  C-based  implementation,  even  when building
712       applications   for  Thumb.  The  arm-elf  configuration  has  been
713       converted to use the new code.
714     * Support  for  the Intel's iWMMXt architecture, a second generation
715       XScale  processor,  has  been  added. Enabled at run time with the
716       -mcpu=iwmmxt command line switch.
717     * A  new ARM target has been added: arm-wince-pe. This is similar to
718       the arm-pe target, but it defaults to using the APCS32 ABI.
719     * The  existing  ARM  pipeline description has been converted to the
720       use the [18]DFA processor pipeline model. There is not much change
721       in  code  performance,  but  the  description is now [19]easier to
722       understand.
723     * Support for the Cirrus EP9312 Maverick floating point co-processor
724       added.  Enabled  at  run  time  with the -mcpu=ep9312 command line
725       switch.  Note  however that the multilibs to support this chip are
726       currently  disabled in gcc/config/arm/t-arm-elf, so if you want to
727       enable  their production you will have to uncomment the entries in
728       that file.
729
730  H8/300
731
732     * Support for long long has been added.
733     * Support for saveall attribute has been added.
734     * Pavel Pisa contributed hand-written 32-bit-by-32-bit division code
735       for  H8/300H  and  H8S,  which  is  much  faster than the previous
736       implementation.
737     * A lot of small performance improvements.
738
739  IA-32/AMD64 (x86-64)
740
741     * Tuning  for  K8  (AMD  Opteron/Athlon64)  core  is  available  via
742       -march=k8 and -mcpu=k8.
743     * Scalar   SSE   code   generation   carefully  avoids  reformatting
744       penalties,  hidden  dependencies  and minimizes the number of uops
745       generated on both Intel and AMD CPUs.
746     * Vector MMX and SSE operands are now passed in registers to improve
747       performance  and match the argument passing convention used by the
748       Intel  C++  Compiler.  As  a  result  it  is  not possible to call
749       functions   accepting  vector  arguments  compiled  by  older  GCC
750       version.
751     * Conditional  jump  elimination  is  now  more aggressive on modern
752       CPUs.
753     * The  Athlon  ports  has  been  converted  to use the DFA processor
754       pipeline description.
755     * Optimization  of  indirect tail calls is now possible in a similar
756       fashion as direct sibcall optimization.
757     * Further small performance improvements.
758     * -m128bit-long-double is now less buggy.
759     * __float128 support in 64-bit compilation.
760     * Support for data structures exceeding 2GB in 64-bit mode.
761     * -mcpu has been renamed to -mtune.
762
763  IA-64
764
765     * Tuning  code  for  the  Itanium  2  processor  has been added. The
766       generation of code tuned for Itanium 2 (option -mtune=itanium2) is
767       enabled  by  default now. To generate code tuned for Itanium 1 the
768       option -mtune=itanium1 should be used.
769     * [20]DFA  processor  pipeline descriptions for the IA-64 processors
770       have  been  added.  This  resulted  in about 3% improvement on the
771       SPECInt2000 benchmark for Itanium 2.
772     * Instruction  bundling  for the IA-64 processors has been rewritten
773       using the DFA pipeline hazard recognizer. It resulted in about 60%
774       compiler speedup on the SPECInt2000 C programs.
775
776  M32R
777
778     * Support for the M32R/2 processor has been added by Renesas.
779     * Support  for an M32R Linux target and PIC code generation has been
780       added by Renesas.
781
782  M68000
783
784     * Bernardo    Innocenti   (Develer S.r.l.)   has   contributed   the
785       m68k-uclinux  target,  based  on  former  work  done  by Paul Dale
786       (SnapGear Inc.).  Code  generation  for  the  ColdFire  processors
787       family  has been enhanced and extended to support the MCF 53xx and
788       MCF 54xx  cores,  integrating  former  work  done  by Peter Barada
789       (Motorola).
790
791  MIPS
792
793    Processor-specific changes
794
795     * Support  for  the  RM7000 and RM9000 processors has been added. It
796       can  be  selected using the -march compiler option and should work
797       with any MIPS I (mips-*) or MIPS III (mips64-*) configuration.
798     * Support for revision 2 of the MIPS32 ISA has been added. It can be
799       selected with the command-line option -march=mips32r2.
800     * There  is  a  new  option,  -mfix-sb1, to work around certain SB-1
801       errata.
802
803    Configuration
804
805     * It is possible to customize GCC using the following configure-time
806       options:
807          + --with-arch,  which specifies the default value of the -march
808            option.
809          + --with-tune,  which specifies the default value of the -mtune
810            option.
811          + --with-abi, which specifies the default ABI.
812          + --with-float=soft,  which  tells GCC to use software floating
813            point by default.
814          + --with-float=hard,  which  tells GCC to use hardware floating
815            point by default.
816     * A   64-bit   GNU/Linux   port   has  been  added.  The  associated
817       configurations are mips64-linux-gnu and mips64el-linux-gnu.
818     * The 32-bit GNU/Linux port now supports Java.
819     * The  IRIX  6 configuration now supports the o32 ABI and will build
820       o32  multilibs  by  default.  This support is compatible with both
821       binutils  and  the  SGI  tools,  but  note  that several features,
822       including debugging information and DWARF2 exception handling, are
823       only  available  when  using  the  GNU  assembler.  Use of the GNU
824       assembler   and   linker  (version  2.15  or  above)  is  strongly
825       recommended.
826     * The IRIX 6 configuration now supports 128-bit long doubles.
827     * There  are  two  new RTEMS-specific configurations, mips-rtems and
828       mipsel-rtems.
829     * There  are  two  new  *-elf  configurations,  mipsisa32r2-elf  and
830       mipsisa32r2el-elf.
831
832    General
833
834     * Several [21]ABI bugs have been fixed. Unfortunately, these changes
835       will break binary compatibility with earlier releases.
836     * GCC  can  now  use  explicit  relocation operators when generating
837       -mabicalls  code. This behavior is controlled by -mexplicit-relocs
838       and can have several performance benefits. For example:
839          + It  allows  for  more optimization of GOT accesses, including
840            better scheduling and redundancy elimination.
841          + It allows sibling calls to be implemented as jumps.
842          + n32  and  n64  leaf functions can use a call-clobbered global
843            pointer instead of $28.
844          + The  code  to  set  up $gp can be removed from functions that
845            don't need it.
846     * A  new  option, -mxgot, allows the GOT to be bigger than 64k. This
847       option is equivalent to the assembler's -xgot option and should be
848       used instead of -Wa,-xgot.
849     * Frame  pointer elimination is now supported when generating 64-bit
850       MIPS16 code.
851     * Inline  block  moves  have  been optimized to take more account of
852       alignment information.
853     * Many  internal  changes  have  been  made to the MIPS port, mostly
854       aimed at reducing the reliance on assembler macros.
855
856  PowerPC Darwin
857
858     * Support  for  shared/dylib  gcc  libraries  has  been added. It is
859       enabled by default on powerpc-apple-darwin7.0.0 and up.
860     * Libgcj   is   enabled   by   default.   On   systems   older  than
861       powerpc-apple-darwin7.0.0 you need to install [22]dlcompat.
862
863  S/390 and zSeries
864
865     * New  command-line  options allow to specify the intended execution
866       environment for generated code:
867          + -mesa/-mzarch  allows  to  specify  whether  to generate code
868            running  in  ESA/390  mode or in z/Architecture mode (this is
869            applicable to 31-bit code only).
870          + -march  allows  to  specify  a minimum processor architecture
871            level (g5, g6, z900, or z990).
872          + -mtune allows to specify which processor to tune for.
873     * It is possible to customize GCC using the following configure-time
874       options:
875          + --with-mode,  which  specifies whether to default to assuming
876            ESA/390 or z/Architecture mode.
877          + --with-arch,  which specifies the default value of the -march
878            option.
879          + --with-tune,  which specifies the default value of the -mtune
880            option.
881     * Support for the z990 processor has been added, and can be selected
882       using   -march=z990  or  -mtune=z990.  This  includes  instruction
883       scheduling  tuned  for the superscalar instruction pipeline of the
884       z990  processor  as  well  as  support  for  all  new instructions
885       provided by the long-displacement facility.
886     * Support  to  generate 31-bit code optimized for zSeries processors
887       (running  in  ESA/390  or  in z/Architecture mode) has been added.
888       This can be selected using -march=z900 and -mzarch respectively.
889     * Instruction  scheduling  for the z900 and z990 processors now uses
890       the DFA pipeline hazard recognizer.
891     * GCC  no  longer  generates  code  to  maintain  a stack backchain,
892       previously   used  to  generate  stack  backtraces  for  debugging
893       purposes.  As  replacement  that  does not incur runtime overhead,
894       DWARF-2  call  frame  information  is  provided  by  GCC;  this is
895       supported  by  GDB 6.1. The old behavior can be restored using the
896       -mbackchain option.
897     * The  stack  frame  size of functions may now exceed 2 GB in 64-bit
898       code.
899     * A port for the 64-bit IBM TPF operating system has been added; the
900       configuration is s390x-ibm-tpf. This configuration is supported as
901       cross-compilation target only.
902     * Various   changes   to   improve  the  generated  code  have  been
903       implemented, including:
904          + GCC  now  uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT
905            instructions  to  significantly  speed up many floating-point
906            applications.
907          + GCC  now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL
908            WITH BORROW instructions to speed up long long arithmetic.
909          + GCC  now  uses  the  SEARCH  STRING  instruction to implement
910            strlen().
911          + In  many  cases,  function  call overhead for 31-bit code has
912            been  reduced  by placing the literal pool after the function
913            code instead of after the function prolog.
914          + Register 14 is no longer reserved in 64-bit code.
915          + Handling of global register variables has been improved.
916
917  SPARC
918
919     * The option -mflat is deprecated.
920     * Support  for  large  (>  2GB)  frames has been added to the 64-bit
921       port.
922     * Several [23]ABI bugs have been fixed. Unfortunately, these changes
923       will break binary compatibility with earlier releases.
924     * The  default  debugging  format  has  been  switched from STABS to
925       DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already
926       the default debugging format for 64-bit code on Solaris.
927
928  SuperH
929
930     * Support for the SH2E processor has been added. Enabled at run time
931       with  the  -m2e  command  line  switch,  or  at  configure time by
932       specifying sh2e as the machine part of the target triple.
933
934  V850
935
936     * Support  for  the Mitsubishi V850E1 processor has been added. This
937       is a variant of the V850E processor with some additional debugging
938       instructions.
939
940  Xtensa
941
942     * Several  ABI  bugs  have  been fixed. Unfortunately, these changes
943       break binary compatibility with earlier releases.
944          + For  big-endian  processors,  the padding of aggregate return
945            values  larger  than  a  word  has changed. If the size of an
946            aggregate return value is not a multiple of 32 bits, previous
947            versions  of  GCC  inserted  padding  in the most-significant
948            bytes  of  the first return value register. Aggregates larger
949            than  a word are now padded in the least-significant bytes of
950            the  last return value register used. Aggregates smaller than
951            a  word  are  still padded in the most-significant bytes. The
952            return  value  padding  has  not  changed  for  little-endian
953            processors.
954          + Function  arguments  with  16-byte alignment are now properly
955            aligned.
956          + The implementation of the va_list type has changed. A va_list
957            value  created  by va_start from a previous release cannot be
958            used with va_arg from this release, or vice versa.
959     * More  processor  configuration  options  for Xtensa processors are
960       supported:
961          + the ABS instruction is now optional;
962          + the ADDX* and SUBX* instructions are now optional;
963          + an experimental CONST16 instruction can be used to synthesize
964            constants instead of loading them from constant pools.
965       These  and  other  Xtensa  processor  configuration options can no
966       longer  be  enabled  or  disabled  by  command-line  options;  the
967       processor  configuration  must be specified by the xtensa-config.h
968       header    file    when    building    GCC.    Additionally,    the
969       -mno-serialize-volatile option is no longer supported.
970
971Obsolete Systems
972
973   Support  for  a  number of older systems has been declared obsolete in
974   GCC  3.4. Unless there is activity to revive them, the next release of
975   GCC will have their sources permanently removed.
976
977   All  configurations of the following processor architectures have been
978   declared obsolete:
979     * Mitsubishi D30V, d30v-*
980     * AT&T DSP1600 and DSP1610, dsp16xx-*
981     * Intel 80960, i960
982
983   Also, some individual systems have been obsoleted:
984     * ARM Family
985          + Support  for  generating  code  for operation in APCS/26 mode
986            (-mapcs-26).
987     * IBM ESA/390
988          + "Bigfoot"  port, i370-*. (The other port, s390-*, is actively
989            maintained and supported.)
990     * Intel 386 family
991          + MOSS, i?86-moss-msdos and i?86-*-moss*
992          + NCR 3000 running System V r.4, i?86-ncr-sysv4*
993          + FreeBSD  with  a.out  object format, i?86-*-freebsd*aout* and
994            i?86-*-freebsd2*
995          + Linux with a.out object format, i?86-linux*aout*
996          + Linux with libc5, a.k.a. glibc1, i?86-linux*libc1*
997          + Interix versions before Interix 3, i?86-*-interix
998          + Mach microkernel, i?86-mach*
999          + SCO UnixWare with UDK, i?86-*-udk*
1000          + Generic System V releases 1, 2, and 3, i?86-*-sysv[123]*
1001          + VSTa microkernel, i386-*-vsta
1002     * Motorola M68000 family
1003          + HPUX, m68k-hp-hpux* and m68000-hp-hpux*
1004          + NetBSD   with   a.out  object  format  (before  NetBSD  1.4),
1005            m68k-*-*-netbsd* except m68k-*-*-netbsdelf*
1006          + Generic System V r.4, m68k-*-sysv4*
1007     * VAX
1008          + Generic  VAX,  vax-*-* (This is generic VAX only; we have not
1009            obsoleted any VAX triples for specific operating systems.)
1010
1011Documentation improvements
1012
1013Other significant improvements
1014
1015     * The  build  system  has  undergone  several  significant cleanups.
1016       Subdirectories  will  only  be configured if they are being built,
1017       and all subdirectory configures are run from the make command. The
1018       top level has been autoconfiscated.
1019     * Building GCC no longer writes to its source directory. This should
1020       help  those wishing to share a read-only source directory over NFS
1021       or  build  from  a  CD.  The exceptions to this feature are if you
1022       configure      with     either     --enable-maintainer-mode     or
1023       --enable-generated-files-in-srcdir.
1024     * The  -W  warning option has been renamed to -Wextra, which is more
1025       easily  understood.  The  older  spelling  will  be  retained  for
1026       backwards compatibility.
1027     * Substantial   improvements   in   compile  time  have  been  made,
1028       particularly for non-optimizing compilations.
1029     _________________________________________________________________
1030
1031GCC 3.4.0
1032
1033  Bug Fixes
1034
1035   A  vast number of bugs have been fixed in 3.4.0, too many to publish a
1036   complete  list  here.  [24]Follow  this  link  to  query  the Bugzilla
1037   database  for  the  list  of over 900 bugs fixed in 3.4.0. This is the
1038   list  of  all  bugs marked as resolved and fixed in 3.4.0 that are not
1039   flagged as 3.4 regressions.
1040     _________________________________________________________________
1041
1042GCC 3.4.1
1043
1044  Bug Fixes
1045
1046   This  section  lists the problem reports (PRs) from GCC's bug tracking
1047   system  that  are  known  to  be fixed in the 3.4.1 release. This list
1048   might not be complete (that is, it is possible that some PRs that have
1049   been fixed are not listed here).
1050
1051    Bootstrap failures
1052
1053     * [25]10129  Ada  bootstrap  fails on PPC-Darwin - invalid assembler
1054       emitted - PIC related
1055     * [26]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
1056     * [27]14760    A   bug   in   configure.in   prevents   using   both
1057       --program-suffix and --program-prefix
1058     * [28]14671      [hppa64]      bootstrap      fails:      ICE     in
1059       save_call_clobbered_regs, in caller_save.c
1060     * [29]15093  [alpha][Java]  make bootstrap fails to configure libffi
1061       on Alpha
1062     * [30]15178 Solaris 9/x86 fails linking after stage 3
1063
1064    Multi-platform internal compiler errors (ICEs)
1065
1066     * [31]12753  (preprocessor) Memory corruption in preprocessor on bad
1067       input
1068     * [32]13985 ICE in gcc.c-torture/compile/930621-1.c
1069     * [33]14810  (c++)  tree  check failures with invalid code involving
1070       templates
1071     * [34]14883  (c++) ICE on invalid code, in cp_parser_lookup_name, in
1072       cp/parser.c
1073     * [35]15044 (c++) ICE on syntax error, template header
1074     * [36]15057  (c++)  Compiling  of conditional value throw constructs
1075       cause a segmentation violation
1076     * [37]15064 (c++) typeid of template parameter gives ICE
1077     * [38]15142  (c++)  ICE  when  passing  a  string  where  a char* is
1078       expected in a throw statement
1079     * [39]15159 ICE in rtl_verify_flow_info_1
1080     * [40]15165 (c++) ICE in instantiate_template
1081     * [41]15193   Unary  minus  using  pointer  to  V4SF  vector  causes
1082       -fforce-mem to exhaust all memory
1083     * [42]15209 (c++) Runs out of memory with packed structs
1084     * [43]15227 (c++) Trouble with invalid function definition
1085     * [44]15285  (c++)  instantiate_type  ICE  when  forming  pointer to
1086       template function
1087     * [45]15299 (c++) ICE in resolve_overloaded_unification
1088     * [46]15329 (c++) ICE on constructor of member template
1089     * [47]15550 ICE in extract_insn, in recog.c
1090     * [48]15554 (c++) ICE in tsubst_copy, in cp/pt.c
1091     * [49]15640   (c++)   ICE   on   invalid   code   in  arg_assoc,  in
1092       cp/name-lookup.c
1093     * [50]15666 [unit-at-a-time] Gcc abort on valid code
1094     * [51]15696 (c++) ICE with bad pointer-to-member code
1095     * [52]15701 (c++) ICE with friends and template template parameter
1096     * [53]15761 ICE in do_SUBST, in combine.c
1097     * [54]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
1098
1099    Ada
1100
1101     * [55]14538 All RTEMS targets broken for gnat
1102
1103    C front end
1104
1105     * [56]12391 missing warning about assigning to an incomplete type
1106     * [57]14649 atan(1.0) should not be a constant expression
1107     * [58]15004  [unit-at-a-time]  no  warning  for  unused paramater in
1108       static function
1109     * [59]15749  --pedantic-errors  behaves  differently from --pedantic
1110       with C-compiler on GNU/Linux
1111
1112    C++ compiler and library
1113
1114     * [60]10646  non-const  reference is incorrectly matched in a "const
1115       T" partial specialization
1116     * [61]12077 wcin.rdbuf()->in_avail() return value too high
1117     * [62]13598 enc_filebuf doesn't work
1118     * [63]14211 const_cast returns lvalue but should be rvalue
1119     * [64]14220 num_put::do_put() undesired float/double behavior
1120     * [65]14245     problem     with    user-defined    allocators    in
1121       std::basic_string
1122     * [66]14340  libstdc++  Debug  mode:  failure to convert iterator to
1123       const_iterator
1124     * [67]14600  __gnu_cxx::stdio_sync_filebuf  should  expose  internal
1125       FILE*
1126     * [68]14668 no warning anymore for reevaluation of declaration
1127     * [69]14775 LFS (large file support) tests missing
1128     * [70]14821   Duplicate   namespace  alias  declaration  should  not
1129       conflict
1130     * [71]14930 Friend declaration ignored
1131     * [72]14932  cannot use offsetof to get offsets of array elements in
1132       g++ 3.4.0
1133     * [73]14950  [non  unit-at-a-time]  always_inline  does not mix with
1134       templates and -O0
1135     * [74]14962 g++ ignores #pragma redefine_extname
1136     * [75]14975 Segfault on low-level write error during imbue
1137     * [76]15002  Linewise  stream  input  is  unusably slow (std::string
1138       slow)
1139     * [77]15025   compiler   accepts   redeclaration   of   template  as
1140       non-template
1141     * [78]15046 [arm] Math functions misdetected by cross configuration
1142     * [79]15069 a bit test on a variable of enum type is miscompiled
1143     * [80]15074 g++ -lsupc++ still links against libstdc++
1144     * [81]15083 spurious "statement has no effect" warning
1145     * [82]15096 parse error with templates and pointer to const member
1146     * [83]15287  combination  of  operator[]  and  operator  .* fails in
1147       templates
1148     * [84]15317  __attribute__  unused in first parameter of constructor
1149       gives error
1150     * [85]15337 sizeof on incomplete type diagnostic
1151     * [86]15361 bitset<>::_Find_next fails
1152     * [87]15412  _GLIBCXX_ symbols symbols defined and used in different
1153       namespaces
1154     * [88]15427 valid code results in incomplete type error
1155     * [89]15471   Incorrect   member   pointer   offsets   in  anonymous
1156       structs/unions
1157     * [90]15503 nested template problem
1158     * [91]15507 compiler hangs while laying out union
1159     * [92]15542 operator & and template definitions
1160     * [93]15565 SLES9: leading + sign for unsigned int with showpos
1161     * [94]15625  friend  defined  inside a template fails to find static
1162       function
1163     * [95]15629 Function templates, overloads, and friend name injection
1164     * [96]15742  'noreturn'  attribute  ignored  in  method  of template
1165       functions.
1166     * [97]15775 Allocator::pointer consistently ignored
1167     * [98]15821 Duplicate namespace alias within namespace rejected
1168     * [99]15862 'enum yn' fails (confict with undeclared builtin)
1169     * [100]15875 rejects pointer to member in template
1170     * [101]15877  valid  code  using  templates  and  anonymous enums is
1171       rejected
1172     * [102]15947 Puzzling error message for wrong destructor declaration
1173       in template class
1174     * [103]16020 cannot copy __gnu_debug::bitset
1175     * [104]16154 input iterator concept too restrictive
1176     * [105]16174 deducing top-level consts
1177
1178    Java
1179
1180     * [106]14315 Java compiler is not parallel make safe
1181
1182    Fortran
1183
1184     * [107]15151 [g77] incorrect logical i/o in 64-bit mode
1185
1186    Objective-C
1187
1188     * [108]7993 private variables cannot be shadowed in subclasses
1189
1190    Optimization bugs
1191
1192     * [109]15228 useless copies of floating point operands
1193     * [110]15345   [non-unit-at-a-time]   unreferenced   nested   inline
1194       functions not optimized away
1195     * [111]15945 Incorrect floating point optimization
1196     * [112]15526 ftrapv aborts on 0 * (-1)
1197     * [113]14690 Miscompiled POOMA tests
1198     * [114]15112 GCC generates code to write to unchanging memory
1199
1200    Preprocessor
1201
1202     * [115]15067 Minor glitch in the source of cpp
1203
1204    Main driver program bugs
1205
1206     * [116]1963    collect2   interprets   -oldstyle_liblookup   as   -o
1207       ldstyle_liblookup
1208
1209    x86-specific (Intel/AMD)
1210
1211     * [117]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
1212       section}
1213
1214    HPPA-specific
1215
1216     * [118]14782 GCC produces an unaligned data access at -O2
1217     * [119]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
1218     * [120]15202 ICE in reload_cse_simplify_operands, in postreload.c
1219
1220    IA64-specific
1221
1222     * [121]14610 __float80 constants incorrectly emitted
1223     * [122]14813 init_array sections are initialized in the wrong order
1224     * [123]14857 GCC segfault on duplicated asm statement
1225     * [124]15598 Gcc 3.4 ICE on valid code
1226     * [125]15653 Gcc 3.4 ICE on valid code
1227
1228    MIPS-specific
1229
1230     * [126]15189  wrong  filling  of  delay  slot  with -march=mips1 -G0
1231       -mno-split-addresses -mno-explicit-relocs
1232     * [127]15331  Assembler  error building gnatlib on IRIX 6.5 with GNU
1233       as 2.14.91
1234     * [128]16144 Bogus reference to __divdf3 when -O1
1235     * [129]16176 Miscompilation of unaligned data in MIPS backend
1236
1237    PowerPC-specific
1238
1239     * [130]11591 ICE in gcc.dg/altivec-5.c
1240     * [131]12028 powerpc-eabispe produces bad sCOND operation
1241     * [132]14478 rs6000 geu/ltu patterns generate incorrect code
1242     * [133]14567 long double and va_arg complex args
1243     * [134]14715  Altivec  stack  layout may overlap gpr save with stack
1244       temps
1245     * [135]14902   (libstdc++)   Stream  checking  functions  fail  when
1246       -pthread option is used.
1247     * [136]14924 Compiler ICE on valid code
1248     * [137]14960 -maltivec affects vector return with -mabi=no-altivec
1249     * [138]15106   vector   varargs  failure  passing  from  altivec  to
1250       non-altivec code for -m32
1251     * [139]16026  ICE in function.c:4804, assign_parms, when -mpowerpc64
1252       & half-word operation
1253     * [140]15191  -maltivec  -mabi=no-altivec results in mis-aligned lvx
1254       and stvx
1255     * [141]15662  Segmentation  fault when an exception is thrown - even
1256       if try and catch are specified
1257
1258    s390-specific
1259
1260     * [142]15054 Bad code due to overlapping stack temporaries
1261
1262    SPARC-specific
1263
1264     * [143]15783 ICE with union assignment in 64-bit mode
1265     * [144]15626   GCC   3.4   emits  "ld:  warning:  relocation  error:
1266       R_SPARC_UA32"
1267
1268    x86-64-specific
1269
1270     * [145]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
1271     * [146]14723 Backported -march=nocona from mainline
1272     * [147]15290 __float128 failed to pass to function properly
1273
1274    Cygwin/Mingw32-specific
1275
1276     * [148]15250  Option  -mms-bitfields  support  on  GCC  3.4  is  not
1277       conformant to MS layout
1278     * [149]15551  -mtune=pentium4  -O2  with  sjlj EH breaks stack probe
1279       worker on windows32 targets
1280
1281    Bugs specific to embedded processors
1282
1283     * [150]8309  [m68k]  -m5200  produces  erroneous SImode set of short
1284       varaible on stack
1285     * [151]13250  [SH]  Gcc code for rotation clobbers the register, but
1286       gcc continues to use the register as if it was not clobbered
1287     * [152]13803 [coldfire] movqi operand constraints too restrictivefor
1288       TARGET_COLDFIRE
1289     * [153]14093 [SH] ICE for code when using -mhitachi option in SH
1290     * [154]14457 [m6811hc] ICE with simple c++ source
1291     * [155]14542 [m6811hc] ICE on simple source
1292     * [156]15100 [SH] cc1plus got hang-up on
1293       libstdc++-v3/testsuite/abi_check.cc
1294     * [157]15296  [CRIS]  Delayed branch scheduling causing invalid code
1295       on cris-*
1296     * [158]15396 [SH] ICE with -O2 -fPIC
1297     * [159]15782  [coldfire]  m68k_output_mi_thunk  emits wrong code for
1298       ColdFire
1299
1300    Testsuite problems (compiler not affected)
1301
1302     * [160]11610   libstdc++   testcases  27_io/*  don't  work  properly
1303       remotely
1304     * [161]15488  (libstdc++) possibly insufficient file permissions for
1305       executing test suite
1306     * [162]15489 (libstdc++) testsuite_files determined incorrectly
1307
1308    Documentation bugs
1309
1310     * [163]13928  (libstdc++) no whatis info in some man pages generated
1311       by doxygen
1312     * [164]14150 Ada documentation out of date
1313     * [165]14949 (c++) Need to document method visibility changes
1314     * [166]15123 libstdc++-doc: Allocators.3 manpage is empty
1315     _________________________________________________________________
1316
1317GCC 3.4.2
1318
1319  Bug Fixes
1320
1321   This  section  lists the problem reports (PRs) from GCC's bug tracking
1322   system  that  are  known  to  be fixed in the 3.4.2 release. This list
1323   might not be complete (that is, it is possible that some PRs that have
1324   been fixed are not listed here).
1325
1326    Bootstrap failures and issues
1327
1328     * [167]16469      [mips-sgi-irix5.3]      bootstrap     fails     in
1329       libstdc++-v3/testsuite
1330     * [168]16344    [hppa-linux-gnu]    libstdc++'s    PCH    built   by
1331       profiledbootstrap does not work with the built compiler
1332     * [169]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
1333
1334    Multi-platform internal compiler errors (ICEs)
1335
1336     * [170]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
1337       cp_parser_class_specifier, in cp/parser.c
1338     * [171]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
1339     * [172]15461 (c++) ICE due to NRV and inlining
1340     * [173]15890 (c++) ICE in c_expand_expr, in c-common.c
1341     * [174]16180 ICE: segmentation fault in RTL optimization
1342     * [175]16224 (c++) ICE in write_unscoped_name (template/namespace)
1343     * [176]16408 ICE: in delete_insn, in cfgrtl.c
1344     * [177]16529 (c++) ICE for: namespace-alias shall not be declared as
1345       the name of any other entity
1346     * [178]16698   (c++)   ICE   with   exceptions  and  declaration  of
1347       __cxa_throw
1348     * [179]16706    (c++)    ICE    in   finish_member_declaration,   in
1349       cp/semantics.c
1350     * [180]16810  (c++)  Legal  C++  program  with  cast  gives  ICE  in
1351       build_ptrmemfunc
1352     * [181]16851 (c++) ICE when throwing a comma expression
1353     * [182]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
1354     * [183]16904   (c++)   ICE  in  finish_class_member_access_expr,  in
1355       cp/typeck.c
1356     * [184]16905 (c++) ICE (segfault) with exceptions
1357     * [185]16964   (c++)   ICE   in   cp_parser_class_specifier  due  to
1358       redefinition
1359     * [186]17068  (c++)  ICE:  tree  check: expected class 'd', have 'x'
1360       (identifier_node) in dependent_template_p, in cp/pt.c
1361
1362    Preprocessor bugs
1363
1364     * [187]16366 Preprocessor option -remap causes memory corruption
1365
1366    Optimization
1367
1368     * [188]15345 unreferenced nested inline functions not optimized away
1369     * [189]16590 Incorrect execution when compiling with -O2
1370     * [190]16693  Bitwise AND is lost when used within a cast to an enum
1371       of the same precision
1372     * [191]17078 Jump into if(0) substatement fails
1373
1374    Problems in generated debug information
1375
1376     * [192]13956 incorrect stabs for nested local variables
1377
1378    C front end bugs
1379
1380     * [193]16684  GCC  should not warn about redundant redeclarations of
1381       built-ins
1382
1383    C++ compiler and library
1384
1385     * [194]12658   Thread   safety   problems  in  locale::global()  and
1386       locale::locale()
1387     * [195]13092 g++ accepts invalid pointer-to-member conversion
1388     * [196]15320 Excessive memory consumption
1389     * [197]16246 Incorrect template argument deduction
1390     * [198]16273  Memory exhausted when using nested classes and virtual
1391       functions
1392     * [199]16401 ostringstream in gcc 3.4.x very slow for big data
1393     * [200]16411 undefined reference to
1394       __gnu_cxx::stdio_sync_filebuf<char,         std::char_traits<char>
1395       >::file()
1396     * [201]16489 G++ incorrectly rejects use of a null constant integral
1397       expression as a null constant pointer
1398     * [202]16618 offsetof fails with constant member
1399     * [203]16637 syntax error reported for valid input code
1400     * [204]16717 __attribute__((constructor)) broken in C++
1401     * [205]16813  compiler  error  in  DEBUG  version of range insertion
1402       std::map::insert
1403     * [206]16853  pointer-to-member initialization from incompatible one
1404       accepted
1405     * [207]16889 ambiguity is not detected
1406     * [208]16959 Segmentation fault in ios_base::sync_with_stdio
1407
1408    Java compiler and library
1409
1410     * [209]7587 direct threaded interpreter not thread-safe
1411     * [210]16473 ServerSocket accept() leaks file descriptors
1412     * [211]16478 Hash synchronization deadlock with finalizers
1413
1414    Alpha-specific
1415
1416     * [212]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
1417     * [213]16974  could  not  split  insn  (ice  in  final_scan_insn, in
1418       final.c)
1419
1420    x86-specific
1421
1422     * [214]16298 ICE in output_operand
1423     * [215]17113 ICE with SSE2 intrinsics
1424     * [216]17171 [i386-aout] Unrecognized comments in generated asm
1425
1426    x86-64 specific
1427
1428     * [217]14697 libstdc++ couldn't find 32bit libgcc_s
1429
1430    MIPS-specific
1431
1432     * [218]15869 [mips64] No NOP after LW (with -mips1 -O0)
1433     * [219]16325 [mips64] value profiling clobbers gp on mips
1434     * [220]16357  [mipsisa64-elf]  ICE  copying  7  bytes between extern
1435       char[]s
1436     * [221]16380  [mips64]  Use  of  uninitialised  register  after dbra
1437       conversion
1438     * [222]16407 [mips64] Unaligned access to local variables
1439     * [223]16643    [mips64]    verify_local_live_at_start   ICE   after
1440       crossjumping & cfgcleanup
1441
1442    ARM-specific
1443
1444     * [224]15927  THUMB -O2: strength-reduced iteration variable ends up
1445       off by 1
1446     * [225]15948 THUMB: ICE with non-commutative cbranch
1447     * [226]17019   THUMB:   bad   switch   statement   in  md  code  for
1448       addsi3_cbranch_scratch
1449
1450    IA64-specific
1451
1452     * [227]16130  ICE  on valid code: in bundling, in config/ia64/ia64.c
1453       (-mtune=merced)
1454     * [228]16142  ICE  on valid code: in bundling, in config/ia64/ia64.c
1455       (-mtune=itanium)
1456     * [229]16278 Gcc failed to build Linux kernel with -mtune=merced
1457     * [230]16414  ICE on valid code: typo in comparison of asm_noperands
1458       result
1459     * [231]16445 ICE on valid code: don't count ignored insns
1460     * [232]16490 ICE (segfault) while compiling with -fprofile-use
1461     * [233]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
1462
1463    PowerPC-specific
1464
1465     * [234]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
1466     * [235]16239  ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions
1467       issue)
1468
1469    Sparc-specific
1470
1471     * [236]16199 ICE while compiling apache 2.0.49
1472     * [237]16416 -m64 doesn't imply -mcpu=v9 anymore
1473     * [238]16430  ICE  when  returning  non-C  aggregates larger than 16
1474       bytes
1475
1476    Bugs specific to embedded processors
1477
1478     * [239]16379 [m32r] can't output large model function call of memcpy
1479     * [240]17093 [m32r] ICE with -msdata=use -O0
1480     * [241]17119 [m32r] ICE at switch case 0x8000
1481
1482    DJGPP-specific
1483
1484     * [242]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
1485
1486    Alpha Tru64-specific
1487
1488     * [243]16210 libstdc++ gratuitously omits "long long" I/O
1489
1490    Testsuite, documentation issues (compiler is not affected):
1491
1492     * [244]15488  (libstdc++) possibly insufficient file permissions for
1493       executing test suite
1494     * [245]16250 ada/doctools runs makeinfo even in release tarball
1495     _________________________________________________________________
1496
1497   Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There
1498   are also [247]other ways to contact the FSF.
1499
1500   These pages are maintained by [248]the GCC team.
1501
1502
1503    For  questions  related  to the use of GCC, please consult these web
1504    pages    and    the   [249]GCC   manuals.   If   that   fails,   the
1505    [250]gcc-help@gcc.gnu.org mailing list might help.
1506    Please  send  comments on these web pages and the development of GCC
1507    to    our    developer   mailing   list   at   [251]gcc@gnu.org   or
1508    [252]gcc@gcc.gnu.org. All of our lists have [253]public archives.
1509
1510   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
1511   330, Boston, MA 02111, USA.
1512
1513   Verbatim  copying and distribution of this entire article is permitted
1514   in any medium, provided this notice is preserved.
1515
1516   Last modified 2004-09-05 [254]Valid XHTML 1.0
1517
1518References
1519
1520   1. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
1521   2. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
1522   3. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
1523   4. http://gcc.gnu.org/gcc-3.4/mips-abi.html
1524   5. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
1525   6. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
1526   7. http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other%20Builtins
1527   8. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
1528   9. http://gcc.gnu.org/bugs.html#cxx_rvalbind
1529  10. http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html
1530  11. http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html
1531  12. http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html
1532  13. http://www.gnu.org/software/classpath/
1533  14. http://www.eclipse.org/
1534  15. http://gcc.gnu.org/onlinedocs/g77/News.html
1535  16. http://gcc.gnu.org/onlinedocs/gcc/Alpha-Built-in-Functions.html#Alpha%20Built-in%20Functions
1536  17. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure
1537  18. http://gcc.gnu.org/onlinedocs/gccint/Processor-pipeline-description.html
1538  19. http://gcc.gnu.org/onlinedocs/gccint/Comparison-of-the-two-descriptions.html
1539  20. http://gcc.gnu.org/onlinedocs/gccint/Processor-pipeline-description.html
1540  21. http://gcc.gnu.org/gcc-3.4/mips-abi.html
1541  22. http://www.opendarwin.org/projects/dlcompat/
1542  23. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
1543  24. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
1544  25. http://gcc.gnu.org/PR10129
1545  26. http://gcc.gnu.org/PR14576
1546  27. http://gcc.gnu.org/PR14760
1547  28. http://gcc.gnu.org/PR14671
1548  29. http://gcc.gnu.org/PR15093
1549  30. http://gcc.gnu.org/PR15178
1550  31. http://gcc.gnu.org/PR12753
1551  32. http://gcc.gnu.org/PR13985
1552  33. http://gcc.gnu.org/PR14810
1553  34. http://gcc.gnu.org/PR14883
1554  35. http://gcc.gnu.org/PR15044
1555  36. http://gcc.gnu.org/PR15057
1556  37. http://gcc.gnu.org/PR15064
1557  38. http://gcc.gnu.org/PR15142
1558  39. http://gcc.gnu.org/PR15159
1559  40. http://gcc.gnu.org/PR15165
1560  41. http://gcc.gnu.org/PR15193
1561  42. http://gcc.gnu.org/PR15209
1562  43. http://gcc.gnu.org/PR15227
1563  44. http://gcc.gnu.org/PR15285
1564  45. http://gcc.gnu.org/PR15299
1565  46. http://gcc.gnu.org/PR15329
1566  47. http://gcc.gnu.org/PR15550
1567  48. http://gcc.gnu.org/PR15554
1568  49. http://gcc.gnu.org/PR15640
1569  50. http://gcc.gnu.org/PR15666
1570  51. http://gcc.gnu.org/PR15696
1571  52. http://gcc.gnu.org/PR15701
1572  53. http://gcc.gnu.org/PR15761
1573  54. http://gcc.gnu.org/PR15829
1574  55. http://gcc.gnu.org/PR14538
1575  56. http://gcc.gnu.org/PR12391
1576  57. http://gcc.gnu.org/PR14649
1577  58. http://gcc.gnu.org/PR15004
1578  59. http://gcc.gnu.org/PR15749
1579  60. http://gcc.gnu.org/PR10646
1580  61. http://gcc.gnu.org/PR12077
1581  62. http://gcc.gnu.org/PR13598
1582  63. http://gcc.gnu.org/PR14211
1583  64. http://gcc.gnu.org/PR14220
1584  65. http://gcc.gnu.org/PR14245
1585  66. http://gcc.gnu.org/PR14340
1586  67. http://gcc.gnu.org/PR14600
1587  68. http://gcc.gnu.org/PR14668
1588  69. http://gcc.gnu.org/PR14775
1589  70. http://gcc.gnu.org/PR14821
1590  71. http://gcc.gnu.org/PR14930
1591  72. http://gcc.gnu.org/PR14932
1592  73. http://gcc.gnu.org/PR14950
1593  74. http://gcc.gnu.org/PR14962
1594  75. http://gcc.gnu.org/PR14975
1595  76. http://gcc.gnu.org/PR15002
1596  77. http://gcc.gnu.org/PR15025
1597  78. http://gcc.gnu.org/PR15046
1598  79. http://gcc.gnu.org/PR15069
1599  80. http://gcc.gnu.org/PR15074
1600  81. http://gcc.gnu.org/PR15083
1601  82. http://gcc.gnu.org/PR15096
1602  83. http://gcc.gnu.org/PR15287
1603  84. http://gcc.gnu.org/PR15317
1604  85. http://gcc.gnu.org/PR15337
1605  86. http://gcc.gnu.org/PR15361
1606  87. http://gcc.gnu.org/PR15412
1607  88. http://gcc.gnu.org/PR15427
1608  89. http://gcc.gnu.org/PR15471
1609  90. http://gcc.gnu.org/PR15503
1610  91. http://gcc.gnu.org/PR15507
1611  92. http://gcc.gnu.org/PR15542
1612  93. http://gcc.gnu.org/PR15565
1613  94. http://gcc.gnu.org/PR15625
1614  95. http://gcc.gnu.org/PR15629
1615  96. http://gcc.gnu.org/PR15742
1616  97. http://gcc.gnu.org/PR15775
1617  98. http://gcc.gnu.org/PR15821
1618  99. http://gcc.gnu.org/PR15862
1619 100. http://gcc.gnu.org/PR15875
1620 101. http://gcc.gnu.org/PR15877
1621 102. http://gcc.gnu.org/PR15947
1622 103. http://gcc.gnu.org/PR16020
1623 104. http://gcc.gnu.org/PR16154
1624 105. http://gcc.gnu.org/PR16174
1625 106. http://gcc.gnu.org/PR14315
1626 107. http://gcc.gnu.org/PR15151
1627 108. http://gcc.gnu.org/PR7993
1628 109. http://gcc.gnu.org/PR15228
1629 110. http://gcc.gnu.org/PR15345
1630 111. http://gcc.gnu.org/PR15945
1631 112. http://gcc.gnu.org/PR15526
1632 113. http://gcc.gnu.org/PR14690
1633 114. http://gcc.gnu.org/PR15112
1634 115. http://gcc.gnu.org/PR15067
1635 116. http://gcc.gnu.org/PR1963
1636 117. http://gcc.gnu.org/PR15717
1637 118. http://gcc.gnu.org/PR14782
1638 119. http://gcc.gnu.org/PR14828
1639 120. http://gcc.gnu.org/PR15202
1640 121. http://gcc.gnu.org/PR14610
1641 122. http://gcc.gnu.org/PR14813
1642 123. http://gcc.gnu.org/PR14857
1643 124. http://gcc.gnu.org/PR15598
1644 125. http://gcc.gnu.org/PR15653
1645 126. http://gcc.gnu.org/PR15189
1646 127. http://gcc.gnu.org/PR15331
1647 128. http://gcc.gnu.org/PR16144
1648 129. http://gcc.gnu.org/PR16176
1649 130. http://gcc.gnu.org/PR11591
1650 131. http://gcc.gnu.org/PR12028
1651 132. http://gcc.gnu.org/PR14478
1652 133. http://gcc.gnu.org/PR14567
1653 134. http://gcc.gnu.org/PR14715
1654 135. http://gcc.gnu.org/PR14902
1655 136. http://gcc.gnu.org/PR14924
1656 137. http://gcc.gnu.org/PR14960
1657 138. http://gcc.gnu.org/PR15106
1658 139. http://gcc.gnu.org/PR16026
1659 140. http://gcc.gnu.org/PR15191
1660 141. http://gcc.gnu.org/PR15662
1661 142. http://gcc.gnu.org/PR15054
1662 143. http://gcc.gnu.org/PR15783
1663 144. http://gcc.gnu.org/PR15626
1664 145. http://gcc.gnu.org/PR14326
1665 146. http://gcc.gnu.org/PR14723
1666 147. http://gcc.gnu.org/PR15290
1667 148. http://gcc.gnu.org/PR15250
1668 149. http://gcc.gnu.org/PR15551
1669 150. http://gcc.gnu.org/PR8309
1670 151. http://gcc.gnu.org/PR13250
1671 152. http://gcc.gnu.org/PR13803
1672 153. http://gcc.gnu.org/PR14093
1673 154. http://gcc.gnu.org/PR14457
1674 155. http://gcc.gnu.org/PR14542
1675 156. http://gcc.gnu.org/PR15100
1676 157. http://gcc.gnu.org/PR15296
1677 158. http://gcc.gnu.org/PR15396
1678 159. http://gcc.gnu.org/PR15782
1679 160. http://gcc.gnu.org/PR11610
1680 161. http://gcc.gnu.org/PR15488
1681 162. http://gcc.gnu.org/PR15489
1682 163. http://gcc.gnu.org/PR13928
1683 164. http://gcc.gnu.org/PR14150
1684 165. http://gcc.gnu.org/PR14949
1685 166. http://gcc.gnu.org/PR15123
1686 167. http://gcc.gnu.org/PR16469
1687 168. http://gcc.gnu.org/PR16344
1688 169. http://gcc.gnu.org/PR16842
1689 170. http://gcc.gnu.org/PR12608
1690 171. http://gcc.gnu.org/PR14492
1691 172. http://gcc.gnu.org/PR15461
1692 173. http://gcc.gnu.org/PR15890
1693 174. http://gcc.gnu.org/PR16180
1694 175. http://gcc.gnu.org/PR16224
1695 176. http://gcc.gnu.org/PR16408
1696 177. http://gcc.gnu.org/PR16529
1697 178. http://gcc.gnu.org/PR16698
1698 179. http://gcc.gnu.org/PR16706
1699 180. http://gcc.gnu.org/PR16810
1700 181. http://gcc.gnu.org/PR16851
1701 182. http://gcc.gnu.org/PR16870
1702 183. http://gcc.gnu.org/PR16904
1703 184. http://gcc.gnu.org/PR16905
1704 185. http://gcc.gnu.org/PR16964
1705 186. http://gcc.gnu.org/PR17068
1706 187. http://gcc.gnu.org/PR16366
1707 188. http://gcc.gnu.org/PR15345
1708 189. http://gcc.gnu.org/PR16590
1709 190. http://gcc.gnu.org/PR16693
1710 191. http://gcc.gnu.org/PR17078
1711 192. http://gcc.gnu.org/PR13956
1712 193. http://gcc.gnu.org/PR16684
1713 194. http://gcc.gnu.org/PR12658
1714 195. http://gcc.gnu.org/PR13092
1715 196. http://gcc.gnu.org/PR15320
1716 197. http://gcc.gnu.org/PR16246
1717 198. http://gcc.gnu.org/PR16273
1718 199. http://gcc.gnu.org/PR16401
1719 200. http://gcc.gnu.org/PR16411
1720 201. http://gcc.gnu.org/PR16489
1721 202. http://gcc.gnu.org/PR16618
1722 203. http://gcc.gnu.org/PR16637
1723 204. http://gcc.gnu.org/PR16717
1724 205. http://gcc.gnu.org/PR16813
1725 206. http://gcc.gnu.org/PR16853
1726 207. http://gcc.gnu.org/PR16889
1727 208. http://gcc.gnu.org/PR16959
1728 209. http://gcc.gnu.org/PR7587
1729 210. http://gcc.gnu.org/PR16473
1730 211. http://gcc.gnu.org/PR16478
1731 212. http://gcc.gnu.org/PR10695
1732 213. http://gcc.gnu.org/PR16974
1733 214. http://gcc.gnu.org/PR16298
1734 215. http://gcc.gnu.org/PR17113
1735 216. http://gcc.gnu.org/PR17171
1736 217. http://gcc.gnu.org/PR14697
1737 218. http://gcc.gnu.org/PR15869
1738 219. http://gcc.gnu.org/PR16325
1739 220. http://gcc.gnu.org/PR16357
1740 221. http://gcc.gnu.org/PR16380
1741 222. http://gcc.gnu.org/PR16407
1742 223. http://gcc.gnu.org/PR16643
1743 224. http://gcc.gnu.org/PR15927
1744 225. http://gcc.gnu.org/PR15948
1745 226. http://gcc.gnu.org/PR17019
1746 227. http://gcc.gnu.org/PR16130
1747 228. http://gcc.gnu.org/PR16142
1748 229. http://gcc.gnu.org/PR16278
1749 230. http://gcc.gnu.org/PR16414
1750 231. http://gcc.gnu.org/PR16445
1751 232. http://gcc.gnu.org/PR16490
1752 233. http://gcc.gnu.org/PR16683
1753 234. http://gcc.gnu.org/PR16195
1754 235. http://gcc.gnu.org/PR16239
1755 236. http://gcc.gnu.org/PR16199
1756 237. http://gcc.gnu.org/PR16416
1757 238. http://gcc.gnu.org/PR16430
1758 239. http://gcc.gnu.org/PR16379
1759 240. http://gcc.gnu.org/PR17093
1760 241. http://gcc.gnu.org/PR17119
1761 242. http://gcc.gnu.org/PR15928
1762 243. http://gcc.gnu.org/PR16210
1763 244. http://gcc.gnu.org/PR15488
1764 245. http://gcc.gnu.org/PR16250
1765 246. mailto:gnu@gnu.org
1766 247. http://www.gnu.org/home.html#ContactInfo
1767 248. http://gcc.gnu.org/about.html
1768 249. http://gcc.gnu.org/onlinedocs/
1769 250. mailto:gcc-help@gcc.gnu.org
1770 251. mailto:gcc@gnu.org
1771 252. mailto:gcc@gcc.gnu.org
1772 253. http://gcc.gnu.org/lists.html
1773 254. http://validator.w3.org/check/referer
1774======================================================================
1775http://gcc.gnu.org/gcc-3.3/index.html
1776
1777                           GCC 3.3 Release Series
1778
1779   June 28, 2004
1780
1781   The  [1]GNU project and the GCC developers are pleased to announce the
1782   release  of  GCC 3.3.4. This release was actually completed on May 31,
1783   but various reasons delayed the actual announcement.
1784
1785   The   GCC  3.3  release  series  includes  numerous  [2]new  features,
1786   improvements,  bug  fixes,  and other changes, thanks to an [3]amazing
1787   group of volunteers.
1788
1789Release History
1790
1791   GCC 3.3.3
1792          February 14, 2004 ([4]changes)
1793
1794   GCC 3.3.2
1795          October 16, 2003 ([5]changes)
1796
1797   GCC 3.3.1
1798          August 8, 2003 ([6]changes)
1799
1800   GCC 3.3
1801          May 14, 2003 ([7]changes)
1802
1803References and Acknowledgements
1804
1805   GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
1806   supports  several  other languages aside from C, it now stands for the
1807   GNU Compiler Collection.
1808
1809   A  list  of [8]successful builds is updated as new information becomes
1810   available.
1811
1812   The  GCC  developers would like to thank the numerous people that have
1813   contributed  new  features, improvements, bug fixes, and other changes
1814   as well as test results to GCC. This [9]amazing group of volunteers is
1815   what makes GCC successful.
1816
1817   For  additional  information  about  GCC  please  refer to the [10]GCC
1818   project web site or contact the [11]GCC development mailing list.
1819
1820   To  obtain  GCC  please  use  [12]our mirror sites, one of the [13]GNU
1821   mirror sites, or [14]our CVS server.
1822     _________________________________________________________________
1823
1824   Please  send FSF & GNU inquiries & questions to [15]gnu@gnu.org. There
1825   are also [16]other ways to contact the FSF.
1826
1827   These pages are maintained by [17]the GCC team.
1828
1829
1830    For  questions  related  to the use of GCC, please consult these web
1831    pages    and    the    [18]GCC   manuals.   If   that   fails,   the
1832    [19]gcc-help@gcc.gnu.org mailing list might help.
1833    Please  send  comments on these web pages and the development of GCC
1834    to    our    developer    mailing   list   at   [20]gcc@gnu.org   or
1835    [21]gcc@gcc.gnu.org. All of our lists have [22]public archives.
1836
1837   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
1838   330, Boston, MA 02111, USA.
1839
1840   Verbatim  copying and distribution of this entire article is permitted
1841   in any medium, provided this notice is preserved.
1842
1843   Last modified 2004-08-06 [23]Valid XHTML 1.0
1844
1845References
1846
1847   1. http://www.gnu.org/
1848   2. http://gcc.gnu.org/gcc-3.3/changes.html
1849   3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
1850   4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
1851   5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
1852   6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
1853   7. http://gcc.gnu.org/gcc-3.3/changes.html
1854   8. http://gcc.gnu.org/gcc-3.3/buildstat.html
1855   9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
1856  10. http://gcc.gnu.org/index.html
1857  11. mailto:gcc@gcc.gnu.org
1858  12. http://gcc.gnu.org/mirrors.html
1859  13. http://www.gnu.org/order/ftp.html
1860  14. http://gcc.gnu.org/cvs.html
1861  15. mailto:gnu@gnu.org
1862  16. http://www.gnu.org/home.html#ContactInfo
1863  17. http://gcc.gnu.org/about.html
1864  18. http://gcc.gnu.org/onlinedocs/
1865  19. mailto:gcc-help@gcc.gnu.org
1866  20. mailto:gcc@gnu.org
1867  21. mailto:gcc@gcc.gnu.org
1868  22. http://gcc.gnu.org/lists.html
1869  23. http://validator.w3.org/check/referer
1870======================================================================
1871http://gcc.gnu.org/gcc-3.3/changes.html
1872
1873                           GCC 3.3 Release Series
1874                      Changes, New Features, and Fixes
1875
1876   The latest release in the 3.3 release series is [1]GCC 3.3.3.
1877
1878Caveats
1879
1880     * The  preprocessor  no  longer  accepts multi-line string literals.
1881       They were deprecated in 3.0, 3.1, and 3.2.
1882     * The  preprocessor no longer supports the -A- switch when appearing
1883       alone. -A- followed by an assertion is still supported.
1884     * Support  for  all  the  systems  [2]obsoleted  in GCC 3.1 has been
1885       removed from GCC 3.3. See below for a [3]list of systems which are
1886       obsoleted in this release.
1887     * Checking  for  null  format  arguments has been decoupled from the
1888       rest  of  the  format  checking  mechanism. Programs which use the
1889       format  attribute  may  regain this functionality by using the new
1890       [4]nonnull  function  attribute. Note that all functions for which
1891       GCC  has  a  built-in  format  attribute,  an appropriate built-in
1892       nonnull attribute is also applied.
1893     * The  DWARF  (version  1)  debugging format has been deprecated and
1894       will be removed in a future version of GCC. Version 2 of the DWARF
1895       debugging format will continue to be supported for the foreseeable
1896       future.
1897     * The  C  and  Objective-C  compilers  no  longer accept the "Naming
1898       Types"  extension  (typedef foo = bar); it was already unavailable
1899       in  C++.  Code  which  uses  it will need to be changed to use the
1900       "typeof"  extension  instead:  typedef  typeof(bar)  foo. (We have
1901       removed  this extension without a period of deprecation because it
1902       has  caused  the  compiler  to  crash since version 3.0 and no one
1903       noticed  until  very  recently.  Thus  we  conclude  it  is not in
1904       widespread use.)
1905     * The  -traditional  C  compiler  option  has  been  removed. It was
1906       deprecated  in  3.1  and  3.2.  (Traditional preprocessing remains
1907       available.)  The  <varargs.h>  header,  used  for writing variadic
1908       functions in traditional C, still exists but will produce an error
1909       message if used.
1910     * GCC  3.3.1  automatically places zero-initialized variables in the
1911       .bss  section  on some operating systems. Versions of GNU Emacs up
1912       to  (and  including)  21.3 will not work correctly when using this
1913       optimization;  you can use -fno-zero-initialized-in-bss to disable
1914       it.
1915
1916General Optimizer Improvements
1917
1918     * A  new  scheme  for accurately describing processor pipelines, the
1919       [5]DFA scheduler, has been added.
1920     * Pavel Nejedly, Charles University Prague, has contributed new file
1921       format used by the edge coverage profiler (-fprofile-arcs).
1922       The  new  format  is  robust  and  diagnoses common mistakes where
1923       profiles  from different versions (or compilations) of the program
1924       are  combined  resulting  in nonsensical profiles and slow code to
1925       produced  with  profile  feedback. Additionally this format allows
1926       extra  data  to  be  gathered.  Currently,  overall statistics are
1927       produced  helping  optimizers  to  identify hot spots of a program
1928       globally  replacing  the old intra-procedural scheme and resulting
1929       in  better  code.  Note that the gcov tool from older GCC versions
1930       will  not  be  able to parse the profiles generated by GCC 3.3 and
1931       vice versa.
1932     * Jan Hubicka, SuSE Labs, has contributed a new superblock formation
1933       pass enabled using -ftracer. This pass simplifies the control flow
1934       of functions allowing other optimizations to do better job.
1935       He    also    contributed    the    function    reordering    pass
1936       (-freorder-functions) to optimize function placement using profile
1937       feedback.
1938
1939New Languages and Language specific improvements
1940
1941  C/ObjC/C++
1942
1943     * The preprocessor now accepts directives within macro arguments. It
1944       processes  them  just  as  if  they  had  not  been  within  macro
1945       arguments.
1946     * The   separate   ISO   and  traditional  preprocessors  have  been
1947       completely   removed.   The  front  end  handles  either  type  of
1948       preprocessed output if necessary.
1949     * In  C99  mode  preprocessor arithmetic is done in the precision of
1950       the target's intmax_t, as required by that standard.
1951     * The preprocessor can now copy comments inside macros to the output
1952       file  when  the macro is expanded. This feature, enabled using the
1953       -CC  option,  is  intended  for  use  by  applications which place
1954       metadata or directives inside comments, such as lint.
1955     * The  method of constructing the list of directories to be searched
1956       for  header  files  has been revised. If a directory named by a -I
1957       option  is  a  standard  system  include  directory, the option is
1958       ignored  to  ensure  that  the  default  search  order  for system
1959       directories  and  the special treatment of system header files are
1960       not defeated.
1961     * A few more [6]ISO C99 features now work correctly.
1962     * A  new  function  attribute,  nonnull, has been added which allows
1963       pointer  arguments  to  functions  to  be specified as requiring a
1964       non-null  value.  The  compiler currently uses this information to
1965       issue  a  warning  when  it detects a null value passed in such an
1966       argument slot.
1967     * A  new  type  attribute,  may_alias,  has  been added. Accesses to
1968       objects  with  types  with  this  attribute  are  not subjected to
1969       type-based  alias  analysis, but are instead assumed to be able to
1970       alias any other type of objects, just like the char type.
1971
1972  C++
1973
1974     * Type  based  alias analysis has been implemented for C++ aggregate
1975       types.
1976
1977  Objective-C
1978
1979     * Generate  an  error  if Objective-C objects are passed by value in
1980       function and method calls.
1981     * When  -Wselector is used, check the whole list of selectors at the
1982       end  of  compilation,  and  emit a warning if a @selector() is not
1983       known.
1984     * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime.
1985     * No  longer need to include objc/objc-class.h to compile self calls
1986       in class methods (NeXT runtime only).
1987     * New -Wundeclared-selector option.
1988     * Removed selector bloating which was causing object files to be 10%
1989       bigger on average (GNU runtime only).
1990     * Using  at  run  time @protocol() objects has been fixed in certain
1991       situations (GNU runtime only).
1992     * Type  checking  has  been  fixed  and  improved in many situations
1993       involving protocols.
1994
1995  Java
1996
1997     * The  java.sql  and  javax.sql  packages now implement the JDBC 3.0
1998       (JDK 1.4) API.
1999     * The JDK 1.4 assert facility has been implemented.
2000     * The bytecode interpreter is now direct threaded and thus faster.
2001
2002  Fortran
2003
2004     * Fortran improvements are listed in [7]the Fortran documentation.
2005
2006  Ada
2007
2008     * Ada tasking now works with glibc 2.3.x threading libraries.
2009
2010New Targets and Target Specific Improvements
2011
2012     * The following changes have been made to the HP-PA port:
2013          + The  port now defaults to scheduling for the PA8000 series of
2014            processors.
2015          + Scheduling support for the PA7300 processor has been added.
2016          + The 32-bit port now supports weak symbols under HP-UX 11.
2017          + The handling of initializers and finalizers has been improved
2018            under HP-UX 11. The 64-bit port no longer uses collect2.
2019          + Dwarf2 EH support has been added to the 32-bit linux port.
2020          + ABI  fixes  to  correct  the  passing  of small structures by
2021            value.
2022     * The  SPARC,  HP-PA, SH4, and x86/pentium ports have been converted
2023       to use the DFA processor pipeline description.
2024     * The  following  NetBSD  configurations  for  the  SuperH processor
2025       family have been added:
2026          + SH3, big-endian, sh-*-netbsdelf*
2027          + SH3, little-endian, shle-*-netbsdelf*
2028          + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd*
2029          + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd*
2030          + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd*
2031          + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd*
2032     * The following changes have been made to the IA-32/x86-64 port:
2033          + SSE2 and 3dNOW! intrinsics are now supported.
2034          + Support  for thread local storage has been added to the IA-32
2035            and x86-64 ports.
2036          + The x86-64 port has been significantly improved.
2037     * The following changes have been made to the MIPS port:
2038          + All configurations now accept the -mabi switch. Note that you
2039            will  need  appropriate  multilibs  for  this  option to work
2040            properly.
2041          + ELF  configurations  will  always  pass  an  ABI  flag to the
2042            assembler, except when the MIPS EABI is selected.
2043          + -mabi=64 no longer selects MIPS IV code.
2044          + The  -mcpu  option,  which was deprecated in 3.1 and 3.2, has
2045            been removed from this release.
2046          + -march  now changes the core ISA level. In previous releases,
2047            it would change the use of processor-specific extensions, but
2048            would  leave  the core ISA unchanged. For example, mips64-elf
2049            -march=r8000 will now generate MIPS IV code.
2050          + Under  most  configurations, -mipsN now acts as a synonym for
2051            -march.
2052          + There are some new preprocessor macros to describe the -march
2053            and  -mtune  settings. See the documentation of those options
2054            for details.
2055          + Support for the NEC VR-Series processors has been added. This
2056            includes the 54xx, 5500, and 41xx series.
2057          + Support for the Sandcraft sr71k processor has been added.
2058     * The following changes have been made to the S/390 port:
2059          + Support  to  build the Java runtime libraries has been added.
2060            Java   is   now  enabled  by  default  on  s390-*-linux*  and
2061            s390x-*-linux* targets.
2062          + Multilib  support  for  the  s390x-*-linux*  target  has been
2063            added;  this  allows  to build 31-bit binaries using the -m31
2064            option.
2065          + Support for thread local storage has been added.
2066          + Inline  assembler  code  may  now  use  the 'Q' constraint to
2067            specify memory operands without index register.
2068          + Various  platform-specific performance improvements have been
2069            implemented;  in particular, the compiler now uses the BRANCH
2070            ON  COUNT  family of instructions and makes more frequent use
2071            of the TEST UNDER MASK family of instructions.
2072     * The following changes have been made to the PowerPC port:
2073          + Support for IBM Power4 processor added.
2074          + Support for Motorola e500 SPE added.
2075          + Support for AIX 5.2 added.
2076          + Function and Data sections now supported on AIX.
2077          + Sibcall optimizations added.
2078     * The support for H8 Tiny is added to the H8/300 port with -mn.
2079
2080Obsolete Systems
2081
2082   Support  for  a  number of older systems has been declared obsolete in
2083   GCC  3.3. Unless there is activity to revive them, the next release of
2084   GCC will have their sources permanently removed.
2085
2086   All  configurations of the following processor architectures have been
2087   declared obsolete:
2088     * Matsushita MN10200, mn10200-*-*
2089     * Motorola 88000, m88k-*-*
2090     * IBM ROMP, romp-*-*
2091
2092   Also, some individual systems have been obsoleted:
2093     * Alpha
2094          + Interix, alpha*-*-interix*
2095          + Linux libc1, alpha*-*-linux*libc1*
2096          + Linux ECOFF, alpha*-*-linux*ecoff*
2097     * ARM
2098          + Generic a.out, arm*-*-aout*
2099          + Conix, arm*-*-conix*
2100          + "Old ABI," arm*-*-oabi
2101          + StrongARM/COFF, strongarm-*-coff*
2102     * HPPA (PA-RISC)
2103          + Generic OSF, hppa1.0-*-osf*
2104          + Generic BSD, hppa1.0-*-bsd*
2105          + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]*
2106          + HiUX, hppa*-*-hiux*
2107          + Mach Lites, hppa*-*-lites*
2108     * Intel 386 family
2109          + Windows NT 3.x, i?86-*-win32
2110     * MC68000 family
2111          + HP systems, m68000-hp-bsd* and m68k-hp-bsd*
2112          + Sun    systems,   m68000-sun-sunos*,   m68k-sun-sunos*,   and
2113            m68k-sun-mach*
2114          + AT&T systems, m68000-att-sysv*
2115          + Atari systems, m68k-atari-sysv*
2116          + Motorola systems, m68k-motorola-sysv*
2117          + NCR systems, m68k-ncr-sysv*
2118          + Plexus systems, m68k-plexus-sysv*
2119          + Commodore systems, m68k-cbm-sysv*
2120          + Citicorp TTI, m68k-tti-*
2121          + Unos, m68k-crds-unos*
2122          + Concurrent RTU, m68k-ccur-rtu*
2123          + Linux a.out, m68k-*-linux*aout*
2124          + Linux libc1, m68k-*-linux*libc1*
2125          + pSOS, m68k-*-psos*
2126     * MIPS
2127          + Generic ECOFF, mips*-*-ecoff*
2128          + SINIX, mips-sni-sysv4
2129          + Orion RTEMS, mips64orion-*-rtems*
2130     * National Semiconductor 32000
2131          + OpenBSD, ns32k-*-openbsd*
2132     * POWER (aka RS/6000) and PowerPC
2133          + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]*
2134          + Bull BOSX, rs6000-bull-bosx
2135          + Generic Mach, rs6000-*-mach*
2136          + Generic SysV, powerpc*-*-sysv*
2137          + Linux libc1, powerpc*-*-linux*libc1*
2138     * Sun SPARC
2139          + Generic      a.out,      sparc-*-aout*,     sparclet-*-aout*,
2140            sparclite-*-aout*, and sparc86x-*-aout*
2141          + NetBSD a.out, sparc-*-netbsd*aout*
2142          + Generic BSD, sparc-*-bsd*
2143          + ChorusOS, sparc-*-chorusos*
2144          + Linux a.out, sparc-*-linux*aout*
2145          + Linux libc1, sparc-*-linux*libc1*
2146          + LynxOS, sparc-*-lynxos*
2147          + Solaris on HAL hardware, sparc-hal-solaris2*
2148          + SunOS versions 3 and 4, sparc-*-sunos[34]*
2149     * NEC V850
2150          + RTEMS, v850-*-rtems*
2151     * VAX
2152          + VMS, vax-*-vms*
2153
2154Documentation improvements
2155
2156Other significant improvements
2157
2158     * Almost  all  front-end  dependencies  in  the  compiler  have been
2159       separated  out  into  a  set  of  language hooks. This should make
2160       adding a new front end clearer and easier.
2161     * One  effect  of  removing  the  separate  preprocessor  is a small
2162       increase  in  the  robustness  of the compiler in general, and the
2163       maintainability of target descriptions. Previously target-specific
2164       built-in  macros  and  others,  such  as  __FAST_MATH__, had to be
2165       handled  with  so-called  specs  that were hard to maintain. Often
2166       they  would  fail to behave properly when conflicting options were
2167       supplied  on  the  command  line,  and define macros in the user's
2168       namespace   even   when   strict  ISO  compliance  was  requested.
2169       Integrating the preprocessor has cleanly solved these issues.
2170     * The  Makefile  suite  now  supports redirection of make install by
2171       means of the variable DESTDIR.
2172     _________________________________________________________________
2173
2174GCC 3.3
2175
2176   Detailed release notes for the GCC 3.3 release follow.
2177
2178  Bug Fixes
2179
2180    bootstrap failures
2181
2182     * [8]10140  cross  compiler  build failures: missing __mempcpy (DUP:
2183       [9]10198,[10]10338)
2184
2185    Internal compiler errors (multi-platform)
2186
2187     * [11]3581 large string causes segmentation fault in cc1
2188     * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
2189     * [13]5533  (c++)  ICE  when  processing std::accumulate(begin, end,
2190       init, invalid_op)
2191     * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
2192     * [15]6412 (c++) ICE in retrieve_specialization
2193     * [16]6620  (c++)  partial  template  specialization  causes  an ICE
2194       (segmentation fault)
2195     * [17]6663 (c++) ICE with attribute aligned
2196     * [18]7068 ICE with incomplete types
2197     * [19]7083 (c++) ICE using -gstabs with dodgy class derivation
2198     * [20]7647  (c++) ICE when data member has the name of the enclosing
2199       class
2200     * [21]7675 ICE in fixup_var_refs_1
2201     * [22]7718 'complex' template instantiation causes ICE
2202     * [23]8116 (c++) ICE in member template function
2203     * [24]8358 (ada) Ada compiler accesses freed memory, crashes
2204     * [25]8511  (c++) ICE: (hopefully) reproducible cc1plus segmentation
2205       fault
2206     * [26]8564 (c++) ICE in find_function_data, in function.c
2207     * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
2208     * [28]8766  (c++) ICE after failed initialization of static template
2209       variable
2210     * [29]8803 ICE in instantiate_virtual_regs_1, in function.c
2211     * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
2212     * [31]8906  (c++) ICE (Segmentation fault) when parsing nested-class
2213       definition
2214     * [32]9216 (c++) ICE on missing template parameter
2215     * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
2216     * [34]9263  (fortran)  ICE caused by invalid PARAMETER in implied DO
2217       loop
2218     * [35]9429  (c++) ICE in template instantiation with a pointered new
2219       operator
2220     * [36]9516 Internal error when using a big array
2221     * [37]9600 (c++) ICE with typedefs in template class
2222     * [38]9629 (c++) virtual inheritance segfault
2223     * [39]9672 (c++) ICE: Error reporting routines re-entered
2224     * [40]9749   (c++)  ICE  in  write_expression  on  invalid  function
2225       prototype
2226     * [41]9794  (fortran)  ICE: floating point exception during constant
2227       folding
2228     * [42]9829 (c++) Missing colon in nested namespace usage causes ICE
2229     * [43]9916 (c++) ICE with noreturn function in ?: statement
2230     * [44]9936 ICE with local function and variable-length 2d array
2231     * [45]10262 (c++) cc1plus crashes with large generated code
2232     * [46]10278 (c++) ICE in parser for invalid code
2233     * [47]10446  (c++)  ICE on definition of nonexistent member function
2234       of nested class in a class template
2235     * [48]10451   (c++)   ICE  in  grokdeclarator  on  spurious  mutable
2236       declaration
2237     * [49]10506    (c++)    ICE   in   build_new   at   cp/init.c   with
2238       -fkeep-inline-functions and multiple inheritance
2239     * [50]10549  (c++)  ICE  in store_bit_field on bitfields that exceed
2240       the precision of the declared type
2241
2242    Optimization bugs
2243
2244     * [51]2001 Inordinately long compile times in reload CSE regs
2245     * [52]2391 Exponential compilation time explosion in combine
2246     * [53]2960 Duplicate loop conditions even with -Os
2247     * [54]4046 redundant conditional branch
2248     * [55]6405 Loop-unrolling related performance regressions
2249     * [56]6798 very long compile time with large case-statement
2250     * [57]6871 const objects shouldn't be moved to .bss
2251     * [58]6909 problem w/ -Os on modified loop-2c.c test case
2252     * [59]7189  gcc  -O2  -Wall  does not print ``control reaches end of
2253       non-void function'' warning
2254     * [60]7642 optimization problem with signbit()
2255     * [61]8634 incorrect code for inlining of memcpy under -O2
2256     * [62]8750 Cygwin prolog generation erroneously emitting __alloca as
2257       regular function call
2258
2259    C front end
2260
2261     * [63]2161 long if-else cascade overflows parser stack
2262     * [64]4319 short accepted on typedef'd char
2263     * [65]8602  incorrect  line  numbers  in warning messages when using
2264       inline functions
2265     * [66]9177    -fdump-translation-unit:    C    front   end   deletes
2266       function_decl AST nodes and breaks debugging dumps
2267     * [67]9853 miscompilation of non-constant structure initializer
2268
2269    c++ compiler and library
2270
2271     * [68]45  legal  template  specialization  code  is  rejected  (DUP:
2272       [69]3784)
2273     * [70]764  lookup  failure:  friend  operator  and  dereferencing  a
2274       pointer and templates (DUP: [71]5116)
2275     * [72]2862  gcc  accepts invalid explicit instantiation syntax (DUP:
2276       2863)
2277     * [73]3663   G++   doesn't  check  access  control  during  template
2278       instantiation
2279     * [74]3797  gcc  fails to emit explicit specialization of a template
2280       member
2281     * [75]3948  Two  destructors  are  called when no copy destructor is
2282       defined (ABI change)
2283     * [76]4137 Conversion operator within template is not accepted
2284     * [77]4361 bogus ambiguity taking the address of a member template
2285     * [78]4802  g++  accepts  illegal  template  code (access to private
2286       member; DUP: [79]5837)
2287     * [80]4803  inline  function is used but never defined, and g++ does
2288       not object
2289     * [81]5094 Partial specialization cannot be friend?
2290     * [82]5730    complex<double>::norm()    --   huge   slowdown   from
2291       egcs-2.91.66
2292     * [83]6713  Regression  wrt 3.0.4: g++ -O2 leads to seg fault at run
2293       time
2294     * [84]7015 certain __asm__ constructs rejected
2295     * [85]7086   compile   time   regression   (quadratic   behavior  in
2296       fixup_var_refs)
2297     * [86]7099  G++  doesn't set the noreturn attribute on std::exit and
2298       std::abort
2299     * [87]7247  copy  constructor missing when inlining enabled (invalid
2300       optimization?)
2301     * [88]7441  string  array initialization compilation time regression
2302       from seconds to minutes
2303     * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
2304     * [90]7804  bad  printing  of  floating  point  constant  in warning
2305       message
2306     * [91]8099 Friend classes and template specializations
2307     * [92]8117 member function pointers and multiple inheritance
2308     * [93]8205 using declaration and multiple inheritance
2309     * [94]8645 unnecessary non-zero checks in stl_tree.h
2310     * [95]8724 explicit destructor call for incomplete class allowed
2311     * [96]8805 compile time regression with many member variables
2312     * [97]8691 -O3 and -fno-implicit-templates are incompatible
2313     * [98]8700 unhelpful error message for binding temp to reference
2314     * [99]8724 explicit destructor call for incomplete class allowed
2315     * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
2316     * [101]9016  Failure  to  consistently  constant fold "constant" C++
2317       objects
2318     * [102]9053  g++  confused  about  ambiguity  of overloaded function
2319       templates
2320     * [103]9152 undefined virtual thunks
2321     * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
2322     * [105]9297 data corruption due to codegen bug (when copying.)
2323     * [106]9318 i/ostream::operator>>/<<(streambuf*) broken
2324     * [107]9320    Incorrect    usage    of   traits_type::int_type   in
2325       stdio_filebuf
2326     * [108]9400  bogus -Wshadow warning: shadowed declaration of this in
2327       local classes
2328     * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
2329     * [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
2330     * [112]9474  GCC freezes in compiling a weird code mixing <iostream>
2331       and <iostream.h>
2332     * [113]9548    Incorrect    results    from   setf(ios::fixed)   and
2333       precision(-1) [114][DR 231]
2334     * [115]9555 ostream inserters fail to set badbit on exception
2335     * [116]9561 ostream inserters rethrow exception of wrong type
2336     * [117]9563 ostream::sentry returns true after a failed preparation
2337     * [118]9582 one-definition rule violation in std::allocator
2338     * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
2339     * [120]9683  bug in initialization chains for static const variables
2340       from template classes
2341     * [121]9791 -Woverloaded-virtual reports hiding of destructor
2342     * [122]9817 collate::compare doesn't handle nul characters
2343     * [123]9825 filebuf::sputbackc breaks sbumpc
2344     * [124]9826 operator>>(basic_istream, basic_string) fails to compile
2345       with custom traits
2346     * [125]9924  Multiple  using  statements  for  builtin functions not
2347       allowed
2348     * [126]9946 destructor is not called for temporary object
2349     * [127]9964 filebuf::close() sometimes fails to close file
2350     * [128]9988 filebuf::overflow writes EOF to file
2351     * [129]10033  optimization  breaks  polymorphic references w/ typeid
2352       operator
2353     * [130]10097 filebuf::underflow drops characters
2354     * [131]10132 filebuf destructor can throw exceptions
2355     * [132]10180 gcc fails to warn about non-inlined function
2356     * [133]10199   method   parametrized   by  template  does  not  work
2357       everywhere
2358     * [134]10300 use of array-new (nothrow) in segfaults on NULL return
2359     * [135]10427  Stack corruption with variable-length automatic arrays
2360       and virtual destructors
2361     * [136]10503 Compilation never stops in fixed_type_or_null
2362
2363    Objective-C
2364
2365     * [137]5956  selectors  aren't  matched  properly  when added to the
2366       selector table
2367
2368    Fortran compiler and library
2369
2370     * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't
2371       detect
2372     * [139]3924 g77 generates code that is rejected by GAS if COFF debug
2373       info requested
2374     * [140]5634 doc: explain that configure --prefix=~/... does not work
2375     * [141]6367 multiple repeat counts confuse namelist read into array
2376     * [142]6491   Logical   operations  error  on  logicals  when  using
2377       -fugly-logint
2378     * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C"
2379     * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os
2380       on irix6.5
2381     * [145]7236  OPEN(...,RECL=nnn,...)  without  ACCESS='DIRECT' should
2382       assume a direct access file
2383     * [146]7278   g77   "bug";   the  executable  misbehaves  (with  -O2
2384       -fno-automatic)
2385     * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows
2386     * [148]7388 Incorrect output with 0-based array of characters
2387     * [149]8587  Double  complex  zero ** double precision number -> NaN
2388       instead of zero
2389     * [150]9038   -ffixed-line-length-none   -x   f77-cpp-input   gives:
2390       Warning: unknown register name line-length-none
2391     * [151]10197 Direct access files not unformatted by default
2392
2393    Java compiler and library
2394
2395     * [152]6005 gcj fails to build rhug on alpha
2396     * [153]6389    System.getProperty("")   should   always   throw   an
2397       IllegalArgumentException
2398     * [154]6576 java.util.ResourceBundle.getResource ignores locale
2399     * [155]6652 new java.io.File("").getCanonicalFile() throws exception
2400     * [156]7060 getMethod() doesn't search super interface
2401     * [157]7073  bytecode  interpreter  gives wrong answer for interface
2402       getSuperclass()
2403     * [158]7180 possible bug in
2404       javax.naming.spi.NamingManager.getPlusPath()
2405     * [159]7416 java.security startup refs "GNU libgcj.security"
2406     * [160]7570  Runtime.exec  with  null  envp:  child  doesn't inherit
2407       parent env (DUP: [161]7578)
2408     * [162]7611 Internal error while compiling libjava with -O
2409     * [163]7709 NullPointerException in _Jv_ResolvePoolEntry
2410     * [164]7766  ZipInputStream.available  returns  0  immediately after
2411       construction
2412     * [165]7785   Calendar.getTimeInMillis/setTimeInMillis   should   be
2413       public
2414     * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
2415     * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens'
2416     * [168]8234  ZipInputStream  chokes  when InputStream.read() returns
2417       small chunks
2418     * [169]8415 reflection bug: exception info for Method
2419     * [170]8481 java.Random.nextInt(int) may return negative
2420     * [171]8593 Error reading GZIPped files with BufferedReader
2421     * [172]8759   java.beans.Introspector   has   no   flushCaches()  or
2422       flushFromCaches() methods
2423     * [173]8997 spin() calls Thread.sleep
2424     * [174]9253  on  win32,  java.io.File.listFiles("C:\\")  returns pwd
2425       instead of the root content of C:
2426     * [175]9254   java::lang::Object::wait(),  threads-win32.cc  returns
2427       wrong return codes
2428     * [176]9271 Severe bias in java.security.SecureRandom
2429
2430    Ada compiler and library
2431
2432     * [177]6767 make gnatlib-shared fails on -laddr2line
2433     * [178]9911   gnatmake  fails  to  link  when  GCC  configured  with
2434       --with-sjlj-exceptions=yes
2435     * [179]10020 Can't bootstrap gcc on AIX with Ada enabled
2436     * [180]10546 Ada tasking not working on Red Hat 9
2437
2438    preprocessor
2439
2440     * [181]7029 preprocessor should ignore #warning with -M
2441
2442    ARM-specific
2443
2444     * [182]2903 [arm] Optimization bug with long long arithmetic
2445     * [183]7873  arm-linux-gcc  fails  when  assigning  address to a bit
2446       field
2447
2448    FreeBSD-specific
2449
2450     * [184]7680  float  functions undefined in math.h/cmath with #define
2451       _XOPEN_SOURCE
2452
2453    HP-UX or HP-PA-specific
2454
2455     * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
2456     * [186]9986  [HP-UX]  Incorrect  transformation of fputs_unlocked to
2457       fputc_unlocked
2458     * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
2459
2460    m68hc11-specific
2461
2462     * [188]6744  Bad  assembler  code  generated:  reference  to  pseudo
2463       register z
2464     * [189]7361 Internal compiler error in reload_cse_simplify_operands,
2465       in reload1.c
2466
2467    MIPS-specific
2468
2469     * [190]9496 [mips-linux] bug in optimizer?
2470
2471    PowerPC-specific
2472
2473     * [191]7067  -Os  with -mcpu=powerpc optimizes for speed (?) instead
2474       of space
2475     * [192]8480 reload ICEs for LAPACK code on powerpc64-linux
2476     * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg
2477     * [194]10315 [powerpc] ICE: in extract_insn, in recog.c
2478
2479    SPARC-specific
2480
2481     * [195]10267    (documentation)   Wrong   build   instructions   for
2482       *-*-solaris2*
2483
2484    x86-specific (Intel/AMD)
2485
2486     * [196]7916 ICE in instantiate_virtual_register_1
2487     * [197]7926  (c++)  i486  instructions  in  header  files  make  c++
2488       programs crash on i386
2489     * [198]8555 ICE in gen_split_1231
2490     * [199]8994 ICE with -O -march=pentium4
2491     * [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs
2492     * [201]9806 ICE in inline assembly with -fPIC flag
2493     * [202]10077  gcc  -msse2  generates movd to move dwords between xmm
2494       regs
2495     * [203]10233 64-bit comparison only comparing bottom 32-bits
2496     * [204]10286 type-punning doesn't work with __m64 and -O
2497     * [205]10308 [x86] ICE with -O -fgcse or -O2
2498     _________________________________________________________________
2499
2500GCC 3.3.1
2501
2502  Bug Fixes
2503
2504   This  section  lists the problem reports (PRs) from GCC's bug tracking
2505   system  that  are  known  to  be fixed in the 3.3.1 release. This list
2506   might not be complete (that is, it is possible that some PRs that have
2507   been fixed are not listed here).
2508
2509    Bootstrap failures
2510
2511     * [206]11272 [Solaris] make bootstrap fails while building libstdc++
2512
2513    Internal compiler errors (multi-platform)
2514
2515     * [207]5754 ICE on invalid nested template class
2516     * [208]6597  ICE  in set_mem_alias_set compiling Qt with -O2 on ia64
2517       and --enable-checking
2518     * [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c
2519     * [210]7053 (c++) ICE when declaring a function already defined as a
2520       friend method of a template class
2521     * [211]8164  (c++)  ICE  when  using  different const expressions as
2522       template parameter
2523     * [212]8384 (c++) ICE in is_base_type, in dwarf2out.c
2524     * [213]9559 (c++) ICE with invalid initialization of a static const
2525     * [214]9649    (c++)    ICE    in    finish_member_declaration,   in
2526       cp/semantics.c when redeclaring a static member variable
2527     * [215]9864   (fortran)  ICE  in  add_abstract_origin_attribute,  in
2528       dwarfout.c with -g -O -finline-functions
2529     * [216]10432 (c++) ICE in poplevel, in cp/decl.c
2530     * [217]10475 ICE in subreg_highpart_offset for code with long long
2531     * [218]10635  (c++) ICE when dereferencing an incomplete type casted
2532       from a void pointer
2533     * [219]10661   (c++)  ICE  in  instantiate_decl,  in  cp/pt.c  while
2534       instantiating static member variables
2535     * [220]10700 ICE in copy_to_mode_reg on 64-bit targets
2536     * [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c
2537     * [222]10796 (c++) ICE when defining an enum with two values: -1 and
2538       MAX_INT_64BIT
2539     * [223]10890  ICE  in  merge_assigned_reloads  building Linux 2.4.2x
2540       sched.c
2541     * [224]10939 (c++) ICE with template code
2542     * [225]10956  (c++) ICE when specializing a template member function
2543       of a template class, in tsubst, in cp/pt.c
2544     * [226]11041  (c++)  ICE:  const  myclass &x = *x; (when operator*()
2545       defined)
2546     * [227]11059 (c++) ICE with empty union
2547     * [228]11083  (c++)  ICE  in  commit_one_edge_insertion, in cfgrtl.c
2548       with -O2 -fnon-call-exceptions
2549     * [229]11105 (c++) ICE in mangle_conv_op_name_for_type
2550     * [230]11149  (c++)  ICE  on  error  when  instantiation  with  call
2551       function of a base type
2552     * [231]11228  (c++)  ICE  on new-expression using array operator new
2553       and default-initialization
2554     * [232]11282 (c++) Infinite memory usage after syntax error
2555     * [233]11301 (fortran) ICE with -fno-globals
2556     * [234]11308  (c++) ICE when using an enum type name as if it were a
2557       class or namespace
2558     * [235]11473  (c++) ICE with -gstabs when empty struct inherits from
2559       an empty struct
2560     * [236]11503 (c++) ICE when instantiating template with ADDR_EXPR
2561     * [237]11513  (c++)  ICE  in  push_template_decl_real,  in  cp/pt.c:
2562       template member functions
2563
2564    Optimization bugs
2565
2566     * [238]11198  -O2  -frename-registers generates wrong code (aliasing
2567       problem)
2568     * [239]11304 Wrong code production with -fomit-frame-pointer
2569     * [240]11381 volatile memory access optimized away
2570     * [241]11536 [strength-reduce] -O2 optimization produces wrong code
2571     * [242]11557 constant folding bug generates wrong code
2572
2573    C front end
2574
2575     * [243]5897 No warning for statement after return
2576     * [244]11279 DWARF-2 output mishandles large enums
2577
2578    Preprocessor bugs
2579
2580     * [245]11022 no warning for non-compatible macro redefinition
2581
2582    C++ compiler and library
2583
2584     * [246]2330 static_cast<>() to a private base is allowed
2585     * [247]5388 Incorrect message "operands to ?: have different types"
2586     * [248]5390   Libiberty   fails  to  demangle  multi-digit  template
2587       parameters
2588     * [249]7877 Incorrect parameter passing to specializations of member
2589       function templates
2590     * [250]9393 Anonymous namespaces and compiling the same file twice
2591     * [251]10032 -pedantic converts some errors to warnings
2592     * [252]10468 const typeof(x) is non-const, but only in templates
2593     * [253]10527  confused  error  message  with  "new  int()" parameter
2594       initializer
2595     * [254]10679 parameter MIN_INLINE_INSNS is not honored
2596     * [255]10682  gcc  chokes  on  a  typedef for an enum inside a class
2597       template
2598     * [256]10689  pow(std::complex(0),1/3) returns (nan, nan) instead of
2599       0.
2600     * [257]10845  template  member  function  (with  nested  template as
2601       parameter)  cannot be called anymore if another unrelated template
2602       member function is defined
2603     * [258]10849  Cannot  define  an  out-of-class  specialization  of a
2604       private nested template class
2605     * [259]10888 Suppress -Winline warnings for system headers
2606     * [260]10929  -Winline warns about functions for which no definition
2607       is visible
2608     * [261]10931    valid    conversion    static_cast<const    unsigned
2609       int&>(lvalue-of-type-int) is rejected
2610     * [262]10940 Bad code with explicit specialization
2611     * [263]10968  If  member  function implicitly instantiated, explicit
2612       instantiation of class fails to instantiate it
2613     * [264]10990  Cannot  convert  with dynamic_cast<> to a private base
2614       class from within a member function
2615     * [265]11039  Bad  interaction between implicit typename deprecation
2616       and friendship
2617     * [266]11062   (libstdc++)   avoid   __attribute__  ((unused));  say
2618       "__unused__" instead
2619     * [267]11095  C++  iostream  manipulator causes segfault when called
2620       with negative argument
2621     * [268]11098  g++  doesn't  emit  complete debugging information for
2622       local variables in destructors
2623     * [269]11137  Linux  shared  library  constructors not called unless
2624       there's one global object
2625     * [270]11154   spurious   ambiguity   report   for   template  class
2626       specialization
2627     * [271]11329 Compiler cannot find user defined implicit typecast
2628     * [272]11332 Spurious error with casts in ?: expression
2629     * [273]11431  static_cast  behavior  with  subclasses  when  default
2630       constructor available
2631     * [274]11528 money_get facet does not accept "$.00" as valid
2632     * [275]11546  Type  lookup  problems  in out-of-line definition of a
2633       class doubly nested from a template class
2634     * [276]11567 C++ code containing templated member function with same
2635       name as pure virtual member function results in linking failure
2636     * [277]11645 Failure to deal with using and private inheritance
2637
2638    Java compiler and library
2639
2640     * [278]5179  Qualified  static  field  access doesn't initialize its
2641       class
2642     * [279]8204   gcj   -O2  to  native  reorders  certain  instructions
2643       improperly
2644     * [280]10838 java.io.ObjectInputStream syntax error
2645     * [281]10886  The  RMI  registry  that  comes with GCJ does not work
2646       correctly
2647     * [282]11349 JNDI URL context factories not located correctly
2648
2649    x86-specific (Intel/AMD)
2650
2651     * [283]4823 ICE on inline assembly code
2652     * [284]8878 miscompilation with -O and SSE
2653     * [285]9815  (c++  library)  atomicity.h - fails to compile with -O3
2654       -masm=intel
2655     * [286]10402  (inline assembly) [x86] ICE in merge_assigned_reloads,
2656       in reload1.c
2657     * [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2
2658     * [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source
2659     * [289]11044 [x86] out of range loop instructions for FP code on K6
2660     * [290]11089  ICE:  instantiate_virtual_regs_lossage while using SSE
2661       built-ins
2662     * [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC"
2663       is used
2664
2665    SPARC- or Solaris- specific
2666
2667     * [292]9362 solaris 'as' dies when fed .s and "-gstabs"
2668     * [293]10142   [SPARC64]   gcc  produces  wrong  code  when  passing
2669       structures by value
2670     * [294]10663 New configure check aborts with Sun tools.
2671     * [295]10835 combinatorial explosion in scheduler on HyperSPARC
2672     * [296]10876 ICE in calculate_giv_inc when building KDE
2673     * [297]10955  wrong code at -O3 for structure argument in context of
2674       structure return
2675     * [298]11018 -mcpu=ultrasparc busts tar-1.13.25
2676     * [299]11556  [sparc64]  ICE  in gen_reg_rtx() while compiling 2.6.x
2677       Linux kernel
2678
2679    ia64 specific
2680
2681     * [300]10907 gcc violates the ia64 ABI (GP must be preserved)
2682     * [301]11320 scheduler bug (in machine depended reorganization pass)
2683     * [302]11599 bug with conditional and __builtin_prefetch
2684
2685    PowerPC specific
2686
2687     * [303]9745  [powerpc]  gcc  mis-compiles  libmcrypt  (alias problem
2688       during loop)
2689     * [304]10871 error in rs6000_stack_info save_size computation
2690     * [305]11440   gcc   mis-compiles  c++  code  (libkhtml)  with  -O2,
2691       -fno-gcse cures it
2692
2693    m68k-specific
2694
2695     * [306]7594 [m68k] ICE on legal code associated with simplify-rtx
2696     * [307]10557 [m68k] ICE in subreg_offset_representable_p
2697     * [308]11054 [m68k] ICE in reg_overlap_mentioned_p
2698
2699    ARM-specific
2700
2701     * [309]10834  [arm]  GCC  3.3 still generates incorrect instructions
2702       for functions with __attribute__ ((interrupt ("IRQ")))
2703     * [310]10842  [arm]  Clobbered  link  register is copied to pc under
2704       certain circumstances
2705     * [311]11052 [arm] noce_process_if_block() can lose REG_INC notes
2706     * [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno
2707       (3.4)
2708
2709    MIPS-specific
2710
2711     * [313]11084 ICE in propagate_one_insn, in flow.c
2712
2713    SH-specific
2714
2715     * [314]10331 can't compile c++ part of gcc cross compiler for sh-elf
2716     * [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c
2717     * [316]11096  i686-linux to sh-linux cross compiler fails to compile
2718       C++ files
2719
2720    GNU/Linux (or Hurd?) specific
2721
2722     * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
2723
2724    UnixWare specific
2725
2726     * [318]3163   configure  bug:  gcc/aclocal.m4  mmap  test  fails  on
2727       UnixWare 7.1.1
2728
2729    Cygwin (or mingw) specific
2730
2731     * [319]5287 ICE with dllimport attribute
2732     * [320]10148 [MingW/CygWin] Compiler dumps core
2733
2734    DJGPP specific
2735
2736     * [321]8787  GCC  fails  to  emit  .intel_syntax  when  invoked with
2737       -masm=intel on DJGPP
2738
2739    Darwin (and MacOS X) specific
2740
2741     * [322]10900 trampolines crash
2742
2743    Documentation
2744
2745     * [323]1607 (c++) Format attributes on methods undocumented
2746     * [324]4252 Invalid option `-fdump-translation-unit'
2747     * [325]4490    Clarify    restrictions    on    -m96bit-long-double,
2748       -m128bit-long-double
2749     * [326]10355  document  an  issue  with  regparm  attribute  on some
2750       systems (e.g. Solaris)
2751     * [327]10726  (fortran)  Documentation for function "IDate Intrinsic
2752       (Unix)" is wrong
2753     * [328]10805 document bug in old version of Sun assembler
2754     * [329]10815 warn against GNU binutils on AIX
2755     * [330]10877 document need for newer binutils on i?86-*-linux-gnu
2756     * [331]11280 Manual incorrect with respect to -freorder-blocks
2757     * [332]11466  Document  -mlittle-endian and its restrictions for the
2758       sparc64 port
2759
2760    Testsuite bugs (compiler itself is not affected)
2761
2762     * [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly
2763       report failure
2764     * [334]10810   gcc-3.3   fails   make   check:   buffer  overrun  in
2765       test_demangle.c
2766     _________________________________________________________________
2767
2768GCC 3.3.2
2769
2770  Bug Fixes
2771
2772   This  section  lists  the  problem  reports  (PRs) from [335]GCC's bug
2773   tracking  system that are known to be fixed in the 3.3.2 release. This
2774   list might not be complete (that is, it is possible that some PRs that
2775   have been fixed are not listed here).
2776
2777    Bootstrap failures and problems
2778
2779     * [336]8336 [SCO5] bootstrap config still tries to use COFF options
2780     * [337]9330  [alpha-osf]  Bootstrap  failure  on  Compaq  Tru64 with
2781       --enable-threads=posix
2782     * [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap
2783     * [339]9877   fixincludes   makes  a  bad  sys/byteorder.h  on  svr5
2784       (UnixWare 7.1.1)
2785     * [340]11687 xstormy16-elf build fails in libf2c
2786     * [341]12263   [SGI   IRIX]   bootstrap   fails  during  compile  of
2787       libf2c/libI77/backspace.c
2788     * [342]12490  buffer  overflow  in  scan-decls.c  (during  Solaris 9
2789       fix-header processing)
2790
2791    Internal compiler errors (multi-platform)
2792
2793     * [343]7277 Casting integers to vector types causes ICE
2794     * [344]7939 (c++) ICE on invalid function template specialization
2795     * [345]11063 (c++) ICE on parsing initialization list of const array
2796       member
2797     * [346]11207 ICE with negative index in array element designator
2798     * [347]11522 (fortran) g77 dwarf-2 ICE in
2799       add_abstract_origin_attribute
2800     * [348]11595 (c++) ICE on duplicate label definition
2801     * [349]11646    (c++)    ICE   in   commit_one_edge_insertion   with
2802       -fnon-call-exceptions -fgcse -O
2803     * [350]11665 ICE in struct initializer when taking address
2804     * [351]11852 (c++) ICE with bad struct initializer.
2805     * [352]11878 (c++) ICE in cp_expr_size
2806     * [353]11883 ICE with any -O on mercury-generated C code
2807     * [354]11991   (c++)   ICE   in  cxx_incomplete_type_diagnostic,  in
2808       cp/typeck2.c  when  applying  typeid operator to template template
2809       parameter
2810     * [355]12146 ICE in lookup_template_function, in cp/pt.c
2811     * [356]12215   ICE  in  make_label_edge  with  -fnon-call-exceptions
2812       -fno-gcse -O2
2813     * [357]12369 (c++) ICE with templates and friends
2814     * [358]12446 ICE in emit_move_insn on complicated array reference
2815     * [359]12510 ICE in final_scan_insn
2816     * [360]12544 ICE with large parameters used in nested functions
2817
2818    C and optimization bugs
2819
2820     * [361]9862 spurious warnings with -W -finline-functions
2821     * [362]10962  lookup_field  is a linear search on a linked list (can
2822       be slow if large struct)
2823     * [363]11370 -Wunreachable-code gives false complaints
2824     * [364]11637 invalid assembly with -fnon-call-exceptions
2825     * [365]11885 Problem with bitfields in packed structs
2826     * [366]12082 Inappropriate unreachable code warnings
2827     * [367]12180 Inline optimization fails for variadic function
2828     * [368]12340 loop unroller + gcse produces wrong code
2829
2830    C++ compiler and library
2831
2832     * [369]3907 nested template parameter collides with member name
2833     * [370]5293   confusing  message  when  binding  a  temporary  to  a
2834       reference
2835     * [371]5296  [DR115] Pointers to functions and to template functions
2836       behave differently in deduction
2837     * [372]7939 ICE on function template specialization
2838     * [373]8656 Unable to assign function with __attribute__ and pointer
2839       return type to an appropriate variable
2840     * [374]10147  Confusing  error message for invalid template function
2841       argument
2842     * [375]11400 std::search_n() makes assumptions about Size parameter
2843     * [376]11409   issues  with  using  declarations,  overloading,  and
2844       built-in functions
2845     * [377]11740  ctype<wchar_t>::do_is(mask,  wchar_t)  doesn't  handle
2846       multiple bits in mask
2847     * [378]11786  operator()  call  on  variable  in other namespace not
2848       recognized
2849     * [379]11867 static_cast ignores ambiguity
2850     * [380]11928 bug with conversion operators that are typedefs
2851     * [381]12114 Uninitialized memory accessed in dtor
2852     * [382]12163 static_cast + explicit constructor regression
2853     * [383]12181 Wrong code with comma operator and c++
2854     * [384]12236 regparm and fastcall messes up parameters
2855     * [385]12266  incorrect  instantiation  of  unneeded template during
2856       overload resolution
2857     * [386]12296 istream::peek() doesn't set eofbit
2858     * [387]12298     [sjlj    exceptions]    Stack    unwind    destroys
2859       not-yet-constructed object
2860     * [388]12369 ICE with templates and friends
2861     * [389]12337 apparently infinite loop in g++
2862     * [390]12344 stdcall attribute ignored if function returns a pointer
2863     * [391]12451 missing(late) class forward declaration in cxxabi.h
2864     * [392]12486 g++ accepts invalid use of a qualified name
2865
2866    x86 specific (Intel/AMD)
2867
2868     * [393]8869  [x86  MMX] ICE with const variable optimization and MMX
2869       builtins
2870     * [394]9786  ICE  in fixup_abnormal_edges with -fnon-call-exceptions
2871       -O2
2872     * [395]11689 g++3.3 emits un-assembleable code for k6 architecture
2873     * [396]12116 [k6] Invalid assembly output values with X-MAME code
2874     * [397]12070  ICE  converting  between  double  and long double with
2875       -msoft-float
2876
2877    ia64-specific
2878
2879     * [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc
2880     * [399]11535 __builtin_return_address may not work on ia64
2881     * [400]11693 [ia64] ICE in gen_nop_type
2882     * [401]12224 [ia64] Thread-local storage doesn't work
2883
2884    PowerPC-specific
2885
2886     * [402]11087  [powerpc64-linux]  GCC  miscompiles raid1.c from linux
2887       kernel
2888     * [403]11319 loop miscompiled on ppc32
2889     * [404]11949 ICE Compiler segfault with ffmpeg -maltivec code
2890
2891    SPARC-specific
2892
2893     * [405]11662  wrong  code  for  expr.  with  cast  to  long long and
2894       exclusive or
2895     * [406]11965 invalid assembler code for a shift < 32 operation
2896     * [407]12301  (c++)  stack  corruption  when  a  returned expression
2897       throws an exception
2898
2899    Alpha-specific
2900
2901     * [408]11717  [alpha-linux]  unrecognizable  insn compiling for.c of
2902       kernel 2.4.22-pre8
2903
2904    HPUX-specific
2905
2906     * [409]11313 problem with #pragma weak and static inline functions
2907     * [410]11712 __STDC_EXT__ not defined for C++ by default anymore?
2908
2909    Solaris specific
2910
2911     * [411]12166 Profiled programs crash if PROFDIR is set
2912
2913    Solaris-x86 specific
2914
2915     * [412]12101 i386 Solaris no longer works with GNU as?
2916
2917    Miscellaneous embedded target-specific bugs
2918
2919     * [413]10988 [m32r-elf] wrong blockmove code with -O3
2920     * [414]11805  [h8300-unknown-coff]  [H8300] ICE for simple code with
2921       -O2
2922     * [415]11902 [sh4] spec file improperly inserts rpath even when none
2923       needed
2924     * [416]11903  [sh4] -pthread fails to link due to error in spec file
2925       on sh4
2926     _________________________________________________________________
2927
2928GCC 3.3.3
2929
2930  Minor features
2931
2932   In  addition  to the bug fixes documented below, this release contains
2933   few minor features such as:
2934     * Support for --with-sysroot
2935     * Support for automatic detection of executable stacks
2936     * Support for SSE3 instructions
2937     * Support for thread local storage debugging under GDB on S390
2938
2939  Bug Fixes
2940
2941   This  section  lists  the  problem  reports  (PRs) from [417]GCC's bug
2942   tracking  system that are known to be fixed in the 3.3.3 release. This
2943   list might not be complete (that is, it is possible that some PRs that
2944   have been fixed are not listed here).
2945
2946    Bootstrap failures and issues
2947
2948     * [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails
2949     * [419]12399  boehm-gc  fails  (when  building  a  cross  compiler):
2950       libtool unable to infer tagged configuration
2951     * [420]13068   mklibgcc.in   doesn't   handle  multi-level  multilib
2952       subdirectories properly
2953
2954    Internal compiler errors (multi-platform)
2955
2956     * [421]10060  ICE  (stack overflow) on huge file (300k lines) due to
2957       recursive behaviour of copy_rtx_if_shared, in emit_rtl.c
2958     * [422]10555 (c++) ICE on undefined template argument
2959     * [423]10706 (c++) ICE in mangle_class_name_for_template
2960     * [424]11496  (fortran) error in flow_loops_find when -funroll-loops
2961       active
2962     * [425]11741 ICE in pre_insert_copy_insn, in gcse.c
2963     * [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0
2964     * [427]12632 (fortran) -fbounds-check ICE
2965     * [428]12712  (c++)  ICE  on  short legit C++ code fragment with gcc
2966       3.3.2
2967     * [429]12726 (c++) ICE (segfault) on trivial code
2968     * [430]12890 (c++) ICE on compilation of class with throwing method
2969     * [431]12900 (c++) ICE in rtl_verify_flow_info_1
2970     * [432]13060  (fortran)  ICE  in  fixup_var_refs_1, in function.c on
2971       correct code with -O2 -fno-force-mem
2972     * [433]13289 (c++) ICE in regenerate_decl_from_template on recursive
2973       template
2974     * [434]13318 ICE: floating point exception in the loop optimizer
2975     * [435]13392   (c++)   ICE  in  convert_from_eh_region_ranges_1,  in
2976       except.c
2977     * [436]13574  (c++)  invalid array default initializer in class lets
2978       gcc consume all memory and die
2979     * [437]13475 ICE on SIMD variables with partial value initialization
2980     * [438]13797 (c++) ICE on invalid template parameter
2981     * [439]13824 (java) gcj SEGV with simple .java program
2982
2983    C and optimization bugs
2984
2985     * [440]8776 loop invariants are not removed (most likely)
2986     * [441]10339   [sparc,ppc,ppc64]   Invalid  optimization:  replacing
2987       strncmp by memcmp
2988     * [442]11350 undefined labels with -Os -fPIC
2989     * [443]12826 Optimizer removes reference through volatile pointer
2990     * [444]12500 stabs debug info: void no longer a predefined / builtin
2991       type
2992     * [445]12941 builtin-bitops-1.c miscompilation (latent bug)
2993     * [446]12953 tree inliner bug (in inline_forbidden_p) and fix
2994     * [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled
2995     * [448]13507 spurious printf format warning
2996     * [449]13382  Type  information  for const pointer disappears during
2997       optimization.
2998     * [450]13394 noreturn attribute ignored on recursive invokation
2999     * [451]13400 Compiled code crashes storing to read-only location
3000     * [452]13521 Endless loop in calculate_global_regs_live
3001
3002    C++ compiler and library
3003
3004   Some  of  the  bug fixes in this list were made to implement decisions
3005   that  the  ISO  C++  standards  committee  has made concerning several
3006   defect  reports  (DRs).  Links  in  the  list  below point to detailed
3007   discussion of the relevant defect report.
3008     * [453]2094  unimplemented:  use  of  `ptrmem_cst'  in template type
3009       unification
3010     * [454]2294 using declaration confusion
3011     * [455]5050  template  instantiation  depth exceeds limit: recursion
3012       problem?
3013     * [456]9371 Bad exception handling in
3014       i/ostream::operator>>/<<(streambuf*)
3015     * [457]9546 bad exception handling in ostream members
3016     * [458]10081  basic_ios::_M_cache_locale  leaves NULL members in the
3017       face of unknown locales
3018     * [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work
3019     * [461]10095   istream::operator>>(int&)   sets   ios::badbit   when
3020       ios::failbit is set.
3021     * [462]11554   Warning  about  reordering  of  initializers  doesn't
3022       mention location of constructor
3023     * [463]12297 istream::sentry::sentry() handles eof() incorrectly.
3024     * [464]12352 Exception safety problems in src/localename.cc
3025     * [465]12438 Memory leak in locale::combine()
3026     * [466]12540 Memory leak in locale::locale(const char*)
3027     * [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented
3028     * [470]12657 Resolution of [471]DR 292 (WP) still unimplemented
3029     * [472]12696  memory  eating  infinite  loop  in  diagnostics (error
3030       recovery problem)
3031     * [473]12815 Code compiled with optimization behaves unexpectedly
3032     * [474]12862  Conflicts  between typedefs/enums and namespace member
3033       declarations
3034     * [475]12926  Wrong  value after assignment in initialize list using
3035       bit-fields
3036     * [476]12967 Resolution of [477]DR 300 [WP] still unimplemented
3037     * [478]12971 Resolution of [479]DR 328 [WP] still unimplemented
3038     * [480]13007 basic_streambuf::pubimbue, imbue wrong
3039     * [481]13009  Implicitly-defined assignment operator writes to wrong
3040       memory
3041     * [482]13057 regparm attribute not applied to destructor
3042     * [483]13070 -Wformat option ignored in g++
3043     * [484]13081 forward template declarations in <complex> let inlining
3044       fail
3045     * [485]13239 Assertion does not seem to work correctly anymore
3046     * [486]13262  "xxx is private within this context" when initializing
3047       a self-contained template class
3048     * [487]13290 simple typo in concept checking for std::generate_n
3049     * [488]13323 Template code does not compile in presence of typedef
3050     * [489]13369 __verify_grouping (and __add_grouping?) not correct
3051     * [490]13371 infinite loop with packed struct and inlining
3052     * [491]13445 Template argument replacement "dereferences" a typedef
3053     * [492]13461 Fails to access protected-ctor from public constant
3054     * [493]13462 Non-standard-conforming type set::pointer
3055     * [494]13478  gcc  uses  wrong  constructor  to  initialize  a const
3056       reference
3057     * [495]13544 "conflicting types" for enums in different scopes
3058     * [496]13650     string::compare    should    not    (always)    use
3059       traits_type::length()
3060     * [497]13683 bogus warning about passing non-PODs through ellipsis
3061     * [498]13688  Derived class is denied access to protected base class
3062       member class
3063     * [499]13774 Member variable cleared in virtual multiple inheritance
3064       class
3065     * [500]13884 Protect sstream.tcc from extern template use
3066
3067    Java compiler and library
3068
3069     * [501]10746 [win32] garbage collection crash in GCJ
3070
3071    Objective-C compiler and library
3072
3073     * [502]11433  Crash  due to dereferencing null pointer when querying
3074       protocol
3075
3076    Fortran compiler and library
3077
3078     * [503]12633   logical   expression   gives  incorrect  result  with
3079       -fugly-logint option
3080     * [504]13037 [gcse-lm] g77 generates incorrect code
3081     * [505]13213  Hex constant problem when compiling with -fugly-logint
3082       and -ftypeless-boz
3083
3084    x86-specific (Intel/AMD)
3085
3086     * [506]4490 ICE with -m128bit-long-double
3087     * [507]12292  [x86_64]  ICE:  RTL  check: expected code `const_int',
3088       have `reg' in make_field_assignment, in combine.c
3089     * [508]12441 ICE: can't find a register to spill
3090     * [509]12943 array static-init failure under -fpic, -fPIC
3091     * [510]13608 Incorrect code with -O3 -ffast-math
3092
3093    PowerPC-specific
3094
3095     * [511]11598  testcase  gcc.dg/20020118-1.c  fails  runtime check of
3096       __attribute__((aligned(16)))
3097     * [512]11793 ICE in extract_insn, in recog.c (const_vector's)
3098     * [513]12467  vmsumubm  emitted  when  vmsummbm appropriate (typo in
3099       altivec.md)
3100     * [514]12537 g++ generates writeable text sections
3101
3102    SPARC-specific
3103
3104     * [515]12496  wrong  result  for __atomic_add(&value, -1) when using
3105       -O0 -m64
3106     * [516]12865 mprotect call to make trampoline executable may fail
3107     * [517]13354 ICE in sparc_emit_set_const32
3108
3109    ARM-specific
3110
3111     * [518]10467 [arm] ICE in pre_insert_copy_insn,
3112
3113    ia64-specific
3114
3115     * [519]11226 ICE passing struct arg with two floats
3116     * [520]11227 ICE for _Complex float, _Complex long double args
3117     * [521]12644 GCC 3.3.2 fails to compile glibc on ia64
3118     * [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn
3119     * Various fixes for libunwind
3120
3121    Alpha-specific
3122
3123     * [523]12654 Incorrect comparison code generated for Alpha
3124     * [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2
3125     * [525]13031     ICE    (unrecognizable    insn)    when    building
3126       gnome-libs-1.4.2
3127
3128    HPPA-specific
3129
3130     * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
3131     * [527]12158 [hppa] compilation does not terminate at -O1
3132
3133    S390-specific
3134
3135     * [528]11992  Wrong built-in code for memcmp with length 1<<24: only
3136       (1<<24)-1 possible for CLCL-Instruction
3137
3138    SH-specific
3139
3140     * [529]9365 segfault in gen_far_branch (config/sh/sh.c)
3141     * [530]10392 optimizer generates faulty array indexing
3142     * [531]11322 SH profiler outputs multiple definitions of symbol
3143     * [532]13069 gcc/config/sh/rtems.h broken
3144     * [533]13302 Putting a va_list in a struct causes seg fault
3145     * [534]13585 Incorrect optimization of call to sfunc
3146     * Fix  inappropriately  exported  libgcc  functions  from the shared
3147       library
3148
3149    Other embedded target specific
3150
3151     * [535]8916 [mcore] unsigned char assign gets hosed.
3152     * [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c
3153     * [537]13122  [h8300] local variable gets corrupted by function call
3154       when -fomit-frame-pointer is given
3155     * [538]13256 [cris] strict_low_part mistreated in delay slots
3156     * [539]13373   [mcore]   optimization   with  -frerun-cse-after-loop
3157       -fexpensive-optimizations produces wrong code on mcore
3158
3159    GNU HURD-specific
3160
3161     * [540]12561   gcc/config/t-gnu   needs   updating   to   work  with
3162       --with-sysroot
3163
3164    Tru64 Unix specific
3165
3166     * [541]6243  testsuite  fails  almost all tests due to no libintl in
3167       LD_LIBRARY_PATH during test.
3168     * [542]11397 weak aliases broken on Tru64 UNIX
3169
3170    AIX-specific
3171
3172     * [543]12505  build failure due to defines of uchar in cpphash.h and
3173       sys/types.h
3174     * [544]13150 WEAK symbols not exported by collect2
3175
3176    IRIX-specific
3177
3178     * [545]12666 fixincludes problem on IRIX 6.5.19m
3179
3180    Solaris-specific
3181
3182     * [546]12969 Including sys/byteorder.h breaks configure checks
3183
3184    Testsuite problems (compiler is not affected)
3185
3186     * [547]10819  testsuite  creates  CR+LF on compiler version lines in
3187       test summary files
3188     * [548]11612 abi_check not finding correct libgcc_s.so.1
3189
3190    Miscellaneous
3191
3192     * [549]13211 using -###, incorrect warnings about unused linker file
3193       are produced
3194     _________________________________________________________________
3195
3196   Please send FSF & GNU inquiries & questions to [550]gnu@gnu.org. There
3197   are also [551]other ways to contact the FSF.
3198
3199   These pages are maintained by [552]the GCC team.
3200
3201
3202    For  questions  related  to the use of GCC, please consult these web
3203    pages    and    the   [553]GCC   manuals.   If   that   fails,   the
3204    [554]gcc-help@gcc.gnu.org mailing list might help.
3205    Please  send  comments on these web pages and the development of GCC
3206    to    our    developer   mailing   list   at   [555]gcc@gnu.org   or
3207    [556]gcc@gcc.gnu.org. All of our lists have [557]public archives.
3208
3209   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
3210   330, Boston, MA 02111, USA.
3211
3212   Verbatim  copying and distribution of this entire article is permitted
3213   in any medium, provided this notice is preserved.
3214
3215   Last modified 2004-08-06 [558]Valid XHTML 1.0
3216
3217References
3218
3219   1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
3220   2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
3221   3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
3222   4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute
3223   5. http://gcc.gnu.org/news/dfa.html
3224   6. http://gcc.gnu.org/gcc-3.3/c99status.html
3225   7. http://gcc.gnu.org/onlinedocs/g77/News.html
3226   8. http://gcc.gnu.org/PR10140
3227   9. http://gcc.gnu.org/PR10198
3228  10. http://gcc.gnu.org/PR10338
3229  11. http://gcc.gnu.org/PR3581
3230  12. http://gcc.gnu.org/PR4382
3231  13. http://gcc.gnu.org/PR5533
3232  14. http://gcc.gnu.org/PR6387
3233  15. http://gcc.gnu.org/PR6412
3234  16. http://gcc.gnu.org/PR6620
3235  17. http://gcc.gnu.org/PR6663
3236  18. http://gcc.gnu.org/PR7068
3237  19. http://gcc.gnu.org/PR7083
3238  20. http://gcc.gnu.org/PR7647
3239  21. http://gcc.gnu.org/PR7675
3240  22. http://gcc.gnu.org/PR7718
3241  23. http://gcc.gnu.org/PR8116
3242  24. http://gcc.gnu.org/PR8358
3243  25. http://gcc.gnu.org/PR8511
3244  26. http://gcc.gnu.org/PR8564
3245  27. http://gcc.gnu.org/PR8660
3246  28. http://gcc.gnu.org/PR8766
3247  29. http://gcc.gnu.org/PR8803
3248  30. http://gcc.gnu.org/PR8846
3249  31. http://gcc.gnu.org/PR8906
3250  32. http://gcc.gnu.org/PR9216
3251  33. http://gcc.gnu.org/PR9261
3252  34. http://gcc.gnu.org/PR9263
3253  35. http://gcc.gnu.org/PR9429
3254  36. http://gcc.gnu.org/PR9516
3255  37. http://gcc.gnu.org/PR9600
3256  38. http://gcc.gnu.org/PR9629
3257  39. http://gcc.gnu.org/PR9672
3258  40. http://gcc.gnu.org/PR9749
3259  41. http://gcc.gnu.org/PR9794
3260  42. http://gcc.gnu.org/PR9829
3261  43. http://gcc.gnu.org/PR9916
3262  44. http://gcc.gnu.org/PR9936
3263  45. http://gcc.gnu.org/PR10262
3264  46. http://gcc.gnu.org/PR10278
3265  47. http://gcc.gnu.org/PR10446
3266  48. http://gcc.gnu.org/PR10451
3267  49. http://gcc.gnu.org/PR10506
3268  50. http://gcc.gnu.org/PR10549
3269  51. http://gcc.gnu.org/PR2001
3270  52. http://gcc.gnu.org/PR2391
3271  53. http://gcc.gnu.org/PR2960
3272  54. http://gcc.gnu.org/PR4046
3273  55. http://gcc.gnu.org/PR6405
3274  56. http://gcc.gnu.org/PR6798
3275  57. http://gcc.gnu.org/PR6871
3276  58. http://gcc.gnu.org/PR6909
3277  59. http://gcc.gnu.org/PR7189
3278  60. http://gcc.gnu.org/PR7642
3279  61. http://gcc.gnu.org/PR8634
3280  62. http://gcc.gnu.org/PR8750
3281  63. http://gcc.gnu.org/PR2161
3282  64. http://gcc.gnu.org/PR4319
3283  65. http://gcc.gnu.org/PR8602
3284  66. http://gcc.gnu.org/PR9177
3285  67. http://gcc.gnu.org/PR9853
3286  68. http://gcc.gnu.org/PR45
3287  69. http://gcc.gnu.org/PR3784
3288  70. http://gcc.gnu.org/PR764
3289  71. http://gcc.gnu.org/PR5116
3290  72. http://gcc.gnu.org/PR2862
3291  73. http://gcc.gnu.org/PR3663
3292  74. http://gcc.gnu.org/PR3797
3293  75. http://gcc.gnu.org/PR3948
3294  76. http://gcc.gnu.org/PR4137
3295  77. http://gcc.gnu.org/PR4361
3296  78. http://gcc.gnu.org/PR4802
3297  79. http://gcc.gnu.org/PR5837
3298  80. http://gcc.gnu.org/PR4803
3299  81. http://gcc.gnu.org/PR5094
3300  82. http://gcc.gnu.org/PR5730
3301  83. http://gcc.gnu.org/PR6713
3302  84. http://gcc.gnu.org/PR7015
3303  85. http://gcc.gnu.org/PR7086
3304  86. http://gcc.gnu.org/PR7099
3305  87. http://gcc.gnu.org/PR7247
3306  88. http://gcc.gnu.org/PR7441
3307  89. http://gcc.gnu.org/PR7768
3308  90. http://gcc.gnu.org/PR7804
3309  91. http://gcc.gnu.org/PR8099
3310  92. http://gcc.gnu.org/PR8117
3311  93. http://gcc.gnu.org/PR8205
3312  94. http://gcc.gnu.org/PR8645
3313  95. http://gcc.gnu.org/PR8724
3314  96. http://gcc.gnu.org/PR8805
3315  97. http://gcc.gnu.org/PR8691
3316  98. http://gcc.gnu.org/PR8700
3317  99. http://gcc.gnu.org/PR8724
3318 100. http://gcc.gnu.org/PR8949
3319 101. http://gcc.gnu.org/PR9016
3320 102. http://gcc.gnu.org/PR9053
3321 103. http://gcc.gnu.org/PR9152
3322 104. http://gcc.gnu.org/PR9182
3323 105. http://gcc.gnu.org/PR9297
3324 106. http://gcc.gnu.org/PR9318
3325 107. http://gcc.gnu.org/PR9320
3326 108. http://gcc.gnu.org/PR9400
3327 109. http://gcc.gnu.org/PR9424
3328 110. http://gcc.gnu.org/PR9425
3329 111. http://gcc.gnu.org/PR9439
3330 112. http://gcc.gnu.org/PR9474
3331 113. http://gcc.gnu.org/PR9548
3332 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
3333 115. http://gcc.gnu.org/PR9555
3334 116. http://gcc.gnu.org/PR9561
3335 117. http://gcc.gnu.org/PR9563
3336 118. http://gcc.gnu.org/PR9582
3337 119. http://gcc.gnu.org/PR9622
3338 120. http://gcc.gnu.org/PR9683
3339 121. http://gcc.gnu.org/PR9791
3340 122. http://gcc.gnu.org/PR9817
3341 123. http://gcc.gnu.org/PR9825
3342 124. http://gcc.gnu.org/PR9826
3343 125. http://gcc.gnu.org/PR9924
3344 126. http://gcc.gnu.org/PR9946
3345 127. http://gcc.gnu.org/PR9964
3346 128. http://gcc.gnu.org/PR9988
3347 129. http://gcc.gnu.org/PR10033
3348 130. http://gcc.gnu.org/PR10097
3349 131. http://gcc.gnu.org/PR10132
3350 132. http://gcc.gnu.org/PR10180
3351 133. http://gcc.gnu.org/PR10199
3352 134. http://gcc.gnu.org/PR10300
3353 135. http://gcc.gnu.org/PR10427
3354 136. http://gcc.gnu.org/PR10503
3355 137. http://gcc.gnu.org/PR5956
3356 138. http://gcc.gnu.org/PR1832
3357 139. http://gcc.gnu.org/PR3924
3358 140. http://gcc.gnu.org/PR5634
3359 141. http://gcc.gnu.org/PR6367
3360 142. http://gcc.gnu.org/PR6491
3361 143. http://gcc.gnu.org/PR6742
3362 144. http://gcc.gnu.org/PR7113
3363 145. http://gcc.gnu.org/PR7236
3364 146. http://gcc.gnu.org/PR7278
3365 147. http://gcc.gnu.org/PR7384
3366 148. http://gcc.gnu.org/PR7388
3367 149. http://gcc.gnu.org/PR8587
3368 150. http://gcc.gnu.org/PR9038
3369 151. http://gcc.gnu.org/PR10197
3370 152. http://gcc.gnu.org/PR6005
3371 153. http://gcc.gnu.org/PR6389
3372 154. http://gcc.gnu.org/PR6576
3373 155. http://gcc.gnu.org/PR6652
3374 156. http://gcc.gnu.org/PR7060
3375 157. http://gcc.gnu.org/PR7073
3376 158. http://gcc.gnu.org/PR7180
3377 159. http://gcc.gnu.org/PR7416
3378 160. http://gcc.gnu.org/PR7570
3379 161. http://gcc.gnu.org/PR7578
3380 162. http://gcc.gnu.org/PR7611
3381 163. http://gcc.gnu.org/PR7709
3382 164. http://gcc.gnu.org/PR7766
3383 165. http://gcc.gnu.org/PR7785
3384 166. http://gcc.gnu.org/PR7786
3385 167. http://gcc.gnu.org/PR8142
3386 168. http://gcc.gnu.org/PR8234
3387 169. http://gcc.gnu.org/PR8415
3388 170. http://gcc.gnu.org/PR8481
3389 171. http://gcc.gnu.org/PR8593
3390 172. http://gcc.gnu.org/PR8759
3391 173. http://gcc.gnu.org/PR8997
3392 174. http://gcc.gnu.org/PR9253
3393 175. http://gcc.gnu.org/PR9254
3394 176. http://gcc.gnu.org/PR9271
3395 177. http://gcc.gnu.org/PR6767
3396 178. http://gcc.gnu.org/PR9911
3397 179. http://gcc.gnu.org/PR10020
3398 180. http://gcc.gnu.org/PR10546
3399 181. http://gcc.gnu.org/PR7029
3400 182. http://gcc.gnu.org/PR2903
3401 183. http://gcc.gnu.org/PR7873
3402 184. http://gcc.gnu.org/PR7680
3403 185. http://gcc.gnu.org/PR8705
3404 186. http://gcc.gnu.org/PR9986
3405 187. http://gcc.gnu.org/PR10056
3406 188. http://gcc.gnu.org/PR6744
3407 189. http://gcc.gnu.org/PR7361
3408 190. http://gcc.gnu.org/PR9496
3409 191. http://gcc.gnu.org/PR7067
3410 192. http://gcc.gnu.org/PR8480
3411 193. http://gcc.gnu.org/PR8784
3412 194. http://gcc.gnu.org/PR10315
3413 195. http://gcc.gnu.org/PR10267
3414 196. http://gcc.gnu.org/PR7916
3415 197. http://gcc.gnu.org/PR7926
3416 198. http://gcc.gnu.org/PR8555
3417 199. http://gcc.gnu.org/PR8994
3418 200. http://gcc.gnu.org/PR9426
3419 201. http://gcc.gnu.org/PR9806
3420 202. http://gcc.gnu.org/PR10077
3421 203. http://gcc.gnu.org/PR10233
3422 204. http://gcc.gnu.org/PR10286
3423 205. http://gcc.gnu.org/PR10308
3424 206. http://gcc.gnu.org/PR11272
3425 207. http://gcc.gnu.org/PR5754
3426 208. http://gcc.gnu.org/PR6597
3427 209. http://gcc.gnu.org/PR6949
3428 210. http://gcc.gnu.org/PR7053
3429 211. http://gcc.gnu.org/PR8164
3430 212. http://gcc.gnu.org/PR8384
3431 213. http://gcc.gnu.org/PR9559
3432 214. http://gcc.gnu.org/PR9649
3433 215. http://gcc.gnu.org/PR9864
3434 216. http://gcc.gnu.org/PR10432
3435 217. http://gcc.gnu.org/PR10475
3436 218. http://gcc.gnu.org/PR10635
3437 219. http://gcc.gnu.org/PR10661
3438 220. http://gcc.gnu.org/PR10700
3439 221. http://gcc.gnu.org/PR10712
3440 222. http://gcc.gnu.org/PR10796
3441 223. http://gcc.gnu.org/PR10890
3442 224. http://gcc.gnu.org/PR10939
3443 225. http://gcc.gnu.org/PR10956
3444 226. http://gcc.gnu.org/PR11041
3445 227. http://gcc.gnu.org/PR11059
3446 228. http://gcc.gnu.org/PR11083
3447 229. http://gcc.gnu.org/PR11105
3448 230. http://gcc.gnu.org/PR11149
3449 231. http://gcc.gnu.org/PR11228
3450 232. http://gcc.gnu.org/PR11282
3451 233. http://gcc.gnu.org/PR11301
3452 234. http://gcc.gnu.org/PR11308
3453 235. http://gcc.gnu.org/PR11473
3454 236. http://gcc.gnu.org/PR11503
3455 237. http://gcc.gnu.org/PR11513
3456 238. http://gcc.gnu.org/PR11198
3457 239. http://gcc.gnu.org/PR11304
3458 240. http://gcc.gnu.org/PR11381
3459 241. http://gcc.gnu.org/PR11536
3460 242. http://gcc.gnu.org/PR11557
3461 243. http://gcc.gnu.org/PR5897
3462 244. http://gcc.gnu.org/PR11279
3463 245. http://gcc.gnu.org/PR11022
3464 246. http://gcc.gnu.org/PR2330
3465 247. http://gcc.gnu.org/PR5388
3466 248. http://gcc.gnu.org/PR5390
3467 249. http://gcc.gnu.org/PR7877
3468 250. http://gcc.gnu.org/PR9393
3469 251. http://gcc.gnu.org/PR10032
3470 252. http://gcc.gnu.org/PR10468
3471 253. http://gcc.gnu.org/PR10527
3472 254. http://gcc.gnu.org/PR10679
3473 255. http://gcc.gnu.org/PR10682
3474 256. http://gcc.gnu.org/PR10689
3475 257. http://gcc.gnu.org/PR10845
3476 258. http://gcc.gnu.org/PR10849
3477 259. http://gcc.gnu.org/PR10888
3478 260. http://gcc.gnu.org/PR10929
3479 261. http://gcc.gnu.org/PR10931
3480 262. http://gcc.gnu.org/PR10940
3481 263. http://gcc.gnu.org/PR10968
3482 264. http://gcc.gnu.org/PR10990
3483 265. http://gcc.gnu.org/PR11039
3484 266. http://gcc.gnu.org/PR11062
3485 267. http://gcc.gnu.org/PR11095
3486 268. http://gcc.gnu.org/PR11098
3487 269. http://gcc.gnu.org/PR11137
3488 270. http://gcc.gnu.org/PR11154
3489 271. http://gcc.gnu.org/PR11329
3490 272. http://gcc.gnu.org/PR11332
3491 273. http://gcc.gnu.org/PR11431
3492 274. http://gcc.gnu.org/PR11528
3493 275. http://gcc.gnu.org/PR11546
3494 276. http://gcc.gnu.org/PR11567
3495 277. http://gcc.gnu.org/PR11645
3496 278. http://gcc.gnu.org/PR5179
3497 279. http://gcc.gnu.org/PR8204
3498 280. http://gcc.gnu.org/PR10838
3499 281. http://gcc.gnu.org/PR10886
3500 282. http://gcc.gnu.org/PR11349
3501 283. http://gcc.gnu.org/PR4823
3502 284. http://gcc.gnu.org/PR8878
3503 285. http://gcc.gnu.org/PR9815
3504 286. http://gcc.gnu.org/PR10402
3505 287. http://gcc.gnu.org/PR10504
3506 288. http://gcc.gnu.org/PR10673
3507 289. http://gcc.gnu.org/PR11044
3508 290. http://gcc.gnu.org/PR11089
3509 291. http://gcc.gnu.org/PR11420
3510 292. http://gcc.gnu.org/PR9362
3511 293. http://gcc.gnu.org/PR10142
3512 294. http://gcc.gnu.org/PR10663
3513 295. http://gcc.gnu.org/PR10835
3514 296. http://gcc.gnu.org/PR10876
3515 297. http://gcc.gnu.org/PR10955
3516 298. http://gcc.gnu.org/PR11018
3517 299. http://gcc.gnu.org/PR11556
3518 300. http://gcc.gnu.org/PR10907
3519 301. http://gcc.gnu.org/PR11320
3520 302. http://gcc.gnu.org/PR11599
3521 303. http://gcc.gnu.org/PR9745
3522 304. http://gcc.gnu.org/PR10871
3523 305. http://gcc.gnu.org/PR11440
3524 306. http://gcc.gnu.org/PR7594
3525 307. http://gcc.gnu.org/PR10557
3526 308. http://gcc.gnu.org/PR11054
3527 309. http://gcc.gnu.org/PR10834
3528 310. http://gcc.gnu.org/PR10842
3529 311. http://gcc.gnu.org/PR11052
3530 312. http://gcc.gnu.org/PR11183
3531 313. http://gcc.gnu.org/PR11084
3532 314. http://gcc.gnu.org/PR10331
3533 315. http://gcc.gnu.org/PR10413
3534 316. http://gcc.gnu.org/PR11096
3535 317. http://gcc.gnu.org/PR2873
3536 318. http://gcc.gnu.org/PR3163
3537 319. http://gcc.gnu.org/PR5287
3538 320. http://gcc.gnu.org/PR10148
3539 321. http://gcc.gnu.org/PR8787
3540 322. http://gcc.gnu.org/PR10900
3541 323. http://gcc.gnu.org/PR1607
3542 324. http://gcc.gnu.org/PR4252
3543 325. http://gcc.gnu.org/PR4490
3544 326. http://gcc.gnu.org/PR10355
3545 327. http://gcc.gnu.org/PR10726
3546 328. http://gcc.gnu.org/PR10805
3547 329. http://gcc.gnu.org/PR10815
3548 330. http://gcc.gnu.org/PR10877
3549 331. http://gcc.gnu.org/PR11280
3550 332. http://gcc.gnu.org/PR11466
3551 333. http://gcc.gnu.org/PR10737
3552 334. http://gcc.gnu.org/PR10810
3553 335. http://gcc.gnu.org/bugzilla/
3554 336. http://gcc.gnu.org/PR8336
3555 337. http://gcc.gnu.org/PR9330
3556 338. http://gcc.gnu.org/PR9631
3557 339. http://gcc.gnu.org/PR9877
3558 340. http://gcc.gnu.org/PR11687
3559 341. http://gcc.gnu.org/PR12263
3560 342. http://gcc.gnu.org/PR12490
3561 343. http://gcc.gnu.org/PR7277
3562 344. http://gcc.gnu.org/PR7939
3563 345. http://gcc.gnu.org/PR11063
3564 346. http://gcc.gnu.org/PR11207
3565 347. http://gcc.gnu.org/PR11522
3566 348. http://gcc.gnu.org/PR11595
3567 349. http://gcc.gnu.org/PR11646
3568 350. http://gcc.gnu.org/PR11665
3569 351. http://gcc.gnu.org/PR11852
3570 352. http://gcc.gnu.org/PR11878
3571 353. http://gcc.gnu.org/PR11883
3572 354. http://gcc.gnu.org/PR11991
3573 355. http://gcc.gnu.org/PR12146
3574 356. http://gcc.gnu.org/PR12215
3575 357. http://gcc.gnu.org/PR12369
3576 358. http://gcc.gnu.org/PR12446
3577 359. http://gcc.gnu.org/PR12510
3578 360. http://gcc.gnu.org/PR12544
3579 361. http://gcc.gnu.org/PR9862
3580 362. http://gcc.gnu.org/PR10962
3581 363. http://gcc.gnu.org/PR11370
3582 364. http://gcc.gnu.org/PR11637
3583 365. http://gcc.gnu.org/PR11885
3584 366. http://gcc.gnu.org/PR12082
3585 367. http://gcc.gnu.org/PR12180
3586 368. http://gcc.gnu.org/PR12340
3587 369. http://gcc.gnu.org/PR3907
3588 370. http://gcc.gnu.org/PR5293
3589 371. http://gcc.gnu.org/PR5296
3590 372. http://gcc.gnu.org/PR7939
3591 373. http://gcc.gnu.org/PR8656
3592 374. http://gcc.gnu.org/PR10147
3593 375. http://gcc.gnu.org/PR11400
3594 376. http://gcc.gnu.org/PR11409
3595 377. http://gcc.gnu.org/PR11740
3596 378. http://gcc.gnu.org/PR11786
3597 379. http://gcc.gnu.org/PR11867
3598 380. http://gcc.gnu.org/PR11928
3599 381. http://gcc.gnu.org/PR12114
3600 382. http://gcc.gnu.org/PR12163
3601 383. http://gcc.gnu.org/PR12181
3602 384. http://gcc.gnu.org/PR12236
3603 385. http://gcc.gnu.org/PR12266
3604 386. http://gcc.gnu.org/PR12296
3605 387. http://gcc.gnu.org/PR12298
3606 388. http://gcc.gnu.org/PR12369
3607 389. http://gcc.gnu.org/PR12337
3608 390. http://gcc.gnu.org/PR12344
3609 391. http://gcc.gnu.org/PR12451
3610 392. http://gcc.gnu.org/PR12486
3611 393. http://gcc.gnu.org/PR8869
3612 394. http://gcc.gnu.org/PR9786
3613 395. http://gcc.gnu.org/PR11689
3614 396. http://gcc.gnu.org/PR12116
3615 397. http://gcc.gnu.org/PR12070
3616 398. http://gcc.gnu.org/PR11184
3617 399. http://gcc.gnu.org/PR11535
3618 400. http://gcc.gnu.org/PR11693
3619 401. http://gcc.gnu.org/PR12224
3620 402. http://gcc.gnu.org/PR11087
3621 403. http://gcc.gnu.org/PR11319
3622 404. http://gcc.gnu.org/PR11949
3623 405. http://gcc.gnu.org/PR11662
3624 406. http://gcc.gnu.org/PR11965
3625 407. http://gcc.gnu.org/PR12301
3626 408. http://gcc.gnu.org/PR11717
3627 409. http://gcc.gnu.org/PR11313
3628 410. http://gcc.gnu.org/PR11712
3629 411. http://gcc.gnu.org/PR12166
3630 412. http://gcc.gnu.org/PR12101
3631 413. http://gcc.gnu.org/PR10988
3632 414. http://gcc.gnu.org/PR11805
3633 415. http://gcc.gnu.org/PR11902
3634 416. http://gcc.gnu.org/PR11903
3635 417. http://gcc.gnu.org/bugzilla/
3636 418. http://gcc.gnu.org/PR11890
3637 419. http://gcc.gnu.org/PR12399
3638 420. http://gcc.gnu.org/PR13068
3639 421. http://gcc.gnu.org/PR10060
3640 422. http://gcc.gnu.org/PR10555
3641 423. http://gcc.gnu.org/PR10706
3642 424. http://gcc.gnu.org/PR11496
3643 425. http://gcc.gnu.org/PR11741
3644 426. http://gcc.gnu.org/PR12440
3645 427. http://gcc.gnu.org/PR12632
3646 428. http://gcc.gnu.org/PR12712
3647 429. http://gcc.gnu.org/PR12726
3648 430. http://gcc.gnu.org/PR12890
3649 431. http://gcc.gnu.org/PR12900
3650 432. http://gcc.gnu.org/PR13060
3651 433. http://gcc.gnu.org/PR13289
3652 434. http://gcc.gnu.org/PR13318
3653 435. http://gcc.gnu.org/PR13392
3654 436. http://gcc.gnu.org/PR13574
3655 437. http://gcc.gnu.org/PR13475
3656 438. http://gcc.gnu.org/PR13797
3657 439. http://gcc.gnu.org/PR13824
3658 440. http://gcc.gnu.org/PR8776
3659 441. http://gcc.gnu.org/PR10339
3660 442. http://gcc.gnu.org/PR11350
3661 443. http://gcc.gnu.org/PR12826
3662 444. http://gcc.gnu.org/PR12500
3663 445. http://gcc.gnu.org/PR12941
3664 446. http://gcc.gnu.org/PR12953
3665 447. http://gcc.gnu.org/PR13041
3666 448. http://gcc.gnu.org/PR13507
3667 449. http://gcc.gnu.org/PR13382
3668 450. http://gcc.gnu.org/PR13394
3669 451. http://gcc.gnu.org/PR13400
3670 452. http://gcc.gnu.org/PR13521
3671 453. http://gcc.gnu.org/PR2094
3672 454. http://gcc.gnu.org/PR2294
3673 455. http://gcc.gnu.org/PR5050
3674 456. http://gcc.gnu.org/PR9371
3675 457. http://gcc.gnu.org/PR9546
3676 458. http://gcc.gnu.org/PR10081
3677 459. http://gcc.gnu.org/PR10093
3678 460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
3679 461. http://gcc.gnu.org/PR10095
3680 462. http://gcc.gnu.org/PR11554
3681 463. http://gcc.gnu.org/PR12297
3682 464. http://gcc.gnu.org/PR12352
3683 465. http://gcc.gnu.org/PR12438
3684 466. http://gcc.gnu.org/PR12540
3685 467. http://gcc.gnu.org/PR12594
3686 468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
3687 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
3688 470. http://gcc.gnu.org/PR12657
3689 471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
3690 472. http://gcc.gnu.org/PR12696
3691 473. http://gcc.gnu.org/PR12815
3692 474. http://gcc.gnu.org/PR12862
3693 475. http://gcc.gnu.org/PR12926
3694 476. http://gcc.gnu.org/PR12967
3695 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
3696 478. http://gcc.gnu.org/PR12971
3697 479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
3698 480. http://gcc.gnu.org/PR13007
3699 481. http://gcc.gnu.org/PR13009
3700 482. http://gcc.gnu.org/PR13057
3701 483. http://gcc.gnu.org/PR13070
3702 484. http://gcc.gnu.org/PR13081
3703 485. http://gcc.gnu.org/PR13239
3704 486. http://gcc.gnu.org/PR13262
3705 487. http://gcc.gnu.org/PR13290
3706 488. http://gcc.gnu.org/PR13323
3707 489. http://gcc.gnu.org/PR13369
3708 490. http://gcc.gnu.org/PR13371
3709 491. http://gcc.gnu.org/PR13445
3710 492. http://gcc.gnu.org/PR13461
3711 493. http://gcc.gnu.org/PR13462
3712 494. http://gcc.gnu.org/PR13478
3713 495. http://gcc.gnu.org/PR13544
3714 496. http://gcc.gnu.org/PR13650
3715 497. http://gcc.gnu.org/PR13683
3716 498. http://gcc.gnu.org/PR13688
3717 499. http://gcc.gnu.org/PR13774
3718 500. http://gcc.gnu.org/PR13884
3719 501. http://gcc.gnu.org/PR10746
3720 502. http://gcc.gnu.org/PR11433
3721 503. http://gcc.gnu.org/PR12633
3722 504. http://gcc.gnu.org/PR13037
3723 505. http://gcc.gnu.org/PR13213
3724 506. http://gcc.gnu.org/PR4490
3725 507. http://gcc.gnu.org/PR12292
3726 508. http://gcc.gnu.org/PR12441
3727 509. http://gcc.gnu.org/PR12943
3728 510. http://gcc.gnu.org/PR13608
3729 511. http://gcc.gnu.org/PR11598
3730 512. http://gcc.gnu.org/PR11793
3731 513. http://gcc.gnu.org/PR12467
3732 514. http://gcc.gnu.org/PR12537
3733 515. http://gcc.gnu.org/PR12496
3734 516. http://gcc.gnu.org/PR12865
3735 517. http://gcc.gnu.org/PR13354
3736 518. http://gcc.gnu.org/PR10467
3737 519. http://gcc.gnu.org/PR11226
3738 520. http://gcc.gnu.org/PR11227
3739 521. http://gcc.gnu.org/PR12644
3740 522. http://gcc.gnu.org/PR13149
3741 523. http://gcc.gnu.org/PR12654
3742 524. http://gcc.gnu.org/PR12965
3743 525. http://gcc.gnu.org/PR13031
3744 526. http://gcc.gnu.org/PR11634
3745 527. http://gcc.gnu.org/PR12158
3746 528. http://gcc.gnu.org/PR11992
3747 529. http://gcc.gnu.org/PR9365
3748 530. http://gcc.gnu.org/PR10392
3749 531. http://gcc.gnu.org/PR11322
3750 532. http://gcc.gnu.org/PR13069
3751 533. http://gcc.gnu.org/PR13302
3752 534. http://gcc.gnu.org/PR13585
3753 535. http://gcc.gnu.org/PR8916
3754 536. http://gcc.gnu.org/PR11576
3755 537. http://gcc.gnu.org/PR13122
3756 538. http://gcc.gnu.org/PR13256
3757 539. http://gcc.gnu.org/PR13373
3758 540. http://gcc.gnu.org/PR12561
3759 541. http://gcc.gnu.org/PR6243
3760 542. http://gcc.gnu.org/PR11397
3761 543. http://gcc.gnu.org/PR12505
3762 544. http://gcc.gnu.org/PR13150
3763 545. http://gcc.gnu.org/PR12666
3764 546. http://gcc.gnu.org/PR12969
3765 547. http://gcc.gnu.org/PR10819
3766 548. http://gcc.gnu.org/PR11612
3767 549. http://gcc.gnu.org/PR13211
3768 550. mailto:gnu@gnu.org
3769 551. http://www.gnu.org/home.html#ContactInfo
3770 552. http://gcc.gnu.org/about.html
3771 553. http://gcc.gnu.org/onlinedocs/
3772 554. mailto:gcc-help@gcc.gnu.org
3773 555. mailto:gcc@gnu.org
3774 556. mailto:gcc@gcc.gnu.org
3775 557. http://gcc.gnu.org/lists.html
3776 558. http://validator.w3.org/check/referer
3777======================================================================
3778http://gcc.gnu.org/gcc-3.2/index.html
3779
3780                           GCC 3.2 Release Series
3781
3782   April 25, 2003
3783
3784   The  [1]GNU project and the GCC developers are pleased to announce the
3785   release of GCC 3.2.3.
3786
3787   The  purpose  of  the  GCC  3.2  release series is to provide a stable
3788   platform  for  OS  distributors to use building their next releases. A
3789   primary  objective  was  to stabilize the C++ ABI; we believe that the
3790   interface  to  the  compiler  and  the  C++  standard  library are now
3791   relatively stable.
3792
3793   Be  aware  that  C++  code compiled by GCC 3.2.x will (in general) not
3794   interoperate with code compiled by GCC 3.1.1 or earlier.
3795
3796   Please  refer  to our [2]detailed list of news, caveats, and bug-fixes
3797   for further information.
3798
3799Release History
3800
3801   GCC 3.2.3
3802          April 25, 2003 ([3]changes)
3803
3804   GCC 3.2.2
3805          February 5, 2003 ([4]changes)
3806
3807   GCC 3.2.1
3808          November 19, 2002 ([5]changes)
3809
3810   GCC 3.2
3811          August 14, 2002 ([6]changes)
3812
3813References and Acknowledgements
3814
3815   GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
3816   supports  several  other languages aside from C, it now stands for the
3817   GNU Compiler Collection.
3818
3819   A  list  of [7]successful builds is updated as new information becomes
3820   available.
3821
3822   The  GCC  developers would like to thank the numerous people that have
3823   contributed  new  features, improvements, bug fixes, and other changes
3824   as well as test results to GCC. This [8]amazing group of volunteers is
3825   what makes GCC successful.
3826
3827   For  additional  information  about  GCC  please  refer  to the [9]GCC
3828   project web site or contact the [10]GCC development mailing list.
3829
3830   To  obtain  GCC  please  use  [11]our mirror sites, one of the [12]GNU
3831   mirror sites, or [13]our CVS server.
3832     _________________________________________________________________
3833
3834   Please  send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
3835   are also [15]other ways to contact the FSF.
3836
3837   These pages are maintained by [16]the GCC team.
3838
3839
3840    For  questions  related  to the use of GCC, please consult these web
3841    pages    and    the    [17]GCC   manuals.   If   that   fails,   the
3842    [18]gcc-help@gcc.gnu.org mailing list might help.
3843    Please  send  comments on these web pages and the development of GCC
3844    to    our    developer    mailing   list   at   [19]gcc@gnu.org   or
3845    [20]gcc@gcc.gnu.org. All of our lists have [21]public archives.
3846
3847   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
3848   330, Boston, MA 02111, USA.
3849
3850   Verbatim  copying and distribution of this entire article is permitted
3851   in any medium, provided this notice is preserved.
3852
3853   Last modified 2004-08-06 [22]Valid XHTML 1.0
3854
3855References
3856
3857   1. http://www.gnu.org/
3858   2. http://gcc.gnu.org/gcc-3.2/changes.html
3859   3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
3860   4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2
3861   5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1
3862   6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2
3863   7. http://gcc.gnu.org/gcc-3.2/buildstat.html
3864   8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3865   9. http://gcc.gnu.org/index.html
3866  10. mailto:gcc@gcc.gnu.org
3867  11. http://gcc.gnu.org/mirrors.html
3868  12. http://www.gnu.org/order/ftp.html
3869  13. http://gcc.gnu.org/cvs.html
3870  14. mailto:gnu@gnu.org
3871  15. http://www.gnu.org/home.html#ContactInfo
3872  16. http://gcc.gnu.org/about.html
3873  17. http://gcc.gnu.org/onlinedocs/
3874  18. mailto:gcc-help@gcc.gnu.org
3875  19. mailto:gcc@gnu.org
3876  20. mailto:gcc@gcc.gnu.org
3877  21. http://gcc.gnu.org/lists.html
3878  22. http://validator.w3.org/check/referer
3879======================================================================
3880http://gcc.gnu.org/gcc-3.2/changes.html
3881
3882                           GCC 3.2 Release Series
3883                      Changes, New Features, and Fixes
3884
3885   The latest release in the 3.2 release series is [1]GCC 3.2.3.
3886
3887Caveats and New Features
3888
3889  Caveats
3890
3891     * The    C++    compiler    does   not   correctly   zero-initialize
3892       pointers-to-data members. You must explicitly initialize them. For
3893       example:    int    S::*m(0);   will   work,   but   depending   on
3894       default-initialization  to  zero will not work. This bug cannot be
3895       fixed  in  GCC 3.2 without inducing unacceptable risks. It will be
3896       fixed in GCC 3.3.
3897     * This  GCC release is based on the GCC 3.1 sourcebase, and thus has
3898       all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has
3899       a  number  of  C++  ABI fixes which make its C++ compiler generate
3900       binary  code which is incompatible with the C++ compilers found in
3901       earlier GCC releases, including GCC 3.1 and GCC 3.1.1.
3902
3903  Frontend Enhancements
3904
3905    C/C++/Objective-C
3906
3907     * The  method of constructing the list of directories to be searched
3908       for  header  files  has been revised. If a directory named by a -I
3909       option  is  a  standard  system  include  directory, the option is
3910       ignored  to  ensure  that  the  default  search  order  for system
3911       directories  and  the special treatment of system header files are
3912       not defeated.
3913     * The  C  and  Objective-C  compilers  no  longer accept the "Naming
3914       Types"  extension  (typedef foo = bar); it was already unavailable
3915       in  C++.  Code  which  uses  it will need to be changed to use the
3916       "typeof"  extension  instead:  typedef  typeof(bar)  foo. (We have
3917       removed  this extension without a period of deprecation because it
3918       has  caused  the  compiler  to  crash since version 3.0 and no one
3919       noticed  until  very  recently.  Thus  we  conclude  it  is not in
3920       widespread use.)
3921
3922    C++
3923
3924     * GCC 3.2 fixed serveral differences between the C++ ABI implemented
3925       in  GCC  and  the  multi-vendor standard, but more have been found
3926       since  the release. 3.2.1 adds a new warning, -Wabi, to warn about
3927       code  which  is  affected by these bugs. We will fix these bugs in
3928       some  future  release,  once  we  are confident that all have been
3929       found;  until then, it is our intention to make changes to the ABI
3930       only  if  they  are  necessary  for correct compilation of C++, as
3931       opposed to conformance to the ABI documents.
3932     * For  details  on  how  to  build  an  ABI  compliant  compiler for
3933       GNU/Linux systems, check the [3]common C++ ABI page.
3934
3935  New Targets and Target Specific Improvements
3936
3937    IA-32
3938
3939     * Fixed a number of bugs in SSE and MMX intrinsics.
3940     * Fixed  common  compiler  crashes  with SSE instruction set enabled
3941       (implied by -march=pentium3, pentium4, athlon-xp)
3942     * __m128 and __m128i is not 128bit aligned when used in structures.
3943
3944    x86-64
3945
3946     * A  bug  whereby the compiler could generate bad code for bzero has
3947       been fixed.
3948     * ABI fixes (implying ABI incompatibilities with previous version in
3949       some corner cases)
3950     * Fixed prefetch code generation
3951     _________________________________________________________________
3952
3953GCC 3.2.3
3954
3955   3.2.3  is  a bug fix release only; there are no new features that were
3956   not present in GCC 3.2.2.
3957
3958  Bug Fixes
3959
3960   This  section  lists the problem reports (PRs) from GCC's bug tracking
3961   system  that  are  known  to  be fixed in the 3.2.3 release. This list
3962   might not be complete (that is, it is possible that some PRs that have
3963   been  fixed  are  not  listed  here), and some of the titles have been
3964   changed to make them more clear.
3965
3966    Internal Compiler Errors (multi-platform)
3967
3968     * [4]3782:  (c++)  -quiet  -fstats  produces a segmentation fault in
3969       cc1plus
3970     * [5]6440: (c++) template specializations cause ICE
3971     * [6]7050: (c++) ICE on: (i ? get_string() : throw)
3972     * [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c)
3973     * [8]7982: (c++) ICE due to infinite recursion (using STL set)
3974     * [9]8068: exceedingly high (infinite) memory usage
3975     * [10]8178: ICE with __builtin_ffs
3976     * [11]8396: ICE in copy_to_mode_reg, in explow.c
3977     * [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c
3978     * [13]9768: ICE when optimizing inline code at -O2
3979     * [14]9798:     (c++)     Infinite     recursion    (segfault)    in
3980       cp/decl.c:push_using_directive with recursive using directives
3981     * [15]9799:  mismatching  structure initializer with nested flexible
3982       array member: ICE
3983     * [16]9928: ICE on duplicate enum declaration
3984     * [17]10114:  ICE  in  mem_loc_descriptor,  in  dwarf2out.c (affects
3985       sparc, alpha)
3986     * [18]10352: ICE in find_reloads_toplev
3987     * [19]10336: ICE with -Wunreachable-code
3988
3989    C/optimizer bugs:
3990
3991     * [20]8224: Incorrect joining of signed and unsigned division
3992     * [21]8613:   -O2  produces  wrong  code  with  builtin  strlen  and
3993       postincrements
3994     * [22]8828: gcc reports some code is unreachable when it is not
3995     * [23]9226: GCSE breaking argument passing
3996     * [24]9853: miscompilation of non-constant structure initializer
3997     * [25]9797: C99-style struct initializers are miscompiled
3998     * [26]9967:  Some  standard  C function calls should not be replaced
3999       when optimizing for size
4000     * [27]10116:  ce2: invalid merge of join_bb in the context of switch
4001       statements
4002     * [28]10171: wrong code for inlined function
4003     * [29]10175: -Wunreachable-code doesn't work for single lines
4004
4005    C++ compiler and library:
4006
4007     * [30]8316:  Confusing  diagnostic  for code that misuses conversion
4008       operators
4009     * [31]9169: filebuf output fails if codecvt<>::out returns noconv
4010     * [32]9420: incomplete type incorrectly reported
4011     * [33]9459:  typeof  in  return  type  specification of template not
4012       supported
4013     * [34]9507: filebuf::open handles ios_base::ate incorrectly
4014     * [35]9538: Out-of-bounds memory access in streambuf::sputbackc
4015     * [36]9602: Total confusion about template/friend/virtual/abstract
4016     * [37]9993:  destructor  not  called for local object created within
4017       and returned from infinite loop
4018     * [38]10167:    ieee_1003.1-2001   locale   specialisations   on   a
4019       glibc-2.3.2 system
4020
4021    Java compiler and library:
4022
4023     * [39]9652: libgcj build fails on irix6.5.1[78]
4024     * [40]10144:  gas  on  solaris  complains about bad .stabs lines for
4025       java, native as unaffected
4026
4027    x86-specific (Intel/AMD):
4028
4029     * [41]8746: gcc miscompiles Linux kernel ppa driver on x86
4030     * [42]9888: -mcpu=k6 -Os produces out of range loop instructions
4031     * [43]9638:  Cross-build  for  target i386-elf and i586-pc-linux-gnu
4032       failed
4033     * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib)
4034       failed
4035
4036    Sparc-specific:
4037
4038     * [45]7784: [Sparc] ICE in extract_insn, in recog.c
4039     * [46]7796:  sparc  extra failure with -m64 on execute/930921-1.c in
4040       unroll.c
4041     * [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc
4042     * [48]8366:  [Sparc]  C  testsuite  failure  with  -m64  -fpic -O in
4043       execute/loop-2d.c
4044     * [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc
4045     * [50]9414: Scheduling bug on Ultrasparc
4046     * [51]10067: GCC-3.2.2 outputs invalid asm on sparc64
4047
4048    m68k-specific:
4049
4050     * [52]7248: broken "inclusive or" code
4051     * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
4052
4053    PowerPC-specific:
4054
4055     * [54]9732: Wrong code with -O2 -fPIC
4056     * [55]10073: ICE: powerpc cannot split insn
4057
4058    Alpha-specific:
4059
4060     * [56]7702: optimization problem on a DEC alpha under OSF1
4061     * [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system
4062
4063    HP-specific:
4064
4065     * [58]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275)
4066     * [59]9953:  (ada)  gcc 3.2.x can't build 3.3-branch ada on HP-UX 10
4067       (missing symbol)
4068     * [60]10271:  Floating point args don't get reloaded across function
4069       calls with -O2
4070
4071    MIPS specific:
4072
4073     * [61]6362:  mips-irix6  gcc-3.1  C testsuite failure with -mips4 in
4074       compile/920501-4.c
4075
4076    CRIS specific:
4077
4078     * [62]10377: gcc-3.2.2 creates bad assembler code for cris
4079
4080    Miscellaneous and minor bugs:
4081
4082     * [63]6955: collect2 says "core dumped" when there is no core
4083     _________________________________________________________________
4084
4085GCC 3.2.2
4086
4087   Beginning  with  3.2.2,  GCC's  Makefile suite supports redirection of
4088   make  install  by means of the DESTDIR variable. Parts of the GCC tree
4089   have  featured  that support long before, but now it is available even
4090   from the top level.
4091
4092   Other than that, GCC 3.2.2 is a bug fix release only; there are no new
4093   features that were not present in GCC 3.2.1.
4094
4095  Bug Fixes
4096
4097   On  the  following  i386-based  systems GCC 3.2.1 broke the C ABI wrt.
4098   functions  returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped
4099   with  FreeBSD  5.0  does  not have this problem), Interix, a.out-based
4100   Linux  and  NetBSD,  OpenBSD,  and  Darwin. GCC 3.2.2 reverts this ABI
4101   change,  and  thus  restores  ABI-compatibility with previous releases
4102   (except GCC 3.2.1) on these platforms.
4103
4104   This  section  lists the problem reports (PRs) from GCC's bug tracking
4105   system  that  are  known  to  be fixed in the 3.2.2 release. This list
4106   might not be complete (that is, it is possible that some PRs that have
4107   been  fixed  are  not  listed  here)  and some of the titles have been
4108   changed to make them more clear.
4109
4110    Internal Compiler Errors (multi-platform)
4111
4112     * [64]5919:  (c++)  ICE  when  passing  variable  array  to template
4113       function
4114     * [65]7129:  (c++)  ICE  with  min/max assignment operators (<?= and
4115       >?=)
4116     * [66]7507:  ICE  with  -O2  when  address  of  called function is a
4117       complicated expression
4118     * [67]7622:  ICE  with nested inline functions if function's address
4119       is taken
4120     * [68]7681:  (fortran)  ICE in compensate_edge, in reg-stack.c (also
4121       PR [69]9258)
4122     * [70]8031:  (c++)  ICE  in  code comparing typeids and casting from
4123       virtual base
4124     * [71]8275: ICE in simplify_subreg
4125     * [72]8332: (c++) builtin strlen/template interaction causes ICE
4126     * [73]8372: (c++) ICE on explicit call of destructor
4127     * [74]8439: (c, not c++) empty struct causes ICE
4128     * [75]8442: (c++) ICE with nested template classes
4129     * [76]8518: ICE when compiling mplayer ("extern inline" issue)
4130     * [77]8615:  (c++) ICE with out-of-range character constant template
4131       argument
4132     * [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307
4133     * [79]8799: (c++) ICE: error reporting routines re-entered
4134     * [80]9328: (c++) ICE with typeof(X) for overloaded X
4135     * [81]9465: (preprocessor) cpp -traditional ICE on null bytes
4136
4137    C++ (compiler and library) bugs
4138
4139     * [82]47: scoping in nested classes is broken
4140     * [83]6745: problems with iostream rdbuf() member function
4141     * [84]8214:  conversion  from  const  char* const to char* sometimes
4142       accepted illegally
4143     * [85]8493:  builtin  strlen  and  overload  resolution (same bug as
4144       [86]8332)
4145     * [87]8503: strange behaviour of function types
4146     * [88]8727:  compiler  confused  by  inheritance  from  an anonymous
4147       struct
4148     * [89]7445:    poor   performance   of   std::locale::classic()   in
4149       multi-threaded applications
4150     * [90]8230: mishandling of overflow in vector<T>::resize
4151     * [91]8399: sync_with_stdio(false) breaks unformatted input
4152     * [92]8662:  illegal  access  of  private member of unnamed class is
4153       accepted
4154     * [93]8707: "make distclean" fails in libstdc++-v3 directory
4155     * [94]8708: __USE_MALLOC doesn't work
4156     * [95]8790: Use of non-thread-safe strtok in src/localename.cc
4157     * [96]8887: Bug in date formats with --enable-clocale=generic
4158     * [97]9076: Call Frame Instructions are not handled correctly during
4159       unwind operation
4160     * [98]9151: std::setprecision limited to 16 digits when outputting a
4161       double to a stream
4162     * [99]9168: codecvt<char, char, mbstate_t> overwrites output buffers
4163     * [100]9269:  libstdc++ headers: explicit specialization of function
4164       must precede its first use
4165     * [101]9322:  return  value of basic_streambuf<>::getloc affected by
4166       locale::global
4167     * [102]9433: segfault in runtime support for dynamic_cast
4168
4169    C and optimizer bugs
4170
4171     * [103]8032:  GCC  incorrectly  initializes static structs that have
4172       flexible arrays
4173     * [104]8639: simple arithmetic expression broken
4174     * [105]8794: optimization improperly eliminates certain expressions
4175     * [106]8832: traditional "asm volatile" code is illegally optimized
4176     * [107]8988:  loop  optimizer  bug: with -O2, code is generated that
4177       segfaults (found on i386, bug present for all platforms)
4178     * [108]9492: structure copy clobbers subsequent stores to structure
4179
4180    Objective-C bugs
4181
4182     * [109]9267:   Objective-C  parser  won't  build  with  newer  bison
4183       versions (e.g. 1.875)
4184
4185    Ada bugs
4186
4187     * [110]8344:  Ada build problem due to conflict between gcc/final.o,
4188       gcc/ada/final.o
4189
4190    Preprocessor bugs
4191
4192     * [111]8524: _Pragma within macros is improperly expanded
4193     * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
4194       -fshort-wchar
4195
4196    ARM-specific
4197
4198     * [113]9090: arm ICE with >= -O2; regression from gcc-2.95
4199
4200    x86-specific (Intel/AMD)
4201
4202     * [114]8588:   ICE   in   extract_insn,   at   recog.c:NNNN   (shift
4203       instruction)
4204     * [115]8599: loop unroll bug with -march=k6-3
4205     * [116]9506:  ABI  breakage  in  structure  return  (affects BSD and
4206       Cygwin, but not GNU/Linux)
4207
4208    FreeBSD 5.0 specific
4209
4210     * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
4211
4212    RTEMS-specific
4213
4214     * [118]9292: hppa1.1-rtems configurery problems
4215     * [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug
4216     * [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue
4217     * [121]9296: gthr-rtems regression
4218     * [122]9316: powerpc-rtems: extending multilibs
4219
4220    HP-PA specific
4221
4222     * [123]9493: ICE with -O2 when building a simple function
4223
4224    Documentation
4225
4226     * [124]7341: hyperlink to gcov in GCC documentation doesn't work
4227     * [125]8947: Please add a warning about "-malign-double" in docs
4228     * [126]7448, [127]8882: typo cleanups
4229     _________________________________________________________________
4230
4231GCC 3.2.1
4232
4233   3.2.1  adds  a  new  warning,  -Wabi.  This  option warns when GNU C++
4234   generates  code  that  is  known  not to be binary-compatible with the
4235   vendor-neutral  ia32/ia64 ABI. Please consult the GCC manual, included
4236   in the distribution, for details.
4237
4238   This  release  also  removes an old GCC extension, "naming types", and
4239   the  documentation now directs users to use a different GCC extension,
4240   __typeof__,  instead.  The  feature  had  evidently  been broken for a
4241   while.
4242
4243   Otherwise,  3.2.1  is a bug fix release only; other than bug fixes and
4244   the new warning there are no new features that were not present in GCC
4245   3.2.
4246
4247   In  addition,  the  previous fix for [128]PR 7445 (poor performance of
4248   std::locale::classic()  in  multi-threaded  applications) was reverted
4249   ("unfixed"), because the "fix" was not thread-safe.
4250
4251  Bug Fixes
4252
4253   This  section  lists the problem reports (PRs) from GCC's bug tracking
4254   system  that  are  known  to  be fixed in the 3.2.1 release. This list
4255   might not be complete (that is, it is possible that some PRs that have
4256   been  fixed  are  not  listed here). As you can see, the number of bug
4257   fixes  is  quite  large,  so  it is strongly recommended that users of
4258   earlier GCC 3.x releases upgrade to GCC 3.2.1.
4259
4260    Internal Compiler Errors (multi-platform)
4261
4262     * [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c
4263     * [130]5661:  (c++)  ICE  instantiating template on array of unknown
4264       size (bad code)
4265     * [131]6419:  (c++)  ICE in make_decl_rtl for "longest" attribute on
4266       64-bit platforms
4267     * [132]6994: (c++) ICE in find_function_data
4268     * [133]7150: preprocessor: GCC -dM -E gives an ICE
4269     * [134]7160: ICE when optimizing branches without a return value
4270     * [135]7228:  (c++)  ICE  when  using  member  template and template
4271       function
4272     * [136]7266: (c++) ICE with -pedantic on missing typename
4273     * [137]7353: ICE from use of "Naming Types" extension, see above
4274     * [138]7411: ICE in instantiate_virtual_regs_1, in function.c
4275     * [139]7478: (c++) ICE on static_cast inside template
4276     * [140]7526:  preprocessor  core  dump  when _Pragma implies #pragma
4277       dependency
4278     * [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803
4279       is a duplicate)
4280     * [143]7754: (c++) ICE on union with template parameter
4281     * [144]7788:  (c++)  redeclaring a definition as an incomplete class
4282       causes ICE
4283     * [145]8031: (c++) ICE in comptypes, in cp/typeck.c
4284     * [146]8055:  preprocessor  dies  with  SIG11  when building FreeBSD
4285       kernel
4286     * [147]8067:  (c++)  ICE  due  to  mishandling  of  __FUNCTION__ and
4287       related variables
4288     * [148]8134: (c++) ICE in force_store_init_value on legal code
4289     * [149]8149: (c++) ICE on incomplete type
4290     * [150]8160:  (c++)  ICE in build_modify_expr, in cp/typeck.c: array
4291       initialization
4292
4293    C++ (compiler and library) bugs
4294
4295     * [151]5607: No pointer adjustment in covariant return types
4296     * [152]6579:  Infinite  loop  with  statement  expressions in member
4297       initialization
4298     * [153]6803: Default copy constructor bug in GCC 3.1
4299     * [154]7176: g++ confused by friend and static member with same name
4300     * [155]7188:  Segfault with template class and recursive (incorrect)
4301       initializer list
4302     * [156]7306:  Regression: GCC 3.x fails to compile code with virtual
4303       inheritance if a method has a variable number of arguments
4304     * [157]7461:  ctype<char>::classic_table()  returns  offset array on
4305       Cygwin
4306     * [158]7524: f(const float arg[3]) fails
4307     * [159]7584: Erroneous ambiguous base error on using declaration
4308     * [160]7676: Member template overloading problem
4309     * [161]7679: infinite loop when a right parenthesis is missing
4310     * [162]7811: default locale not taken from environment
4311     * [163]7961:   compare(   char   *)   implemented   incorrectly   in
4312       basic_string<>
4313     * [164]8071:  basic_ostream::operator<<(streambuf*) loops forever if
4314       streambuf::underflow()   leaves   gptr()  NULL  (dups:  [165]8127,
4315       [166]6745)
4316     * [167]8096:   deque::at()   throws   std::range_error   instead  of
4317       std::out_of_range
4318     * [168]8127: cout << cin.rdbuf() infinite loop
4319     * [169]8218:  Excessively  large  memory  consumed  for classes with
4320       large array members
4321     * [170]8287:  GCC  3.2:  Destructor called for non-constructed local
4322       object
4323     * [171]8347:  empty  vector range used in string construction causes
4324       core dump
4325     * [172]8348:  fail() flag is set in istringstream when eof() flag is
4326       set
4327     * [173]8391: regression: infinite loop in cp/decl2.c(finish_file)
4328
4329    C and optimizer bugs
4330
4331     * [174]6627:  -fno-align-functions  doesn't seem to disable function
4332       alignment
4333     * [175]6631: life_analysis misoptimizes code to initialize fields of
4334       a structure
4335     * [176]7102: unsigned char division results in floating exception
4336     * [177]7120:   Run   once   loop   should   *always*   be   unrolled
4337       (pessimization)
4338     * [178]7209: Bug involving array referencing and ?: operator
4339     * [179]7515: invalid inlining of global function with -O3
4340     * [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test
4341     * [181]8467: bug in sibling call optimization
4342
4343    Preprocessor bugs
4344
4345     * [182]4890:   incorrect   line   markers   from   the   traditional
4346       preprocessor
4347     * [183]7357:  -M  option  omits  system headers files (making it the
4348       same as -MM)
4349     * [184]7358: Changes to Sun's make Dependencies
4350     * [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as
4351       C headers
4352     * [186]7862: Interrupting GCC -MD removes .d file but not .o
4353     * [187]8190: Failed compilation deletes -MD dependency file
4354     * [188]8524: _Pragma within macro is improperly expanded
4355
4356    x86 specific (Intel/AMD)
4357
4358     * [189]5351:   (i686-only)  function  pass-by-value  structure  copy
4359       corrupts stack ([190]7591 is a duplicate)
4360     * [191]6845,    [192]7034,    [193]7124,   [194]7174:   ICE's   with
4361       -march=pentium3/pentium2/athlon (these are all the same underlying
4362       bug, in MMX register use)
4363     * [195]7134,  [196]7375,  [197]7390:  ICE  with -march=athlon (maybe
4364       same as above?)
4365     * [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken
4366     * [199]6981: wrong code in 64-bit manipulation on x86
4367     * [200]7242:      GCC      -mcpu=pentium[23]      doesn't     define
4368       __tune_pentiumpro__ macro
4369     * [201]7396:  ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE
4370       intrinsics are broken
4371     * [202]7630:  GCC  3.2  breaks  on  Mozilla  1.0's  JS  sources with
4372       -march=pentium4
4373     * [203]7693: Typo in i386 mmintrin.h header
4374     * [204]7723: ICE - Pentium3 sse - GCC 3.2
4375     * [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse
4376     * [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3
4377
4378    PowerPC specific
4379
4380     * [207]5967: GCC bug when profiling nested functions on powerpc
4381     * [208]6984:  wrong  code  generated with -O2, -O3, -Os for do-while
4382       loop on PowerPC
4383     * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
4384     * [210]7130:  miscompiled  code  for  GCC-3.1  in powerpc linux with
4385       -funroll-all-loops
4386     * [211]7133: PowerPC ICE: unrecognizable insn
4387     * [212]7380: ICE in extract_insn, at recog.c:2148
4388     * [213]8252: ICE on Altivec code with optimization turned on
4389     * [214]8451: Altivec ICE in GCC 3.2
4390
4391    HP/PA specific
4392
4393     * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa
4394
4395    SPARC specific
4396
4397     * [216]6668: when using --disable-multilib, libgcc_s.so is installed
4398       in the wrong place on sparc-solaris
4399     * [217]7151: ICE when compiling for UltraSPARC
4400     * [218]7335:  SPARC:  ICE  in verify_wide_reg (flow.c:557) with long
4401       double and -O1
4402     * [219]7842: [REGRESSION] SPARC code gen bug
4403
4404    ARM specific
4405
4406     * [220]7856: [arm] invalid offset in constant pool reference
4407     * [221]7967: optimization produces wrong code (ARM)
4408
4409    Alpha specific
4410
4411     * [222]7374: __builtin_fabsl broken on alpha
4412
4413    IBM s390 specific
4414
4415     * [223]7370: ICE in fixup_var_refs_1 on s390x
4416     * [224]7409: loop optimization bug on s390x-linux-gnu
4417     * [225]8232: s390x: ICE when using bcmp with int length argument
4418
4419    SCO specific
4420
4421     * [226]7623: SCO OpenServer build fails with machmode.def: undefined
4422       symbol: BITS_PER_UNIT
4423
4424    m68k/Coldfire specific
4425
4426     * [227]8314:  crtbegin,  crtend  need  to  be  multilib'ed  for this
4427       platform
4428
4429    Documentation
4430
4431     * [228]761: Document some undocumented options
4432     * [229]5610:  Fix  documentation  about  invoking  SSE  instructions
4433       (-mfpmath=sse)
4434     * [230]7484: List -Wmissing-declarations as C-only option
4435     * [231]7531: -mcmodel not documented for x86-64
4436     * [232]8120: Update documentation of bad use of ##
4437     _________________________________________________________________
4438
4439GCC 3.2
4440
4441   3.2  is  a  small  bug  fix  release,  but  there  is  a change to the
4442   application  binary  interface  (ABI),  hence the change to the second
4443   part of the version number.
4444
4445   The main purpose of the 3.2 release is to correct a couple of problems
4446   in  the  C++  ABI,  with the intention of providing a stable interface
4447   going forward.  Accordingly, 3.2 is only a small change to 3.1.1.
4448
4449  Bug Fixes
4450
4451    C++
4452
4453     * [233]7320: g++ 3.2 relocation problem
4454     * [234]7470:  vtable:  virtual  function pointers not in declaration
4455       order
4456
4457    libstdc++
4458
4459     * [235]6410: Trouble with non-ASCII monetary symbols and wchar_t
4460     * [236]6503,   [237]6642,  [238]7186:  Problems  with  comparing  or
4461       subtracting various types of const and non-const iterators
4462     * [239]7216: ambiguity with basic_iostream::traits_type
4463     * [240]7220: problem with basic_istream::ignore(0,delimiter)
4464     * [241]7222: locale::operator==() doesn't work on std::locale("")
4465     * [242]7286: placement operator delete issue
4466     * [243]7442: cxxabi.h does not match the C++ ABI
4467     * [244]7445:   poor   performance   of   std::locale::classic()   in
4468       multi-threaded applications
4469
4470    x86-64 specific
4471
4472     * [245]7291: off-by-one in generated inline bzero code for x86-64
4473     _________________________________________________________________
4474
4475   Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There
4476   are also [247]other ways to contact the FSF.
4477
4478   These pages are maintained by [248]the GCC team.
4479
4480
4481    For  questions  related  to the use of GCC, please consult these web
4482    pages    and    the   [249]GCC   manuals.   If   that   fails,   the
4483    [250]gcc-help@gcc.gnu.org mailing list might help.
4484    Please  send  comments on these web pages and the development of GCC
4485    to    our    developer   mailing   list   at   [251]gcc@gnu.org   or
4486    [252]gcc@gcc.gnu.org. All of our lists have [253]public archives.
4487
4488   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
4489   330, Boston, MA 02111, USA.
4490
4491   Verbatim  copying and distribution of this entire article is permitted
4492   in any medium, provided this notice is preserved.
4493
4494   Last modified 2004-08-30 [254]Valid XHTML 1.0
4495
4496References
4497
4498   1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
4499   2. http://gcc.gnu.org/gcc-3.1/changes.html
4500   3. http://gcc.gnu.org/gcc-3.2/c++-abi.html
4501   4. http://gcc.gnu.org/PR3782
4502   5. http://gcc.gnu.org/PR6440
4503   6. http://gcc.gnu.org/PR7050
4504   7. http://gcc.gnu.org/PR7741
4505   8. http://gcc.gnu.org/PR7982
4506   9. http://gcc.gnu.org/PR8068
4507  10. http://gcc.gnu.org/PR8178
4508  11. http://gcc.gnu.org/PR8396
4509  12. http://gcc.gnu.org/PR8674
4510  13. http://gcc.gnu.org/PR9768
4511  14. http://gcc.gnu.org/PR9798
4512  15. http://gcc.gnu.org/PR9799
4513  16. http://gcc.gnu.org/PR9928
4514  17. http://gcc.gnu.org/PR10114
4515  18. http://gcc.gnu.org/PR10352
4516  19. http://gcc.gnu.org/PR10336
4517  20. http://gcc.gnu.org/PR8224
4518  21. http://gcc.gnu.org/PR8613
4519  22. http://gcc.gnu.org/PR8828
4520  23. http://gcc.gnu.org/PR9226
4521  24. http://gcc.gnu.org/PR9853
4522  25. http://gcc.gnu.org/PR9797
4523  26. http://gcc.gnu.org/PR9967
4524  27. http://gcc.gnu.org/PR10116
4525  28. http://gcc.gnu.org/PR10171
4526  29. http://gcc.gnu.org/PR10175
4527  30. http://gcc.gnu.org/PR8316
4528  31. http://gcc.gnu.org/PR9169
4529  32. http://gcc.gnu.org/PR9420
4530  33. http://gcc.gnu.org/PR9459
4531  34. http://gcc.gnu.org/PR9507
4532  35. http://gcc.gnu.org/PR9538
4533  36. http://gcc.gnu.org/PR9602
4534  37. http://gcc.gnu.org/PR9993
4535  38. http://gcc.gnu.org/PR10167
4536  39. http://gcc.gnu.org/PR9652
4537  40. http://gcc.gnu.org/PR10144
4538  41. http://gcc.gnu.org/PR8746
4539  42. http://gcc.gnu.org/PR9888
4540  43. http://gcc.gnu.org/PR9638
4541  44. http://gcc.gnu.org/PR9954
4542  45. http://gcc.gnu.org/PR7784
4543  46. http://gcc.gnu.org/PR7796
4544  47. http://gcc.gnu.org/PR8281
4545  48. http://gcc.gnu.org/PR8366
4546  49. http://gcc.gnu.org/PR8726
4547  50. http://gcc.gnu.org/PR9414
4548  51. http://gcc.gnu.org/PR10067
4549  52. http://gcc.gnu.org/PR7248
4550  53. http://gcc.gnu.org/PR8343
4551  54. http://gcc.gnu.org/PR9732
4552  55. http://gcc.gnu.org/PR10073
4553  56. http://gcc.gnu.org/PR7702
4554  57. http://gcc.gnu.org/PR9671
4555  58. http://gcc.gnu.org/PR8694
4556  59. http://gcc.gnu.org/PR9953
4557  60. http://gcc.gnu.org/PR10271
4558  61. http://gcc.gnu.org/PR6362
4559  62. http://gcc.gnu.org/PR10377
4560  63. http://gcc.gnu.org/PR6955
4561  64. http://gcc.gnu.org/PR5919
4562  65. http://gcc.gnu.org/PR7129
4563  66. http://gcc.gnu.org/PR7507
4564  67. http://gcc.gnu.org/PR7622
4565  68. http://gcc.gnu.org/PR7681
4566  69. http://gcc.gnu.org/PR9528
4567  70. http://gcc.gnu.org/PR8031
4568  71. http://gcc.gnu.org/PR8275
4569  72. http://gcc.gnu.org/PR8332
4570  73. http://gcc.gnu.org/PR8372
4571  74. http://gcc.gnu.org/PR8439
4572  75. http://gcc.gnu.org/PR8442
4573  76. http://gcc.gnu.org/PR8518
4574  77. http://gcc.gnu.org/PR8615
4575  78. http://gcc.gnu.org/PR8663
4576  79. http://gcc.gnu.org/PR8799
4577  80. http://gcc.gnu.org/PR9328
4578  81. http://gcc.gnu.org/PR9465
4579  82. http://gcc.gnu.org/PR47
4580  83. http://gcc.gnu.org/PR6745
4581  84. http://gcc.gnu.org/PR8214
4582  85. http://gcc.gnu.org/PR8493
4583  86. http://gcc.gnu.org/PR8332
4584  87. http://gcc.gnu.org/PR8503
4585  88. http://gcc.gnu.org/PR8727
4586  89. http://gcc.gnu.org/PR7445
4587  90. http://gcc.gnu.org/PR8230
4588  91. http://gcc.gnu.org/PR8399
4589  92. http://gcc.gnu.org/PR8662
4590  93. http://gcc.gnu.org/PR8707
4591  94. http://gcc.gnu.org/PR8708
4592  95. http://gcc.gnu.org/PR8790
4593  96. http://gcc.gnu.org/PR8887
4594  97. http://gcc.gnu.org/PR9076
4595  98. http://gcc.gnu.org/PR9151
4596  99. http://gcc.gnu.org/PR9168
4597 100. http://gcc.gnu.org/PR9269
4598 101. http://gcc.gnu.org/PR9322
4599 102. http://gcc.gnu.org/PR9433
4600 103. http://gcc.gnu.org/PR8032
4601 104. http://gcc.gnu.org/PR8639
4602 105. http://gcc.gnu.org/PR8794
4603 106. http://gcc.gnu.org/PR8832
4604 107. http://gcc.gnu.org/PR8988
4605 108. http://gcc.gnu.org/PR9492
4606 109. http://gcc.gnu.org/PR9267
4607 110. http://gcc.gnu.org/PR8344
4608 111. http://gcc.gnu.org/PR8524
4609 112. http://gcc.gnu.org/PR8880
4610 113. http://gcc.gnu.org/PR9090
4611 114. http://gcc.gnu.org/PR8588
4612 115. http://gcc.gnu.org/PR8599
4613 116. http://gcc.gnu.org/PR9506
4614 117. http://gcc.gnu.org/PR9484
4615 118. http://gcc.gnu.org/PR9292
4616 119. http://gcc.gnu.org/PR9293
4617 120. http://gcc.gnu.org/PR9295
4618 121. http://gcc.gnu.org/PR9296
4619 122. http://gcc.gnu.org/PR9316
4620 123. http://gcc.gnu.org/PR9493
4621 124. http://gcc.gnu.org/PR7341
4622 125. http://gcc.gnu.org/PR8947
4623 126. http://gcc.gnu.org/PR7448
4624 127. http://gcc.gnu.org/PR8882
4625 128. http://gcc.gnu.org/PR7445
4626 129. http://gcc.gnu.org/PR2521
4627 130. http://gcc.gnu.org/PR5661
4628 131. http://gcc.gnu.org/PR6419
4629 132. http://gcc.gnu.org/PR6994
4630 133. http://gcc.gnu.org/PR7150
4631 134. http://gcc.gnu.org/PR7160
4632 135. http://gcc.gnu.org/PR7228
4633 136. http://gcc.gnu.org/PR7266
4634 137. http://gcc.gnu.org/PR7353
4635 138. http://gcc.gnu.org/PR7411
4636 139. http://gcc.gnu.org/PR7478
4637 140. http://gcc.gnu.org/PR7526
4638 141. http://gcc.gnu.org/PR7721
4639 142. http://gcc.gnu.org/PR7803
4640 143. http://gcc.gnu.org/PR7754
4641 144. http://gcc.gnu.org/PR7788
4642 145. http://gcc.gnu.org/PR8031
4643 146. http://gcc.gnu.org/PR8055
4644 147. http://gcc.gnu.org/PR8067
4645 148. http://gcc.gnu.org/PR8134
4646 149. http://gcc.gnu.org/PR8149
4647 150. http://gcc.gnu.org/PR8160
4648 151. http://gcc.gnu.org/PR5607
4649 152. http://gcc.gnu.org/PR6579
4650 153. http://gcc.gnu.org/PR6803
4651 154. http://gcc.gnu.org/PR7176
4652 155. http://gcc.gnu.org/PR7188
4653 156. http://gcc.gnu.org/PR7306
4654 157. http://gcc.gnu.org/PR7461
4655 158. http://gcc.gnu.org/PR7524
4656 159. http://gcc.gnu.org/PR7584
4657 160. http://gcc.gnu.org/PR7676
4658 161. http://gcc.gnu.org/PR7679
4659 162. http://gcc.gnu.org/PR7811
4660 163. http://gcc.gnu.org/PR7961
4661 164. http://gcc.gnu.org/PR8071
4662 165. http://gcc.gnu.org/PR8127
4663 166. http://gcc.gnu.org/PR6745
4664 167. http://gcc.gnu.org/PR8096
4665 168. http://gcc.gnu.org/PR8127
4666 169. http://gcc.gnu.org/PR8218
4667 170. http://gcc.gnu.org/PR8287
4668 171. http://gcc.gnu.org/PR8347
4669 172. http://gcc.gnu.org/PR8348
4670 173. http://gcc.gnu.org/PR8391
4671 174. http://gcc.gnu.org/PR6627
4672 175. http://gcc.gnu.org/PR6631
4673 176. http://gcc.gnu.org/PR7102
4674 177. http://gcc.gnu.org/PR7120
4675 178. http://gcc.gnu.org/PR7209
4676 179. http://gcc.gnu.org/PR7515
4677 180. http://gcc.gnu.org/PR7814
4678 181. http://gcc.gnu.org/PR8467
4679 182. http://gcc.gnu.org/PR4890
4680 183. http://gcc.gnu.org/PR7357
4681 184. http://gcc.gnu.org/PR7358
4682 185. http://gcc.gnu.org/PR7602
4683 186. http://gcc.gnu.org/PR7862
4684 187. http://gcc.gnu.org/PR8190
4685 188. http://gcc.gnu.org/PR8524
4686 189. http://gcc.gnu.org/PR5351
4687 190. http://gcc.gnu.org/PR7591
4688 191. http://gcc.gnu.org/PR6845
4689 192. http://gcc.gnu.org/PR7034
4690 193. http://gcc.gnu.org/PR7124
4691 194. http://gcc.gnu.org/PR7174
4692 195. http://gcc.gnu.org/PR7134
4693 196. http://gcc.gnu.org/PR7375
4694 197. http://gcc.gnu.org/PR7390
4695 198. http://gcc.gnu.org/PR6890
4696 199. http://gcc.gnu.org/PR6981
4697 200. http://gcc.gnu.org/PR7242
4698 201. http://gcc.gnu.org/PR7396
4699 202. http://gcc.gnu.org/PR7630
4700 203. http://gcc.gnu.org/PR7693
4701 204. http://gcc.gnu.org/PR7723
4702 205. http://gcc.gnu.org/PR7951
4703 206. http://gcc.gnu.org/PR8146
4704 207. http://gcc.gnu.org/PR5967
4705 208. http://gcc.gnu.org/PR6984
4706 209. http://gcc.gnu.org/PR7114
4707 210. http://gcc.gnu.org/PR7130
4708 211. http://gcc.gnu.org/PR7133
4709 212. http://gcc.gnu.org/PR7380
4710 213. http://gcc.gnu.org/PR8252
4711 214. http://gcc.gnu.org/PR8451
4712 215. http://gcc.gnu.org/PR7250
4713 216. http://gcc.gnu.org/PR6668
4714 217. http://gcc.gnu.org/PR7151
4715 218. http://gcc.gnu.org/PR7335
4716 219. http://gcc.gnu.org/PR7842
4717 220. http://gcc.gnu.org/PR7856
4718 221. http://gcc.gnu.org/PR7967
4719 222. http://gcc.gnu.org/PR7374
4720 223. http://gcc.gnu.org/PR7370
4721 224. http://gcc.gnu.org/PR7409
4722 225. http://gcc.gnu.org/PR8232
4723 226. http://gcc.gnu.org/PR7623
4724 227. http://gcc.gnu.org/PR8314
4725 228. http://gcc.gnu.org/PR761
4726 229. http://gcc.gnu.org/PR5610
4727 230. http://gcc.gnu.org/PR7484
4728 231. http://gcc.gnu.org/PR7531
4729 232. http://gcc.gnu.org/PR8120
4730 233. http://gcc.gnu.org/PR7320
4731 234. http://gcc.gnu.org/PR7470
4732 235. http://gcc.gnu.org/PR6410
4733 236. http://gcc.gnu.org/PR6503
4734 237. http://gcc.gnu.org/PR6642
4735 238. http://gcc.gnu.org/PR7186
4736 239. http://gcc.gnu.org/PR7216
4737 240. http://gcc.gnu.org/PR7220
4738 241. http://gcc.gnu.org/PR7222
4739 242. http://gcc.gnu.org/PR7286
4740 243. http://gcc.gnu.org/PR7442
4741 244. http://gcc.gnu.org/PR7445
4742 245. http://gcc.gnu.org/PR7291
4743 246. mailto:gnu@gnu.org
4744 247. http://www.gnu.org/home.html#ContactInfo
4745 248. http://gcc.gnu.org/about.html
4746 249. http://gcc.gnu.org/onlinedocs/
4747 250. mailto:gcc-help@gcc.gnu.org
4748 251. mailto:gcc@gnu.org
4749 252. mailto:gcc@gcc.gnu.org
4750 253. http://gcc.gnu.org/lists.html
4751 254. http://validator.w3.org/check/referer
4752======================================================================
4753http://gcc.gnu.org/gcc-3.1/index.html
4754
4755                                  GCC 3.1
4756
4757   July 27, 2002
4758
4759   The  [1]GNU project and the GCC developers are pleased to announce the
4760   release of GCC 3.1.1.
4761
4762   The links below still apply to GCC 3.1.1.
4763
4764   May 15, 2002
4765
4766   The  [2]GNU project and the GCC developers are pleased to announce the
4767   release of GCC 3.1.
4768
4769   GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
4770   supports  several  other languages aside from C, it now stands for the
4771   GNU Compiler Collection.
4772
4773   A  list  of [3]successful builds is updated as new information becomes
4774   available.
4775
4776   The  GCC  developers would like to thank the numerous people that have
4777   contributed  [4]new  features,  improvements,  bug  fixes,  and  other
4778   changes  as  well  as  test  results  to GCC. This [5]amazing group of
4779   volunteers is what makes GCC successful.
4780
4781   For  additional  information  about  GCC  please  refer  to the [6]GCC
4782   project web site or contact the [7]GCC development mailing list.
4783
4784   To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
4785   sites, or [10]our CVS server.
4786     _________________________________________________________________
4787     _________________________________________________________________
4788
4789   Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
4790   are also [12]other ways to contact the FSF.
4791
4792   These pages are maintained by [13]the GCC team.
4793
4794
4795    For  questions  related  to the use of GCC, please consult these web
4796    pages    and    the    [14]GCC   manuals.   If   that   fails,   the
4797    [15]gcc-help@gcc.gnu.org mailing list might help.
4798    Please  send  comments on these web pages and the development of GCC
4799    to    our    developer    mailing   list   at   [16]gcc@gnu.org   or
4800    [17]gcc@gcc.gnu.org. All of our lists have [18]public archives.
4801
4802   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
4803   330, Boston, MA 02111, USA.
4804
4805   Verbatim  copying and distribution of this entire article is permitted
4806   in any medium, provided this notice is preserved.
4807
4808   Last modified 2004-08-06 [19]Valid XHTML 1.0
4809
4810References
4811
4812   1. http://www.gnu.org/
4813   2. http://www.gnu.org/
4814   3. http://gcc.gnu.org/gcc-3.1/buildstat.html
4815   4. http://gcc.gnu.org/gcc-3.1/changes.html
4816   5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
4817   6. http://gcc.gnu.org/index.html
4818   7. mailto:gcc@gcc.gnu.org
4819   8. http://gcc.gnu.org/mirrors.html
4820   9. http://www.gnu.org/order/ftp.html
4821  10. http://gcc.gnu.org/cvs.html
4822  11. mailto:gnu@gnu.org
4823  12. http://www.gnu.org/home.html#ContactInfo
4824  13. http://gcc.gnu.org/about.html
4825  14. http://gcc.gnu.org/onlinedocs/
4826  15. mailto:gcc-help@gcc.gnu.org
4827  16. mailto:gcc@gnu.org
4828  17. mailto:gcc@gcc.gnu.org
4829  18. http://gcc.gnu.org/lists.html
4830  19. http://validator.w3.org/check/referer
4831======================================================================
4832http://gcc.gnu.org/gcc-3.1/changes.html
4833
4834                           GCC 3.1 Release Series
4835                      Changes, New Features, and Fixes
4836
4837Additional changes in GCC 3.1.1
4838
4839     * A  bug  related to how structures and unions are returned has been
4840       fixed for powerpc-*-netbsd*.
4841     * An  important  bug in the implementation of -fprefetch-loop-arrays
4842       has  been  fixed.  Previously  the  optimization prefetched random
4843       blocks of memory for most targets except for i386.
4844     * The  Java compiler now compiles Java programs much faster and also
4845       works with parallel make.
4846     * Nested functions have been fixed for mips*-*-netbsd*.
4847     * Some  missing  floating point support routines have beed added for
4848       mips*-*-netbsd*.
4849     * This  [1]message gives additional information about the bugs fixed
4850       in this release.
4851
4852Caveats
4853
4854     * The -traditional C compiler option has been deprecated and will be
4855       removed  in GCC 3.3. (It remains possible to preprocess non-C code
4856       with the traditional preprocessor.)
4857     * The  default  debugging  format  for most ELF platforms (including
4858       GNU/Linux  and  FreeBSD; notable exception is Solaris) has changed
4859       from stabs to DWARF2. This requires GDB 5.1.1 or later.
4860
4861General Optimizer Improvements
4862
4863     * Jan  Hubicka, SuSE Labs, together with Richard Henderson, Red Hat,
4864       and  Andreas  Jaeger, SuSE Labs, has contributed [2]infrastructure
4865       for profile driven optimizations.
4866       Options  -fprofile-arcs and -fbranch-probabilities can now be used
4867       to  improve  speed  of  the generated code by profiling the actual
4868       program  behaviour on typical runs. In the absence of profile info
4869       the compiler attempts to guess the profile statically.
4870     * [3]SPEC2000  and  SPEC95  benchmark  suites  are now used daily to
4871       monitor performance of the generated code.
4872       According  to  the  SPECInt2000  results on an AMD Athlon CPU, the
4873       code generated by GCC 3.1 is 6% faster on the average (8.2% faster
4874       with  profile  feedback) compared to GCC 3.0. The code produced by
4875       GCC  3.0  is about 2.1% faster compared to 2.95.3. Tests were done
4876       using the -O2 -march=athlon command-line options.
4877     * Alexandre  Oliva,  of  Red  Hat, has generalized the tree inlining
4878       infrastructure  developed  by  CodeSourcery, LLC for the C++ front
4879       end,  so  that  it  is  now  used in the C front end too. Inlining
4880       functions as trees exposes them earlier to the compiler, giving it
4881       more opportunities for optimization.
4882     * Support  for  data  prefetching instructions has been added to the
4883       GCC  back  end  and  several  targets.  A  new  __builtin_prefetch
4884       intrinsic  is available to explicitly insert prefetch instructions
4885       and experimental support for loop array prefetching has been added
4886       (see -fprefetch-loop-array documentation).
4887     * Support  for  emitting  debugging  information for macros has been
4888       added for DWARF2. It is activated using -g3.
4889
4890New Languages and Language specific improvements
4891
4892  C/C++
4893
4894     * A few more [4]ISO C99 features.
4895     * The  preprocessor  is  10-50%  faster than the preprocessor in GCC
4896       3.0.
4897     * The  preprocessor's  symbol  table has been merged with the symbol
4898       table of the C, C++ and Objective-C front ends.
4899     * The preprocessor consumes less memory than the preprocessor in GCC
4900       3.0,  often  significantly so. On normal input files, it typically
4901       consumes less memory than pre-3.0 cccp-based GCC, too.
4902
4903  C++
4904
4905     * -fhonor-std  and  -fno-honor-std have been removed. -fno-honor-std
4906       was  a  workaround  to  allow  std compliant code to work with the
4907       non-std compliant libstdc++-v2. libstdc++-v3 is std compliant.
4908     * The  C++ ABI has been fixed so that void (A::*)() const is mangled
4909       as  "M1AKFvvE", rather than "MK1AFvvE" as before. This change only
4910       affects pointer to cv-qualified member function types.
4911     * The C++ ABI has been changed to correctly handle this code:
4912    struct A {
4913      void operator delete[] (void *, size_t);
4914    };
4915
4916    struct B : public A {
4917    };
4918
4919    new B[10];
4920
4921       The amount of storage allocated for the array will be greater than
4922       it  was  in  3.0,  in order to store the number of elements in the
4923       array, so that the correct size can be passed to operator delete[]
4924       when  the  array  is  deleted.  Previously,  the  value  passed to
4925       operator delete[] was unpredictable.
4926       This  change  will  only  affect code that declares a two-argument
4927       operator delete[] with a second parameter of type size_t in a base
4928       class, and does not override that definition in a derived class.
4929     * The C++ ABI has been changed so that:
4930    struct A {
4931      void operator delete[] (void *, size_t);
4932      void operator delete[] (void *);
4933    };
4934
4935       does  not  cause unnecessary storage to be allocated when an array
4936       of A objects is allocated.
4937       This  change  will  only  affect  code that declares both of these
4938       forms  of  operator  delete[],  and declared the two-argument form
4939       before the one-argument form.
4940     * The C++ ABI has been changed so that when a parameter is passed by
4941       value,  any cleanup for that parameter is performed in the caller,
4942       as  specified by the ia64 C++ ABI, rather than the called function
4943       as  before. As a result, classes with a non-trivial destructor but
4944       a  trivial  copy  constructor  will  be  passed  and  returned  by
4945       invisible reference, rather than by bitwise copy as before.
4946     * G++  now  supports the "named return value optimization": for code
4947       like
4948    A f () {
4949      A a;
4950      ...
4951      return a;
4952    }
4953
4954       G++  will  allocate a in the return value slot, so that the return
4955       becomes  a  no-op.  For this to work, all return statements in the
4956       function must return the same variable.
4957     * Improvements  to the C++ library are listed in [5]the libstdc++-v3
4958       FAQ.
4959
4960  Objective-C
4961
4962     * Annoying  linker  warnings (due to incorrect code being generated)
4963       have been fixed.
4964     * If a class method cannot be found, the compiler no longer issues a
4965       warning  if  a  corresponding  instance  method exists in the root
4966       class.
4967     * Forward @protocol declarations have been fixed.
4968     * Loading  of  categories  has been fixed in certain situations (GNU
4969       run time only).
4970     * The  class  lookup  in  the run-time library has been rewritten so
4971       that  class  method dispatch is more than twice as fast as it used
4972       to be (GNU run time only).
4973
4974  Java
4975
4976     * libgcj   now  includes  RMI,  java.lang.ref.*,  javax.naming,  and
4977       javax.transaction.
4978     * Property  files  and  other  system resources can be compiled into
4979       executables which use libgcj using the new gcj --resource feature.
4980     * libgcj  has  been ported to more platforms. In particular there is
4981       now a mostly-functional mingw32 (Windows) target port.
4982     * JNI   and   CNI   invocation   interfaces   were  implemented,  so
4983       gcj-compiled Java code can now be called from a C/C++ application.
4984     * gcj  can  now use builtin functions for certain known methods, for
4985       instance Math.cos.
4986     * gcj  can  now automatically remove redundant array-store checks in
4987       some common cases.
4988     * The  --no-store-checks  optimization option was added. This can be
4989       used  to  omit runtime store checks for code which is known not to
4990       throw ArrayStoreException
4991     * The  following  third  party  interface  standards  were  added to
4992       libgcj: org.w3c.dom and org.xml.sax.
4993     * java.security  has been merged with GNU Classpath. The new package
4994       is now JDK 1.2 compliant, and much more complete.
4995     * A bytecode verifier was added to the libgcj interpreter.
4996     * java.lang.Character  was  rewritten to comply with the Unicode 3.0
4997       standard, and improve performance.
4998     * Partial support for many more locales was added to libgcj.
4999     * Socket timeouts have been implemented.
5000     * libgcj  has been merged into a single shared library. There are no
5001       longer  separate  shared  libraries  for the garbage collector and
5002       zlib.
5003     * Several performance improvements were made to gcj and libgcj:
5004          + Hash synchronization (thin locks)
5005          + A special allocation path for finalizer-free objects
5006          + Thread-local allocation
5007          + Parallel GC, and other GC tweaks
5008
5009  Fortran
5010
5011   Fortran improvements are listed in [6]the Fortran documentation.
5012
5013  Ada
5014
5015   [7]Ada  Core  Technologies, Inc, has contributed its GNAT Ada 95 front
5016   end  and  associated tools. The GNAT compiler fully implements the Ada
5017   language as defined by the ISO/IEC 8652 standard.
5018
5019   Please note that the integration of the Ada front end is still work in
5020   progress.
5021
5022New Targets and Target Specific Improvements
5023
5024     * Hans-Peter  Nilsson  has  contributed  a  port to [8]MMIX, the CPU
5025       architecture  used in new editions of Donald E. Knuth's The Art of
5026       Computer Programming.
5027     * [9]Axis  Communications  has  contributed its port to the CRIS CPU
5028       architecture,  used  in  the  ETRAX  system-on-a-chip  series. See
5029       [10]Axis' developer site for technical information.
5030     * Alexandre  Oliva,  of  Red  Hat,  has  contributed  a  port to the
5031       [11]SuperH  SH5 64-bit RISC microprocessor architecture, extending
5032       the existing SH port.
5033     * UltraSPARC  is  fully  supported  in  64-bit mode. The option -m64
5034       enables it.
5035     * For  compatibility  with the Sun compiler #pragma redefine_extname
5036       has been implemented on Solaris.
5037     * The x86 back end has had some noticeable work done to it.
5038          + SuSE  Labs  developers  Jan  Hubicka,  Bo Thorsen and Andreas
5039            Jaeger   have   contributed   a   port   to  the  AMD  x86-64
5040            architecture.    For   more   information   on   x86-64   see
5041            [12]http://www.x86-64.org.
5042          + The   compiler  now  supports  MMX,  3DNow!,  SSE,  and  SSE2
5043            instructions.  Options -mmmx, -m3dnow, -msse, and -msse2 will
5044            enable  the respective instruction sets. Intel C++ compatible
5045            MMX/3DNow!/SSE  intrinsics  are  implemented. SSE2 intrinsics
5046            will be added in next major release.
5047          + Following  those improvements, targets for Pentium MMX, K6-2,
5048            K6-3,  Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were
5049            added.  Refer  to  the  documentation  on  -march= and -mcpu=
5050            options for details.
5051          + For  those  targets  that support it, -mfpmath=sse will cause
5052            the  compiler  to generate SSE/SSE2 instructions for floating
5053            point  math  instead  of x87 instructions. Usually, this will
5054            lead  to  quicker  code  -- especially on the Pentium 4. Note
5055            that only scalar floating point instructions are used and GCC
5056            does not exploit SIMD features yet.
5057          + Prefetch  support  has been added to the Pentium III, Pentium
5058            4, K6-2, K6-3, and Athlon series.
5059          + Code  generated for floating point to integer conversions has
5060            been  improved  leading  to  better  performance  of  many 3D
5061            applications.
5062     * The PowerPC back end has added 64-bit PowerPC GNU/Linux support.
5063     * C++ support for AIX has been improved.
5064     * Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the
5065       PowerPC  port supporting the AltiVec programming model (SIMD). The
5066       support,  though presently useful, is experimental and is expected
5067       to  stabilize  for  3.2.  The  support  is  written  to conform to
5068       Motorola's AltiVec specs. See -maltivec.
5069
5070Obsolete Systems
5071
5072   Support  for  a  number of older systems has been declared obsolete in
5073   GCC  3.1. Unless there is activity to revive them, the next release of
5074   GCC will have their sources permanently removed.
5075
5076   All  configurations of the following processor architectures have been
5077   declared obsolete:
5078     * MIL-STD-1750A, 1750a-*-*
5079     * AMD A29k, a29k-*-*
5080     * Convex, c*-convex-*
5081     * Clipper, clipper-*-*
5082     * Elxsi, elxsi-*-*
5083     * Intel i860, i860-*-*
5084     * Sun picoJava, pj-*-* and pjl-*-*
5085     * Western Electric 32000, we32k-*-*
5086
5087   Most configurations of the following processor architectures have been
5088   declared  obsolete, but we are preserving a few systems which may have
5089   active  developers.  It  is  unlikely  that the remaining systems will
5090   survive much longer unless we see definite signs of port activity.
5091     * Motorola 88000 except
5092          + Generic a.out, m88k-*-aout*
5093          + Generic SVR4, m88k-*-sysv4
5094          + OpenBSD, m88k-*-openbsd*
5095     * NS32k except
5096          + NetBSD, ns32k-*-netbsd*
5097          + OpenBSD, ns32k-*-openbsd*.
5098     * ROMP except
5099          + OpenBSD, romp-*-openbsd*.
5100
5101   Finally, only some configurations of these processor architectures are
5102   being obsoleted.
5103     * Alpha:
5104          + OSF/1,  alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka
5105            alpha*-*-osf[45], are still supported.)
5106     * ARM:
5107          + RISCiX, arm-*-riscix*.
5108     * i386:
5109          + 386BSD, i?86-*-bsd*
5110          + Chorus, i?86-*-chorusos*
5111          + DG/UX, i?86-*-dgux*
5112          + FreeBSD 1.x, i?86-*-freebsd1.*
5113          + IBM AIX, i?86-*-aix*
5114          + ISC UNIX, i?86-*-isc*
5115          + Linux with pre-BFD linker, i?86-*-linux*oldld*
5116          + NEXTstep, i?86-next-*
5117          + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose*
5118          + RTEMS/coff, i?86-*-rtemscoff*
5119          + RTEMS/go32, i?86-go32-rtems*
5120          + Sequent/BSD, i?86-sequent-bsd*
5121          + Sequent/ptx   before  version  3,  i?86-sequent-ptx[12]*  and
5122            i?86-sequent-sysv3*
5123          + SunOS, i?86-*-sunos*
5124     * Motorola 68000:
5125          + Altos, m68[k0]*-altos-*
5126          + Apollo, m68[k0]*-apollo-*
5127          + Apple A/UX, m68[k0]*-apple-*
5128          + Bull, m68[k0]*-bull-*
5129          + Convergent, m68[k0]*-convergent-*
5130          + Generic SVR3, m68[k0]*-*-sysv3*
5131          + ISI, m68[k0]*-isi-*
5132          + LynxOS, m68[k0]*-*-lynxos*
5133          + NEXT, m68[k0]*-next-*
5134          + RTEMS/coff, m68[k0]*-*-rtemscoff*
5135          + Sony, m68[k0]*-sony-*
5136     * MIPS:
5137          + DEC Ultrix, mips-*-ultrix* and mips-dec-*
5138          + Generic BSD, mips-*-bsd*
5139          + Generic System V, mips-*-sysv*
5140          + IRIX before version 5, mips-sgi-irix[1234]*
5141          + RiscOS, mips-*-riscos*
5142          + Sony, mips-sony-*
5143          + Tandem, mips-tandem-*
5144     * SPARC:
5145          + RTEMS/a.out, sparc-*-rtemsaout*.
5146
5147Documentation improvements
5148
5149     * The  old  manual ("Using and Porting the GNU Compiler Collection")
5150       has  been  replaced  by  a  users  manual ("Using the GNU Compiler
5151       Collection")  and  a  separate  internals  reference  manual ("GNU
5152       Compiler Collection Internals").
5153     * More complete and much improved documentation about GCC's internal
5154       representation used by the C and C++ front ends.
5155     * Many cleanups and improvements in general.
5156     _________________________________________________________________
5157
5158   Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
5159   are also [14]other ways to contact the FSF.
5160
5161   These pages are maintained by [15]the GCC team.
5162
5163
5164    For  questions  related  to the use of GCC, please consult these web
5165    pages    and    the    [16]GCC   manuals.   If   that   fails,   the
5166    [17]gcc-help@gcc.gnu.org mailing list might help.
5167    Please  send  comments on these web pages and the development of GCC
5168    to    our    developer    mailing   list   at   [18]gcc@gnu.org   or
5169    [19]gcc@gcc.gnu.org. All of our lists have [20]public archives.
5170
5171   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5172   330, Boston, MA 02111, USA.
5173
5174   Verbatim  copying and distribution of this entire article is permitted
5175   in any medium, provided this notice is preserved.
5176
5177   Last modified 2004-08-06 [21]Valid XHTML 1.0
5178
5179References
5180
5181   1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html
5182   2. http://gcc.gnu.org/news/profiledriven.html
5183   3. http://gcc.gnu.org/benchmarks/
5184   4. http://gcc.gnu.org/gcc-3.1/c99status.html
5185   5. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1
5186   6. http://gcc.gnu.org/onlinedocs/g77/News.html
5187   7. http://www.gnat.com/
5188   8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html
5189   9. http://www.axis.com/
5190  10. http://developer.axis.com/
5191  11. http://www.superh.com/
5192  12. http://www.x86-64.org/
5193  13. mailto:gnu@gnu.org
5194  14. http://www.gnu.org/home.html#ContactInfo
5195  15. http://gcc.gnu.org/about.html
5196  16. http://gcc.gnu.org/onlinedocs/
5197  17. mailto:gcc-help@gcc.gnu.org
5198  18. mailto:gcc@gnu.org
5199  19. mailto:gcc@gcc.gnu.org
5200  20. http://gcc.gnu.org/lists.html
5201  21. http://validator.w3.org/check/referer
5202======================================================================
5203http://gcc.gnu.org/gcc-3.0/gcc-3.0.html
5204
5205                                 GCC 3.0.4
5206
5207   February 20, 2002
5208
5209   The  [1]GNU project and the GCC developers are pleased to announce the
5210   release  of  GCC  3.0.4,  which  is  a bug-fix release for the GCC 3.0
5211   series.
5212
5213   GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
5214   supports  several  other languages aside from C, it now stands for the
5215   GNU Compiler Collection.
5216
5217   GCC  3.0.x  has  several new optimizations, new targets, new languages
5218   and  many  other  new features, relative to GCC 2.95.x. See the [2]new
5219   features page for a more complete list.
5220
5221   A  list  of [3]successful builds is updated as new information becomes
5222   available.
5223
5224   The  GCC  developers would like to thank the numerous people that have
5225   contributed  new  features,  test  results, bugfixes, etc to GCC. This
5226   [4]amazing group of volunteers is what makes GCC successful.
5227
5228   And  finally,  we  can't  in  good  conscience  fail  to  mention some
5229   [5]caveats to using GCC 3.0.x.
5230
5231   For  additional  information  about  GCC  please  refer  to the [6]GCC
5232   project web site or contact the [7]GCC development mailing list.
5233
5234   To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
5235   sites, or [10]our CVS server.
5236     _________________________________________________________________
5237
5238Previous 3.0.x Releases
5239
5240   December 20, 2001: GCC 3.0.3 has been released.
5241   October 25, 2001: GCC 3.0.2 has been released.
5242   August 20, 2001: GCC 3.0.1 has been released.
5243   June 18, 2001: GCC 3.0 has been released.
5244     _________________________________________________________________
5245
5246   Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
5247   are also [12]other ways to contact the FSF.
5248
5249   These pages are maintained by [13]the GCC team.
5250
5251
5252    For  questions  related  to the use of GCC, please consult these web
5253    pages    and    the    [14]GCC   manuals.   If   that   fails,   the
5254    [15]gcc-help@gcc.gnu.org mailing list might help.
5255    Please  send  comments on these web pages and the development of GCC
5256    to    our    developer    mailing   list   at   [16]gcc@gnu.org   or
5257    [17]gcc@gcc.gnu.org. All of our lists have [18]public archives.
5258
5259   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5260   330, Boston, MA 02111, USA.
5261
5262   Verbatim  copying and distribution of this entire article is permitted
5263   in any medium, provided this notice is preserved.
5264
5265   Last modified 2004-08-06 [19]Valid XHTML 1.0
5266
5267References
5268
5269   1. http://www.gnu.org/
5270   2. http://gcc.gnu.org/gcc-3.0/features.html
5271   3. http://gcc.gnu.org/gcc-3.0/buildstat.html
5272   4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
5273   5. http://gcc.gnu.org/gcc-3.0/caveats.html
5274   6. http://gcc.gnu.org/index.html
5275   7. mailto:gcc@gcc.gnu.org
5276   8. http://gcc.gnu.org/mirrors.html
5277   9. http://www.gnu.org/order/ftp.html
5278  10. http://gcc.gnu.org/cvs.html
5279  11. mailto:gnu@gnu.org
5280  12. http://www.gnu.org/home.html#ContactInfo
5281  13. http://gcc.gnu.org/about.html
5282  14. http://gcc.gnu.org/onlinedocs/
5283  15. mailto:gcc-help@gcc.gnu.org
5284  16. mailto:gcc@gnu.org
5285  17. mailto:gcc@gcc.gnu.org
5286  18. http://gcc.gnu.org/lists.html
5287  19. http://validator.w3.org/check/referer
5288======================================================================
5289http://gcc.gnu.org/gcc-3.0/features.html
5290
5291                            GCC 3.0 New Features
5292
5293Additional changes in GCC 3.0.4
5294
5295     * GCC  3.0  now  supports  newer versions of the [1]NetBSD operating
5296       system, which use the ELF object file format, on x86 processors.
5297     * Correct  debugging  information  is  generated from functions that
5298       have lines from multiple files (e.g. yacc output).
5299     * A  fix  for  whitespace handling in the -traditional preprocessor,
5300       which can affect Fortran.
5301     * Fixes to the exception handling runtime.
5302     * More fixes for bad code generation in C++.
5303     * A fix for shared library generation under AIX 4.3.
5304     * Documentation updates.
5305     * Port of GCC to Tensilica's Xtensa processor contributed.
5306     * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link).
5307
5308Additional changes in GCC 3.0.3
5309
5310     * A fix to correct an accidental change to the PowerPC ABI.
5311     * Fixes for bad code generation on a variety of architectures.
5312     * Improvements  to  the  debugging  information  generated  for  C++
5313       classes.
5314     * Fixes for bad code generation in C++.
5315     * A fix to avoid crashes in the C++ demangler.
5316     * A fix to the C++ standard library to avoid buffer overflows.
5317     * Miscellaneous improvements for a variety of architectures.
5318
5319Additional changes in GCC 3.0.2
5320
5321     * Fixes for bad code generation during loop unrolling.
5322     * Fixes for bad code generation by the sibling call optimization.
5323     * Minor improvements to x86 code generation.
5324     * Implementation of function descriptors in C++ vtables for IA64.
5325     * Numerous minor bug-fixes.
5326
5327Additional changes in GCC 3.0.1
5328
5329     * C++ fixes for incorrect code-generation.
5330     * Improved cross-compiling support for the C++ standard library.
5331     * Fixes for some embedded targets that worked in GCC 2.95.3, but not
5332       in GCC 3.0.
5333     * Fixes for various exception-handling bugs.
5334     * A port to the S/390 architecture.
5335
5336General Optimizer Improvements
5337
5338     * [2]Basic block reordering pass.
5339     * New  if-conversion  pass with support for conditional (predicated)
5340       execution.
5341     * New tail call and sibling call elimination optimizations.
5342     * New register renaming pass.
5343     * New    (experimental)    [3]static    single    assignment   (SSA)
5344       representation support.
5345     * New   dead-code   elimination   pass  implemented  using  the  SSA
5346       representation.
5347     * [4]Global null pointer test elimination.
5348     * [5]Global code hoisting/unification.
5349     * More  builtins and optimizations for stdio.h, string.h and old BSD
5350       functions, as well as for ISO C99 functions.
5351     * New  builtin  __builtin_expect  for  giving  hints  to  the branch
5352       predictor.
5353
5354New Languages and Language specific improvements
5355
5356     * The GNU Compiler for the Java(TM) language (GCJ) is now integrated
5357       and  supported,  including  the  run-time  library containing most
5358       common non-GUI Java classes, a bytecode interpreter, and the Boehm
5359       conservative garbage collector. Many bugs have been fixed. GCJ can
5360       compile  Java  source  or  Java bytecodes to either native code or
5361       Java  class  files,  and supports native methods written in either
5362       the standard JNI or the more efficient and convenient CNI.
5363     * Here  is  a [6]partial list of C++ improvements, both new features
5364       and those no longer supported.
5365     * New   C++   ABI.   On   the  IA-64  platform  GCC  is  capable  of
5366       inter-operating with other IA-64 compilers.
5367     * The  new  ABI  also  significantly  reduces the size of symbol and
5368       debug information.
5369     * New  [7]C++  support  library  and  many  C++  bug  fixes,  vastly
5370       improving our conformance to the ISO C++ standard.
5371     * New [8]inliner for C++.
5372     * Rewritten C preprocessor, integrated into the C, C++ and Objective
5373       C compilers, with very many improvements including ISO C99 support
5374       and [9]improvements to dependency generation.
5375     * Support for more [10]ISO C99 features.
5376     * Many   improvements  to  support  for  checking  calls  to  format
5377       functions  such as printf and scanf, including support for ISO C99
5378       format features, extensions from the Single Unix Specification and
5379       GNU  libc  2.2, checking of strfmon formats and features to assist
5380       in auditing for format string security bugs.
5381     * New  warnings for C code that may have undefined semantics because
5382       of violations of sequence point rules in the C standard (such as a
5383       = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall.
5384     * Additional warning option -Wfloat-equal.
5385     * Improvements to -Wtraditional.
5386     * Fortran improvements are listed in [11]the Fortran documentation.
5387
5388New Targets and Target Specific Improvements
5389
5390     * New x86 back-end, generating much improved code.
5391     * Support for a generic i386-elf target contributed.
5392     * New  option  to  emit  x86  assembly code using Intel style syntax
5393       (-mintel-syntax).
5394     * HPUX 11 support contributed.
5395     * Improved PowerPC code generation, including scheduled prologue and
5396       epilogue.
5397     * Port of GCC to Intel's IA-64 processor contributed.
5398     * Port of GCC to Motorola's MCore 210 and 340 contributed.
5399     * New unified back-end for Arm, Thumb and StrongArm contributed.
5400     * Port of GCC to Intel's XScale processor contributed.
5401     * Port of GCC to Atmel's AVR microcontrollers contributed.
5402     * Port of GCC to Mitsubishi's D30V processor contributed.
5403     * Port  of  GCC  to  Matsushita's  AM33  processor  (a member of the
5404       MN10300 processor family) contributed.
5405     * Port of GCC to Fujitsu's FR30 processor contributed.
5406     * Port   of   GCC   to   Motorola's  68HC11  and  68HC12  processors
5407       contributed.
5408     * Port of GCC to Sun's picoJava processor core contributed.
5409
5410Documentation improvements
5411
5412     * Substantially rewritten and improved C preprocessor manual.
5413     * Many improvements to other documentation.
5414     * Manpages  for  gcc,  cpp  and gcov are now generated automatically
5415       from  the  master  Texinfo  manual,  eliminating  the  problem  of
5416       manpages  being  out  of  date.  (The  generated manpages are only
5417       extracts  from the full manual, which is provided in Texinfo form,
5418       from  which  info, HTML, other formats and a printed manual can be
5419       generated.)
5420     * Generated   info  files  are  included  in  the  release  tarballs
5421       alongside   their  Texinfo  sources,  avoiding  problems  on  some
5422       platforms with building makeinfo as part of the GCC distribution.
5423
5424Other significant improvements
5425
5426     * Garbage collection used internally by the compiler for most memory
5427       allocation instead of obstacks.
5428     * Lengauer and Tarjan algorithm used for computing dominators in the
5429       CFG.  This  algorithm  can  be significantly faster and more space
5430       efficient than our older algorithm.
5431     * gccbug  script provided to assist in submitting bug reports to our
5432       bug tracking system. (Bug reports previously submitted directly to
5433       our  mailing lists, for which you received no bug tracking number,
5434       should  be  submitted  again using gccbug if you can reproduce the
5435       problem with GCC 3.0.)
5436     * The  internal  libgcc  library is [12]built as a shared library on
5437       systems that support it.
5438     * Extensive  testsuite  included  with  GCC, with many new tests. In
5439       addition  to  tests  for GCC bugs that have been fixed, many tests
5440       have  been  added  for  language  features,  compiler warnings and
5441       builtin functions.
5442     * Additional    language-independent   warning   options   -Wpacked,
5443       -Wpadded, -Wunreachable-code and -Wdisabled-optimization.
5444     * Target-independent  options  -falign-functions,  -falign-loops and
5445       -falign-jumps.
5446
5447   Plus  a  great  many bugfixes and almost all the [13]features found in
5448   GCC 2.95.
5449     _________________________________________________________________
5450
5451   Please  send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
5452   are also [15]other ways to contact the FSF.
5453
5454   These pages are maintained by [16]the GCC team.
5455
5456
5457    For  questions  related  to the use of GCC, please consult these web
5458    pages    and    the    [17]GCC   manuals.   If   that   fails,   the
5459    [18]gcc-help@gcc.gnu.org mailing list might help.
5460    Please  send  comments on these web pages and the development of GCC
5461    to    our    developer    mailing   list   at   [19]gcc@gnu.org   or
5462    [20]gcc@gcc.gnu.org. All of our lists have [21]public archives.
5463
5464   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5465   330, Boston, MA 02111, USA.
5466
5467   Verbatim  copying and distribution of this entire article is permitted
5468   in any medium, provided this notice is preserved.
5469
5470   Last modified 2004-08-06 [22]Valid XHTML 1.0
5471
5472References
5473
5474   1. http://www.netbsd.org/
5475   2. http://gcc.gnu.org/news/reorder.html
5476   3. http://gcc.gnu.org/news/ssa.html
5477   4. http://gcc.gnu.org/news/null.html
5478   5. http://gcc.gnu.org/news/unify.html
5479   6. http://gcc.gnu.org/gcc-3.0/c++features.html
5480   7. http://gcc.gnu.org/libstdc++/
5481   8. http://gcc.gnu.org/news/inlining.html
5482   9. http://gcc.gnu.org/news/dependencies.html
5483  10. http://gcc.gnu.org/gcc-3.0/c99status.html
5484  11. http://gcc.gnu.org/onlinedocs/g77/News.html
5485  12. http://gcc.gnu.org/gcc-3.0/libgcc.html
5486  13. http://gcc.gnu.org/gcc-2.95/features.html
5487  14. mailto:gnu@gnu.org
5488  15. http://www.gnu.org/home.html#ContactInfo
5489  16. http://gcc.gnu.org/about.html
5490  17. http://gcc.gnu.org/onlinedocs/
5491  18. mailto:gcc-help@gcc.gnu.org
5492  19. mailto:gcc@gnu.org
5493  20. mailto:gcc@gcc.gnu.org
5494  21. http://gcc.gnu.org/lists.html
5495  22. http://validator.w3.org/check/referer
5496======================================================================
5497http://gcc.gnu.org/gcc-3.0/caveats.html
5498
5499                              GCC 3.0 Caveats
5500
5501     * -fstrict-aliasing  is  now  part  of  -O2  and higher optimization
5502       levels.  This allows the compiler to assume the strictest aliasing
5503       rules  applicable  to  the language being compiled. For C and C++,
5504       this  activates  optimizations  based  on the type of expressions.
5505       This optimization may thus break old, non-compliant code.
5506     * Enumerations   are  now  properly  promoted  to  int  in  function
5507       parameters  and  function  returns.  Normally  this  change is not
5508       visible, but when using -fshort-enums this is an ABI change.
5509     * The undocumented extension that allowed C programs to have a label
5510       at  the end of a compound statement has been deprecated and may be
5511       removed  in a future version. Programs that now generate a warning
5512       about  this  may  be  fixed  by  adding a null statement (a single
5513       semicolon) after the label.
5514     * The  poorly  documented extension that allowed string constants in
5515       C,  C++  and  Objective  C  to contain unescaped newlines has been
5516       deprecated  and may be removed in a future version. Programs using
5517       this  extension may be fixed in several ways: the bare newline may
5518       be replaced by \n, or preceded by \n\, or string concatenation may
5519       be  used with the bare newline preceded by \n" and " placed at the
5520       start of the next line.
5521     * The Chill compiler is not included in GCC 3.0, because of the lack
5522       of a volunteer to convert it to use garbage collection.
5523     * Certain  non-standard  iostream  methods  from earlier versions of
5524       libstdc++  are not included in libstdc++ v3, i.e. filebuf::attach,
5525       ostream::form,  and  istream::gets. Here are workaround hints for:
5526       [1]ostream::form, [2]filebuf::attach.
5527     * The  new  C++  ABI  is  not  yet fully supported by current (as of
5528       2001-07-01)  releases  and  development  versions  of  GDB, or any
5529       earlier  versions.  There is a problem setting breakpoints by line
5530       number,  and  other related issues that have been fixed in GCC 3.0
5531       but not yet handled in GDB:
5532       [3]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
5533     _________________________________________________________________
5534
5535   Please  send  FSF & GNU inquiries & questions to [4]gnu@gnu.org. There
5536   are also [5]other ways to contact the FSF.
5537
5538   These pages are maintained by [6]the GCC team.
5539
5540
5541    For  questions  related  to the use of GCC, please consult these web
5542    pages    and    the    [7]GCC    manuals.   If   that   fails,   the
5543    [8]gcc-help@gcc.gnu.org mailing list might help.
5544    Please  send  comments on these web pages and the development of GCC
5545    to    our    developer    mailing    list   at   [9]gcc@gnu.org   or
5546    [10]gcc@gcc.gnu.org. All of our lists have [11]public archives.
5547
5548   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5549   330, Boston, MA 02111, USA.
5550
5551   Verbatim  copying and distribution of this entire article is permitted
5552   in any medium, provided this notice is preserved.
5553
5554   Last modified 2004-08-06 [12]Valid XHTML 1.0
5555
5556References
5557
5558   1. http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html
5559   2. http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html
5560   3. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
5561   4. mailto:gnu@gnu.org
5562   5. http://www.gnu.org/home.html#ContactInfo
5563   6. http://gcc.gnu.org/about.html
5564   7. http://gcc.gnu.org/onlinedocs/
5565   8. mailto:gcc-help@gcc.gnu.org
5566   9. mailto:gcc@gnu.org
5567  10. mailto:gcc@gcc.gnu.org
5568  11. http://gcc.gnu.org/lists.html
5569  12. http://validator.w3.org/check/referer
5570======================================================================
5571http://gcc.gnu.org/gcc-2.95/index.html
5572
5573                                  GCC 2.95
5574
5575   July 31, 1999: The GNU project and the GCC/EGCS developers are pleased
5576   to announce the release of GCC version 2.95. This is the first release
5577   of GCC since the April 1999 GCC/EGCS reunification and includes nearly
5578   a year's worth of new development and bugfixes.
5579
5580   August 19, 1999: GCC version 2.95.1 has been released.
5581
5582   October 27, 1999: GCC version 2.95.2 has been released.
5583
5584   March 16, 2001: GCC version 2.95.3 has been released.
5585
5586   GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
5587   supports  several  other languages aside from C, it now stands for the
5588   GNU Compiler Collection.
5589
5590   The   whole  suite  has  been  extensively  [1]regression  tested  and
5591   [2]package  tested.  It should be reliable and suitable for widespread
5592   use.
5593
5594   The compiler has several new optimizations, new targets, new languages
5595   and  other  new  features.  See  the  [3]new  features page for a more
5596   complete list of new features found in the GCC 2.95 releases.
5597
5598   The  sources  include  installation  instructions  in  both  HTML  and
5599   plaintext forms in the install directory in the distribution. However,
5600   the  most  up  to  date [4]installation instructions and [5]build/test
5601   status  are  on  the  web  pages.  We  will  update those pages as new
5602   information becomes available.
5603
5604   The  GCC  developers would like to thank the numerous people that have
5605   contributed  new  features,  test  results, bugfixes, etc to GCC. This
5606   [6]amazing group of volunteers is what makes GCC successful.
5607
5608   And  finally,  we  can't  in  good  conscience  fail  to  mention some
5609   [7]caveats to using GCC 2.95.
5610
5611   Download GCC 2.95 from the [8]GNU FTP server (ftp://ftp.gnu.org)
5612   [9]Find a GNU mirror site
5613   [10]Find a GCC mirror site
5614
5615   For  additional  information  about GCC please see the [11]GCC project
5616   web server or contact the [12]GCC development mailing list.
5617     _________________________________________________________________
5618
5619   Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
5620   are also [14]other ways to contact the FSF.
5621
5622   These pages are maintained by [15]the GCC team.
5623
5624
5625    For  questions  related  to the use of GCC, please consult these web
5626    pages    and    the    [16]GCC   manuals.   If   that   fails,   the
5627    [17]gcc-help@gcc.gnu.org mailing list might help.
5628    Please  send  comments on these web pages and the development of GCC
5629    to    our    developer    mailing   list   at   [18]gcc@gnu.org   or
5630    [19]gcc@gcc.gnu.org. All of our lists have [20]public archives.
5631
5632   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5633   330, Boston, MA 02111, USA.
5634
5635   Verbatim  copying and distribution of this entire article is permitted
5636   in any medium, provided this notice is preserved.
5637
5638   Last modified 2004-08-06 [21]Valid XHTML 1.0
5639
5640References
5641
5642   1. http://gcc.gnu.org/gcc-2.95/regress.html
5643   2. http://gcc.gnu.org/gcc-2.95/othertest.html
5644   3. http://gcc.gnu.org/gcc-2.95/features.html
5645   4. http://gcc.gnu.org/install/
5646   5. http://gcc.gnu.org/gcc-2.95/buildstat.html
5647   6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
5648   7. http://gcc.gnu.org/gcc-2.95/caveats.html
5649   8. ftp://ftp.gnu.org/pub/gnu/gcc/
5650   9. http://www.gnu.org/order/ftp.html
5651  10. http://gcc.gnu.org/mirrors.html
5652  11. http://gcc.gnu.org/index.html
5653  12. mailto:gcc@gcc.gnu.org
5654  13. mailto:gnu@gnu.org
5655  14. http://www.gnu.org/home.html#ContactInfo
5656  15. http://gcc.gnu.org/about.html
5657  16. http://gcc.gnu.org/onlinedocs/
5658  17. mailto:gcc-help@gcc.gnu.org
5659  18. mailto:gcc@gnu.org
5660  19. mailto:gcc@gcc.gnu.org
5661  20. http://gcc.gnu.org/lists.html
5662  21. http://validator.w3.org/check/referer
5663======================================================================
5664http://gcc.gnu.org/gcc-2.95/features.html
5665
5666                           GCC 2.95 New Features
5667
5668     * General Optimizer Improvements:
5669          + [1]Localized  register  spilling  to  improve  speed and code
5670            density especially on small register class machines.
5671          + [2]Global CSE using lazy code motion algorithms.
5672          + [3]Improved global constant/copy propagation.
5673          + [4]Improved control flow graph analysis and manipulation.
5674          + [5]Local dead store elimination.
5675          + [6]Memory Load hoisting/store sinking in loops.
5676          + [7]Type based alias analysis is enabled by default. Note this
5677            feature will expose bugs in the Linux kernel. Please refer to
5678            the FAQ (as shipped with GCC 2.95) for additional information
5679            on this issue.
5680          + Major revamp of GIV detection, combination and simplification
5681            to improve loop performance.
5682          + Major improvements to register allocation and reloading.
5683     * New Languages and Language specific improvements
5684          + [8]Many C++ improvements.
5685          + [9]Many Fortran improvements.
5686          + [10]Java  front-end  has been integrated. [11]runtime library
5687            is available separately.
5688          + [12]ISO C99 support
5689          + [13]Chill front-end and runtime has been integrated.
5690          + Boehm garbage collector support in libobjc.
5691          + More  support  for  various  pragmas  which  appear in vendor
5692            include files
5693     * New Targets and Target Specific Improvements
5694          + [14]Sparc backend rewrite.
5695          + -mschedule=8000   will   optimize   code   for  PA8000  class
5696            processors;   -mpa-risc-2-0  will  generate  code  for  PA2.0
5697            processors
5698          + Various   micro-optimizations   for   the   ia32   port.   K6
5699            optimizations
5700          + Compiler  will  attempt  to align doubles in the stack on the
5701            ia32 port
5702          + Alpha EV6 support
5703          + PowerPC 750
5704          + RS6000/PowerPC:   -mcpu=401   was   added  as  an  alias  for
5705            -mcpu=403.   -mcpu=e603e  was  added  to  do  -mcpu=603e  and
5706            -msoft-float.
5707          + c3x, c4x
5708          + HyperSparc
5709          + SparcLite86x
5710          + sh4
5711          + Support  for  new  systems  (OpenBSD, FreeBSD, UWIN, Interix,
5712            arm-linux)
5713          + vxWorks targets include support for vxWorks threads
5714          + StrongARM   110   and  ARM9  support  added.  ARM  Scheduling
5715            parameters rewritten.
5716          + Various  changes  to the MIPS port to avoid assembler macros,
5717            which in turn improves performance
5718          + Various performance improvements to the i960 port.
5719          + Major rewrite of ns32k port
5720     * Other significant improvements
5721          + [15]Ability to dump cfg information and display it using vcg.
5722          + The  new  faster  scheme  for  fixing  vendor header files is
5723            enabled by default.
5724          + Experimental internationalization support.
5725          + multibyte character support
5726          + Some compile-time speedups for pathological problems
5727          + Better support for complex types
5728     * Plus the usual mountain of bugfixes
5729     * Core  compiler is based on the gcc2 development tree from Sept 30,
5730       1998, so we have all of the [16]features found in GCC 2.8.
5731
5732Additional Changes in GCC 2.95.1
5733
5734     * Generic bugfixes and improvements
5735          + Various documentation fixes related to the GCC/EGCS merger.
5736          + Fix  memory  management  bug  which  could  lead  to spurious
5737            aborts, core dumps or random parsing errors in the compiler.
5738          + Fix  a  couple  bugs  in  the  dwarf1 and dwarf2 debug record
5739            support.
5740          + Fix infinite loop in the CSE optimizer.
5741          + Avoid undefined behavior in compiler FP emulation code
5742          + Fix  install  problem  when  prefix is overridden on the make
5743            install command.
5744          + Fix  problem  with  unwanted installation of assert.h on some
5745            systems.
5746          + Fix problem with finding the wrong assembler in a single tree
5747            build.
5748          + Avoid  increasing  the  known alignment of a register that is
5749            already known to be a pointer.
5750     * Platform specific bugfixes and improvements
5751          + Codegen bugfix for prologue/epilogue for cpu32 target.
5752          + Fix long long code generation bug for the Coldfire target.
5753          + Fix various aborts in the SH compiler.
5754          + Fix bugs in libgcc support library for the SH.
5755          + Fix alpha ev6 code generation bug.
5756          + Fix  problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on
5757            AIX platforms.
5758          + Fix -fpic code generation bug for rs6000/ppc svr4 targets.
5759          + Fix  varargs/stdarg  code  generation bug for rs6000/ppc svr4
5760            targets.
5761          + Fix weak symbol handling for rs6000/ppc svr4 targets.
5762          + Fix  various  problems  with  64bit  code  generation for the
5763            rs6000/ppc port.
5764          + Fix  codegen bug which caused tetex to be mis-compiled on the
5765            x86.
5766          + Fix compiler abort in new cfg code exposed by x86 port.
5767          + Fix  out  of  range  array  reference  in  code  convert flat
5768            registers to the x87 stacked FP register file.
5769          + Fix minor vxworks configuration bug.
5770          + Fix return type of bsearch for SunOS 4.x.
5771     * Language & Runtime specific fixes.
5772          + The  G++  signature extension has been deprecated. It will be
5773            removed  in  the next major release of G++. Use of signatures
5774            will result in a warning from the compiler.
5775          + Several bugs relating to templates and namespaces were fixed.
5776          + A bug that caused crashes when combining templates with -g on
5777            DWARF1 platforms was fixed.
5778          + Pointers-to-members,    virtual   functions,   and   multiple
5779            inheritance should now work together correctly.
5780          + Some  code-generation  bugs  relating  to function try blocks
5781            were fixed.
5782          + G++  is  a  little  bit  more  lenient  with  certain archaic
5783            constructs than in GCC 2.95.
5784          + Fix to prevent shared library version #s from bring truncated
5785            to 1 digit
5786          + Fix missing std:: in the libstdc++ library.
5787          + Fix stream locking problems in libio.
5788          + Fix problem in java compiler driver.
5789
5790Additional Changes in GCC 2.95.2
5791
5792   The  -fstrict-aliasing is not enabled by default for GCC 2.95.2. While
5793   the  optimizations  performed by -fstrict-aliasing are valid according
5794   to  the  C  and  C++  standards,  the  optimization  have  caused some
5795   problems, particularly with old non-conforming code.
5796
5797   The  GCC  developers  are  experimenting with ways to warn users about
5798   code  which  violates  the C/C++ standards, but those warnings are not
5799   ready  for  widespread  use  at  this time. Rather than wait for those
5800   warnings  the  GCC developers have chosen to disable -fstrict-aliasing
5801   by default for the GCC 2.95.2 release.
5802
5803   We  strongly  encourage developers to find and fix code which violates
5804   the  C/C++ standards as -fstrict-aliasing may be enabled by default in
5805   future  releases.  Use the option -fstrict-aliasing to re-enable these
5806   optimizations.
5807     * Generic bugfixes and improvements
5808          + Fix  incorrectly  optimized memory reference in global common
5809            subexpression elimination (GCSE) optimization pass.
5810          + Fix  code  generation  bug  in  regmove.c  in  which it could
5811            incorrectly change a "const" value.
5812          + Fix  bug  in  optimization of conditionals involving volatile
5813            memory references.
5814          + Avoid over-allocation of stack space for some procedures.
5815          + Fixed bug in the compiler which caused incorrect optimization
5816            of  an  obscure  series  of  bit  manipulations,  shifts  and
5817            arithmetic.
5818          + Fixed  register  allocator  bug  which  caused  teTeX  to  be
5819            mis-compiled on Sparc targets.
5820          + Avoid  incorrect  optimization  of degenerate case statements
5821            for certain targets such as the ARM.
5822          + Fix out of range memory reference in the jump optimizer.
5823          + Avoid dereferencing null pointer in fix-header.
5824          + Fix  test for GCC specific features so that it is possible to
5825            bootstrap with gcc-2.6.2 and older versions of GCC.
5826          + Fix  typo  in  scheduler which could potentially cause out of
5827            range memory accesses.
5828          + Avoid incorrect loop reversal which caused incorrect code for
5829            certain loops on PowerPC targets.
5830          + Avoid  incorrect optimization of switch statements on certain
5831            targets (for example the ARM).
5832     * Platform specific bugfixes and improvements
5833          + Work  around bug in Sun V5.0 compilers which caused bootstrap
5834            comparison failures on Sparc targets.
5835          + Fix Sparc backend bug which caused aborts in final.c.
5836          + Fix sparc-hal-solaris2* configuration fragments.
5837          + Fix bug in sparc block profiling.
5838          + Fix obscure code generation bug for the PARISC targets.
5839          + Define __STDC_EXT__ for HPUX configurations.
5840          + Various POWERPC64 code generation bugfixes.
5841          + Fix abort for PPC targets using ELF (ex GNU/Linux).
5842          + Fix collect2 problems for AIX targets.
5843          + Correct handling of .file directive for PPC targets.
5844          + Fix bug in fix_trunc x86 patterns.
5845          + Fix x86 port to correctly pop the FP stack for functions that
5846            return structures in memory.
5847          + Fix minor bug in strlen x86 pattern.
5848          + Use   stabs  debugging  instead  of  dwarf1  for  x86-solaris
5849            targets.
5850          + Fix  template repository code to handle leading underscore in
5851            mangled names.
5852          + Fix weak/weak alias support for OpenBSD.
5853          + GNU/Linux for the ARM has C++ compatible include files.
5854     * Language & Runtime specific fixes.
5855          + Fix  handling  of  constructor  attribute  in the C front-end
5856            which  caused  problems building the Chill runtime library on
5857            some targets.
5858          + Fix minor problem merging type qualifiers in the C front-end.
5859          + Fix aliasing bug for pointers and references (C/C++).
5860          + Fix    incorrect    "non-constant   initializer   bug"   when
5861            -traditional or -fwritable-strings is enabled.
5862          + Fix build error for Chill front-end on SunOS.
5863          + Do  not  complain  about  duplicate instantiations when using
5864            -frepo (C++).
5865          + Fix  array  bounds  handling  in  C++  front-end which caused
5866            problems   with   dwarf   debugging   information   in   some
5867            circumstances.
5868          + Fix minor namespace problem.
5869          + Fix problem linking java programs.
5870
5871Additional Changes in GCC 2.95.3
5872
5873     * Generic bugfixes and improvements
5874          + Fix  numerous  problems that caused incorrect optimization in
5875            the register reloading code.
5876          + Fix  numerous  problems that caused incorrect optimization in
5877            the loop optimizer.
5878          + Fix  aborts  in the functions build_insn_chain and scan_loops
5879            under some circumstances.
5880          + Fix an alias analysis bug.
5881          + Fix an infinite compilation bug in the combiner.
5882          + A few problems with complex number support have been fixed.
5883          + It  is  no longer possible for gcc to act as a fork bomb when
5884            installed incorrectly.
5885          + The -fpack-struct option should be recognized now.
5886          + Fixed a bug that caused incorrect code to be generated due to
5887            a lost stack adjustment.
5888     * Platform specific bugfixes and improvements
5889          + Support building ARM toolchains hosted on Windows.
5890          + Fix attribute calculations in ARM toolchains.
5891          + arm-linux support has been improved.
5892          + Fix a PIC failure on sparc targets.
5893          + On  ix86  targets,  the  regparm  attribute  should  now work
5894            reliably.
5895          + Several updates for the h8300 port.
5896          + Fix problem building libio with glibc 2.2.
5897     _________________________________________________________________
5898
5899   Please  send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
5900   are also [18]other ways to contact the FSF.
5901
5902   These pages are maintained by [19]the GCC team.
5903
5904
5905    For  questions  related  to the use of GCC, please consult these web
5906    pages    and    the    [20]GCC   manuals.   If   that   fails,   the
5907    [21]gcc-help@gcc.gnu.org mailing list might help.
5908    Please  send  comments on these web pages and the development of GCC
5909    to    our    developer    mailing   list   at   [22]gcc@gnu.org   or
5910    [23]gcc@gcc.gnu.org. All of our lists have [24]public archives.
5911
5912   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5913   330, Boston, MA 02111, USA.
5914
5915   Verbatim  copying and distribution of this entire article is permitted
5916   in any medium, provided this notice is preserved.
5917
5918   Last modified 2004-08-06 [25]Valid XHTML 1.0
5919
5920References
5921
5922   1. http://gcc.gnu.org/news/spill.html
5923   2. http://gcc.gnu.org/news/lcm.html
5924   3. http://gcc.gnu.org/news/cprop.html
5925   4. http://gcc.gnu.org/news/cfg.html
5926   5. http://gcc.gnu.org/news/dse.html
5927   6. http://gcc.gnu.org/news/hoist.html
5928   7. http://gcc.gnu.org/news/alias.html
5929   8. http://gcc.gnu.org/gcc-2.95/c++features.html
5930   9. http://gcc.gnu.org/onlinedocs/g77/News.html
5931  10. http://gcc.gnu.org/java/gcj-announce.txt
5932  11. http://gcc.gnu.org/news/javaannounce.html
5933  12. http://gcc.gnu.org/c99status.html
5934  13. http://gcc.gnu.org/news/chill.html
5935  14. http://gcc.gnu.org/news/sparc.html
5936  15. http://gcc.gnu.org/news/egcs-vcg.html
5937  16. http://gcc.gnu.org/egcs-1.0/features-2.8.html
5938  17. mailto:gnu@gnu.org
5939  18. http://www.gnu.org/home.html#ContactInfo
5940  19. http://gcc.gnu.org/about.html
5941  20. http://gcc.gnu.org/onlinedocs/
5942  21. mailto:gcc-help@gcc.gnu.org
5943  22. mailto:gcc@gnu.org
5944  23. mailto:gcc@gcc.gnu.org
5945  24. http://gcc.gnu.org/lists.html
5946  25. http://validator.w3.org/check/referer
5947======================================================================
5948http://gcc.gnu.org/gcc-2.95/caveats.html
5949
5950                              GCC 2.95 Caveats
5951
5952     * GCC  2.95  will issue an error for invalid asm statements that had
5953       been  silently  accepted by earlier versions of the compiler. This
5954       is  particularly  noticeable  when compiling older versions of the
5955       Linux  kernel  (2.0.xx).  Please refer to the FAQ (as shipped with
5956       GCC 2.95) for more information on this issue.
5957     * GCC  2.95  implements  type  based  alias analysis to disambiguate
5958       memory  references.  Some  programs, particularly the Linux kernel
5959       violate  ANSI/ISO  aliasing  rules  and  therefore may not operate
5960       correctly when compiled with GCC 2.95. Please refer to the FAQ (as
5961       shipped with GCC 2.95) for more information on this issue.
5962     * GCC  2.95 has a known bug in its handling of complex variables for
5963       64bit  targets. Instead of silently generating incorrect code, GCC
5964       2.95  will  issue  a fatal error for situations it can not handle.
5965       This primarily affects the Fortran community as Fortran makes more
5966       use of complex variables than C or C++.
5967     * GCC  2.95  has  an  integrated  libstdc++,  but  does  not have an
5968       integrated  libg++.  Furthermore old libg++ releases will not work
5969       with  GCC  2.95. You can retrieve a recent copy of libg++ from the
5970       [1]GCC ftp server.
5971       Note most C++ programs only need libstdc++.
5972     * Exception   handling   may   not   work   with  shared  libraries,
5973       particularly  on  alphas,  hppas,  rs6000/powerpc  and  mips based
5974       platforms.  Exception  handling  is known to work on x86 GNU/Linux
5975       platforms with shared libraries.
5976     * In  general, GCC 2.95 is more rigorous about rejecting invalid C++
5977       code or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0,
5978       or  EGCS  1.1.  As  a  result  it may be necessary to fix C++ code
5979       before it will compile with GCC 2.95.
5980     * G++  is  also  converting toward the ISO C++ standard; as a result
5981       code  which  was  previously  valid  (and  thus  accepted by other
5982       compilers  and  older  versions of g++) may no longer be accepted.
5983       The  flag  -fpermissive  may  allow  some  non-conforming  code to
5984       compile with GCC 2.95.
5985     * GCC  2.95  compiled  C++  code  is not binary compatible with EGCS
5986       1.1.x, EGCS 1.0.x or GCC 2.8.x.
5987     * GCC  2.95  does  not  have changes from the GCC 2.8 tree that were
5988       made between Sept 30, 1998 and April 30, 1999 (the official end of
5989       the  GCC  2.8  project).  Future GCC releases will include all the
5990       changes from the defunct GCC 2.8 sources.
5991     _________________________________________________________________
5992
5993   Please  send  FSF & GNU inquiries & questions to [2]gnu@gnu.org. There
5994   are also [3]other ways to contact the FSF.
5995
5996   These pages are maintained by [4]the GCC team.
5997
5998
5999    For  questions  related  to the use of GCC, please consult these web
6000    pages    and    the    [5]GCC    manuals.   If   that   fails,   the
6001    [6]gcc-help@gcc.gnu.org mailing list might help.
6002    Please  send  comments on these web pages and the development of GCC
6003    to    our    developer    mailing    list   at   [7]gcc@gnu.org   or
6004    [8]gcc@gcc.gnu.org. All of our lists have [9]public archives.
6005
6006   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6007   330, Boston, MA 02111, USA.
6008
6009   Verbatim  copying and distribution of this entire article is permitted
6010   in any medium, provided this notice is preserved.
6011
6012   Last modified 2004-08-06 [10]Valid XHTML 1.0
6013
6014References
6015
6016   1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz
6017   2. mailto:gnu@gnu.org
6018   3. http://www.gnu.org/home.html#ContactInfo
6019   4. http://gcc.gnu.org/about.html
6020   5. http://gcc.gnu.org/onlinedocs/
6021   6. mailto:gcc-help@gcc.gnu.org
6022   7. mailto:gcc@gnu.org
6023   8. mailto:gcc@gcc.gnu.org
6024   9. http://gcc.gnu.org/lists.html
6025  10. http://validator.w3.org/check/referer
6026======================================================================
6027http://gcc.gnu.org/egcs-1.1/index.html
6028
6029                                  EGCS 1.1
6030
6031   September 3, 1998: We are pleased to announce the release of EGCS 1.1.
6032   December  1,  1998:  We  are  pleased  to announce the release of EGCS
6033   1.1.1.
6034   March 15, 1999: We are pleased to announce the release of EGCS 1.1.2.
6035
6036   EGCS  is a free software project to further the development of the GNU
6037   compilers using an open development environment.
6038
6039   EGCS  1.1  is  a major new release of the EGCS compiler system. It has
6040   been  [1]extensively  tested and is believed to be stable and suitable
6041   for widespread use.
6042
6043   EGCS  1.1  is  based  on  an  June  6,  1998  snapshot  of the GCC 2.8
6044   development  sources; it contains all of the new features found in GCC
6045   2.8.1 as well as all new development from GCC up to June 6, 1998.
6046
6047   EGCS 1.1 also contains many improvements and features not found in GCC
6048   or in older versions of EGCS:
6049     * Global  common  subexpression elimination and global constant/copy
6050       propagation (aka [2]gcse)
6051     * Ongoing improvements to the [3]alias analysis support to allow for
6052       better optimizations throughout the compiler.
6053     * Vastly   improved  [4]C++  compiler  and  integrated  C++  runtime
6054       libraries.
6055     * Fixes for the /tmp symlink race security problems.
6056     * New targets including mips16, arm-thumb and 64 bit PowerPC.
6057     * Improvements  to  GNU  Fortran  (g77) compiler and runtime library
6058       made since g77 version 0.5.23.
6059
6060   See  the [5]new features page for a more complete list of new features
6061   found in EGCS 1.1 releases.
6062
6063   EGCS  1.1.1  is a minor update to fix several serious problems in EGCS
6064   1.1:
6065     * General improvements and fixes
6066          + Avoid some stack overflows when compiling large functions.
6067          + Avoid incorrect loop invariant code motions.
6068          + Fix some core dumps on Linux kernel code.
6069          + Bring back the imake -Di386 and friends fix from EGCS 1.0.2.
6070          + Fix code generation problem in gcse.
6071          + Various documentation related fixes.
6072     * g++/libstdc++ improvements and fixes
6073          + MT safe EH fix for setjmp/longjmp based exception handling.
6074          + Fix a few bad interactions between optimization and exception
6075            handling.
6076          + Fixes for demangling of template names starting with "__".
6077          + Fix  a  bug  that would fail to run destructors in some cases
6078            with -O2.
6079          + Fix 'new' of classes with virtual bases.
6080          + Fix crash building Qt on the Alpha.
6081          + Fix failure compiling WIFEXITED macro on GNU/Linux.
6082          + Fix some -frepo failures.
6083     * g77 and libf2c improvements and fixes
6084          + Various documentation fixes.
6085          + Avoid compiler crash on RAND intrinsic.
6086          + Fix minor bugs in makefiles exposed by BSD make programs.
6087          + Define  _XOPEN_SOURCE  for  libI77  build  to avoid potential
6088            problems on some 64-bit systems.
6089          + Fix problem with implicit endfile on rewind.
6090          + Fix spurious recursive I/O errors.
6091     * platform specific improvements and fixes
6092          + Match all versions of UnixWare7.
6093          + Do not assume x86 SVR4 or UnixWare targets can handle stabs.
6094          + Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion
6095            from unsigned ints to double precision floats.
6096          + Fix ARM ABI issue with NetBSD.
6097          + Fix a few arm code generation bugs.
6098          + Fixincludes  will fix additional broken SCO OpenServer header
6099            files.
6100          + Fix  a m68k backend bug which caused invalid offsets in reg+d
6101            addresses.
6102          + Fix problems with 64bit AIX 4.3 support.
6103          + Fix  handling  of  long longs for varargs/stdarg functions on
6104            the ppc.
6105          + Minor fixes to CPP predefines for Windows.
6106          + Fix  code generation problems with gpr<->fpr copies for 64bit
6107            ppc.
6108          + Fix a few coldfire code generation bugs.
6109          + Fix some more header file problems on SunOS 4.x.
6110          + Fix assert.h handling for RTEMS.
6111          + Fix Windows handling of TREE_SYMBOL_REFERENCED.
6112          + Fix x86 compiler abort in reg-stack pass.
6113          + Fix cygwin/windows problem with section attributes.
6114          + Fix  Alpha  code  generation  problem  exposed  by  SMP Linux
6115            kernels.
6116          + Fix typo in m68k 32->64bit integer conversion.
6117          + Make  sure  target libraries build with -fPIC for PPC & Alpha
6118            targets.
6119
6120   EGCS  1.1.2  is a minor update to fix several serious problems in EGCS
6121   1.1.1:
6122     * General improvements and fixes
6123          + Fix  bug  in  loop  optimizer  which  caused  the  SPARC (and
6124            potentially other) ports to segfault.
6125          + Fix infinite recursion in alias analysis and combiner code.
6126          + Fix bug in regclass preferencing.
6127          + Fix incorrect loop reversal which caused incorrect code to be
6128            generated for several targets.
6129          + Fix return value for builtin memcpy.
6130          + Reduce compile time for certain loops which exposed quadratic
6131            behavior in the loop optimizer.
6132          + Fix  bug  which caused volatile memory to be written multiple
6133            times when only one write was needed/desired.
6134          + Fix compiler abort in caller-save.c
6135          + Fix  combiner  bug which caused incorrect code generation for
6136            certain division by constant operations.
6137          + Fix  incorrect  code  generation  due to a bug in range check
6138            optimizations.
6139          + Fix   incorrect   code  generation  due  to  mis-handling  of
6140            clobbered values in CSE.
6141          + Fix   compiler   abort/segfault  due  to  incorrect  register
6142            splitting when unrolling loops.
6143          + Fix  code generation involving autoincremented addresses with
6144            ternary operators.
6145          + Work  around  bug  in  the  scheduler  which  caused qt to be
6146            mis-compiled on some platforms.
6147          + Fix code generation problems with -fshort-enums.
6148          + Tighten security for temporary files.
6149          + Improve  compile  time  for  codes  which  make  heavy use of
6150            overloaded functions.
6151          + Fix multiply defined constructor/destructor symbol problems.
6152          + Avoid   setting   bogus  RPATH  environment  variable  during
6153            bootstrap.
6154          + Avoid GNU-make dependencies in the texinfo subdir.
6155          + Install  CPP wrapper script in $(prefix)/bin if --enable-cpp.
6156            --enable-cpp=<dirname>  can  be used to specify an additional
6157            install directory for the cpp wrapper script.
6158          + Fix CSE bug which caused incorrect label-label refs to appear
6159            on some platforms.
6160          + Avoid  linking  in  EH  routines  from libgcc if they are not
6161            needed.
6162          + Avoid obscure bug in aliasing code.
6163          + Fix bug in weak symbol handling.
6164     * Platform-specific improvements and fixes
6165          + Fix detection of PPro/PII on Unixware 7.
6166          + Fix compiler segfault when building spec99 and other programs
6167            for SPARC targets.
6168          + Fix  code-generation  bugs  for  integer  and  floating point
6169            conditional move instructions on the PPro/PII.
6170          + Use fixincludes to fix byteorder problems on i?86-*-sysv.
6171          + Fix build failure for the arc port.
6172          + Fix floating point format configuration for i?86-gnu port.
6173          + Fix  problems  with  hppa1.0-hp-hpux10.20  configuration when
6174            threads are enabled.
6175          + Fix coldfire code generation bugs.
6176          + Fix "unrecognized insn" problems for Alpha and PPC ports.
6177          + Fix h8/300 code generation problem with floating point values
6178            in memory.
6179          + Fix unrecognized insn problems for the m68k port.
6180          + Fix namespace-pollution problem for the x86 port.
6181          + Fix problems with old assembler on x86 NeXT systems.
6182          + Fix PIC code-generation problems for the SPARC port.
6183          + Fix minor bug with LONG_CALLS in PowerPC SVR4 support.
6184          + Fix  minor  ISO  namespace  violation in Alpha varargs/stdarg
6185            support.
6186          + Fix incorrect "braf" instruction usage for the SH port.
6187          + Fix minor bug in va-sh which prevented its use with -ansi.
6188          + Fix problems recognizing and supporting FreeBSD.
6189          + Handle OpenBSD systems correctly.
6190          + Minor fixincludes fix for Digital UNIX 4.0B.
6191          + Fix problems with ctors/dtors in SCO shared libraries.
6192          + Abort  instead  of  generating  incorrect  code  for PPro/PII
6193            floating point conditional moves.
6194          + Avoid  multiply  defined  symbols  on Linux/GNU systems using
6195            libc-5.4.xx.
6196          + Fix abort in alpha compiler.
6197     * Fortran-specific fixes
6198          + Fix  the  IDate  intrinsic  (VXT) (in libg2c) so the returned
6199            year  is  in the documented, non-Y2K-compliant range of 0-99,
6200            instead of being returned as 100 in the year 2000.
6201          + Fix  the  `Date_and_Time' intrinsic (in libg2c) to return the
6202            milliseconds value properly in Values(8).
6203          + Fix  the  `LStat'  intrinsic  (in libg2c) to return device-ID
6204            information properly in SArray(7).
6205
6206   Each  release  includes  installation  instructions  in  both HTML and
6207   plaintext  forms  (see the INSTALL directory in the toplevel directory
6208   of  the  distribution).  However,  we  also  keep  the most up to date
6209   [6]installation instructions and [7]build/test status on our web page.
6210   We will update those pages as new information becomes available.
6211
6212   The  EGCS  project  would  like to thank the numerous people that have
6213   contributed new features, test results, bugfixes, etc. This [8]amazing
6214   group of volunteers is what makes EGCS successful.
6215
6216   And  finally,  we  can't  in  good  conscience  fail  to  mention some
6217   [9]caveats to using EGCS 1.1.
6218
6219   Download EGCS from egcs.cygnus.com (USA California).
6220
6221   The EGCS 1.1 release is also available on many mirror sites.
6222   [10]Goto mirror list to find a closer site.
6223     _________________________________________________________________
6224
6225   Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
6226   are also [12]other ways to contact the FSF.
6227
6228   These pages are maintained by [13]the GCC team.
6229
6230
6231    For  questions  related  to the use of GCC, please consult these web
6232    pages    and    the    [14]GCC   manuals.   If   that   fails,   the
6233    [15]gcc-help@gcc.gnu.org mailing list might help.
6234    Please  send  comments on these web pages and the development of GCC
6235    to    our    developer    mailing   list   at   [16]gcc@gnu.org   or
6236    [17]gcc@gcc.gnu.org. All of our lists have [18]public archives.
6237
6238   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6239   330, Boston, MA 02111, USA.
6240
6241   Verbatim  copying and distribution of this entire article is permitted
6242   in any medium, provided this notice is preserved.
6243
6244   Last modified 2004-08-06 [19]Valid XHTML 1.0
6245
6246References
6247
6248   1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html
6249   2. http://gcc.gnu.org/news/gcse.html
6250   3. http://gcc.gnu.org/news/alias.html
6251   4. http://gcc.gnu.org/egcs-1.1/c++features.html
6252   5. http://gcc.gnu.org/egcs-1.1/features.html
6253   6. http://gcc.gnu.org/install/
6254   7. http://gcc.gnu.org/egcs-1.1/buildstat.html
6255   8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
6256   9. http://gcc.gnu.org/egcs-1.1/caveats.html
6257  10. http://gcc.gnu.org/mirrors.html
6258  11. mailto:gnu@gnu.org
6259  12. http://www.gnu.org/home.html#ContactInfo
6260  13. http://gcc.gnu.org/about.html
6261  14. http://gcc.gnu.org/onlinedocs/
6262  15. mailto:gcc-help@gcc.gnu.org
6263  16. mailto:gcc@gnu.org
6264  17. mailto:gcc@gcc.gnu.org
6265  18. http://gcc.gnu.org/lists.html
6266  19. http://validator.w3.org/check/referer
6267======================================================================
6268http://gcc.gnu.org/egcs-1.1/features.html
6269
6270                           EGCS 1.1 new features
6271
6272     * Integrated  GNU  Fortran  (g77)  compiler and runtime library with
6273       improvements, based on [1]g77 version 0.5.23.
6274     * Vast  improvements  in the C++ compiler; so many they have [2]page
6275       of their own!
6276     * Compiler implements [3]global common subexpression elimination and
6277       global copy/constant propagation.
6278     * More major improvements in the [4]alias analysis code.
6279     * More  major improvements in the exception handling code to improve
6280       performance,  lower static overhead and provide the infrastructure
6281       for future improvements.
6282     * The infamous /tmp symlink race security problems have been fixed.
6283     * The regmove optimization pass has been nearly completely rewritten
6284       to improve performance of generated code.
6285     * The  compiler  now  recomputes  register  usage information before
6286       local  register allocation. By providing more accurate information
6287       to   the   priority   based  allocator,  we  get  better  register
6288       allocation.
6289     * The  register reloading phase of the compiler optimizes spill code
6290       much better than in previous releases.
6291     * Some   bad   interactions   between  the  register  allocator  and
6292       instruction  scheduler  have  been fixed, resulting in much better
6293       code  for  certain  programs.  Additionally,  we  have  tuned  the
6294       scheduler in various ways to improve performance of generated code
6295       for some architectures.
6296     * The    compiler's   branch   shortening   algorithms   have   been
6297       significantly  improved to work better on targets which align jump
6298       targets.
6299     * The  compiler now supports -Os to prefer optimizing for code space
6300       over optimizing for code speed.
6301     * The  compiler  will  now  totally  eliminate  library  calls which
6302       compute  constant  values.  This  primarily  helps targets with no
6303       integer   div/mul  support  and  targets  without  floating  point
6304       support.
6305     * The compiler now supports an extensive "--help" option.
6306     * cpplib  has  been greatly improved and may be suitable for limited
6307       use.
6308     * Memory  footprint  for the compiler has been significantly reduced
6309       for some pathological cases.
6310     * The  time  to  build  EGCS  has  been improved for certain targets
6311       (particularly the alpha and mips platforms).
6312     * Many infrastructure improvements throughout the compiler, plus the
6313       usual mountain of bugfixes and minor improvements.
6314     * Target dependent improvements:
6315          + SPARC  port  now  includes  V8 plus and V9 support as well as
6316            performance  tuning  for Ultra class machines. The SPARC port
6317            now uses the Haifa scheduler.
6318          + Alpha  port  has  been tuned for the EV6 processor and has an
6319            optimized  expansion of memcpy/bzero. The Alpha port now uses
6320            the Haifa scheduler.
6321          + RS6000/PowerPC:  support for the Power64 architecture and AIX
6322            4.3. The RS6000/PowerPC port now uses the Haifa scheduler.
6323          + x86:  Alignment  of static store data and jump targets is per
6324            Intel  recommendations  now.  Various improvements throughout
6325            the  x86  port  to  improve performance on Pentium processors
6326            (including  improved epilogue sequences for Pentium chips and
6327            backend improvements which should help register allocation on
6328            all x86 variants. Conditional move support has been fixed and
6329            enabled  for  PPro  processors.  The  x86  port  also  better
6330            supports 64bit operations now. Unixware 7, a System V Release
6331            5  target,  is  now  supported and SCO OpenServer targets can
6332            support GAS.
6333          + MIPS  has  improved  multiply/multiply-add  support  and  now
6334            includes mips16 ISA support.
6335          + M68k has many micro-optimizations and Coldfire fixes.
6336     * Core  compiler  is  based on the GCC development tree from June 9,
6337       1998, so we have all of the [5]features found in GCC 2.8.
6338     _________________________________________________________________
6339
6340   Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6341   are also [7]other ways to contact the FSF.
6342
6343   These pages are maintained by [8]the GCC team.
6344
6345
6346    For  questions  related  to the use of GCC, please consult these web
6347    pages    and    the    [9]GCC    manuals.   If   that   fails,   the
6348    [10]gcc-help@gcc.gnu.org mailing list might help.
6349    Please  send  comments on these web pages and the development of GCC
6350    to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
6351    [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
6352
6353   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6354   330, Boston, MA 02111, USA.
6355
6356   Verbatim  copying and distribution of this entire article is permitted
6357   in any medium, provided this notice is preserved.
6358
6359   Last modified 2004-08-06 [14]Valid XHTML 1.0
6360
6361References
6362
6363   1. http://gcc.gnu.org/onlinedocs/g77/News.html
6364   2. http://gcc.gnu.org/egcs-1.1/c++features.html
6365   3. http://gcc.gnu.org/news/gcse.html
6366   4. http://gcc.gnu.org/news/alias.html
6367   5. http://gcc.gnu.org/egcs-1.0/features-2.8.html
6368   6. mailto:gnu@gnu.org
6369   7. http://www.gnu.org/home.html#ContactInfo
6370   8. http://gcc.gnu.org/about.html
6371   9. http://gcc.gnu.org/onlinedocs/
6372  10. mailto:gcc-help@gcc.gnu.org
6373  11. mailto:gcc@gnu.org
6374  12. mailto:gcc@gcc.gnu.org
6375  13. http://gcc.gnu.org/lists.html
6376  14. http://validator.w3.org/check/referer
6377======================================================================
6378http://gcc.gnu.org/egcs-1.1/caveats.html
6379
6380                              EGCS 1.1 Caveats
6381
6382     * EGCS  has an integrated libstdc++, but does not have an integrated
6383       libg++.  Furthermore  old libg++ releases will not work with EGCS;
6384       HJ  Lu has made a libg++-2.8.1.2 snapshot available which may work
6385       with EGCS.
6386       Note most C++ programs only need libstdc++.
6387     * Exception   handling   may   not   work   with  shared  libraries,
6388       particularly  on  alphas,  hppas,  rs6000/powerpc  and  mips based
6389       platforms.  Exception  handling  is  known  to  work  on x86-linux
6390       platforms with shared libraries.
6391     * Some  versions  of  the  Linux kernel have bugs which prevent them
6392       from being compiled or from running when compiled by EGCS. See the
6393       FAQ (as shipped with EGCS 1.1) for additional information.
6394     * In general, EGCS is more rigorous about rejecting invalid C++ code
6395       or deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As
6396       a  result  it  may  be  necessary  to  fix C++ code before it will
6397       compile with EGCS.
6398     * G++  is  also  converting toward the ISO C++ standard; as a result
6399       code  which  was  previously  valid  (and  thus  accepted by other
6400       compilers and older versions of g++) may no longer be accepted.
6401     * EGCS  1.1  compiled  C++  code  is not binary compatible with EGCS
6402       1.0.x or GCC 2.8.x due to changes necessary to support thread safe
6403       exception handling.
6404     _________________________________________________________________
6405
6406   Please  send  FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
6407   are also [2]other ways to contact the FSF.
6408
6409   These pages are maintained by [3]the GCC team.
6410
6411
6412    For  questions  related  to the use of GCC, please consult these web
6413    pages    and    the    [4]GCC    manuals.   If   that   fails,   the
6414    [5]gcc-help@gcc.gnu.org mailing list might help.
6415    Please  send  comments on these web pages and the development of GCC
6416    to    our    developer    mailing    list   at   [6]gcc@gnu.org   or
6417    [7]gcc@gcc.gnu.org. All of our lists have [8]public archives.
6418
6419   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6420   330, Boston, MA 02111, USA.
6421
6422   Verbatim  copying and distribution of this entire article is permitted
6423   in any medium, provided this notice is preserved.
6424
6425   Last modified 2004-08-06 [9]Valid XHTML 1.0
6426
6427References
6428
6429   1. mailto:gnu@gnu.org
6430   2. http://www.gnu.org/home.html#ContactInfo
6431   3. http://gcc.gnu.org/about.html
6432   4. http://gcc.gnu.org/onlinedocs/
6433   5. mailto:gcc-help@gcc.gnu.org
6434   6. mailto:gcc@gnu.org
6435   7. mailto:gcc@gcc.gnu.org
6436   8. http://gcc.gnu.org/lists.html
6437   9. http://validator.w3.org/check/referer
6438======================================================================
6439http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.html
6440
6441                                 EGCS 1.0.3
6442
6443   May 15, 1998
6444
6445   We are pleased to announce the release of EGCS 1.0.3.
6446
6447   EGCS  is  a  collaborative  effort involving several groups of hackers
6448   using  an open development model to accelerate development and testing
6449   of GNU compilers and runtime libraries.
6450
6451   EGCS  1.0.3  is a minor update to the EGCS 1.0.2 compiler to fix a few
6452   problems reported by Red Hat for builds of Red Hat 5.1.
6453     * Generic bugfixes:
6454          + Fix  a  typo in the libio library which resulted in incorrect
6455            behavior of istream::get.
6456          + Fix the Fortran negative array index problem.
6457          + Fix  a  major  problem  with  the ObjC runtime thread support
6458            exposed by glibc2.
6459          + Reduce memory consumption of the Haifa scheduler.
6460     * Target specific bugfixes:
6461          + Fix  one  x86  floating  point code generation bug exposed by
6462            glibc2 builds.
6463          + Fix one x86 internal compiler error exposed by glibc2 builds.
6464          + Fix profiling bugs on the Alpha.
6465          + Fix ImageMagick & emacs 20.2 build problems on the Alpha.
6466          + Fix  rs6000/ppc bug when converting values from integer types
6467            to floating point types.
6468
6469   An  important  goal  of  EGCS  is  to  allow wide scale testing of new
6470   features and optimizations which are still under development. However,
6471   EGCS  has been carefully tested and should be comparable in quality to
6472   most GCC releases.
6473
6474   EGCS  1.0.3  is  based  on  an  August 2, 1997 snapshot of the GCC 2.8
6475   development  sources; it contains nearly all of the new features found
6476   in GCC 2.8.
6477
6478   EGCS also contains many improvements and features not found in GCC 2.7
6479   or GCC 2.8.
6480     * Integrated C++ runtime libraries, including support for most major
6481       GNU/Linux systems!
6482     * The integrated libstdc++ library includes a verbatim copy of SGI's
6483       STL release instead of a modified copy.
6484     * Integrated GNU Fortran compiler.
6485     * New instruction scheduler.
6486     * New alias analysis code.
6487
6488   See  the [1]new features page for a more complete list of new features
6489   found in EGCS 1.0.x releases.
6490
6491   The EGCS 1.0.3 release includes installation instructions in both HTML
6492   and  plaintext  forms  (see  the  INSTALL  directory  in  the toplevel
6493   directory  of  the EGCS 1.0.3 distribution). However, we also keep the
6494   most  up to date [2]installation instructions and [3]build/test status
6495   on our web page. We will update those pages as new information becomes
6496   available.
6497
6498   And,  we  can't  in good conscience fail to mention some [4]caveats to
6499   using EGCS.
6500
6501   Update:  Big  thanks  to  Stanford for providing a high speed link for
6502   downloading EGCS (go.cygnus.com)!
6503
6504   Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6505   (USA California -- High speed link provided by Stanford).
6506
6507   The EGCS 1.0.3 release is also available on many mirror sites.
6508   [5]Goto mirror list to find a closer site
6509
6510   We'd  like  to  thank  the  numerous  people that have contributed new
6511   features,  test results, bugfixes, etc. Unfortunately, they're far too
6512   numerous to mention by name.
6513     _________________________________________________________________
6514
6515   Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6516   are also [7]other ways to contact the FSF.
6517
6518   These pages are maintained by [8]the GCC team.
6519
6520
6521    For  questions  related  to the use of GCC, please consult these web
6522    pages    and    the    [9]GCC    manuals.   If   that   fails,   the
6523    [10]gcc-help@gcc.gnu.org mailing list might help.
6524    Please  send  comments on these web pages and the development of GCC
6525    to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
6526    [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
6527
6528   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6529   330, Boston, MA 02111, USA.
6530
6531   Verbatim  copying and distribution of this entire article is permitted
6532   in any medium, provided this notice is preserved.
6533
6534   Last modified 2004-08-06 [14]Valid XHTML 1.0
6535
6536References
6537
6538   1. http://gcc.gnu.org/egcs-1.0/features.html
6539   2. http://gcc.gnu.org/install/
6540   3. http://gcc.gnu.org/egcs-1.0/buildstat.html
6541   4. http://gcc.gnu.org/egcs-1.0/caveats.html
6542   5. http://gcc.gnu.org/mirrors.html
6543   6. mailto:gnu@gnu.org
6544   7. http://www.gnu.org/home.html#ContactInfo
6545   8. http://gcc.gnu.org/about.html
6546   9. http://gcc.gnu.org/onlinedocs/
6547  10. mailto:gcc-help@gcc.gnu.org
6548  11. mailto:gcc@gnu.org
6549  12. mailto:gcc@gcc.gnu.org
6550  13. http://gcc.gnu.org/lists.html
6551  14. http://validator.w3.org/check/referer
6552======================================================================
6553http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.html
6554
6555                                 EGCS 1.0.2
6556
6557   March 16, 1998
6558
6559   We are pleased to announce the release of EGCS 1.0.2.
6560
6561   EGCS  is  a  collaborative  effort involving several groups of hackers
6562   using  an open development model to accelerate development and testing
6563   of GNU compilers and runtime libraries.
6564
6565   EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several
6566   serious problems in EGCS 1.0.1.
6567     * General improvements and fixes
6568          + Memory  consumption  significantly  reduced,  especially  for
6569            templates and inline functions.
6570          + Fix various problems with glibc2.1.
6571          + Fix loop optimization bug exposed by rs6000/ppc port.
6572          + Fix to avoid potential code generation problems in jump.c.
6573          + Fix some undefined symbol problems in dwarf1 debug support.
6574     * g++/libstdc++ improvements and fixes
6575          + libstdc++  in the EGCS release has been updated and should be
6576            link compatible with libstdc++-2.8.
6577          + Various  fixes  in  libio/libstdc++  to  work better on Linux
6578            systems.
6579          + Fix  problems  with  duplicate symbols on systems that do not
6580            support weak symbols.
6581          + Memory  corruption bug and undefined symbols in bastring have
6582            been fixed.
6583          + Various exception handling fixes.
6584          + Fix compiler abort for very long thunk names.
6585     * g77 improvements and fixes
6586          + Fix   compiler  crash  for  omitted  bound  in  Fortran  CASE
6587            statement.
6588          + Add missing entries to g77 lang-options.
6589          + Fix problem with -fpedantic in the g77 compiler.
6590          + Fix "backspace" problem with g77 on alphas.
6591          + Fix x86 backend problem with Fortran literals and -fpic.
6592          + Fix  some of the problems with negative subscripts for g77 on
6593            alphas.
6594          + Fixes for Fortran builds on cygwin32/mingw32.
6595     * platform specific improvements and fixes
6596          + Fix long double problems on x86 (exposed by glibc).
6597          + x86 ports define i386 again to keep imake happy.
6598          + Fix exception handling support on NetBSD ports.
6599          + Several changes to collect2 to fix many problems with AIX.
6600          + Define __ELF__ for rs6000/linux.
6601          + Fix -mcall-linux problem on rs6000/linux.
6602          + Fix stdarg/vararg problem for rs6000/linux.
6603          + Allow autoconf to select a proper install problem on AIX 3.1.
6604          + m68k  port  support  includes -mcpu32 option as well as cpu32
6605            multilibs.
6606          + Fix stdarg bug for irix6.
6607          + Allow EGCS to build on irix5 without the gnu assembler.
6608          + Fix problem with static linking on sco5.
6609          + Fix bootstrap on sco5 with native compiler.
6610          + Fix for abort building newlib on H8 target.
6611          + Fix fixincludes handling of math.h on SunOS.
6612          + Minor fix for Motorola 3300 m68k systems.
6613
6614   An  important  goal  of  EGCS  is  to  allow wide scale testing of new
6615   features and optimizations which are still under development. However,
6616   EGCS  has been carefully tested and should be comparable in quality to
6617   most GCC releases.
6618
6619   EGCS  1.0.2  is  based  on  an  August 2, 1997 snapshot of the GCC 2.8
6620   development  sources; it contains nearly all of the new features found
6621   in GCC 2.8.
6622
6623   EGCS also contains many improvements and features not found in GCC 2.7
6624   or GCC 2.8.
6625     * Integrated C++ runtime libraries, including support for most major
6626       linux systems!
6627     * The integrated libstdc++ library includes a verbatim copy of SGI's
6628       STL release.
6629     * Integrated GNU Fortran compiler.
6630     * New instruction scheduler.
6631     * New alias analysis code.
6632
6633   See  the [1]new features page for a more complete list of new features
6634   found in EGCS 1.0.x releases.
6635
6636   The EGCS 1.0.2 release includes installation instructions in both HTML
6637   and  plaintext  forms  (see  the  INSTALL  directory  in  the toplevel
6638   directory  of  the EGCS 1.0.2 distribution). However, we also keep the
6639   most  up to date [2]installation instructions and [3]build/test status
6640   on our web page. We will update those pages as new information becomes
6641   available.
6642
6643   And,  we  can't  in good conscience fail to mention some [4]caveats to
6644   using EGCS.
6645
6646   Update:  Big  thanks  to  Stanford for providing a high speed link for
6647   downloading EGCS (go.cygnus.com)!
6648
6649   Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6650   (USA California -- High speed link provided by Stanford).
6651
6652   The EGCS 1.0.2 release is also available on many mirror sites.
6653   [5]Goto mirror list to find a closer site
6654
6655   We'd  like  to  thank  the  numerous  people that have contributed new
6656   features,  test results, bugfixes, etc. Unfortunately, they're far too
6657   numerous to mention by name.
6658     _________________________________________________________________
6659
6660   Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6661   are also [7]other ways to contact the FSF.
6662
6663   These pages are maintained by [8]the GCC team.
6664
6665
6666    For  questions  related  to the use of GCC, please consult these web
6667    pages    and    the    [9]GCC    manuals.   If   that   fails,   the
6668    [10]gcc-help@gcc.gnu.org mailing list might help.
6669    Please  send  comments on these web pages and the development of GCC
6670    to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
6671    [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
6672
6673   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6674   330, Boston, MA 02111, USA.
6675
6676   Verbatim  copying and distribution of this entire article is permitted
6677   in any medium, provided this notice is preserved.
6678
6679   Last modified 2004-08-06 [14]Valid XHTML 1.0
6680
6681References
6682
6683   1. http://gcc.gnu.org/egcs-1.0/features.html
6684   2. http://gcc.gnu.org/install/index.html
6685   3. http://gcc.gnu.org/egcs-1.0/buildstat.html
6686   4. http://gcc.gnu.org/egcs-1.0/caveats.html
6687   5. http://gcc.gnu.org/mirrors.html
6688   6. mailto:gnu@gnu.org
6689   7. http://www.gnu.org/home.html#ContactInfo
6690   8. http://gcc.gnu.org/about.html
6691   9. http://gcc.gnu.org/onlinedocs/
6692  10. mailto:gcc-help@gcc.gnu.org
6693  11. mailto:gcc@gnu.org
6694  12. mailto:gcc@gcc.gnu.org
6695  13. http://gcc.gnu.org/lists.html
6696  14. http://validator.w3.org/check/referer
6697======================================================================
6698http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.html
6699
6700                                 EGCS 1.0.1
6701
6702   January 6, 1998
6703
6704   We are pleased to announce the release of EGCS 1.0.1.
6705
6706   EGCS  is  a  collaborative  effort involving several groups of hackers
6707   using  an open development model to accelerate development and testing
6708   of GNU compilers and runtime libraries.
6709
6710   EGCS  1.0.1  is  a  minor update to the EGCS 1.0 compiler to fix a few
6711   critical bugs and add support for Red Hat 5.0 Linux. Changes since the
6712   EGCS 1.0 release:
6713     * Add  support  for  Red  Hat 5.0 Linux and better support for Linux
6714       systems using glibc2.
6715       Many  programs  failed  to link when compiled with EGCS 1.0 on Red
6716       Hat  5.0  or  on systems with newer versions of glibc2. EGCS 1.0.1
6717       should fix these problems.
6718     * Compatibility  with  both  EGCS  1.0  and GCC 2.8 libgcc exception
6719       handling interfaces.
6720       To  avoid  future  compatibility problems, we strongly urge anyone
6721       who  is planning on distributing shared libraries that contain C++
6722       code to upgrade to EGCS 1.0.1 first.
6723       Soon  after  EGCS  1.0  was released, the GCC developers made some
6724       incompatible  changes  in  libgcc's exception handling interfaces.
6725       These  changes  were  needed  to solve problems on some platforms.
6726       This  means  that GCC 2.8.0, when released, will not be seamlessly
6727       compatible  with shared libraries built by EGCS 1.0. The reason is
6728       that  the libgcc.a in GCC 2.8.0 will not contain a function needed
6729       by the old interface.
6730       The  result  of  this  is that there may be compatibility problems
6731       with shared libraries built by EGCS 1.0 when used with GCC 2.8.0.
6732       With   EGCS  1.0.1,  generated  code  uses  the  new  (GCC  2.8.0)
6733       interface,  and libgcc.a has the support routines for both the old
6734       and  the  new  interfaces  (so EGCS 1.0.1 and EGCS 1.0 code can be
6735       freely  mixed,  and  EGCS  1.0.1  and GCC 2.8.0 code can be freely
6736       mixed).
6737       The maintainers of GCC 2.x have decided against including seamless
6738       support  for  the  old  interface  in  2.8.0,  since  it was never
6739       "official", so to avoid future compatibility problems we recommend
6740       against  distributing  any shared libraries built by EGCS 1.0 that
6741       contain C++ code (upgrade to 1.0.1 and use that).
6742     * Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
6743       The  x86  changes fix code generation errors exposed when building
6744       glibc2 and the Linux dynamic linker (ld.so).
6745       The  hppa  change  fixes  a compiler abort when configured for use
6746       with RTEMS.
6747       The  MIPS  changes fix problems with the definition of LONG_MAX on
6748       newer systems, allow for command line selection of the target ABI,
6749       and fix one code generation problem.
6750       The  rs6000/ppc change fixes some problems with passing structures
6751       to varargs/stdarg functions.
6752     * A  few machine independent bugfixes, mostly to fix code generation
6753       errors when building Linux kernels or glibc.
6754     * Fix a few critical exception handling and template bugs in the C++
6755       compiler.
6756     * Fix Fortran namelist bug on alphas.
6757     * Fix build problems on x86-solaris systems.
6758
6759   An  important  goal  of  EGCS  is  to  allow wide scale testing of new
6760   features and optimizations which are still under development. However,
6761   EGCS  has been carefully tested and should be comparable in quality to
6762   most GCC releases.
6763
6764   EGCS  1.0.1  is  based  on  an  August 2, 1997 snapshot of the GCC 2.8
6765   development  sources; it contains nearly all of the new features found
6766   in GCC 2.8.
6767
6768   EGCS also contains many improvements and features not found in GCC 2.7
6769   and even the soon to be released GCC 2.8 compilers.
6770     * Integrated C++ runtime libraries, including support for most major
6771       linux systems!
6772     * The integrated libstdc++ library includes a verbatim copy of SGI's
6773       STL release.
6774     * Integrated GNU Fortran compiler
6775     * New instruction scheduler
6776     * New alias analysis code
6777
6778   See  the [1]new features page for a more complete list of new features
6779   found in EGCS 1.0.x releases.
6780
6781   The EGCS 1.0.1 release includes installation instructions in both HTML
6782   and  plaintext  forms  (see  the  INSTALL  directory  in  the toplevel
6783   directory  of  the EGCS 1.0.1 distribution). However, we also keep the
6784   most  up to date [2]installation instructions and [3]build/test status
6785   on our web page. We will update those pages as new information becomes
6786   available.
6787
6788   And,  we  can't  in good conscience fail to mention some [4]caveats to
6789   using EGCS.
6790
6791   Update:  Big  thanks  to  Stanford for providing a high speed link for
6792   downloading EGCS (go.cygnus.com)!
6793
6794   Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6795   (USA California -- High speed link provided by Stanford).
6796
6797   The EGCS 1.0.1 release is also available on many mirror sites.
6798   [5]Goto mirror list to find a closer site
6799
6800   We'd  like  to  thank  the  numerous  people that have contributed new
6801   features,  test results, bugfixes, etc. Unfortunately, they're far too
6802   numerous to mention by name.
6803     _________________________________________________________________
6804
6805   Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6806   are also [7]other ways to contact the FSF.
6807
6808   These pages are maintained by [8]the GCC team.
6809
6810
6811    For  questions  related  to the use of GCC, please consult these web
6812    pages    and    the    [9]GCC    manuals.   If   that   fails,   the
6813    [10]gcc-help@gcc.gnu.org mailing list might help.
6814    Please  send  comments on these web pages and the development of GCC
6815    to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
6816    [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
6817
6818   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6819   330, Boston, MA 02111, USA.
6820
6821   Verbatim  copying and distribution of this entire article is permitted
6822   in any medium, provided this notice is preserved.
6823
6824   Last modified 2004-08-06 [14]Valid XHTML 1.0
6825
6826References
6827
6828   1. http://gcc.gnu.org/egcs-1.0/features.html
6829   2. http://gcc.gnu.org/install/index.html
6830   3. http://gcc.gnu.org/egcs-1.0/buildstat.html
6831   4. http://gcc.gnu.org/egcs-1.0/caveats.html
6832   5. http://gcc.gnu.org/mirrors.html
6833   6. mailto:gnu@gnu.org
6834   7. http://www.gnu.org/home.html#ContactInfo
6835   8. http://gcc.gnu.org/about.html
6836   9. http://gcc.gnu.org/onlinedocs/
6837  10. mailto:gcc-help@gcc.gnu.org
6838  11. mailto:gcc@gnu.org
6839  12. mailto:gcc@gcc.gnu.org
6840  13. http://gcc.gnu.org/lists.html
6841  14. http://validator.w3.org/check/referer
6842======================================================================
6843http://gcc.gnu.org/egcs-1.0/egcs-1.0.html
6844
6845                                  EGCS 1.0
6846
6847   December 3, 1997
6848
6849   We are pleased to announce the release of EGCS 1.0.
6850
6851   EGCS  is  a  collaborative  effort involving several groups of hackers
6852   using  an open development model to accelerate development and testing
6853   of GNU compilers and runtime libraries.
6854
6855   An  important  goal  of  EGCS  is  to  allow  wide  scale  testing  of
6856   experimental features and optimizations; therefore, EGCS contains some
6857   features and optimizations which are still under development. However,
6858   EGCS  has been carefully tested and should be comparable in quality to
6859   most GCC releases.
6860
6861   EGCS  1.0  is  based  on  an  August  2,  1997 snapshot of the GCC 2.8
6862   development  sources; it contains nearly all of the new features found
6863   in GCC 2.8.
6864
6865   EGCS 1.0 also contains many improvements and features not found in GCC
6866   2.7 and even the soon to be released GCC 2.8 compilers.
6867     * Integrated C++ runtime libraries, including support for most major
6868       linux systems!
6869     * The integrated libstdc++ library includes a verbatim copy of SGI's
6870       STL release.
6871     * Integrated GNU Fortran compiler.
6872     * New instruction scheduler.
6873     * New alias analysis code.
6874
6875   See the [1]new features page for a more complete list of new features.
6876
6877   The  EGCS  1.0 release includes installation instructions in both HTML
6878   and  plaintext  forms  (see  the  INSTALL  directory  in  the toplevel
6879   directory  of  the  EGCS  1.0 distribution). However, we also keep the
6880   most  up to date [2]installation instructions and [3]build/test status
6881   on our web page. We will update those pages as new information becomes
6882   available.
6883
6884   And,  we  can't  in good conscience fail to mention some [4]caveats to
6885   using EGCS.
6886
6887   Update:  The  T1  into  our  main  California  offices  has  been 100%
6888   saturated  since  shortly  after  the release. We've added an EGCS 1.0
6889   mirror  at  our  Massachusetts  office to help share the load. We also
6890   encourage  folks  to  use  the  many  mirrors available throughout the
6891   world.
6892
6893   Update:  Big  thanks  to  Stanford for providing a high speed link for
6894   downloading EGCS (go.cygnus.com)!
6895
6896   Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6897   (USA California -- High speed link provided by Stanford).
6898
6899   The EGCS 1.0 release should be available on most mirror sites by now.
6900   [5]Goto mirror list to find a closer site
6901
6902   We'd  like  to  thank  the  numerous  people that have contributed new
6903   features,  test results, bugfixes, etc. Unfortunately, they're far too
6904   numerous to mention by name.
6905     _________________________________________________________________
6906
6907   Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6908   are also [7]other ways to contact the FSF.
6909
6910   These pages are maintained by [8]the GCC team.
6911
6912
6913    For  questions  related  to the use of GCC, please consult these web
6914    pages    and    the    [9]GCC    manuals.   If   that   fails,   the
6915    [10]gcc-help@gcc.gnu.org mailing list might help.
6916    Please  send  comments on these web pages and the development of GCC
6917    to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
6918    [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
6919
6920   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6921   330, Boston, MA 02111, USA.
6922
6923   Verbatim  copying and distribution of this entire article is permitted
6924   in any medium, provided this notice is preserved.
6925
6926   Last modified 2004-08-06 [14]Valid XHTML 1.0
6927
6928References
6929
6930   1. http://gcc.gnu.org/egcs-1.0/features.html
6931   2. http://gcc.gnu.org/install/index.html
6932   3. http://gcc.gnu.org/egcs-1.0/buildstat.html
6933   4. http://gcc.gnu.org/egcs-1.0/caveats.html
6934   5. http://gcc.gnu.org/mirrors.html
6935   6. mailto:gnu@gnu.org
6936   7. http://www.gnu.org/home.html#ContactInfo
6937   8. http://gcc.gnu.org/about.html
6938   9. http://gcc.gnu.org/onlinedocs/
6939  10. mailto:gcc-help@gcc.gnu.org
6940  11. mailto:gcc@gnu.org
6941  12. mailto:gcc@gcc.gnu.org
6942  13. http://gcc.gnu.org/lists.html
6943  14. http://validator.w3.org/check/referer
6944======================================================================
6945http://gcc.gnu.org/egcs-1.0/features.html
6946
6947                             EGCS 1.0 features
6948
6949     * Core  compiler  is  based on the gcc2 development tree from Aug 2,
6950       1997, so we have most of the [1]features found in GCC 2.8.
6951     * Integrated GNU Fortran compiler based on g77-0.5.22-19970929.
6952     * Vast  improvements  in the C++ compiler; so many they have [2]page
6953       of their own!
6954     * Integrated C++ runtime libraries, including support for most major
6955       linux systems!
6956     * New  instruction  scheduler  from IBM Haifa which includes support
6957       for  function  wide  instruction scheduling as well as superscalar
6958       scheduling.
6959     * Significantly improved alias analysis code.
6960     * Improved register allocation for two address machines.
6961     * Significant  code  generation  improvements  for  Fortran  code on
6962       Alphas.
6963     * Various  optimizations  from  the  g77 project as well as improved
6964       loop optimizations.
6965     * Dwarf2 debug format support for some targets.
6966     * egcs   libstdc++  includes  the  SGI  STL  implementation  without
6967       changes.
6968     * As  a  result  of  these  and  other changes, egcs libstc++ is not
6969       binary compatible with previous releases of libstdc++.
6970     * Various  new  ports  -- UltraSPARC, Irix6.2 & Irix6.3 support, The
6971       SCO  Openserver  5  family (5.0.{0,2,4} and Internet FastStart 1.0
6972       and  1.1),  Support for RTEMS on several embedded targets, Support
6973       for arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and
6974       MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc.
6975     * Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
6976     * RS6000/PowerPC   ports   generate   code  which  can  run  on  all
6977       RS6000/PowerPC variants by default.
6978     * -mcpu=  and  -march=  switches  for  the  x86 port to allow better
6979       control over how the x86 port generates code.
6980     * Includes  the template repository patch (aka repo patch); note the
6981       new template code makes repo obsolete for ELF systems using gnu-ld
6982       such as Linux.
6983     * Plus the usual assortment of bugfixes and improvements.
6984     _________________________________________________________________
6985
6986   Please  send  FSF & GNU inquiries & questions to [3]gnu@gnu.org. There
6987   are also [4]other ways to contact the FSF.
6988
6989   These pages are maintained by [5]the GCC team.
6990
6991
6992    For  questions  related  to the use of GCC, please consult these web
6993    pages    and    the    [6]GCC    manuals.   If   that   fails,   the
6994    [7]gcc-help@gcc.gnu.org mailing list might help.
6995    Please  send  comments on these web pages and the development of GCC
6996    to    our    developer    mailing    list   at   [8]gcc@gnu.org   or
6997    [9]gcc@gcc.gnu.org. All of our lists have [10]public archives.
6998
6999   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
7000   330, Boston, MA 02111, USA.
7001
7002   Verbatim  copying and distribution of this entire article is permitted
7003   in any medium, provided this notice is preserved.
7004
7005   Last modified 2004-08-06 [11]Valid XHTML 1.0
7006
7007References
7008
7009   1. http://gcc.gnu.org/egcs-1.0/features-2.8.html
7010   2. http://gcc.gnu.org/egcs-1.0/c++features.html
7011   3. mailto:gnu@gnu.org
7012   4. http://www.gnu.org/home.html#ContactInfo
7013   5. http://gcc.gnu.org/about.html
7014   6. http://gcc.gnu.org/onlinedocs/
7015   7. mailto:gcc-help@gcc.gnu.org
7016   8. mailto:gcc@gnu.org
7017   9. mailto:gcc@gcc.gnu.org
7018  10. http://gcc.gnu.org/lists.html
7019  11. http://validator.w3.org/check/referer
7020======================================================================
7021http://gcc.gnu.org/egcs-1.0/caveats.html
7022
7023                              EGCS 1.0 Caveats
7024
7025     * EGCS  has an integrated libstdc++, but does not have an integrated
7026       libg++. Furthermore old libg++ releases will not work with egc; HJ
7027       Lu has made a libg++-2.8.1.2 available which may work with EGCS.
7028       Note most C++ programs only need libstdc++.
7029     * Note  that using -pedantic or -Wreturn-type can cause an explosion
7030       in  the  amount of memory needed for template-heavy C++ code, such
7031       as   code   that   uses   STL.   Also  note  that  -Wall  includes
7032       -Wreturn-type,  so  if  you  use  -Wall  you  will need to specify
7033       -Wno-return-type to turn it off.
7034     * Exception   handling   may   not   work   with  shared  libraries,
7035       particularly on alphas, hppas, and mips based platforms. Exception
7036       handling  is  known  to  work  on  x86-linux platforms with shared
7037       libraries.
7038     * Some  versions  of  the  Linux kernel have bugs which prevent them
7039       from being compiled or from running when compiled by EGCS. See the
7040       FAQ (as shipped with EGCS 1.0) for additional information.
7041     * In general, EGCS is more rigorous about rejecting invalid C++ code
7042       or  deprecated  C++ constructs than G++ 2.7. As a result it may be
7043       necessary to fix C++ code before it will compile with EGCS.
7044     * G++  is  also  aggressively tracking the C++ standard; as a result
7045       code  which  was  previously  valid  (and  thus  accepted by other
7046       compilers and older versions of G++) may no longer be accepted.
7047     * EGCS  1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS
7048       1.0.x and later releases should work with Red Hat Linux 5.0.
7049     _________________________________________________________________
7050
7051   Please  send  FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
7052   are also [2]other ways to contact the FSF.
7053
7054   These pages are maintained by [3]the GCC team.
7055
7056
7057    For  questions  related  to the use of GCC, please consult these web
7058    pages    and    the    [4]GCC    manuals.   If   that   fails,   the
7059    [5]gcc-help@gcc.gnu.org mailing list might help.
7060    Please  send  comments on these web pages and the development of GCC
7061    to    our    developer    mailing    list   at   [6]gcc@gnu.org   or
7062    [7]gcc@gcc.gnu.org. All of our lists have [8]public archives.
7063
7064   Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
7065   330, Boston, MA 02111, USA.
7066
7067   Verbatim  copying and distribution of this entire article is permitted
7068   in any medium, provided this notice is preserved.
7069
7070   Last modified 2004-08-06 [9]Valid XHTML 1.0
7071
7072References
7073
7074   1. mailto:gnu@gnu.org
7075   2. http://www.gnu.org/home.html#ContactInfo
7076   3. http://gcc.gnu.org/about.html
7077   4. http://gcc.gnu.org/onlinedocs/
7078   5. mailto:gcc-help@gcc.gnu.org
7079   6. mailto:gcc@gnu.org
7080   7. mailto:gcc@gcc.gnu.org
7081   8. http://gcc.gnu.org/lists.html
7082   9. http://validator.w3.org/check/referer
7083======================================================================
7084