Patches from lvaro Lopes <alvieboy@alvie.com> to fix usage
[zpugcc.git] / toolchain / gcc / NEWS
blob7525da6749c00dff06c3599320d5ed60c2ca2a90
1 This file contains information about GCC releases which has been generated
2 automatically 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
4 that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
5 see ONEWS.
7 ======================================================================
8 http://gcc.gnu.org/gcc-3.4/index.html
10                            GCC 3.4 Release Series
12    September 6, 2004
14    The  [1]GNU project and the GCC developers are pleased to announce the
15    release of GCC 3.4.2.
17    This release is a bug-fix release, containing fixes for regressions in
18    GCC 3.4.1 relative to previous releases of GCC.
20    July 1, 2004
22    The  [2]GNU project and the GCC developers are pleased to announce the
23    release of GCC 3.4.1.
25    This release is a bug-fix release, containing fixes for regressions in
26    GCC 3.4.0 relative to previous releases of GCC.
28    April 18, 2004
30    The  [3]GNU project and the GCC developers are pleased to announce the
31    release of GCC 3.4.0.
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.
37 Release History
39    GCC 3.4.2
40           September 6, 2004 ([6]changes)
42    GCC 3.4.1
43           July 1, 2004 ([7]changes)
45    GCC 3.4.0
46           April 18, 2004 ([8]changes)
48 References and Acknowledgements
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.
54    A  list  of [9]successful builds is updated as new information becomes
55    available.
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.
62    For  additional  information  about  GCC  please  refer to the [11]GCC
63    project web site or contact the [12]GCC development mailing list.
65    To  obtain  GCC  please  use  [13]our mirror sites, one of the [14]GNU
66    mirror sites, or [15]our CVS server.
67      _________________________________________________________________
69    Please  send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There
70    are also [17]other ways to contact the FSF.
72    These pages are maintained by [18]the GCC team.
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.
82    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
83    330, Boston, MA 02111, USA.
85    Verbatim  copying and distribution of this entire article is permitted
86    in any medium, provided this notice is preserved.
88    Last modified 2004-09-06 [24]Valid XHTML 1.0 
90 References
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 ======================================================================
117 http://gcc.gnu.org/gcc-3.4/changes.html
119                            GCC 3.4 Release Series
120                       Changes, New Features, and Fixes
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.
126 Caveats
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.
193 General Optimizer Improvements
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.
261 New Languages and Language specific improvements
263   Ada
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)
285   C/Objective-C/C++
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;
306        or this:
307         char *p;
308         ((int *) p)++;
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;
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;
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;
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.
341   C++
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         };
360         template <class T1> struct A {
361           template <class T2> struct B {
362               void callme(void);
363             };
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         };
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>();
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         }
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);
434         template <int> struct A {
435           static void bar(void){
436             foo('a');
437           }
438         };
440         void foo(char);
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 {};
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;
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         };
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();
562         private:
563           A(const A&);   // private copy ctor
564         };
566         A makeA(void);
567         void foo(const A&);
569         void bar(void)
570         {
571           foo(A());       // error, copy ctor is not accessible
572           foo(makeA());   // error, copy ctor is not accessible
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         };
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
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         };
609     Runtime Library (libstdc++)
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.
640   Objective-C
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.
667   Java
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.
691   Fortran
693      * Fortran improvements are listed in the [15]Fortran documentation.
695 New Targets and Target Specific Improvements
697   Alpha
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.
707   ARM
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.
730   H8/300
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.
739   IA-32/AMD64 (x86-64)
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.
763   IA-64
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.
776   M32R
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.
782   M68000
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).
791   MIPS
793     Processor-specific changes
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.
803     Configuration
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.
832     General
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.
856   PowerPC Darwin
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.
863   S/390 and zSeries
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.
917   SPARC
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.
928   SuperH
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.
934   V850
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.
940   Xtensa
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.
971 Obsolete Systems
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.
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
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.)
1011 Documentation improvements
1013 Other significant improvements
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      _________________________________________________________________
1031 GCC 3.4.0
1033   Bug Fixes
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      _________________________________________________________________
1042 GCC 3.4.1
1044   Bug Fixes
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).
1051     Bootstrap failures
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
1064     Multi-platform internal compiler errors (ICEs)
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
1099     Ada
1101      * [55]14538 All RTEMS targets broken for gnat
1103     C front end
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
1112     C++ compiler and library
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
1178     Java
1180      * [106]14315 Java compiler is not parallel make safe
1182     Fortran
1184      * [107]15151 [g77] incorrect logical i/o in 64-bit mode
1186     Objective-C
1188      * [108]7993 private variables cannot be shadowed in subclasses
1190     Optimization bugs
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
1200     Preprocessor
1202      * [115]15067 Minor glitch in the source of cpp
1204     Main driver program bugs
1206      * [116]1963    collect2   interprets   -oldstyle_liblookup   as   -o
1207        ldstyle_liblookup
1209     x86-specific (Intel/AMD)
1211      * [117]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
1212        section}
1214     HPPA-specific
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
1220     IA64-specific
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
1228     MIPS-specific
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
1237     PowerPC-specific
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
1258     s390-specific
1260      * [142]15054 Bad code due to overlapping stack temporaries
1262     SPARC-specific
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"
1268     x86-64-specific
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
1274     Cygwin/Mingw32-specific
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
1281     Bugs specific to embedded processors
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
1300     Testsuite problems (compiler not affected)
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
1308     Documentation bugs
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      _________________________________________________________________
1317 GCC 3.4.2
1319   Bug Fixes
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).
1326     Bootstrap failures and issues
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
1334     Multi-platform internal compiler errors (ICEs)
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
1362     Preprocessor bugs
1364      * [187]16366 Preprocessor option -remap causes memory corruption
1366     Optimization
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
1374     Problems in generated debug information
1376      * [192]13956 incorrect stabs for nested local variables
1378     C front end bugs
1380      * [193]16684  GCC  should not warn about redundant redeclarations of
1381        built-ins
1383     C++ compiler and library
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
1408     Java compiler and library
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
1414     Alpha-specific
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)
1420     x86-specific
1422      * [214]16298 ICE in output_operand
1423      * [215]17113 ICE with SSE2 intrinsics
1424      * [216]17171 [i386-aout] Unrecognized comments in generated asm
1426     x86-64 specific
1428      * [217]14697 libstdc++ couldn't find 32bit libgcc_s
1430     MIPS-specific
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
1442     ARM-specific
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
1450     IA64-specific
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
1463     PowerPC-specific
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)
1469     Sparc-specific
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
1476     Bugs specific to embedded processors
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
1482     DJGPP-specific
1484      * [242]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
1486     Alpha Tru64-specific
1488      * [243]16210 libstdc++ gratuitously omits "long long" I/O
1490     Testsuite, documentation issues (compiler is not affected):
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      _________________________________________________________________
1497    Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There
1498    are also [247]other ways to contact the FSF.
1500    These pages are maintained by [248]the GCC team.
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.
1510    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
1511    330, Boston, MA 02111, USA.
1513    Verbatim  copying and distribution of this entire article is permitted
1514    in any medium, provided this notice is preserved.
1516    Last modified 2004-09-05 [254]Valid XHTML 1.0 
1518 References
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 ======================================================================
1775 http://gcc.gnu.org/gcc-3.3/index.html
1777                            GCC 3.3 Release Series
1779    June 28, 2004
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.
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.
1789 Release History
1791    GCC 3.3.3
1792           February 14, 2004 ([4]changes)
1794    GCC 3.3.2
1795           October 16, 2003 ([5]changes)
1797    GCC 3.3.1
1798           August 8, 2003 ([6]changes)
1800    GCC 3.3
1801           May 14, 2003 ([7]changes)
1803 References and Acknowledgements
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.
1809    A  list  of [8]successful builds is updated as new information becomes
1810    available.
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.
1817    For  additional  information  about  GCC  please  refer to the [10]GCC
1818    project web site or contact the [11]GCC development mailing list.
1820    To  obtain  GCC  please  use  [12]our mirror sites, one of the [13]GNU
1821    mirror sites, or [14]our CVS server.
1822      _________________________________________________________________
1824    Please  send FSF & GNU inquiries & questions to [15]gnu@gnu.org. There
1825    are also [16]other ways to contact the FSF.
1827    These pages are maintained by [17]the GCC team.
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.
1837    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
1838    330, Boston, MA 02111, USA.
1840    Verbatim  copying and distribution of this entire article is permitted
1841    in any medium, provided this notice is preserved.
1843    Last modified 2004-08-06 [23]Valid XHTML 1.0 
1845 References
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 ======================================================================
1871 http://gcc.gnu.org/gcc-3.3/changes.html
1873                            GCC 3.3 Release Series
1874                       Changes, New Features, and Fixes
1876    The latest release in the 3.3 release series is [1]GCC 3.3.3.
1878 Caveats
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.
1916 General Optimizer Improvements
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.
1939 New Languages and Language specific improvements
1941   C/ObjC/C++
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.
1972   C++
1974      * Type  based  alias analysis has been implemented for C++ aggregate
1975        types.
1977   Objective-C
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.
1995   Java
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.
2002   Fortran
2004      * Fortran improvements are listed in [7]the Fortran documentation.
2006   Ada
2008      * Ada tasking now works with glibc 2.3.x threading libraries.
2010 New Targets and Target Specific Improvements
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.
2080 Obsolete Systems
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.
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-*-*
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*
2154 Documentation improvements
2156 Other significant improvements
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      _________________________________________________________________
2174 GCC 3.3
2176    Detailed release notes for the GCC 3.3 release follow.
2178   Bug Fixes
2180     bootstrap failures
2182      * [8]10140  cross  compiler  build failures: missing __mempcpy (DUP:
2183        [9]10198,[10]10338)
2185     Internal compiler errors (multi-platform)
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
2242     Optimization bugs
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
2259     C front end
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
2269     c++ compiler and library
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
2363     Objective-C
2365      * [137]5956  selectors  aren't  matched  properly  when added to the
2366        selector table
2368     Fortran compiler and library
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
2393     Java compiler and library
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
2430     Ada compiler and library
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
2438     preprocessor
2440      * [181]7029 preprocessor should ignore #warning with -M
2442     ARM-specific
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
2448     FreeBSD-specific
2450      * [184]7680  float  functions undefined in math.h/cmath with #define
2451        _XOPEN_SOURCE
2453     HP-UX or HP-PA-specific
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
2460     m68hc11-specific
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
2467     MIPS-specific
2469      * [190]9496 [mips-linux] bug in optimizer?
2471     PowerPC-specific
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
2479     SPARC-specific
2481      * [195]10267    (documentation)   Wrong   build   instructions   for
2482        *-*-solaris2*
2484     x86-specific (Intel/AMD)
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      _________________________________________________________________
2500 GCC 3.3.1
2502   Bug Fixes
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).
2509     Bootstrap failures
2511      * [206]11272 [Solaris] make bootstrap fails while building libstdc++
2513     Internal compiler errors (multi-platform)
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
2564     Optimization bugs
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
2573     C front end
2575      * [243]5897 No warning for statement after return
2576      * [244]11279 DWARF-2 output mishandles large enums
2578     Preprocessor bugs
2580      * [245]11022 no warning for non-compatible macro redefinition
2582     C++ compiler and library
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
2638     Java compiler and library
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
2649     x86-specific (Intel/AMD)
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
2665     SPARC- or Solaris- specific
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
2679     ia64 specific
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
2685     PowerPC specific
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
2693     m68k-specific
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
2699     ARM-specific
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)
2709     MIPS-specific
2711      * [313]11084 ICE in propagate_one_insn, in flow.c
2713     SH-specific
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
2720     GNU/Linux (or Hurd?) specific
2722      * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
2724     UnixWare specific
2726      * [318]3163   configure  bug:  gcc/aclocal.m4  mmap  test  fails  on
2727        UnixWare 7.1.1
2729     Cygwin (or mingw) specific
2731      * [319]5287 ICE with dllimport attribute
2732      * [320]10148 [MingW/CygWin] Compiler dumps core
2734     DJGPP specific
2736      * [321]8787  GCC  fails  to  emit  .intel_syntax  when  invoked with
2737        -masm=intel on DJGPP
2739     Darwin (and MacOS X) specific
2741      * [322]10900 trampolines crash
2743     Documentation
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
2760     Testsuite bugs (compiler itself is not affected)
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      _________________________________________________________________
2768 GCC 3.3.2
2770   Bug Fixes
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).
2777     Bootstrap failures and problems
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)
2791     Internal compiler errors (multi-platform)
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
2818     C and optimization bugs
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
2830     C++ compiler and library
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
2866     x86 specific (Intel/AMD)
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
2877     ia64-specific
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
2884     PowerPC-specific
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
2891     SPARC-specific
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
2899     Alpha-specific
2901      * [408]11717  [alpha-linux]  unrecognizable  insn compiling for.c of
2902        kernel 2.4.22-pre8
2904     HPUX-specific
2906      * [409]11313 problem with #pragma weak and static inline functions
2907      * [410]11712 __STDC_EXT__ not defined for C++ by default anymore?
2909     Solaris specific
2911      * [411]12166 Profiled programs crash if PROFDIR is set
2913     Solaris-x86 specific
2915      * [412]12101 i386 Solaris no longer works with GNU as?
2917     Miscellaneous embedded target-specific bugs
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      _________________________________________________________________
2928 GCC 3.3.3
2930   Minor features
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
2939   Bug Fixes
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).
2946     Bootstrap failures and issues
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
2954     Internal compiler errors (multi-platform)
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
2983     C and optimization bugs
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
3002     C++ compiler and library
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
3067     Java compiler and library
3069      * [501]10746 [win32] garbage collection crash in GCJ
3071     Objective-C compiler and library
3073      * [502]11433  Crash  due to dereferencing null pointer when querying
3074        protocol
3076     Fortran compiler and library
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
3084     x86-specific (Intel/AMD)
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
3093     PowerPC-specific
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
3102     SPARC-specific
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
3109     ARM-specific
3111      * [518]10467 [arm] ICE in pre_insert_copy_insn,
3113     ia64-specific
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
3121     Alpha-specific
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
3128     HPPA-specific
3130      * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
3131      * [527]12158 [hppa] compilation does not terminate at -O1
3133     S390-specific
3135      * [528]11992  Wrong built-in code for memcmp with length 1<<24: only
3136        (1<<24)-1 possible for CLCL-Instruction
3138     SH-specific
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
3149     Other embedded target specific
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
3159     GNU HURD-specific
3161      * [540]12561   gcc/config/t-gnu   needs   updating   to   work  with
3162        --with-sysroot
3164     Tru64 Unix specific
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
3170     AIX-specific
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
3176     IRIX-specific
3178      * [545]12666 fixincludes problem on IRIX 6.5.19m
3180     Solaris-specific
3182      * [546]12969 Including sys/byteorder.h breaks configure checks
3184     Testsuite problems (compiler is not affected)
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
3190     Miscellaneous
3192      * [549]13211 using -###, incorrect warnings about unused linker file
3193        are produced
3194      _________________________________________________________________
3196    Please send FSF & GNU inquiries & questions to [550]gnu@gnu.org. There
3197    are also [551]other ways to contact the FSF.
3199    These pages are maintained by [552]the GCC team.
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.
3209    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
3210    330, Boston, MA 02111, USA.
3212    Verbatim  copying and distribution of this entire article is permitted
3213    in any medium, provided this notice is preserved.
3215    Last modified 2004-08-06 [558]Valid XHTML 1.0 
3217 References
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 ======================================================================
3778 http://gcc.gnu.org/gcc-3.2/index.html
3780                            GCC 3.2 Release Series
3782    April 25, 2003
3784    The  [1]GNU project and the GCC developers are pleased to announce the
3785    release of GCC 3.2.3.
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.
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.
3796    Please  refer  to our [2]detailed list of news, caveats, and bug-fixes
3797    for further information.
3799 Release History
3801    GCC 3.2.3
3802           April 25, 2003 ([3]changes)
3804    GCC 3.2.2
3805           February 5, 2003 ([4]changes)
3807    GCC 3.2.1
3808           November 19, 2002 ([5]changes)
3810    GCC 3.2
3811           August 14, 2002 ([6]changes)
3813 References and Acknowledgements
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.
3819    A  list  of [7]successful builds is updated as new information becomes
3820    available.
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.
3827    For  additional  information  about  GCC  please  refer  to the [9]GCC
3828    project web site or contact the [10]GCC development mailing list.
3830    To  obtain  GCC  please  use  [11]our mirror sites, one of the [12]GNU
3831    mirror sites, or [13]our CVS server.
3832      _________________________________________________________________
3834    Please  send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
3835    are also [15]other ways to contact the FSF.
3837    These pages are maintained by [16]the GCC team.
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.
3847    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
3848    330, Boston, MA 02111, USA.
3850    Verbatim  copying and distribution of this entire article is permitted
3851    in any medium, provided this notice is preserved.
3853    Last modified 2004-08-06 [22]Valid XHTML 1.0 
3855 References
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 ======================================================================
3880 http://gcc.gnu.org/gcc-3.2/changes.html
3882                            GCC 3.2 Release Series
3883                       Changes, New Features, and Fixes
3885    The latest release in the 3.2 release series is [1]GCC 3.2.3.
3887 Caveats and New Features
3889   Caveats
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.
3903   Frontend Enhancements
3905     C/C++/Objective-C
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.)
3922     C++
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.
3935   New Targets and Target Specific Improvements
3937     IA-32
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.
3944     x86-64
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      _________________________________________________________________
3953 GCC 3.2.3
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.
3958   Bug Fixes
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.
3966     Internal Compiler Errors (multi-platform)
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
3989     C/optimizer bugs:
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
4005     C++ compiler and library:
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
4021     Java compiler and library:
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
4027     x86-specific (Intel/AMD):
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
4036     Sparc-specific:
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
4048     m68k-specific:
4050      * [52]7248: broken "inclusive or" code
4051      * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
4053     PowerPC-specific:
4055      * [54]9732: Wrong code with -O2 -fPIC
4056      * [55]10073: ICE: powerpc cannot split insn
4058     Alpha-specific:
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
4063     HP-specific:
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
4071     MIPS specific:
4073      * [61]6362:  mips-irix6  gcc-3.1  C testsuite failure with -mips4 in
4074        compile/920501-4.c
4076     CRIS specific:
4078      * [62]10377: gcc-3.2.2 creates bad assembler code for cris
4080     Miscellaneous and minor bugs:
4082      * [63]6955: collect2 says "core dumped" when there is no core
4083      _________________________________________________________________
4085 GCC 3.2.2
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.
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.
4095   Bug Fixes
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.
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.
4110     Internal Compiler Errors (multi-platform)
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
4137     C++ (compiler and library) bugs
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
4169     C and optimizer bugs
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
4180     Objective-C bugs
4182      * [109]9267:   Objective-C  parser  won't  build  with  newer  bison
4183        versions (e.g. 1.875)
4185     Ada bugs
4187      * [110]8344:  Ada build problem due to conflict between gcc/final.o,
4188        gcc/ada/final.o
4190     Preprocessor bugs
4192      * [111]8524: _Pragma within macros is improperly expanded
4193      * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
4194        -fshort-wchar
4196     ARM-specific
4198      * [113]9090: arm ICE with >= -O2; regression from gcc-2.95
4200     x86-specific (Intel/AMD)
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)
4208     FreeBSD 5.0 specific
4210      * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
4212     RTEMS-specific
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
4220     HP-PA specific
4222      * [123]9493: ICE with -O2 when building a simple function
4224     Documentation
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      _________________________________________________________________
4231 GCC 3.2.1
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.
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.
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.
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.
4251   Bug Fixes
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.
4260     Internal Compiler Errors (multi-platform)
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
4293     C++ (compiler and library) bugs
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)
4329     C and optimizer bugs
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
4343     Preprocessor bugs
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
4356     x86 specific (Intel/AMD)
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
4378     PowerPC specific
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
4391     HP/PA specific
4393      * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa
4395     SPARC specific
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
4404     ARM specific
4406      * [220]7856: [arm] invalid offset in constant pool reference
4407      * [221]7967: optimization produces wrong code (ARM)
4409     Alpha specific
4411      * [222]7374: __builtin_fabsl broken on alpha
4413     IBM s390 specific
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
4419     SCO specific
4421      * [226]7623: SCO OpenServer build fails with machmode.def: undefined
4422        symbol: BITS_PER_UNIT
4424     m68k/Coldfire specific
4426      * [227]8314:  crtbegin,  crtend  need  to  be  multilib'ed  for this
4427        platform
4429     Documentation
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      _________________________________________________________________
4439 GCC 3.2
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.
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.
4449   Bug Fixes
4451     C++
4453      * [233]7320: g++ 3.2 relocation problem
4454      * [234]7470:  vtable:  virtual  function pointers not in declaration
4455        order
4457     libstdc++
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
4470     x86-64 specific
4472      * [245]7291: off-by-one in generated inline bzero code for x86-64
4473      _________________________________________________________________
4475    Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There
4476    are also [247]other ways to contact the FSF.
4478    These pages are maintained by [248]the GCC team.
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.
4488    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
4489    330, Boston, MA 02111, USA.
4491    Verbatim  copying and distribution of this entire article is permitted
4492    in any medium, provided this notice is preserved.
4494    Last modified 2004-08-30 [254]Valid XHTML 1.0 
4496 References
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 ======================================================================
4753 http://gcc.gnu.org/gcc-3.1/index.html
4755                                   GCC 3.1
4757    July 27, 2002
4759    The  [1]GNU project and the GCC developers are pleased to announce the
4760    release of GCC 3.1.1.
4762    The links below still apply to GCC 3.1.1.
4764    May 15, 2002
4766    The  [2]GNU project and the GCC developers are pleased to announce the
4767    release of GCC 3.1.
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.
4773    A  list  of [3]successful builds is updated as new information becomes
4774    available.
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.
4781    For  additional  information  about  GCC  please  refer  to the [6]GCC
4782    project web site or contact the [7]GCC development mailing list.
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      _________________________________________________________________
4789    Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
4790    are also [12]other ways to contact the FSF.
4792    These pages are maintained by [13]the GCC team.
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.
4802    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
4803    330, Boston, MA 02111, USA.
4805    Verbatim  copying and distribution of this entire article is permitted
4806    in any medium, provided this notice is preserved.
4808    Last modified 2004-08-06 [19]Valid XHTML 1.0 
4810 References
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 ======================================================================
4832 http://gcc.gnu.org/gcc-3.1/changes.html
4834                            GCC 3.1 Release Series
4835                       Changes, New Features, and Fixes
4837 Additional changes in GCC 3.1.1
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.
4852 Caveats
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.
4861 General Optimizer Improvements
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.
4890 New Languages and Language specific improvements
4892   C/C++
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.
4903   C++
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     };
4916     struct B : public A {
4917     };
4919     new B[10];
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     };
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     }
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.
4960   Objective-C
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).
4974   Java
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
5009   Fortran
5011    Fortran improvements are listed in [6]the Fortran documentation.
5013   Ada
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.
5019    Please note that the integration of the Ada front end is still work in
5020    progress.
5022 New Targets and Target Specific Improvements
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.
5070 Obsolete Systems
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.
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-*-*
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*.
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*.
5147 Documentation improvements
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      _________________________________________________________________
5158    Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
5159    are also [14]other ways to contact the FSF.
5161    These pages are maintained by [15]the GCC team.
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.
5171    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5172    330, Boston, MA 02111, USA.
5174    Verbatim  copying and distribution of this entire article is permitted
5175    in any medium, provided this notice is preserved.
5177    Last modified 2004-08-06 [21]Valid XHTML 1.0 
5179 References
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 ======================================================================
5203 http://gcc.gnu.org/gcc-3.0/gcc-3.0.html
5205                                  GCC 3.0.4
5207    February 20, 2002
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.
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.
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.
5221    A  list  of [3]successful builds is updated as new information becomes
5222    available.
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.
5228    And  finally,  we  can't  in  good  conscience  fail  to  mention some
5229    [5]caveats to using GCC 3.0.x.
5231    For  additional  information  about  GCC  please  refer  to the [6]GCC
5232    project web site or contact the [7]GCC development mailing list.
5234    To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
5235    sites, or [10]our CVS server.
5236      _________________________________________________________________
5238 Previous 3.0.x Releases
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      _________________________________________________________________
5246    Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
5247    are also [12]other ways to contact the FSF.
5249    These pages are maintained by [13]the GCC team.
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.
5259    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5260    330, Boston, MA 02111, USA.
5262    Verbatim  copying and distribution of this entire article is permitted
5263    in any medium, provided this notice is preserved.
5265    Last modified 2004-08-06 [19]Valid XHTML 1.0 
5267 References
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 ======================================================================
5289 http://gcc.gnu.org/gcc-3.0/features.html
5291                             GCC 3.0 New Features
5293 Additional changes in GCC 3.0.4
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).
5308 Additional changes in GCC 3.0.3
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.
5319 Additional changes in GCC 3.0.2
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.
5327 Additional changes in GCC 3.0.1
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.
5336 General Optimizer Improvements
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.
5354 New Languages and Language specific improvements
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.
5388 New Targets and Target Specific Improvements
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.
5410 Documentation improvements
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.
5424 Other significant improvements
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.
5447    Plus  a  great  many bugfixes and almost all the [13]features found in
5448    GCC 2.95.
5449      _________________________________________________________________
5451    Please  send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
5452    are also [15]other ways to contact the FSF.
5454    These pages are maintained by [16]the GCC team.
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.
5464    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5465    330, Boston, MA 02111, USA.
5467    Verbatim  copying and distribution of this entire article is permitted
5468    in any medium, provided this notice is preserved.
5470    Last modified 2004-08-06 [22]Valid XHTML 1.0 
5472 References
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 ======================================================================
5497 http://gcc.gnu.org/gcc-3.0/caveats.html
5499                               GCC 3.0 Caveats
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      _________________________________________________________________
5535    Please  send  FSF & GNU inquiries & questions to [4]gnu@gnu.org. There
5536    are also [5]other ways to contact the FSF.
5538    These pages are maintained by [6]the GCC team.
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.
5548    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5549    330, Boston, MA 02111, USA.
5551    Verbatim  copying and distribution of this entire article is permitted
5552    in any medium, provided this notice is preserved.
5554    Last modified 2004-08-06 [12]Valid XHTML 1.0 
5556 References
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 ======================================================================
5571 http://gcc.gnu.org/gcc-2.95/index.html
5573                                   GCC 2.95
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.
5580    August 19, 1999: GCC version 2.95.1 has been released.
5582    October 27, 1999: GCC version 2.95.2 has been released.
5584    March 16, 2001: GCC version 2.95.3 has been released.
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.
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.
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.
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.
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.
5608    And  finally,  we  can't  in  good  conscience  fail  to  mention some
5609    [7]caveats to using GCC 2.95.
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
5615    For  additional  information  about GCC please see the [11]GCC project
5616    web server or contact the [12]GCC development mailing list.
5617      _________________________________________________________________
5619    Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
5620    are also [14]other ways to contact the FSF.
5622    These pages are maintained by [15]the GCC team.
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.
5632    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5633    330, Boston, MA 02111, USA.
5635    Verbatim  copying and distribution of this entire article is permitted
5636    in any medium, provided this notice is preserved.
5638    Last modified 2004-08-06 [21]Valid XHTML 1.0 
5640 References
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 ======================================================================
5664 http://gcc.gnu.org/gcc-2.95/features.html
5666                            GCC 2.95 New Features
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.
5732 Additional Changes in GCC 2.95.1
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.
5790 Additional Changes in GCC 2.95.2
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.
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.
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.
5871 Additional Changes in GCC 2.95.3
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      _________________________________________________________________
5899    Please  send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
5900    are also [18]other ways to contact the FSF.
5902    These pages are maintained by [19]the GCC team.
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.
5912    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
5913    330, Boston, MA 02111, USA.
5915    Verbatim  copying and distribution of this entire article is permitted
5916    in any medium, provided this notice is preserved.
5918    Last modified 2004-08-06 [25]Valid XHTML 1.0 
5920 References
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 ======================================================================
5948 http://gcc.gnu.org/gcc-2.95/caveats.html
5950                               GCC 2.95 Caveats
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      _________________________________________________________________
5993    Please  send  FSF & GNU inquiries & questions to [2]gnu@gnu.org. There
5994    are also [3]other ways to contact the FSF.
5996    These pages are maintained by [4]the GCC team.
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.
6006    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6007    330, Boston, MA 02111, USA.
6009    Verbatim  copying and distribution of this entire article is permitted
6010    in any medium, provided this notice is preserved.
6012    Last modified 2004-08-06 [10]Valid XHTML 1.0 
6014 References
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 ======================================================================
6027 http://gcc.gnu.org/egcs-1.1/index.html
6029                                   EGCS 1.1
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.
6036    EGCS  is a free software project to further the development of the GNU
6037    compilers using an open development environment.
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.
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.
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.
6060    See  the [5]new features page for a more complete list of new features
6061    found in EGCS 1.1 releases.
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.
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).
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.
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.
6216    And  finally,  we  can't  in  good  conscience  fail  to  mention some
6217    [9]caveats to using EGCS 1.1.
6219    Download EGCS from egcs.cygnus.com (USA California).
6221    The EGCS 1.1 release is also available on many mirror sites.
6222    [10]Goto mirror list to find a closer site.
6223      _________________________________________________________________
6225    Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
6226    are also [12]other ways to contact the FSF.
6228    These pages are maintained by [13]the GCC team.
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.
6238    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6239    330, Boston, MA 02111, USA.
6241    Verbatim  copying and distribution of this entire article is permitted
6242    in any medium, provided this notice is preserved.
6244    Last modified 2004-08-06 [19]Valid XHTML 1.0 
6246 References
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 ======================================================================
6268 http://gcc.gnu.org/egcs-1.1/features.html
6270                            EGCS 1.1 new features
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      _________________________________________________________________
6340    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6341    are also [7]other ways to contact the FSF.
6343    These pages are maintained by [8]the GCC team.
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.
6353    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6354    330, Boston, MA 02111, USA.
6356    Verbatim  copying and distribution of this entire article is permitted
6357    in any medium, provided this notice is preserved.
6359    Last modified 2004-08-06 [14]Valid XHTML 1.0 
6361 References
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 ======================================================================
6378 http://gcc.gnu.org/egcs-1.1/caveats.html
6380                               EGCS 1.1 Caveats
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      _________________________________________________________________
6406    Please  send  FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
6407    are also [2]other ways to contact the FSF.
6409    These pages are maintained by [3]the GCC team.
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.
6419    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6420    330, Boston, MA 02111, USA.
6422    Verbatim  copying and distribution of this entire article is permitted
6423    in any medium, provided this notice is preserved.
6425    Last modified 2004-08-06 [9]Valid XHTML 1.0 
6427 References
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 ======================================================================
6439 http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.html
6441                                  EGCS 1.0.3
6443    May 15, 1998
6445    We are pleased to announce the release of EGCS 1.0.3.
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.
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.
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.
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.
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.
6488    See  the [1]new features page for a more complete list of new features
6489    found in EGCS 1.0.x releases.
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.
6498    And,  we  can't  in good conscience fail to mention some [4]caveats to
6499    using EGCS.
6501    Update:  Big  thanks  to  Stanford for providing a high speed link for
6502    downloading EGCS (go.cygnus.com)!
6504    Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6505    (USA California -- High speed link provided by Stanford).
6507    The EGCS 1.0.3 release is also available on many mirror sites.
6508    [5]Goto mirror list to find a closer site
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      _________________________________________________________________
6515    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6516    are also [7]other ways to contact the FSF.
6518    These pages are maintained by [8]the GCC team.
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.
6528    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6529    330, Boston, MA 02111, USA.
6531    Verbatim  copying and distribution of this entire article is permitted
6532    in any medium, provided this notice is preserved.
6534    Last modified 2004-08-06 [14]Valid XHTML 1.0 
6536 References
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 ======================================================================
6553 http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.html
6555                                  EGCS 1.0.2
6557    March 16, 1998
6559    We are pleased to announce the release of EGCS 1.0.2.
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.
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.
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.
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.
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.
6633    See  the [1]new features page for a more complete list of new features
6634    found in EGCS 1.0.x releases.
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.
6643    And,  we  can't  in good conscience fail to mention some [4]caveats to
6644    using EGCS.
6646    Update:  Big  thanks  to  Stanford for providing a high speed link for
6647    downloading EGCS (go.cygnus.com)!
6649    Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6650    (USA California -- High speed link provided by Stanford).
6652    The EGCS 1.0.2 release is also available on many mirror sites.
6653    [5]Goto mirror list to find a closer site
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      _________________________________________________________________
6660    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6661    are also [7]other ways to contact the FSF.
6663    These pages are maintained by [8]the GCC team.
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.
6673    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6674    330, Boston, MA 02111, USA.
6676    Verbatim  copying and distribution of this entire article is permitted
6677    in any medium, provided this notice is preserved.
6679    Last modified 2004-08-06 [14]Valid XHTML 1.0 
6681 References
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 ======================================================================
6698 http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.html
6700                                  EGCS 1.0.1
6702    January 6, 1998
6704    We are pleased to announce the release of EGCS 1.0.1.
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.
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.
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.
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.
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
6778    See  the [1]new features page for a more complete list of new features
6779    found in EGCS 1.0.x releases.
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.
6788    And,  we  can't  in good conscience fail to mention some [4]caveats to
6789    using EGCS.
6791    Update:  Big  thanks  to  Stanford for providing a high speed link for
6792    downloading EGCS (go.cygnus.com)!
6794    Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6795    (USA California -- High speed link provided by Stanford).
6797    The EGCS 1.0.1 release is also available on many mirror sites.
6798    [5]Goto mirror list to find a closer site
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      _________________________________________________________________
6805    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6806    are also [7]other ways to contact the FSF.
6808    These pages are maintained by [8]the GCC team.
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.
6818    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6819    330, Boston, MA 02111, USA.
6821    Verbatim  copying and distribution of this entire article is permitted
6822    in any medium, provided this notice is preserved.
6824    Last modified 2004-08-06 [14]Valid XHTML 1.0 
6826 References
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 ======================================================================
6843 http://gcc.gnu.org/egcs-1.0/egcs-1.0.html
6845                                   EGCS 1.0
6847    December 3, 1997
6849    We are pleased to announce the release of EGCS 1.0.
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.
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.
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.
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.
6875    See the [1]new features page for a more complete list of new features.
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.
6884    And,  we  can't  in good conscience fail to mention some [4]caveats to
6885    using EGCS.
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.
6893    Update:  Big  thanks  to  Stanford for providing a high speed link for
6894    downloading EGCS (go.cygnus.com)!
6896    Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
6897    (USA California -- High speed link provided by Stanford).
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
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      _________________________________________________________________
6907    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
6908    are also [7]other ways to contact the FSF.
6910    These pages are maintained by [8]the GCC team.
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.
6920    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
6921    330, Boston, MA 02111, USA.
6923    Verbatim  copying and distribution of this entire article is permitted
6924    in any medium, provided this notice is preserved.
6926    Last modified 2004-08-06 [14]Valid XHTML 1.0 
6928 References
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 ======================================================================
6945 http://gcc.gnu.org/egcs-1.0/features.html
6947                              EGCS 1.0 features
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      _________________________________________________________________
6986    Please  send  FSF & GNU inquiries & questions to [3]gnu@gnu.org. There
6987    are also [4]other ways to contact the FSF.
6989    These pages are maintained by [5]the GCC team.
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.
6999    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
7000    330, Boston, MA 02111, USA.
7002    Verbatim  copying and distribution of this entire article is permitted
7003    in any medium, provided this notice is preserved.
7005    Last modified 2004-08-06 [11]Valid XHTML 1.0 
7007 References
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 ======================================================================
7021 http://gcc.gnu.org/egcs-1.0/caveats.html
7023                               EGCS 1.0 Caveats
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      _________________________________________________________________
7051    Please  send  FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
7052    are also [2]other ways to contact the FSF.
7054    These pages are maintained by [3]the GCC team.
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.
7064    Copyright  (C) Free Software Foundation, Inc., 59 Temple Place - Suite
7065    330, Boston, MA 02111, USA.
7067    Verbatim  copying and distribution of this entire article is permitted
7068    in any medium, provided this notice is preserved.
7070    Last modified 2004-08-06 [9]Valid XHTML 1.0 
7072 References
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 ======================================================================