Renamed d to dlt (Delight)
[delight.git] / gcc-4.1.2 / NEWS
blob43c93066bb29a30d7c37b44142fea43a8394a6cf
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-4.1/index.html
10                            GCC 4.1 Release Series
12    February 13, 2007
14    The  [1]GNU project and the GCC developers are pleased to announce the
15    release of GCC 4.1.2.
17    This release is a bug-fix release, containing fixes for regressions in
18    GCC 4.1.1 relative to previous releases of GCC.
20 Release History
22    GCC 4.1.2
23           February 13, 2007 ([2]changes)
25    GCC 4.1.1
26           May 24, 2006 ([3]changes)
28    GCC 4.1.0
29           February 28, 2006 ([4]changes)
31 References and Acknowledgements
33    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
34    supports  several  other languages aside from C, it now stands for the
35    GNU Compiler Collection.
37    A  list  of [5]successful builds is updated as new information becomes
38    available.
40    The  GCC  developers would like to thank the numerous people that have
41    contributed  new  features, improvements, bug fixes, and other changes
42    as well as test results to GCC. This [6]amazing group of volunteers is
43    what makes GCC successful.
45    For  additional  information  about  GCC  please  refer  to the [7]GCC
46    project web site or contact the [8]GCC development mailing list.
48    To  obtain  GCC  please  use  [9]our  mirror sites, one of the [10]GNU
49    mirror sites, or [11]our SVN server.
51    Please  send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There
52    are also [13]other ways to contact the FSF.
54    These pages are maintained by [14]the GCC team.
57     For  questions  related  to the use of GCC, please consult these web
58     pages    and    the    [15]GCC   manuals.   If   that   fails,   the
59     [16]gcc-help@gcc.gnu.org mailing list might help.
60     Please  send  comments on these web pages and the development of GCC
61     to    our    developer    mailing   list   at   [17]gcc@gnu.org   or
62     [18]gcc@gcc.gnu.org. All of our lists have [19]public archives.
64    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
65    Floor, Boston, MA 02110, USA.
67    Verbatim  copying and distribution of this entire article is permitted
68    in any medium, provided this notice is preserved.
69    Last modified 2007-02-14 [20]Valid XHTML 1.0 
71 References
73    1. http://www.gnu.org/
74    2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
75    3. http://gcc.gnu.org/gcc-4.1/changes.html
76    4. http://gcc.gnu.org/gcc-4.1/changes.html
77    5. http://gcc.gnu.org/gcc-4.1/buildstat.html
78    6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
79    7. http://gcc.gnu.org/index.html
80    8. mailto:gcc@gcc.gnu.org
81    9. http://gcc.gnu.org/mirrors.html
82   10. http://www.gnu.org/order/ftp.html
83   11. http://gcc.gnu.org/svn.html
84   12. mailto:gnu@gnu.org
85   13. http://www.gnu.org/home.html#ContactInfo
86   14. http://gcc.gnu.org/about.html
87   15. http://gcc.gnu.org/onlinedocs/
88   16. mailto:gcc-help@gcc.gnu.org
89   17. mailto:gcc@gnu.org
90   18. mailto:gcc@gcc.gnu.org
91   19. http://gcc.gnu.org/lists.html
92   20. http://validator.w3.org/check/referer
93 ======================================================================
94 http://gcc.gnu.org/gcc-4.1/changes.html
96                            GCC 4.1 Release Series
97                       Changes, New Features, and Fixes
99    The latest release in the 4.1 release series is [1]GCC 4.1.2.
101 Caveats
103 General Optimizer Improvements
105      * GCC  now has infrastructure for inter-procedural optimizations and
106        the following inter-procedural optimizations are implemented:
107           + Profile  guided  inlining. When doing profile feedback guided
108             optimization,  GCC  can  now  use  the profile to make better
109             informed  decisions  on  whether  inlining  of  a function is
110             profitable  or not. This means that GCC will no longer inline
111             functions at call sites that are not executed very often, and
112             that  functions  at  hot  call  sites  are  more likely to be
113             inlined.
114             A  new parameter min-inline-recursive-probability is also now
115             available  to  throttle  recursive inlining of functions with
116             small average recursive depths.
117           + Discovery of pure and const functions, a form of side-effects
118             analysis.  While  older GCC releases could also discover such
119             special  functions,  the  new  IPA-based pass runs earlier so
120             that  the  results are available to more optimizers. The pass
121             is also simply more powerful than the old one.
122           + Analysis  of  references  to static variables and type escape
123             analysis, also forms of side-effects analysis. The results of
124             these passes allow the compiler to be less conservative about
125             call-clobbered variables and references. This results in more
126             redundant   loads  being  eliminated  and  in  making  static
127             variables candidates for register promotion.
128           + Improvement  of RTL-based alias analysis. The results of type
129             escape analysis are fed to the RTL type-based alias analyzer,
130             allowing it to disambiguate more memory references.
131           + Interprocedural constant propagation and function versioning.
132             This pass looks for functions that are always called with the
133             same   constant  value  for  one  or  more  of  the  function
134             arguments,   and   propagates   those  constants  into  those
135             functions.
136           + GCC  will  now  eliminate  static  variables  whose usage was
137             optimized out.
138           + -fwhole-program  --combine  can  now  be  used  to  make  all
139             functions   in   program   static   allowing   whole  program
140             optimization.  As  an  exception,  the  main function and all
141             functions  marked  with  the new externally_visible attribute
142             are  kept  global  so  that  programs  can  link with runtime
143             libraries.
144      * GCC can now do a form of partial dead code elimination (PDCE) that
145        allows code motion of expressions to the paths where the result of
146        the  expression  is  actually needed. This is not always a win, so
147        the  pass has been limited to only consider profitable cases. Here
148        is an example:
149     int foo (int *, int *);
150     int
151     bar (int d)
152     {
153       int a, b, c;
154       b = d + 1;
155       c = d + 2;
156       a = b + c;
157       if (d)
158         {
159           foo (&b, &c);
160           a = b + c;
161         }
162       printf ("%d\n", a);
163     }
164                The  a  =  b  +  c  can  be  sunk  to  right  before  the  printf.
165        Normal  code  sinking will not do this, it will sink the first one
166        above  into  the  else-branch of the conditional jump, which still
167        gives you two copies of the code.
168      * GCC  now  has  a  value  range  propagation  pass. This allows the
169        compiler  to  eliminate bounds checks and branches. The results of
170        the   pass   can   also  be  used  to  accurately  compute  branch
171        probabilities.
172      * The  pass  to  convert  PHI nodes to straight-line code (a form of
173        if-conversion for GIMPLE) has been improved significantly. The two
174        most   significant  improvements  are  an  improved  algorithm  to
175        determine  the order in which the PHI nodes are considered, and an
176        improvement  that  allow  the  pass  to consider if-conversions of
177        basic blocks with more than two predecessors.
178      * Alias  analysis  improvements.  GCC  can now differentiate between
179        different  fields  of  structures  in  Tree-SSA's virtual operands
180        form. This lets stores/loads from non-overlapping structure fields
181        not  conflict.  A  new  algorithm  to  compute  points-to sets was
182        contributed  that  can  allows  GCC to see now that p->a and p->b,
183        where  p  is a pointer to a structure, can never point to the same
184        field.
185      * Various enhancements to auto-vectorization:
186           + Incrementally preserve SSA form when vectorizing.
187           + Incrementally preserve loop-closed form when vectorizing.
188           + Improvements  to  peeling for alignment: generate better code
189             when  the misalignment of an access is known at compile time,
190             or  when  different  accesses  are  known  to  have  the same
191             misalignment,  even  if  the  misalignment  amount  itself is
192             unknown.
193           + Consider dependence distance in the vectorizer.
194           + Externalize  generic parts of data reference analysis to make
195             this analysis available to other passes.
196           + Vectorization of conditional code.
197           + Reduction support.
198      * GCC  can now partition functions in sections of hot and cold code.
199        This   can   significantly   improve  performance  due  to  better
200        instruction  cache locality. This feature works best together with
201        profile feedback driven optimization.
202      * A  new  pass to avoid saving of unneeded arguments to the stack in
203        vararg  functions  if the compiler can prove that they will not be
204        needed.
205      * Transition  of  basic block profiling to tree level implementation
206        has  been completed. The new implementation should be considerably
207        more  reliable  (hopefully  avoiding  profile mismatch errors when
208        using  -fprofile-use or -fbranch-probabilities) and can be used to
209        drive higher level optimizations, such as inlining.
210        The  -ftree-based-profiling  command  line  option was removed and
211        -fprofile-use  now  implies disabling old RTL level loop optimizer
212        (-fno-loop-optimize).    Speculative    prefetching   optimization
213        (originally enabled by -fspeculative-prefetching) was removed.
215 New Languages and Language specific improvements
217   C and Objective-C
219      * The  old Bison-based C and Objective-C parser has been replaced by
220        a new, faster hand-written recursive-descent parser.
222   Ada
224      * The build infrastructure for the Ada runtime library and tools has
225        been  changed  to  be better integrated with the rest of the build
226        infrastructure  of GCC. This should make doing cross builds of Ada
227        a bit easier.
229   C++
231      * ARM-style  name-injection  of friend declarations is no longer the
232        default. For example:
233           struct S {
234             friend void f();
235           };
237           void g() { f(); }
238        will  not  be accepted; instead a declaration of f will need to be
239        present  outside  of  the  scope  of S. The new -ffriend-injection
240        option will enable the old behavior.
241      * The   (undocumented)  extension  which  permitted  templates  with
242        default arguments to be bound to template template parameters with
243        fewer  parameters  has been deprecated, and will be removed in the
244        next major release of G++. For example:
245        template <template <typename> class C>
246        void f(C<double>) {}
248        template <typename T, typename U = int>
249        struct S {};
251        template void f(S<double>);
253        makes use of the deprecated extension. The reason this code is not
254        valid  ISO  C++  is  that  S  is  a  template with two parameters;
255        therefore, it cannot be bound to C which has only one parameter.
257     Runtime Library (libstdc++)
259      * Optimization work:
260           + A  new  implementation  of  std::search_n is provided, better
261             performing in case of random access iterators.
262           + Added further efficient specializations of istream functions,
263             i.e., character array and string extractors.
264           + Other smaller improvements throughout.
265      * Policy-based      associative     containers,     designed     for
266        high-performance, flexibility and semantic safety are delivered in
267        ext/pb_assoc.
268      * A  versatile  string  class,  __gnu_cxx::__versa_string, providing
269        facilities   conforming   to   the   standard   requirements   for
270        basic_string, is delivered in <ext/vstring.h>. In particular:
271           + Two  base  classes  are  provided:  the  default  one  avoids
272             reference  counting  and  is optimized for short strings; the
273             alternate  one,  still  uses  it while improving in a few low
274             level  areas  (e.g.,  alignment).  See vstring_fwd.h for some
275             useful typedefs.
276           + Various  algorithms  have been rewritten (e.g., replace), the
277             code streamlined and simple optimizations added.
278           + Option  3  of DR 431 is implemented for both available bases,
279             thus improving the support for stateful allocators.
280      * As  usual,  many  bugs  have  been  fixed  (e.g., libstdc++/13583,
281        libstdc++/23953) and LWG resolutions put into effect for the first
282        time  (e.g., DR 280, DR 464, N1780 recommendations for DR 233, TR1
283        Issue  6.19).  The  implementation status of TR1 is now tracked in
284        the docs in tr1.html.
286   Objective-C++
288      * A  new  language  front end for Objective-C++ has been added. This
289        language  allows  users  to  mix  the  object oriented features of
290        Objective-C with those of C++.
292   Java (GCJ)
294      * Core  library  (libgcj) updates based on GNU Classpath 0.15 - 0.19
295        features (plus some 0.20 bug-fixes)
296           + Networking
297                o The  java.net.HttpURLConnection implementation no longer
298                  buffers  the  entire response body in memory. This means
299                  that  response  bodies  larger than available memory can
300                  now be handled.
301           + (N)IO
302                o NIO   FileChannel.map   implementation,  fast  bulk  put
303                  implementation  for  DirectByteBuffer  (speeds  up  this
304                  method 10x).
305                o FileChannel.lock() and FileChannel.force() implemented.
306           + XML
307                o gnu.xml  fix  for  nodes  created  outside  a  namespace
308                  context.
309                o Add     support     for     output     indenting     and
310                  cdata-section-elements     output     instruction     in
311                  xml.transform.
312                o xml.xpath      corrections      for      cases     where
313                  elements/attributes   might   have   been   created   in
314                  non-namespace-aware mode. Corrections to handling of XSL
315                  variables and minor conformance updates.
316           + AWT
317                o GNU JAWT implementation, the AWT Native Interface, which
318                  allows  direct  access  to  native screen resources from
319                  within  a  Canvas's paint method. GNU Classpath Examples
320                  comes with a Demo, see
321                  libjava/classpath/examples/README.
322                o awt.datatransfer   updated   to  1.5  with  support  for
323                  FlavorEvents. The gtk+ awt peers now allow copy/paste of
324                  text,  images,  URIs/files  and  serialized objects with
325                  other  applications and tracking clipboard change events
326                  with  gtk+  2.6  (for  gtk+ 2.4 only text and serialized
327                  objects   are   supported).  A  GNU  Classpath  Examples
328                  datatransfer   Demo   was   added   to   show   the  new
329                  functionality.
330                o Split  gtk+  awt peers event handling in two threads and
331                  improve gdk lock handling (solves several awt lock ups).
332                o Speed up awt Image loading.
333                o Better  gtk+  scrollbar  peer  implementation when using
334                  gtk+ >= 2.6.
335                o Handle  image loading errors correctly for gdkpixbuf and
336                  MediaTracker.
337                o Better  handle  GDK lock. Properly prefix gtkpeer native
338                  functions (cp_gtk).
339                o GdkGraphics2D  has  been  updated  to use Cairo 0.5.x or
340                  higher.
341                o BufferedImage  and  GtkImage rewrites. All image drawing
342                  operations  should now work correctly (flipping requires
343                  gtk+ >= 2.6)
344                o Future Graphics2D, image and text work is documented at:
345                  [2]http://developer.classpath.org/mediation/ClasspathGra
346                  phicsImagesText 
347                o When  gtk+  2.6  or  higher is installed the default log
348                  handler  will  produce  stack traces whenever a WARNING,
349                  CRITICAL or ERROR message is produced.
350           + Free Swing
351                o The  RepaintManager has been reworked for more efficient
352                  painting, especially for large GUIs.
353                o The  layout  manager OverlayLayout has been implemented,
354                  the  BoxLayout  has  been  rewritten  to make use of the
355                  SizeRequirements  utility  class  and  caching  for more
356                  efficient layout.
357                o Improved accessibility support.
358                o Significant progress has been made in the implementation
359                  of  the  javax.swing.plaf.metal  package,  with  most UI
360                  delegates  in a working state now. Please test this with
361                  your  own  applications  and  provide feedback that will
362                  help us to improve this package.
363                o The  GUI  demo  (gnu.classpath.examples.swing.Demo)  has
364                  been  extended to highlight various features in our Free
365                  Swing  implementation.  And  it includes a look and feel
366                  switcher for Metal (default), Ocean and GNU themes.
367                o The javax.swing.plaf.multi package is now implemented.
368                o Editing  and  several  key  actions for JTree and JTable
369                  were implemented.
370                o Lots  of  icons  and look and feel improvements for Free
371                  Swing basic and metal themes were added. Try running the
372                  GNU     Classpath     Swing     Demo     in     examples
373                  (gnu.classpath.examples.swing.Demo)                with:
374                  -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFe
375                  el or
376                  -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFe
377                  el
378                o Start of styled text capabilites for java.swing.text.
379                o DefaultMutableTreeNode       pre-order,      post-order,
380                  depth-first  and  breadth-first  traversal  enumerations
381                  implemented.
382                o JInternalFrame colors and titlebar draw properly.
383                o JTree  is  working  up  to  par  (icons,  selection  and
384                  keyboard traversal).
385                o JMenus   were   made   more  compatible  in  visual  and
386                  programmatic behavior.
387                o JTable    changeSelection    and   multiple   selections
388                  implemented.
389                o JButton  and  JToggleButton  change states work properly
390                  now.
391                o JFileChooser fixes.
392                o revalidate()  and  repaint() fixes which make Free Swing
393                  much more responsive.
394                o MetalIconFactory implemented.
395                o Free  Swing  Top-Level  Compatibility.  JFrame, JDialog,
396                  JApplet,   JInternalFrame,   and  JWindow  are  now  1.5
397                  compatible  in  the  sense  that  you can call add() and
398                  setLayout()  directly  on them, which will have the same
399                  effect    as    calling    getContentPane().add()    and
400                  getContentPane().setLayout().
401                o The  JTree  interface  has  been  completed.  JTrees now
402                  recognizes mouse clicks and selections work.
403                o BoxLayout works properly now.
404                o Fixed GrayFilter to actually work.
405                o Metal SplitPane implemented.
406                o Lots of Free Swing text and editor stuff work now.
407           + Free RMI and Corba
408                o Andrew  Watson, Vice President and Technical Director of
409                  the  Object Management Group, has officially assigned us
410                  20  bit  Vendor  Minor Code Id: 0x47430 ("GC") that will
411                  mark   remote   classpath-specific   system  exceptions.
412                  Obtaining  the  VMCID  means that GNU Classpath now is a
413                  recogniseable  type  of  node  in a highly interoperable
414                  CORBA world.
415                o GNU  Classpath  now  includes the first working draft to
416                  support   the   RMI  over  IIOP  protocol.  The  current
417                  implementation   is   capable   of  remote  invocations,
418                  transferring  various  Serializables and Externalizables
419                  via  RMI-IIOP  protocol.  It  can flatten graphs and, at
420                  least  for  the  simple cases, is interoperable with 1.5
421                  JDKs.
422                o org.omg.PortableInterceptor and related functionality in
423                  other packages is now implemented:
424                     # The  sever and client interceptors work as required
425                       since 1.4.
426                     # The IOR interceptor works as needed for 1.5.
427                o The  org.omg.DynamicAny  package is completed and passes
428                  the prepared tests.
429                o The  Portable  Object  Adapter  should  now  support the
430                  output  of  the  recent  IDL  to  java  compilers. These
431                  compilers now generate servants and not CORBA objects as
432                  before,  making  the  output  depend on the existing POA
433                  implementation.  Completing POA means that such code can
434                  already  be tried to run on Classpath. Our POA is tested
435                  for the following usager scenarios:
436                     # POA converts servant to the CORBA object.
437                     # Servant provides to the CORBA object.
438                     # POA  activates  new  CORBA  object  with  the given
439                       Object Id (byte array) that is later accessible for
440                       the servant.
441                     # During   the   first   call,  the  ServantActivator
442                       provides  servant for this and all subsequent calls
443                       on the current object.
444                     # During   each  call,  the  ServantLocator  provides
445                       servant for this call only.
446                     # ServantLocator or ServantActivator forwards call to
447                       another server.
448                     # POA  has  a  single  servant,  responsible  for all
449                       objects.
450                     # POA  has  a  default  servant, but some objects are
451                       explicitly connected to they specific servants.
452                  The   POA  is  verified  using  tests  from  the  former
453                  cost.omg.org.
454                o The CORBA implementation is now a working prototype that
455                  should  support  features up to 1.3 inclusive. We invite
456                  groups  writing  CORBA  dependent  applications  to  try
457                  Classpath  implementation,  reporting any possible bugs.
458                  The   CORBA   prototype   is  interoperable  with  Sun's
459                  implementation  v  1.4,  transferring object references,
460                  primitive   types,  narrow  and  wide  strings,  arrays,
461                  structures,  trees,  abstract interfaces and value types
462                  (feature  of  CORBA  2.3)  between  these two platforms.
463                  Remote exceptions are transferred and handled correctly.
464                  The  stringified  object  references (IORs) from various
465                  sources  are  parsed  as  required.  The  transient (for
466                  current   session)  and  permanent  (till  jre  restart)
467                  redirections  work.  Both  Little and Big Endian encoded
468                  messages  are  accepted.  The implementation is verified
469                  using  tests  from  the former cost.omg.org. The current
470                  release  includes  working  examples  (see  the examples
471                  directory),      demonstrating     the     client-server
472                  communication,  using  either CORBA Request or IDL-based
473                  stub  (usually  generated  by  a  IDL to java compiler).
474                  These  examples also show how to use the Classpath CORBA
475                  naming  service.  The  IDL  to  java compiler is not yet
476                  written,  but  as  our  library  must  be compatible, it
477                  naturally    accepts    the   output   of   other   idlj
478                  implementations.
479           + Misc
480                o Updated TimeZone data against Olson tzdata2005l.
481                o Make zip and jar packages UTF-8 clean.
482                o "native"  code  builds  and  compiles  (warning free) on
483                  Darwin and Solaris.
484                o java.util.logging.FileHandler now rotates files.
485                o Start of a generic JDWP framework in gnu/classpath/jdwp.
486                  This  is unfinished, but feedback (at classpath@gnu.org)
487                  from  runtime  hackers  is greatly appreciated. Although
488                  most  of the work is currently being done around gcj/gij
489                  we  want this framework to be as VM neutral as possible.
490                  Early design is described in:
491                  [3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html
492                o QT4    AWT    peers,    enable   by   giving   configure
493                  --enable-qt-peer. Included, but not ready for production
494                  yet. They are explicitly disabled and not supported. But
495                  if  you  want  to help with the development of these new
496                  features we are interested in feedback. You will have to
497                  explicitly  enable  them  to try them out (and they will
498                  most likely contain bugs).
499                o Documentation    fixes   all   over   the   place.   See
500                  [4]http://developer.classpath.org/doc/
502 New Targets and Target Specific Improvements
504   IA-32/x86-64
506      * The  x86-64  medium model (that allows building applications whose
507        data  segment  exceeds  4GB)  was  redesigned  to match latest ABI
508        draft. New implementation split large datastructures into separate
509        segment  improving performance of accesses to small datastructures
510        and also allows linking of small model libraries into medium model
511        programs  as  long  as  the  libraries are not accessing the large
512        datastructures   directly.  Medium  model  is  also  supported  in
513        position independent code now.
514        The  ABI  change  results  in partial incompatibility among medium
515        model   objects.  Linking  medium  model  libraries  (or  objects)
516        compiled with new compiler into medium model program compiled with
517        older will likely result in exceeding ranges of relocations.
518        Binutils  2.16.91 or newer are required for compiling medium model
519        now.
521   RS6000 (POWER/PowerPC)
523      * The  AltiVec  vector primitives in <altivec.h> are now implemented
524        in  a  way that puts a smaller burden on the preprocessor, instead
525        processing  the  "overloading"  in  the  front  ends.  This should
526        benefit compilation speed on AltiVec vector code.
527      * AltiVec initializers now are generated more efficiently.
528      * The popcountb instruction available on POWER5 now is generated.
529      * The  floating  point  round  to  integer instructions available on
530        POWER5+ now is generated.
531      * Floating point divides can be synthesized using the floating point
532        reciprocal estimate instructions.
533      * Double  precision  floating  point  constants  are  initialized as
534        single precision values if they can be represented exactly.
536   S/390, zSeries and System z9
538      * Support  for  the IBM System z9 109 processor has been added. When
539        using  the  -march=z9-109  option, the compiler will generate code
540        making  use  of  instructions  provided  by the extended immediate
541        facility.
542      * Support for 128-bit IEEE floating point has been added. When using
543        the  -mlong-double-128  option,  the  compiler  will  map the long
544        double data type to 128-bit IEEE floating point. Using this option
545        constitutes an ABI change, and requires glibc support.
546      * Various changes to improve performance of generated code have been
547        implemented, including:
548           + In  functions  that  do  not require a literal pool, register
549             %r13   (which  is  traditionally  reserved  as  literal  pool
550             pointer),  can  now  be freely used for other purposes by the
551             compiler.
552           + More  precise tracking of register use allows the compiler to
553             generate  more  efficient  function prolog and epilog code in
554             certain cases.
555           + The  SEARCH  STRING,  COMPARE LOGICAL STRING, and MOVE STRING
556             instructions are now used to implement C string functions.
557           + The  MOVE  CHARACTER  instruction with single byte overlap is
558             now  used to implement the memset function with non-zero fill
559             byte.
560           + The LOAD ZERO instructions are now used where appropriate.
561           + The  INSERT  CHARACTERS  UNDER  MASK,  STORE CHARACTERS UNDER
562             MASK,  and  INSERT  IMMEDIATE  instructions are now used more
563             frequently to optimize bitfield operations.
564           + The  BRANCH ON COUNT instruction is now used more frequently.
565             In  particular,  the  fact  that a loop contains a subroutine
566             call   no  longer  prevents  the  compiler  from  using  this
567             instruction.
568           + The   compiler  is  now  aware  that  all  shift  and  rotate
569             instructions implicitly truncate the shift count to six bits.
570      * Back-end  support  for  the  following  generic  features has been
571        implemented:
572           + The  full  set  of  [5]built-in  functions  for atomic memory
573             access.
574           + The -fstack-protector feature.
575           + The optimization pass avoiding unnecessary stores of incoming
576             argument registers in functions with variable argument list.
578   SPARC
580      * The  default  code  model  in  64-bit  mode  has been changed from
581        Medium/Anywhere to Medium/Middle on Solaris.
582      * TLS support is disabled by default on Solaris prior to release 10.
583        It  can be enabled on TLS-capable Solaris 9 versions (4/04 release
584        and later) by specifying --enable-tls at configure time.
586   MorphoSys
588      * Support has been added for this new architecture.
590 Obsolete Systems
592 Documentation improvements
594 Other significant improvements
596      * GCC   can   now   emit   code  for  protecting  applications  from
597        stack-smashing  attacks.  The  protection  is  realized  by buffer
598        overflow  detection  and  reordering  of  stack variables to avoid
599        pointer corruption.
600      * Some  built-in  functions  have  been  fortified  to  protect them
601        against    various    buffer    overflow   (and   format   string)
602        vulnerabilities.  Compared to the mudflap bounds checking feature,
603        the  safe  builtins  have  far  smaller  overhead. This means that
604        programs  built  using  safe  builtins  should  not experience any
605        measurable slowdown.
607 GCC 4.1.2
609    This  is  the [6]list of problem reports (PRs) from GCC's bug tracking
610    system  that  are  known  to  be fixed in the 4.1.2 release. This list
611    might not be complete (that is, it is possible that some PRs that have
612    been fixed are not listed here).
614    When  generating  code  for  a shared library, GCC now recognizes that
615    global  functions may be replaced when the program runs. Therefore, it
616    is  now  more  conservative in deducing information from the bodies of
617    functions. For example, in this example:
618     void f() {}
619     void g() {
620      try { f(); }
621      catch (...) {
622        cout << "Exception";
623      }
624     }
627    G++  would  previously  have optimized away the catch clause, since it
628    would have concluded that f cannot throw exceptions. Because users may
629    replace  f with another function in the main body of the program, this
630    optimization is unsafe, and is no longer performed. If you wish G++ to
631    continue  to  optimize as before, you must add a throw() clause to the
632    declaration of f to make clear that it does not throw exceptions.
634    Please  send  FSF & GNU inquiries & questions to [7]gnu@gnu.org. There
635    are also [8]other ways to contact the FSF.
637    These pages are maintained by [9]the GCC team.
640     For  questions  related  to the use of GCC, please consult these web
641     pages    and    the    [10]GCC   manuals.   If   that   fails,   the
642     [11]gcc-help@gcc.gnu.org mailing list might help.
643     Please  send  comments on these web pages and the development of GCC
644     to    our    developer    mailing   list   at   [12]gcc@gnu.org   or
645     [13]gcc@gcc.gnu.org. All of our lists have [14]public archives.
647    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
648    Floor, Boston, MA 02110, USA.
650    Verbatim  copying and distribution of this entire article is permitted
651    in any medium, provided this notice is preserved.
652    Last modified 2007-02-14 [15]Valid XHTML 1.0 
654 References
656    1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
657    2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
658    3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html
659    4. http://developer.classpath.org/doc/
660    5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
661    6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2
662    7. mailto:gnu@gnu.org
663    8. http://www.gnu.org/home.html#ContactInfo
664    9. http://gcc.gnu.org/about.html
665   10. http://gcc.gnu.org/onlinedocs/
666   11. mailto:gcc-help@gcc.gnu.org
667   12. mailto:gcc@gnu.org
668   13. mailto:gcc@gcc.gnu.org
669   14. http://gcc.gnu.org/lists.html
670   15. http://validator.w3.org/check/referer
671 ======================================================================
672 http://gcc.gnu.org/gcc-4.0/index.html
674                            GCC 4.0 Release Series
676    January 31, 2007
678    The  [1]GNU project and the GCC developers are pleased to announce the
679    release of GCC 4.0.4.
681    This release is a bug-fix release, containing fixes for regressions in
682    GCC 4.0.3 relative to previous releases of GCC.
684 Release History
686    GCC 4.0.4
687           January 31, 2007 ([2]changes)
689    GCC 4.0.3
690           March 10, 2006 ([3]changes)
692    GCC 4.0.2
693           September 28, 2005 ([4]changes)
695    GCC 4.0.1
696           July 7, 2005 ([5]changes)
698    GCC 4.0.0
699           April 20, 2005 ([6]changes)
701 References and Acknowledgements
703    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
704    supports  several  other languages aside from C, it now stands for the
705    GNU Compiler Collection.
707    A  list  of [7]successful builds is updated as new information becomes
708    available.
710    The  GCC  developers would like to thank the numerous people that have
711    contributed  new  features, improvements, bug fixes, and other changes
712    as well as test results to GCC. This [8]amazing group of volunteers is
713    what makes GCC successful.
715    For  additional  information  about  GCC  please  refer  to the [9]GCC
716    project web site or contact the [10]GCC development mailing list.
718    To  obtain  GCC  please  use  [11]our mirror sites, one of the [12]GNU
719    mirror sites, or [13]our SVN server.
721    Please  send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
722    are also [15]other ways to contact the FSF.
724    These pages are maintained by [16]the GCC team.
727     For  questions  related  to the use of GCC, please consult these web
728     pages    and    the    [17]GCC   manuals.   If   that   fails,   the
729     [18]gcc-help@gcc.gnu.org mailing list might help.
730     Please  send  comments on these web pages and the development of GCC
731     to    our    developer    mailing   list   at   [19]gcc@gnu.org   or
732     [20]gcc@gcc.gnu.org. All of our lists have [21]public archives.
734    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
735    Floor, Boston, MA 02110, USA.
737    Verbatim  copying and distribution of this entire article is permitted
738    in any medium, provided this notice is preserved.
739    Last modified 2007-02-03 [22]Valid XHTML 1.0 
741 References
743    1. http://www.gnu.org/
744    2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
745    3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3
746    4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2
747    5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1
748    6. http://gcc.gnu.org/gcc-4.0/changes.html
749    7. http://gcc.gnu.org/gcc-4.0/buildstat.html
750    8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
751    9. http://gcc.gnu.org/index.html
752   10. mailto:gcc@gcc.gnu.org
753   11. http://gcc.gnu.org/mirrors.html
754   12. http://www.gnu.org/order/ftp.html
755   13. http://gcc.gnu.org/svn.html
756   14. mailto:gnu@gnu.org
757   15. http://www.gnu.org/home.html#ContactInfo
758   16. http://gcc.gnu.org/about.html
759   17. http://gcc.gnu.org/onlinedocs/
760   18. mailto:gcc-help@gcc.gnu.org
761   19. mailto:gcc@gnu.org
762   20. mailto:gcc@gcc.gnu.org
763   21. http://gcc.gnu.org/lists.html
764   22. http://validator.w3.org/check/referer
765 ======================================================================
766 http://gcc.gnu.org/gcc-4.0/changes.html
768                            GCC 4.0 Release Series
769                       Changes, New Features, and Fixes
771    The latest release in the 4.0 release series is [1]GCC 4.0.4.
773 Caveats
775      * GCC  now  generates  location lists by default when compiling with
776        debug info and optimization.
777           + GDB  6.0  and  older crashes when it sees location lists. GDB
778             6.1  or later is needed to debug binaries containing location
779             lists.
780           + When  you  are trying to view a value of a variable in a part
781             of  a function where it has no location (for example when the
782             variable is no longer used and thus its location was used for
783             something else) GDB will say that it is not available.
784        You can disable generating location lists by -fno-var-tracking.
785      * GCC  no  longer  accepts  the -fwritable-strings option. Use named
786        character arrays when you need a writable string.
787      * The  options  -freduce-all-givs  and -fmove-all-movables have been
788        discontinued.  They  were  used to circumvent a shortcoming in the
789        heuristics  of  the  old  loop  optimization  code with respect to
790        common  Fortran  constructs.  The  new (tree) loop optimizer works
791        differently and doesn't need those work-arounds.
792      * The  graph-coloring  register  allocator,  formerly enabled by the
793        option -fnew-ra, has been discontinued.
794      * -I-  has been deprecated. -iquote is meant to replace the need for
795        this option.
796      * The MIPS -membedded-pic and -mrnames options have been removed.
797      * All  MIPS  targets  now  require the GNU assembler. In particular,
798        IRIX  configurations  can  no  longer  use the MIPSpro assemblers,
799        although they do still support the MIPSpro linkers.
800      * The SPARC option -mflat has been removed.
801      * English-language   diagnostic   messages   will  now  use  Unicode
802        quotation  marks  in  UTF-8 locales. (Non-English messages already
803        used   the   quotes  appropriate  for  the  language  in  previous
804        releases.)  If  your  terminal  does not support UTF-8 but you are
805        using  a  UTF-8  locale  (such  locales  are  the  default on many
806        GNU/Linux   systems)   then  you  should  set  LC_CTYPE=C  in  the
807        environment   to   disable   that   locale.  Programs  that  parse
808        diagnostics  and  expect  plain  ASCII  English-language  messages
809        should  set  LC_ALL=C. See [2]Markus Kuhn's explanation of Unicode
810        quotation marks for more information.
811      * The  specs  file  is  no  longer installed on most platforms. Most
812        users  will  be totally unaffected. However, if you are accustomed
813        to  editing  the specs file yourself, you will now have to use the
814        -dumpspecs  option  to  generate the specs file, and then edit the
815        resulting file.
817 General Optimizer Improvements
819      * The  [3]tree ssa branch has been merged. This merge has brought in
820        a  completely  new  optimization framework based on a higher level
821        intermediate  representation than the existing RTL representation.
822        Numerous  new  code transformations based on the new framework are
823        available in GCC 4.0, including:
824           + Scalar replacement of aggregates
825           + Constant propagation
826           + Value range propagation
827           + Partial redundancy elimination
828           + Load and store motion
829           + Strength reduction
830           + Dead store elimination
831           + Dead and unreachable code elimination
832           + [4]Autovectorization
833           + Loop interchange
834           + Tail recursion by accumulation
835        Many  of  these passes outperform their counterparts from previous
836        GCC releases.
837      * [5]Swing   Modulo  Scheduling  (SMS).  An  RTL  level  instruction
838        scheduling  optimization  intended  for  loops  that perform heavy
839        computations.
841 New Languages and Language specific improvements
843   C family
845      * The  sentinel  attribute  has  been  added  to  GCC. This function
846        attribute allows GCC to warn when variadic functions such as execl
847        are  not  NULL  terminated.  See  the  GCC  manual  for a complete
848        description of its behavior.
849      * Given  __attribute__((alias("target")))  it  is  now  an  error if
850        target is not a symbol, defined in the same translation unit. This
851        also applies to aliases created by #pragma weak alias=target. This
852        is  because  it's  meaningless  to define an alias to an undefined
853        symbol.  On  Solaris,  the native assembler would have caught this
854        error, but GNU as does not.
856   C and Objective-C
858      * The  -Wstrict-aliasing=2  option  has  been  added.  This  warning
859        catches  all unsafe cases, but it may also give a warning for some
860        cases that are safe.
861      * The     cast-as-lvalue,    conditional-expression-as-lvalue    and
862        compound-expression-as-lvalue extensions, which were deprecated in
863        3.3.4 and 3.4, have been removed.
864      * The  -fwritable-strings  option,  which was deprecated in 3.4, has
865        been removed.
866      * #pragma pack() semantics have been brought closer to those used by
867        other compilers. This also applies to C++.
868      * Taking  the address of a variable with register storage is invalid
869        in C. GCC now issues an error instead of a warning.
870      * Arrays of incomplete element type are invalid in C. GCC now issues
871        an  error  for  such  arrays. Declarations such as extern struct s
872        x[];  (where struct s has not been defined) can be moved after the
873        definition  of struct s. Function parameters declared as arrays of
874        incomplete type can instead be declared as pointers.
876   C++
878      * When  compiling  without  optimizations (-O0), the C++ frontend is
879        much  faster  than  in  any  previous versions of GCC. Independent
880        testers have measured speed-ups up to 25% in real-world production
881        code,  compared  to  the 3.4 family (which was already the fastest
882        version  to  date).  Upgrading from older versions might show even
883        bigger improvements.
884      * ELF  visibility  attributes can now be applied to a class type, so
885        that  it affects every member function of a class at once, without
886        having to specify each individually:
887 class __attribute__ ((visibility("hidden"))) Foo
889    int foo1();
890    void foo2();
892        The syntax is deliberately similar to the __declspec() system used
893        by  Microsoft  Windows  based  compilers,  allowing cross-platform
894        projects  to easily reuse their existing macro system for denoting
895        exports  and imports. By explicitly marking internal classes never
896        used  outside  a  binary  as  hidden, one can completely avoid PLT
897        indirection  overheads during their usage by the compiler. You can
898        find    out    more    about    the    advantages   of   this   at
899        [6]http://people.redhat.com/drepper/dsohowto.pdf
900      * The  -fvisibility-inlines-hidden option has been added which marks
901        all  inlineable  functions  as  having hidden ELF visibility, thus
902        removing  their symbol and typeinfo from the exported symbol table
903        of  the  output  ELF  binary.  Using  this  option  can reduce the
904        exported  symbol count of template-heavy code by up to 40% with no
905        code change at all, thus notably improving link and load times for
906        the  binary  as  well  as  a reduction in size of up to 10%. Also,
907        check the new [7]-fvisibility option.
908      * The  compiler  now  uses  the  library  interface specified by the
909        [8]C++ ABI for thread-safe initialization of function-scope static
910        variables.  Most  users  should  leave  this  alone,  but embedded
911        programmers    may    want   to   disable   this   by   specifying
912        -fno-threadsafe-statics for a small savings in code size.
913      * Taking  the  address of an explicit register variable is no longer
914        supported.  Note  that  C++ allows taking the address of variables
915        with  register  storage  so  this  will continue to compile with a
916        warning. For example, assuming that r0 is a machine register:
917 register int foo asm ("r0");
918 register int bar;
919 &foo; // error, no longer accepted
920 &bar; // OK, with a warning
921      * G++  has  an undocumented extension to virtual function covariancy
922        rules  that  allowed  the  overrider  to  return  a  type that was
923        implicitly  convertable  to the overridden function's return type.
924        For  instance a function returning void * could be overridden by a
925        function returning T *. This is now deprecated and will be removed
926        in a future release.
927      * The  G++  minimum  and  maximum  operators  (<?  and >?) and their
928        compound  forms  (<?=)  and  >?=) have been deprecated and will be
929        removed  in a future version. Code using these operators should be
930        modified to use std::min and std::max instead.
931      * Declaration  of  nested  classes of class templates as friends are
932        supported:
933 template <typename T> struct A {
934   class B {};
936 class C {
937   template <typename T> friend class A<T>::B;
939        This  complements  the feature member functions of class templates
940        as friends introduced in GCC 3.4.0.
941      * When  declaring  a friend class using an unqualified name, classes
942        outside the innermost non-class scope are not searched:
943 class A;
944 namespace N {
945   class B {
946     friend class A;   // Refer to N::A which has not been declared yet
947                       // because name outside namespace N are not searched
948     friend class ::A; // Refer to ::A
949   };
951        Hiding the friend name until declaration is still not implemented.
952      * Friends  of  classes defined outside their namespace are correctly
953        handled:
954 namespace N {
955   class A;
957 class N::A {
958   friend class B; // Refer to N::B in GCC 4.0.0
959                   // but ::B in earlier versions of GCC
962     Runtime Library (libstdc++)
964      * Optimization work:
965           + Added efficient specializations of istream functions for char
966             and wchar_t.
967           + Further  performance  tuning  of  strings,  in particular wrt
968             single-char append and getline.
969           + iter_swap  -  and therefore most of the mutating algorithms -
970             now  makes an unqualified call to swap when the value_type of
971             the two iterators is the same.
972      * A  large  subset  of  the  features in Technical Report 1 (TR1 for
973        short)  is experimentally delivered (i.e., no guarantees about the
974        implementation are provided. In particular it is not promised that
975        the  library  will  remain  link-compatible when code using TR1 is
976        used):
977           + General utilities such as reference_wrapper and shared_ptr.
978           + Function objects, i.e., result_of, mem_fn, bind, function.
979           + Support for metaprogramming.
980           + New   containers   such   as   tuple,  array,  unordered_set,
981             unordered_map, unordered_multiset, unordered_multimap.
982      * As   usual,   many  bugs  have  been  fixed  and  LWG  resolutions
983        implemented for the first time (e.g., DR 409).
985   Java
987      * In order to prevent naming conflicts with other implementations of
988        these tools, some GCJ binaries have been renamed:
989           + rmic is now grmic,
990           + rmiregistry is now grmiregistry, and
991           + jar is now fastjar.
992        In  particular,  these names were problematic for the jpackage.org
993        packaging  conventions  which  install  symlinks  in /usr/bin that
994        point to the preferred versions of these tools.
995      * The  -findirect-dispatch  argument  to  the compiler now works and
996        generates  code  following  a new "binary compatibility" ABI. Code
997        compiled  this  way  follows the binary compatibility rules of the
998        Java Language Specification.
999      * libgcj  now  has  support  for  using  GCJ  as  a  JIT,  using the
1000        gnu.gcj.jit family of system properties.
1001      * libgcj can now find a shared library corresponding to the bytecode
1002        representation  of  a  class.  See  the  documentation for the new
1003        gcj-dbtool program, and the new gnu.gcj.precompiled.db.path system
1004        property.
1005      * There  have  been many improvements to the class library. Here are
1006        some highlights:
1007           + Much more of AWT and Swing exist.
1008           + Many   new   packages   and  classes  were  added,  including
1009             java.util.regex,          java.net.URI,         javax.crypto,
1010             javax.crypto.interfaces,     javax.crypto.spec,    javax.net,
1011             javax.net.ssl, javax.security.auth,
1012             javax.security.auth.callback,      javax.security.auth.login,
1013             javax.security.auth.x500, javax.security.sasl, org.ietf.jgss,
1014             javax.imageio,     javax.imageio.event,    javax.imageio.spi,
1015             javax.print, javax.print.attribute,
1016             javax.print.attribute.standard,     javax.print.event,    and
1017             javax.xml
1018           + Updated SAX and DOM, and imported GNU JAXP
1020   Fortran
1022      * A  new  [9]Fortran front end has replaced the aging GNU Fortran 77
1023        front  end.  The new front end supports Fortran 90 and Fortran 95.
1024        It may not yet be as stable as the old Fortran front end.
1026   Ada
1028      * Ada  (with  tasking  and Zero Cost Exceptions) is now available on
1029        many  more  targets,  including  but  not limited to: alpha-linux,
1030        hppa-hpux,  hppa-linux, powerpc-darwin, powerpc-linux, s390-linux,
1031        s390x-linux, sparc-linux.
1032      * Some  of  the  new  Ada  2005  features  are  now implemented like
1033        Wide_Wide_Character and Ada.Containers.
1034      * Many bugs have been fixed, tools and documentation improved.
1035      * To  compile  Ada  from  the  sources, install an older working Ada
1036        compiler  and  then  use  --enable-languages=ada  at configuration
1037        time,  since  the  Ada  frontend  is  not  currently  activated by
1038        default. See the [10]Installing GCC for details.
1040 New Targets and Target Specific Improvements
1042   H8/300
1044      * The frame layout has changed. In the new layout, the prologue of a
1045        function first saves registers and then allocate space for locals,
1046        resulting in an 1% improvement on code size.
1048   IA-32/x86-64 (AMD64)
1050      * The  acos,  asin,  drem,  exp10,  exp2, expm1, fmod, ilogb, log10,
1051        log1p,  log2,  logb and tan mathematical builtins (and their float
1052        and  long  double  variants)  are  now  implemented  as inline x87
1053        intrinsics when using -ffast-math.
1054      * The  ceil,  floor, nearbyint, rint and trunc mathematical builtins
1055        (and  their float and long double variants) are now implemented as
1056        inline x87 intrinsics when using -ffast-math.
1057      * The  x87's  fsincos  instruction  is  now  used automatically with
1058        -ffast-math  when  calculating  both  the  sin and cos of the same
1059        argument.
1060      * Instruction selection for multiplication and division by constants
1061        has been improved.
1063   IA-64
1065      * Floating  point  division,  integer  division  and  sqrt  are  now
1066        inlined, resulting in significant performance improvements on some
1067        codes.
1069   MIPS
1071      * Division  by  zero  checks now use conditional traps if the target
1072        processor  supports them. This decreases code size by one word per
1073        division  operation.  The  old  behavior (branch and break) can be
1074        obtained  either at configure time by passing --with-divide=breaks
1075        to configure or at runtime by passing -mdivide-breaks to GCC.
1076      * Support  for  MIPS64 paired-single instructions has been added. It
1077        is  enabled  by -mpaired-single and can be accessed using both the
1078        target-independent   vector   extensions   and  new  MIPS-specific
1079        built-in functions.
1080      * Support  for  the  MIPS-3D  ASE  has  been added. It is enabled by
1081        -mips3d and provides new MIPS-3D-specific built-in functions.
1082      * The  -mexplicit-relocs  option now supports static n64 code (as is
1083        used,  for  example,  in  64-bit linux kernels). -mexplicit-relocs
1084        should  now be feature-complete and is enabled by default when GCC
1085        is configured to use a compatible assembler.
1086      * Support  for  the  NEC  VR4130 series has been added. This support
1087        includes  the  use  of  VR-specific  instructions and a new VR4130
1088        scheduler.  Full VR4130 support can be selected with -march=vr4130
1089        while  code  for  any  ISA  can  be  tuned  for  the  VR4130 using
1090        -mtune=vr4130.  There  is  also  a  new -mvr4130-align option that
1091        produces better schedules at the cost of increased code size.
1092      * Support  for  the Broadcom SB-1 has been extended. There is now an
1093        SB-1   scheduler   as   well  as  support  for  the  SB-1-specific
1094        paired-single instructions. Full SB-1 support can be selected with
1095        -march=sb1  while  code  for any ISA can be optimized for the SB-1
1096        using -mtune=sb1.
1097      * The  compiler  can  now work around errata in R4000, R4400, VR4120
1098        and   VR4130   processors.   These   workarounds  are  enabled  by
1099        -mfix-r4000,    -mfix-r4400,    -mfix-vr4120    and   -mfix-vr4130
1100        respectively. The VR4120 and VR4130 workarounds need binutils 2.16
1101        or above.
1102      * IRIX  shared libraries are now installed into the standard library
1103        directories:  o32  libraries  go  into lib/, n32 libraries go into
1104        lib32/ and n64 libraries go into lib64/.
1105      * The  compiler  supports  a  new  -msym32 option. It can be used to
1106        optimize  n64  code  in which all symbols are known to have 32-bit
1107        values.
1109   S/390 and zSeries
1111      * New  command line options help to generate code intended to run in
1112        an  environment where stack space is restricted, e.g. Linux kernel
1113        code:
1114           + -mwarn-framesize and -mwarn-dynamicstack trigger compile-time
1115             warnings  for  single functions that require large or dynamic
1116             stack frames.
1117           + -mstack-size  and -mstack-guard generate code that checks for
1118             stack overflow at run time.
1119           + -mpacked-stack  generates  code  that reduces the stack frame
1120             size of many functions by reusing unneeded parts of the stack
1121             bias area.
1122      * The  -msoft-float  option  now  ensures  that generated code never
1123        accesses floating point registers.
1124      * The   s390x-ibm-tpf  target  now  fully  supports  C++,  including
1125        exceptions and threads.
1126      * Various  changes to improve performance of the generated code have
1127        been implemented, including:
1128           + GCC now uses sibling calls where possible.
1129           + Condition  code  handling has been optimized, allowing GCC to
1130             omit redundant comparisons in certain cases.
1131           + The cost function guiding many optimizations has been refined
1132             to more accurately represent the z900 and z990 processors.
1133           + The  ADD  LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW
1134             instructions  are  now  used to avoid conditional branches in
1135             certain cases.
1136           + The  back  end now uses the LEGITIMIZE_RELOAD_ADDRESS feature
1137             to optimize address arithmetic required to access large stack
1138             frames.
1139           + GCC  now  makes  more  efficient use of memory-to-memory type
1140             instructions (MVC, CLC, ...).
1141           + More  precise  tracking of special register use allows better
1142             instruction   scheduling,   in  particular  of  the  function
1143             prologue and epilogue sequences.
1144           + The  Java  front  end  now generates inline code to implement
1145             integer division, instead of calling library routines.
1147   SPARC
1149      * The options -mv8, -msparclite, -mcypress, -msupersparc, -mf930 and
1150        -mf934 have been removed. They have been replaced with -mcpu=xxx.
1151      * The  internal  model  used  to  estimate the relative cost of each
1152        instruction  has  been  updated.  It  is  expected  to give better
1153        results on recent UltraSPARC processors.
1154      * Code  generation  for  function  prologues  and epilogues has been
1155        improved,  resulting  in  better  scheduling and allowing multiple
1156        exit points in functions.
1157      * Support  for Sun's Visual Instruction Set (VIS) has been enhanced.
1158        It is enabled by -mvis and provides new built-in functions for VIS
1159        instructions on UltraSPARC processors.
1160      * The  option  -mapp-regs  has  been turned on by default on Solaris
1161        too.
1163   NetWare
1165      * Novell  NetWare  (on  ix86,  no  other  hardware platform was ever
1166        really  supported  by  this  OS)  has  been re-enabled and the ABI
1167        supported  by  GCC  has  been  brought  into  sync  with  that  of
1168        MetroWerks  CodeWarrior  (the ABI previously supported was that of
1169        some Unix systems, which NetWare never tried to support).
1171 Obsolete Systems
1173    Support  for  a  number of older systems has been declared obsolete in
1174    GCC  4.0. Unless there is activity to revive them, the next release of
1175    GCC will have their sources permanently removed.
1177    All  GCC  ports  for  the  following processor architectures have been
1178    declared obsolete:
1179      * Intel i860
1180      * Ubicom IP2022
1181      * National Semiconductor NS32K
1182      * Texas Instruments TMS320C[34]x
1184    Also, those for some individual systems have been obsoleted:
1185      * SPARC family
1186           + SPARClite-based  systems  (sparclite-*-coff, sparclite-*-elf,
1187             sparc86x-*-elf)
1188           + OpenBSD 32-bit (sparc-*-openbsd*)
1190 Documentation improvements
1192 Other significant improvements
1194      * Location  lists  are  now generated by default when compiling with
1195        debug  info and optimization. Location lists provide more accurate
1196        debug  info  about locations of variables and they allow debugging
1197        code compiled with -fomit-frame-pointer.
1198      * The  -fvisibility  option  has been added which allows the default
1199        ELF  visibility  of  all symbols to be set per compilation and the
1200        new #pragma GCC visibility preprocessor command allows the setting
1201        of   default   ELF   visibility   for  a  region  of  code.  Using
1202        -fvisibility=hidden   especially   in  combination  with  the  new
1203        -fvisibility-inlines-hidden  can yield substantial improvements in
1204        output   binary   quality   including   avoiding  PLT  indirection
1205        overheads,  reduction  of  the  exported symbol count by up to 60%
1206        (with resultant improvements to link and load times), better scope
1207        for  the  optimizer  to  improve code and up to a 20% reduction in
1208        binary  size. Using these options correctly yields a binary with a
1209        similar symbol count to a Windows DLL.
1210        Perhaps  more  importantly,  this new feature finally allows (with
1211        careful  planning)  complete  avoidance  of  symbol  clashes  when
1212        manually  loading  shared  objects  with RTLD_GLOBAL, thus finally
1213        solving  problems  many projects such as python were forced to use
1214        RTLD_LOCAL  for  (with  its resulting issues for C++ correctness).
1215        You  can  find  more  information  about  using  these  options at
1216        [11]http://gcc.gnu.org/wiki/Visibility.
1217      _________________________________________________________________
1219 GCC 4.0.1
1221    This  is the [12]list of problem reports (PRs) from GCC's bug tracking
1222    system  that  are  known  to  be fixed in the 4.0.1 release. This list
1223    might not be complete (that is, it is possible that some PRs that have
1224    been fixed are not listed here).
1226 GCC 4.0.2
1228    This  is the [13]list of problem reports (PRs) from GCC's bug tracking
1229    system  that  are  known  to  be fixed in the 4.0.2 release. This list
1230    might not be complete (that is, it is possible that some PRs that have
1231    been fixed are not listed here).
1233    Unfortunately,  due to a release engineering failure, this release has
1234    a regression on Solaris that will affect some C++ programs. We suggest
1235    that  Solaris users apply a [14]patch that corrects the problem. Users
1236    who do not wish to apply the patch should explicitly link C++ programs
1237    with  the  -pthreads  option,  even  if  they do not use threads. This
1238    problem  has been corrected in the current 4.0 branch sources and will
1239    not be present in GCC 4.0.3.
1241 GCC 4.0.3
1243    Starting  with  this release, the function getcontext is recognized by
1244    the  compiler  as having the same semantics as the setjmp function. In
1245    particular,  the  compiler  will  ensure  that  all registers are dead
1246    before  calling  such  a  function  and  will emit a warning about the
1247    variables  that  may  be  clobbered  after  the second return from the
1248    function.
1250 GCC 4.0.4
1252    This  is the [15]list of problem reports (PRs) from GCC's bug tracking
1253    system  that  are  known  to  be fixed in the 4.0.4 release. This list
1254    might not be complete (that is, it is possible that some PRs that have
1255    been fixed are not listed here).
1257    The  4.0.4 release is provided for those that require a high degree of
1258    binary compatibility with previous 4.0.x releases. For most users, the
1259    GCC team recommends that version 4.1.1 or later be used instead."
1261    Please  send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There
1262    are also [17]other ways to contact the FSF.
1264    These pages are maintained by [18]the GCC team.
1267     For  questions  related  to the use of GCC, please consult these web
1268     pages    and    the    [19]GCC   manuals.   If   that   fails,   the
1269     [20]gcc-help@gcc.gnu.org mailing list might help.
1270     Please  send  comments on these web pages and the development of GCC
1271     to    our    developer    mailing   list   at   [21]gcc@gnu.org   or
1272     [22]gcc@gcc.gnu.org. All of our lists have [23]public archives.
1274    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
1275    Floor, Boston, MA 02110, USA.
1277    Verbatim  copying and distribution of this entire article is permitted
1278    in any medium, provided this notice is preserved.
1279    Last modified 2007-02-03 [24]Valid XHTML 1.0 
1281 References
1283    1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
1284    2. http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
1285    3. http://gcc.gnu.org/projects/tree-ssa/
1286    4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html
1287    5. http://gcc.gnu.org/news/sms.html
1288    6. http://people.redhat.com/drepper/dsohowto.pdf
1289    7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
1290    8. http://www.codesourcery.com/cxx-abi/
1291    9. http://gcc.gnu.org/fortran/
1292   10. http://gcc.gnu.org/install/
1293   11. http://gcc.gnu.org/wiki/Visibility
1294   12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
1295   13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2
1296   14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html
1297   15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4
1298   16. mailto:gnu@gnu.org
1299   17. http://www.gnu.org/home.html#ContactInfo
1300   18. http://gcc.gnu.org/about.html
1301   19. http://gcc.gnu.org/onlinedocs/
1302   20. mailto:gcc-help@gcc.gnu.org
1303   21. mailto:gcc@gnu.org
1304   22. mailto:gcc@gcc.gnu.org
1305   23. http://gcc.gnu.org/lists.html
1306   24. http://validator.w3.org/check/referer
1307 ======================================================================
1308 http://gcc.gnu.org/gcc-3.4/index.html
1310                            GCC 3.4 Release Series
1312    May 26, 2006
1314    The  [1]GNU project and the GCC developers are pleased to announce the
1315    release of GCC 3.4.6.
1317    This release is a bug-fix release, containing fixes for regressions in
1318    GCC  3.4.4  relative  to previous releases of GCC. This is the last of
1319    the 3.4.x series.
1321    The   GCC  3.4  release  series  includes  numerous  [2]new  features,
1322    improvements,  bug  fixes,  and other changes, thanks to an [3]amazing
1323    group of volunteers.
1325 Release History
1327    GCC 3.4.6
1328           March 6, 2006 ([4]changes)
1330    GCC 3.4.5
1331           November 30, 2005 ([5]changes)
1333    GCC 3.4.4
1334           May 18, 2005 ([6]changes)
1336    GCC 3.4.3
1337           November 4, 2004 ([7]changes)
1339    GCC 3.4.2
1340           September 6, 2004 ([8]changes)
1342    GCC 3.4.1
1343           July 1, 2004 ([9]changes)
1345    GCC 3.4.0
1346           April 18, 2004 ([10]changes)
1348 References and Acknowledgements
1350    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
1351    supports  several  other languages aside from C, it now stands for the
1352    GNU Compiler Collection.
1354    A  list of [11]successful builds is updated as new information becomes
1355    available.
1357    The  GCC  developers would like to thank the numerous people that have
1358    contributed  new  features, improvements, bug fixes, and other changes
1359    as  well  as test results to GCC. This [12]amazing group of volunteers
1360    is what makes GCC successful.
1362    For  additional  information  about  GCC  please  refer to the [13]GCC
1363    project web site or contact the [14]GCC development mailing list.
1365    To  obtain  GCC  please  use  [15]our mirror sites, one of the [16]GNU
1366    mirror sites, or [17]our SVN server.
1368    Please  send FSF & GNU inquiries & questions to [18]gnu@gnu.org. There
1369    are also [19]other ways to contact the FSF.
1371    These pages are maintained by [20]the GCC team.
1374     For  questions  related  to the use of GCC, please consult these web
1375     pages    and    the    [21]GCC   manuals.   If   that   fails,   the
1376     [22]gcc-help@gcc.gnu.org mailing list might help.
1377     Please  send  comments on these web pages and the development of GCC
1378     to    our    developer    mailing   list   at   [23]gcc@gnu.org   or
1379     [24]gcc@gcc.gnu.org. All of our lists have [25]public archives.
1381    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
1382    Floor, Boston, MA 02110, USA.
1384    Verbatim  copying and distribution of this entire article is permitted
1385    in any medium, provided this notice is preserved.
1386    Last modified 2006-06-21 [26]Valid XHTML 1.0 
1388 References
1390    1. http://www.gnu.org/
1391    2. http://gcc.gnu.org/gcc-3.4/changes.html
1392    3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
1393    4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
1394    5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5
1395    6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4
1396    7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3
1397    8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
1398    9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1
1399   10. http://gcc.gnu.org/gcc-3.4/changes.html
1400   11. http://gcc.gnu.org/gcc-3.4/buildstat.html
1401   12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
1402   13. http://gcc.gnu.org/index.html
1403   14. mailto:gcc@gcc.gnu.org
1404   15. http://gcc.gnu.org/mirrors.html
1405   16. http://www.gnu.org/order/ftp.html
1406   17. http://gcc.gnu.org/svn.html
1407   18. mailto:gnu@gnu.org
1408   19. http://www.gnu.org/home.html#ContactInfo
1409   20. http://gcc.gnu.org/about.html
1410   21. http://gcc.gnu.org/onlinedocs/
1411   22. mailto:gcc-help@gcc.gnu.org
1412   23. mailto:gcc@gnu.org
1413   24. mailto:gcc@gcc.gnu.org
1414   25. http://gcc.gnu.org/lists.html
1415   26. http://validator.w3.org/check/referer
1416 ======================================================================
1417 http://gcc.gnu.org/gcc-3.4/changes.html
1419                            GCC 3.4 Release Series
1420                       Changes, New Features, and Fixes
1422    The  final  release  in  the  3.4  release series is [1]GCC 3.4.6. The
1423    series is now closed.
1425    GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting
1426    a  bug,  please  make sure it's really GCC, and not your code, that is
1427    broken.
1429 Caveats
1431      * GNU Make is now required to build GCC.
1432      * With  -nostdinc  the  preprocessor  used  to  ignore both standard
1433        include   paths   and   include  paths  contained  in  environment
1434        variables. It was neither documented nor intended that environment
1435        variable paths be ignored, so this has been corrected.
1436      * GCC  no  longer  accepts the options -fvolatile, -fvolatile-global
1437        and  -fvolatile-static.  It is unlikely that they worked correctly
1438        in any 3.x release.
1439      * GCC no longer ships <varargs.h>. Use <stdarg.h> instead.
1440      * Support  for  all  the  systems  [3]obsoleted  in GCC 3.3 has been
1441        removed from GCC 3.4. See below for a [4]list of systems which are
1442        obsoleted in this release.
1443      * GCC  now requires an ISO C90 (ANSI C89) C compiler to build. K&R C
1444        compilers will not work.
1445      * The  implementation  of the [5]MIPS ABIs has changed. As a result,
1446        the  code  generated  for  certain MIPS targets will not be binary
1447        compatible with earlier releases.
1448      * In  previous  releases,  the  MIPS port had a fake "hilo" register
1449        with the user-visible name accum. This register has been removed.
1450      * The  implementation of the [6]SPARC ABIs has changed. As a result,
1451        the  code  generated  will  not  be binary compatible with earlier
1452        releases in certain cases.
1453      * The  configure  option --enable-threads=pthreads has been removed;
1454        use  --enable-threads=posix  instead,  which  should have the same
1455        effect.
1456      * Code   size   estimates   used   by  inlining  heuristics  for  C,
1457        Objective-C, C++ and Java have been redesigned significantly. As a
1458        result     the     parameters     of    -finline-insns,    --param
1459        max-inline-insns-single  and --param max-inline-insns-auto need to
1460        be reconsidered.
1461      * --param  max-inline-slope  and  --param min-inline-insns have been
1462        removed;  they  are  not  needed  for  the  new bottom-up inlining
1463        heuristics.
1464      * The    new   unit-at-a-time   compilation   scheme   has   several
1465        compatibility issues:
1466           + The  order  in  which functions, variables, and top-level asm
1467             statements are emitted may have changed. Code relying on some
1468             particular ordering needs to be updated. The majority of such
1469             top-level   asm   statements   can  be  replaced  by  section
1470             attributes.
1471           + Unreferenced static variables and functions are removed. This
1472             may  result  in  undefined  references  when an asm statement
1473             refers to the variable/function directly. In that case either
1474             the  variable/function  shall  be  listed  in  asm  statement
1475             operand  or  in  the  case  of  top-level  asm statements the
1476             attribute used shall be used to force function/variable to be
1477             always  output  and  considered as a possibly used by unknown
1478             code.
1479             For  variables  the attribute is accepted only by GCC 3.4 and
1480             newer,  while  for  earlier  versions it is sufficient to use
1481             unused  to  silence  warnings  about  the variables not being
1482             referenced.  To  keep  code  portable  across  different  GCC
1483             versions, you can use appropriate preprocessor conditionals.
1484           + Static functions now can use non-standard passing conventions
1485             that  may  break  asm  statements calling functions directly.
1486             Again  the  attribute  used  shall  be  used  to prevent this
1487             behavior.
1488        As  a  temporary  workaround, -fno-unit-at-a-time can be used, but
1489        this scheme may not be supported by future releases of GCC.
1490      * GCC  3.4  automatically  places  zero-initialized variables in the
1491        .bss  section  on some operating systems. Versions of GNU Emacs up
1492        to  (and  including)  21.3 will not work correctly when using this
1493        optimization;  you can use -fno-zero-initialized-in-bss to disable
1494        it.
1495      * If  GCC 3.4 is configured with --enable-threads=posix (the default
1496        on  most  targets  that  support pthreads) then _REENTRANT will be
1497        defined  unconditionally by some libstdc++ headers. C++ code which
1498        relies  on  that  macro  to  detect whether multi-threaded code is
1499        being  compiled  might  change  in  meaning, possibly resulting in
1500        linker  errors  for  single-threaded  programs.  Affected users of
1501        [7]Boost     should     compile    single-threaded    code    with
1502        -DBOOST_DISABLE_THREADS. See Bugzilla for [8]more information.
1504 General Optimizer Improvements
1506      * Usability  of  the  profile feedback and coverage testing has been
1507        improved.
1508           + Performance  of profiled programs has been improved by faster
1509             profile merging code.
1510           + Better  use  of  the  profile feedback for optimization (loop
1511             unrolling and loop peeling).
1512           + File  locking support allowing fork() calls and parallel runs
1513             of profiled programs.
1514           + Coverage file format has been redesigned.
1515           + gcov coverage tool has been improved.
1516           + make profiledbootstrap available to build a faster compiler.
1517             Experiments  made  on  i386 hardware showed an 11% speedup on
1518             -O0  and  a 7.5% speedup on -O2 compilation of a [9]large C++
1519             testcase.
1520           + New value profiling pass enabled via -fprofile-values
1521           + New value profile transformations pass enabled via -fvpt aims
1522             to optimize some code sequences by exploiting knowledge about
1523             value  ranges  or  other  properties  of the operands. At the
1524             moment  a  conversion  of  expensive  divisions  into cheaper
1525             operations has been implemented.
1526           + New -fprofile-generate and -fprofile-use command line options
1527             to simplify the use of profile feedback.
1528      * A  new  unit-at-a-time  compilation scheme for C, Objective-C, C++
1529        and  Java  which  is  enabled via -funit-at-a-time (and implied by
1530        -O2).  In  this  scheme a whole file is parsed first and optimized
1531        later.  The  following  basic  inter-procedural  optimizations are
1532        implemented:
1533           + Removal of unreachable functions and variables
1534           + Discovery  of  local functions (functions with static linkage
1535             whose address is never taken)
1536           + On i386, these local functions use register parameter passing
1537             conventions.
1538           + Reordering  of  functions  in  topological  order of the call
1539             graph  to enable better propagation of optimizing hints (such
1540             as the stack alignments needed by functions) in the back end.
1541           + Call  graph  based  out-of-order  inlining  heuristics  which
1542             allows  to  limit  overall  compilation  unit growth (--param
1543             inline-unit-growth).
1544        Overall, the unit-at-a-time scheme produces a 1.3% improvement for
1545        the  SPECint2000  benchmark  on  the i386 architecture (AMD Athlon
1546        CPU).
1547      * More  realistic  code  size  estimates  used  by  inlining  for C,
1548        Objective-C,  C++  and Java. The growth of large functions can now
1549        be   limited   via   --param   large-function-insns   and  --param
1550        large-function-growth.
1551      * A  new  cfg-level  loop  optimizer  pass  replaces  the  old  loop
1552        unrolling  pass  and  adds  two other loop transformations -- loop
1553        peeling and loop unswitching -- and also uses the profile feedback
1554        to  limit  code  growth.  (The  three optimizations are enabled by
1555        -funroll-loops,    -fpeel-loops    and   -funswitch-loops   flags,
1556        respectively).
1557        The  old  loop unroller still can be enabled by -fold-unroll-loops
1558        and  may  produce  better  code in some cases, especially when the
1559        webizer optimization pass is not run.
1560      * A new web construction pass enabled via -fweb (and implied by -O3)
1561        improves the quality of register allocation, CSE, first scheduling
1562        pass  and  some  other  optimization  passes by avoiding re-use of
1563        pseudo registers with non-overlapping live ranges. The pass almost
1564        always improves code quality but does make debugging difficult and
1565        thus is not enabled by default by -O2
1566        The pass is especially effective as cleanup after code duplication
1567        passes, such as the loop unroller or the tracer.
1568      * Experimental  implementations of superblock or trace scheduling in
1569        the    second    scheduling    pass    can    be    enabled    via
1570        -fsched2-use-superblocks and -fsched2-use-traces, respectively.
1572 New Languages and Language specific improvements
1574   Ada
1576      * The  Ada  front end has been updated to include numerous bug fixes
1577        and enhancements. These include:
1578           + Improved project file support
1579           + Additional set of warnings about potential wrong code
1580           + Improved error messages
1581           + Improved code generation
1582           + Improved cross reference information
1583           + Improved inlining
1584           + Better run-time check elimination
1585           + Better error recovery
1586           + More efficient implementation of unbounded strings
1587           + Added      features     in     GNAT.Sockets,     GNAT.OS_Lib,
1588             GNAT.Debug_Pools, ...
1589           + New      GNAT.xxxx      packages      (e.g.     GNAT.Strings,
1590             GNAT.Exception_Action)
1591           + New pragmas
1592           + New -gnatS switch replacing gnatpsta
1593           + Implementation  of  new  Ada  features (in particular limited
1594             with, limited aggregates)
1596   C/Objective-C/C++
1598      * Precompiled  headers  are  now  supported. Precompiled headers can
1599        dramatically speed up compilation of some projects. There are some
1600        known  defects  in  the  current precompiled header implementation
1601        that   will   result   in  compiler  crashes  in  relatively  rare
1602        situations.  Therefore, precompiled headers should be considered a
1603        "technology  preview" in this release. Read the manual for details
1604        about how to use precompiled headers.
1605      * File  handling  in  the  preprocessor  has  been rewritten. GCC no
1606        longer  gets  confused  by  symlinks  and hardlinks, and now has a
1607        correct  implementation  of  #import  and  #pragma once. These two
1608        directives have therefore been un-deprecated.
1609      * The undocumented extension that allowed C programs to have a label
1610        at  the  end  of  a  compound statement, which has been deprecated
1611        since GCC 3.0, has been removed.
1612      * The   cast-as-lvalue  extension  has  been  removed  for  C++  and
1613        deprecated for C and Objective-C. In particular, code like this:
1614         int i;
1615         (char) i = 5;
1617        or this:
1618         char *p;
1619         ((int *) p)++;
1621        is  no  longer accepted for C++ and will not be accepted for C and
1622        Objective-C in a future version.
1623      * The conditional-expression-as-lvalue extension has been deprecated
1624        for C and Objective-C. In particular, code like this:
1625         int a, b, c;
1626         (a ? b : c) = 2;
1628        will not be accepted for C and Objective-C in a future version.
1629      * The  compound-expression-as-lvalue  extension  has been deprecated
1630        for C and Objective-C. In particular, code like this:
1631         int a, b;
1632         (a, b) = 2;
1634        will  not be accepted for C and Objective-C in a future version. A
1635        possible non-intrusive workaround is the following:
1636         (*(a, &b)) = 2;
1638      * Several  [10]built-in  functions  such  as  __builtin_popcount for
1639        counting  bits,  finding the highest and lowest bit in a word, and
1640        parity have been added.
1641      * The  -fwritable-strings  option  has  been  deprecated and will be
1642        removed.
1643      * Many  C math library functions are now recognized as built-ins and
1644        optimized.
1645      * The  C, C++, and Objective-C compilers can now handle source files
1646        written in any character encoding supported by the host C library.
1647        The  default input character set is taken from the current locale,
1648        and  may  be  overridden  with  the  -finput-charset  command line
1649        option.  In  the  future  we  will add support for inline encoding
1650        markers.
1652   C++
1654      * G++  is  now  much  closer to full conformance to the ISO/ANSI C++
1655        standard.  This  means,  among other things, that a lot of invalid
1656        constructs which used to be accepted in previous versions will now
1657        be rejected. It is very likely that existing C++ code will need to
1658        be fixed. This document lists some of the most common issues.
1659      * A  hand-written  recursive-descent  C++  parser  has  replaced the
1660        YACC-derived C++ parser from previous GCC releases. The new parser
1661        contains much improved infrastructure needed for better parsing of
1662        C++  source  codes,  handling  of extensions, and clean separation
1663        (where  possible)  between  proper semantics analysis and parsing.
1664        The new parser fixes many bugs that were found in the old parser.
1665      * You   must   now   use  the  typename  and  template  keywords  to
1666        disambiguate dependent names, as required by the C++ standard.
1667         struct K {
1668           typedef int mytype_t;
1669         };
1671         template <class T1> struct A {
1672           template <class T2> struct B {
1673               void callme(void);
1674             };
1676           template <int N> void bar(void)
1677           {
1678             // Use 'typename' to tell the parser that T1::mytype_t names
1679             //  a type. This is needed because the name is dependent (in
1680             //  this case, on template parameter T1).
1681             typename T1::mytype_t x;
1682             x = 0;
1683           }
1684         };
1686         template <class T> void template_func(void)
1687         {
1688           // Use 'template' to prefix member templates within
1689           //  dependent types (a has type A<T>, which depends on
1690           //  the template parameter T).
1691           A<T> a;
1692           a.template bar<0>();
1694           // Use 'template' to tell the parser that B is a nested
1695           //  template class (dependent on template parameter T), and
1696           //  'typename' because the whole A<T>::B<int> is
1697           //  the name of a type (again, dependent).
1698           typename A<T>::template B<int> b;
1699           b.callme();
1700         }
1702         void non_template_func(void)
1703         {
1704           // Outside of any template class or function, no names can be
1705           //  dependent, so the use of the keyword 'typename' and 'template'
1706           //  is not needed (and actually forbidden).
1707           A<K> a;
1708           a.bar<0>();
1709           A<K>::B<float> b;
1710           b.callme();
1711         }
1712      * In  a  template  definition, unqualified names will no longer find
1713        members  of  a dependent base (as specified by [temp.dep]/3 in the
1714        C++ standard). For example,
1715         template <typename T> struct B {
1716           int m;
1717           int n;
1718           int f ();
1719           int g ();
1720         };
1721         int n;
1722         int g ();
1723         template <typename T> struct C : B<T> {
1724           void h ()
1725           {
1726             m = 0; // error
1727             f ();  // error
1728             n = 0; // ::n is modified
1729             g ();  // ::g is called
1730           }
1731         };
1732        You  must  make  the  names dependent, e.g. by prefixing them with
1733        this->. Here is the corrected definition of C<T>::h,
1734         template <typename T> void C<T>::h ()
1735         {
1736           this->m = 0;
1737           this->f ();
1738           this->n = 0
1739           this->g ();
1740         }
1741        As an alternative solution (unfortunately not backwards compatible
1742        with GCC 3.3), you may use using declarations instead of this->:
1743         template <typename T> struct C : B<T> {
1744           using B<T>::m;
1745           using B<T>::f;
1746           using B<T>::n;
1747           using B<T>::g;
1748           void h ()
1749           {
1750             m = 0;
1751             f ();
1752             n = 0;
1753             g ();
1754           }
1755         };
1756      * In  templates, all non-dependent names are now looked up and bound
1757        at definition time (while parsing the code), instead of later when
1758        the template is instantiated. For instance:
1759         void foo(int);
1761         template <int> struct A {
1762           static void bar(void){
1763             foo('a');
1764           }
1765         };
1767         void foo(char);
1769         int main()
1770         {
1771           A<0>::bar();    // Calls foo(int), used to call foo(char).
1772         }
1773              * In  an  explicit  instantiation  of  a  class  template,  you must
1774        use class or struct before the template-id:
1775         template <int N>
1776         class A {};
1778         template A<0>;         // error, not accepted anymore
1779         template class A<0>;   // OK
1780      * The  "named  return value" and "implicit typename" extensions have
1781        been removed.
1782      * Default  arguments in function types have been deprecated and will
1783        be removed.
1784      * ARM-style   name-injection   of   friend   declarations  has  been
1785        deprecated  and  will  be  removed. For example: struct S { friend
1786        void  f();  };  void  g()  { f(); } will not be accepted by future
1787        versions  of  G++;  instead  a  declaration of "f" will need to be
1788        present outside of the scope of "S".
1789      * Covariant  returns  are  implemented for all but varadic functions
1790        that require an adjustment.
1791      * When  -pedantic  is  used,  G++  now  issues errors about spurious
1792        semicolons. For example,
1793         namespace N {}; // Invalid semicolon.
1794         void f() {}; // Invalid semicolon.
1795      * G++  no  longer  accepts  attributes  for  a  declarator after the
1796        initializer associated with that declarator. For example,
1797         X x(1) __attribute__((...));
1798        is no longer accepted. Instead, use:
1799         X x __attribute__((...)) (1);
1800      * Inside the scope of a template class, the name of the class itself
1801        can  be  treated  as  either a class or a template. So GCC used to
1802        accept  the  class name as argument of type template, and template
1803        template  parameter.  However  this is not C++ standard compliant.
1804        Now  the name is not treated as a valid template template argument
1805        unless  you  qualify  the name by its scope. For example, the code
1806        below no longer compiles.
1807         template <template <class> class TT> class X {};
1808         template <class T> class Y {
1809           X<Y> x; // Invalid, Y is always a type template parameter.
1810         };
1811        The valid code for the above example is
1812           X< ::Y> x; // Valid.
1813        (Notice the space between < and : to prevent GCC to interpret this
1814        as a digraph for [.)
1815      * Friend  declarations  that  refer  to template specializations are
1816        rejected  if  the  template  has  not  already  been declared. For
1817        example,
1818         template <typename T>
1819         class C {
1820           friend void f<> (C&);
1821         };
1822        is rejected. You must first declare f as a template,
1823         template <typename T>
1824         void f(T);
1825      * In  case  of  friend  declarations,  every name used in the friend
1826        declaration  must  be accessible at the point of that declaration.
1827        Previous  versions  of  G++  used to be less strict about this and
1828        allowed   friend  declarations  for  private  class  members,  for
1829        example.  See  the  ISO C++ Standard Committee's [11]defect report
1830        #209 for details.
1831      * Declaration  of member functions of class templates as friends are
1832        supported. For example,
1833         template <typename T> struct A {
1834           void f();
1835         };
1836         class C {
1837           template <typename T> friend void A<T>::f();
1838         };
1839      * You must use template <> to introduce template specializations, as
1840        required by the standard. For example,
1841         template <typename T>
1842         struct S;
1844         struct S<int> { };
1845        is rejected. You must write,
1846         template <> struct S<int> {};
1847      * G++ used to accept code like this,
1848         struct S {
1849           int h();
1850           void f(int i = g());
1851           int g(int i = h());
1852         };
1853        This  behavior  is not mandated by the standard. Now G++ issues an
1854        error  about  this  code.  To  avoid  the error, you must move the
1855        declaration  of  g  before  the  declaration  of  f.  The  default
1856        arguments for g must be visible at the point where it is called.
1857      * The   C++   ABI   Section   3.3.3  specifications  for  the  array
1858        construction   routines  __cxa_vec_new2  and  __cxa_vec_new3  were
1859        changed  to  return NULL when the allocator argument returns NULL.
1860        These changes are incorporated into the libstdc++ runtime library.
1861      * Using a name introduced by a typedef in a friend declaration or in
1862        an explicit instantiation is now rejected, as specified by the ISO
1863        C++ standard.
1864         class A;
1865         typedef A B;
1866         class C {
1867           friend class B;      // error, no typedef name here
1868           friend B;            // error, friend always needs class/struct/enum
1869           friend class A;      // OK
1870         };
1872         template <int> class Q {};
1873         typedef Q<0> R;
1874         template class R;      // error, no typedef name here
1875         template class Q<0>;   // OK
1876      * When  allocating an array with a new expression, GCC used to allow
1877        parentheses  around the type name. This is actually ill-formed and
1878        it is now rejected:
1879         int* a = new (int)[10];    // error, not accepted anymore
1880         int* a = new int[10];      // OK
1881      * When  binding  an  rvalue  of  class type to a reference, the copy
1882        constructor  of  the  class  must  be  accessible.  For  instance,
1883        consider the following code:
1884         class A
1885         {
1886         public:
1887           A();
1889         private:
1890           A(const A&);   // private copy ctor
1891         };
1893         A makeA(void);
1894         void foo(const A&);
1896         void bar(void)
1897         {
1898           foo(A());       // error, copy ctor is not accessible
1899           foo(makeA());   // error, copy ctor is not accessible
1901           A a1;
1902           foo(a1);        // OK, a1 is a lvalue
1903         }
1904        This  might  be  surprising  at first sight, especially since most
1905        popular   compilers   do   not   correctly   implement  this  rule
1906        ([12]further details).
1907      * When  forming a pointer to member or a pointer to member function,
1908        access  checks  for  class visibility (public, protected, private)
1909        are  now  performed using the qualifying scope of the name itself.
1910        This is better explained with an example:
1911         class A
1912         {
1913         public:
1914           void pub_func();
1915         protected:
1916           void prot_func();
1917         private:
1918           void priv_func();
1919         };
1921         class B : public A
1922         {
1923         public:
1924           void foo()
1925           {
1926             &A::pub_func;   // OK, pub_func is accessible through A
1927             &A::prot_func;  // error, cannot access prot_func through A
1928             &A::priv_func;  // error, cannot access priv_func through A
1930             &B::pub_func;   // OK, pub_func is accessible through B
1931             &B::prot_func;  // OK, can access prot_func through B (within B)
1932             &B::priv_func;  // error, cannot access priv_func through B
1933           }
1934         };
1936     Runtime Library (libstdc++)
1938      * Optimization work:
1939           + Streamlined  streambuf,  filebuf,  separate  synched  with  C
1940             Standard I/O streambuf.
1941           + All formatted I/O now uses cached locale information.
1942           + STL  optimizations (memory/speed for list, red-black trees as
1943             used by sets and maps).
1944           + More use of GCC builtins.
1945           + String      optimizations      (avoid      contention      on
1946             increment/decrement-and-test  of  the  reference count in the
1947             empty-string   object,   constructor   from   input_iterators
1948             speedup).
1949      * Static linkage size reductions.
1950      * Large File Support (files larger than 2 GB on 32-bit systems).
1951      * Wide   character   and  variable  encoding  filebuf  work  (UTF-8,
1952        Unicode).
1953      * Generic character traits.
1954      * Also  support  wchar_t  specializations  on Mac OS 10.3.x, FreeBSD
1955        5.x, Solaris 2.7 and above, AIX 5.x, Irix 6.5.
1956      * The allocator class is now standard-conformant, and two additional
1957        extension    allocators    have    been    added,   mt_alloc   and
1958        bitmap_allocator.
1959      * PCH support: -include bits/stdc++.h (2x compile speedup).
1960      * Rewrote __cxa_demangle with support for C++ style allocators.
1961      * New debug modes for STL containers and iterators.
1962      * Testsuite  rewrite:  five  times  as many tests, plus increasingly
1963        sophisticated  tests,  including  I/O,  MT, multi-locale, wide and
1964        narrow characters.
1965      * Use current versions of GNU "autotools" for build/configuration.
1967   Objective-C
1969      * The Objective-C front end has been updated to include the numerous
1970        bug  fixes  and  enhancements previously available only in Apple's
1971        version of GCC. These include:
1972           + Structured exception (@try... @catch... @finally, @throw) and
1973             synchronization (@synchronized) support. These are accessible
1974             via  the  -fobjc-exceptions  switch; as of this writing, they
1975             may only be used in conjunction with -fnext-runtime on Mac OS
1976             X  10.3  and  later.  See [13]Options Controlling Objective-C
1977             Dialect for more information.
1978           + An overhaul of @encode logic. The C99 _Bool and C++ bool type
1979             may  now be encoded as 'B'. In addition, the back-end/codegen
1980             dependencies have been removed.
1981           + An  overhaul  of message dispatch construction, ensuring that
1982             the  various  receiver  types (and casts thereof) are handled
1983             properly, and that correct diagnostics are issued.
1984           + Support  for "Zero-Link" (-fzero-link) and "Fix-and-Continue"
1985             (-freplace-objc-classes) debugging modes, currently available
1986             on  Mac  OS  X  10.3  and  later. See [14]Options Controlling
1987             Objective-C Dialect for more information.
1988           + Access  to optimized runtime entry points (-fno-nil-receivers
1989             )  on  the  assumption  that message receivers are never nil.
1990             This  is  currently available on Mac OS X 10.3 and later. See
1991             [15]Options   Controlling   Objective-C   Dialect   for  more
1992             information.
1994   Java
1996      * Compiling  a  .jar  file  will  now cause non-.class entries to be
1997        automatically compiled as resources.
1998      * libgcj has been ported to Darwin.
1999      * Jeff  Sturm has adapted Jan Hubicka's call graph optimization code
2000        to gcj.
2001      * libgcj  has  a  new gcjlib URL type; this lets URLClassLoader load
2002        code from shared libraries.
2003      * libgcj   has   been  much  more  completely  merged  with  [16]GNU
2004        Classpath.
2005      * Class loading is now much more correct; in particular the caller's
2006        class loader is now used when that is required.
2007      * [17]Eclipse 2.x will run out of the box using gij.
2008      * Parts  of  java.nio  have  been  implemented.  Direct and indirect
2009        buffers work, as do fundamental file and socket operations.
2010      * java.awt  has  been  improved,  though  it  is still not ready for
2011        general use.
2012      * The  HTTP  protocol  handler  now uses HTTP/1.1 and can handle the
2013        POST method.
2014      * The  MinGW  port  has matured. Enhancements include socket timeout
2015        support, thread interruption, improved Runtime.exec() handling and
2016        support for accented characters in filenames.
2018   Fortran
2020      * Fortran improvements are listed in the [18]Fortran documentation.
2022 New Targets and Target Specific Improvements
2024   Alpha
2026      * Several   [19]built-in   functions   have   been   added  such  as
2027        __builtin_alpha_zap   to   allow   utilizing   the   more  obscure
2028        instructions of the CPU.
2029      * Parameter  passing  of  complex arguments has changed to match the
2030        [20]ABI.  This  change is incompatible with previous GCC versions,
2031        but  does  fix  compatibility  with the Tru64 compiler and several
2032        corner cases where GCC was incompatible with itself.
2034   ARM
2036      * Nicolas   Pitre  has  contributed  his  hand-coded  floating-point
2037        support  code for ARM. It is both significantly smaller and faster
2038        than  the  existing  C-based  implementation,  even  when building
2039        applications   for  Thumb.  The  arm-elf  configuration  has  been
2040        converted to use the new code.
2041      * Support  for  the Intel's iWMMXt architecture, a second generation
2042        XScale  processor,  has  been  added. Enabled at run time with the
2043        -mcpu=iwmmxt command line switch.
2044      * A  new ARM target has been added: arm-wince-pe. This is similar to
2045        the arm-pe target, but it defaults to using the APCS32 ABI.
2046      * The  existing  ARM  pipeline description has been converted to the
2047        use the [21]DFA processor pipeline model. There is not much change
2048        in  code  performance,  but  the  description is now [22]easier to
2049        understand.
2050      * Support for the Cirrus EP9312 Maverick floating point co-processor
2051        added.  Enabled  at  run  time  with the -mcpu=ep9312 command line
2052        switch.  Note  however that the multilibs to support this chip are
2053        currently  disabled in gcc/config/arm/t-arm-elf, so if you want to
2054        enable  their production you will have to uncomment the entries in
2055        that file.
2057   H8/300
2059      * Support for long long has been added.
2060      * Support for saveall attribute has been added.
2061      * Pavel Pisa contributed hand-written 32-bit-by-32-bit division code
2062        for  H8/300H  and  H8S,  which  is  much  faster than the previous
2063        implementation.
2064      * A lot of small performance improvements.
2066   IA-32/AMD64 (x86-64)
2068      * Tuning  for  K8  (AMD  Opteron/Athlon64)  core  is  available  via
2069        -march=k8 and -mcpu=k8.
2070      * Scalar   SSE   code   generation   carefully  avoids  reformatting
2071        penalties,  hidden  dependencies  and minimizes the number of uops
2072        generated on both Intel and AMD CPUs.
2073      * Vector MMX and SSE operands are now passed in registers to improve
2074        performance  and match the argument passing convention used by the
2075        Intel  C++  Compiler.  As  a  result  it  is  not possible to call
2076        functions   accepting  vector  arguments  compiled  by  older  GCC
2077        version.
2078      * Conditional  jump  elimination  is  now  more aggressive on modern
2079        CPUs.
2080      * The  Athlon  ports  has  been  converted  to use the DFA processor
2081        pipeline description.
2082      * Optimization  of  indirect tail calls is now possible in a similar
2083        fashion as direct sibcall optimization.
2084      * Further small performance improvements.
2085      * -m128bit-long-double is now less buggy.
2086      * __float128 support in 64-bit compilation.
2087      * Support for data structures exceeding 2GB in 64-bit mode.
2088      * -mcpu has been renamed to -mtune.
2090   IA-64
2092      * Tuning  code  for  the  Itanium  2  processor  has been added. The
2093        generation of code tuned for Itanium 2 (option -mtune=itanium2) is
2094        enabled  by  default now. To generate code tuned for Itanium 1 the
2095        option -mtune=itanium1 should be used.
2096      * [23]DFA  processor  pipeline descriptions for the IA-64 processors
2097        have  been  added.  This  resulted  in about 3% improvement on the
2098        SPECInt2000 benchmark for Itanium 2.
2099      * Instruction  bundling  for the IA-64 processors has been rewritten
2100        using the DFA pipeline hazard recognizer. It resulted in about 60%
2101        compiler speedup on the SPECInt2000 C programs.
2103   M32R
2105      * Support for the M32R/2 processor has been added by Renesas.
2106      * Support  for an M32R Linux target and PIC code generation has been
2107        added by Renesas.
2109   M68000
2111      * Bernardo    Innocenti   (Develer S.r.l.)   has   contributed   the
2112        m68k-uclinux  target,  based  on  former  work  done  by Paul Dale
2113        (SnapGear Inc.).  Code  generation  for  the  ColdFire  processors
2114        family  has been enhanced and extended to support the MCF 53xx and
2115        MCF 54xx  cores,  integrating  former  work  done  by Peter Barada
2116        (Motorola).
2118   MIPS
2120     Processor-specific changes
2122      * Support  for  the  RM7000 and RM9000 processors has been added. It
2123        can  be  selected using the -march compiler option and should work
2124        with any MIPS I (mips-*) or MIPS III (mips64-*) configuration.
2125      * Support for revision 2 of the MIPS32 ISA has been added. It can be
2126        selected with the command-line option -march=mips32r2.
2127      * There  is  a  new  option,  -mfix-sb1, to work around certain SB-1
2128        errata.
2130     Configuration
2132      * It is possible to customize GCC using the following configure-time
2133        options:
2134           + --with-arch,  which specifies the default value of the -march
2135             option.
2136           + --with-tune,  which specifies the default value of the -mtune
2137             option.
2138           + --with-abi, which specifies the default ABI.
2139           + --with-float=soft,  which  tells GCC to use software floating
2140             point by default.
2141           + --with-float=hard,  which  tells GCC to use hardware floating
2142             point by default.
2143      * A   64-bit   GNU/Linux   port   has  been  added.  The  associated
2144        configurations are mips64-linux-gnu and mips64el-linux-gnu.
2145      * The 32-bit GNU/Linux port now supports Java.
2146      * The  IRIX  6 configuration now supports the o32 ABI and will build
2147        o32  multilibs  by  default.  This support is compatible with both
2148        binutils  and  the  SGI  tools,  but  note  that several features,
2149        including debugging information and DWARF2 exception handling, are
2150        only  available  when  using  the  GNU  assembler.  Use of the GNU
2151        assembler   and   linker  (version  2.15  or  above)  is  strongly
2152        recommended.
2153      * The IRIX 6 configuration now supports 128-bit long doubles.
2154      * There  are  two  new RTEMS-specific configurations, mips-rtems and
2155        mipsel-rtems.
2156      * There  are  two  new  *-elf  configurations,  mipsisa32r2-elf  and
2157        mipsisa32r2el-elf.
2159     General
2161      * Several [24]ABI bugs have been fixed. Unfortunately, these changes
2162        will break binary compatibility with earlier releases.
2163      * GCC  can  now  use  explicit  relocation operators when generating
2164        -mabicalls  code. This behavior is controlled by -mexplicit-relocs
2165        and can have several performance benefits. For example:
2166           + It  allows  for  more optimization of GOT accesses, including
2167             better scheduling and redundancy elimination.
2168           + It allows sibling calls to be implemented as jumps.
2169           + n32  and  n64  leaf functions can use a call-clobbered global
2170             pointer instead of $28.
2171           + The  code  to  set  up $gp can be removed from functions that
2172             don't need it.
2173      * A  new  option, -mxgot, allows the GOT to be bigger than 64k. This
2174        option is equivalent to the assembler's -xgot option and should be
2175        used instead of -Wa,-xgot.
2176      * Frame  pointer elimination is now supported when generating 64-bit
2177        MIPS16 code.
2178      * Inline  block  moves  have  been optimized to take more account of
2179        alignment information.
2180      * Many  internal  changes  have  been  made to the MIPS port, mostly
2181        aimed at reducing the reliance on assembler macros.
2183   PowerPC
2185      * GCC  3.4 releases have a number of fixes for PowerPC and PowerPC64
2186        [25]ABI  incompatibilities regarding the way parameters are passed
2187        during    functions   calls.   These   changes   may   result   in
2188        incompatibility between code compiled with GCC 3.3 and GCC 3.4.
2190     PowerPC Darwin
2192      * Support  for  shared/dylib  gcc  libraries  has  been added. It is
2193        enabled by default on powerpc-apple-darwin7.0.0 and up.
2194      * Libgcj   is   enabled   by   default.   On   systems   older  than
2195        powerpc-apple-darwin7.0.0 you need to install [26]dlcompat.
2196      * 128-bit  IBM  extended  precision  format  support  added for long
2197        double.
2199     PowerPC64 GNU/Linux
2201      * By  default,  PowerPC64  GNU/Linux  now  uses natural alignment of
2202        structure  elements.  The old four byte alignment for double, with
2203        special  rules  for a struct starting with a double, can be chosen
2204        with  -malign-power.  This  change  may  result in incompatibility
2205        between code compiled with GCC 3.3 and GCC 3.4.
2206      * -mabi=altivec is now the default rather than -mabi=no-altivec.
2207      * 128-bit  IBM  extended  precision  format  support  added for long
2208        double.
2210   S/390 and zSeries
2212      * New  command-line  options allow to specify the intended execution
2213        environment for generated code:
2214           + -mesa/-mzarch  allows  to  specify  whether  to generate code
2215             running  in  ESA/390  mode or in z/Architecture mode (this is
2216             applicable to 31-bit code only).
2217           + -march  allows  to  specify  a minimum processor architecture
2218             level (g5, g6, z900, or z990).
2219           + -mtune allows to specify which processor to tune for.
2220      * It is possible to customize GCC using the following configure-time
2221        options:
2222           + --with-mode,  which  specifies whether to default to assuming
2223             ESA/390 or z/Architecture mode.
2224           + --with-arch,  which specifies the default value of the -march
2225             option.
2226           + --with-tune,  which specifies the default value of the -mtune
2227             option.
2228      * Support for the z990 processor has been added, and can be selected
2229        using   -march=z990  or  -mtune=z990.  This  includes  instruction
2230        scheduling  tuned  for the superscalar instruction pipeline of the
2231        z990  processor  as  well  as  support  for  all  new instructions
2232        provided by the long-displacement facility.
2233      * Support  to  generate 31-bit code optimized for zSeries processors
2234        (running  in  ESA/390  or  in z/Architecture mode) has been added.
2235        This can be selected using -march=z900 and -mzarch respectively.
2236      * Instruction  scheduling  for the z900 and z990 processors now uses
2237        the DFA pipeline hazard recognizer.
2238      * GCC  no  longer  generates  code  to  maintain  a stack backchain,
2239        previously   used  to  generate  stack  backtraces  for  debugging
2240        purposes.  As  replacement  that  does not incur runtime overhead,
2241        DWARF-2  call  frame  information  is  provided  by  GCC;  this is
2242        supported  by  GDB 6.1. The old behavior can be restored using the
2243        -mbackchain option.
2244      * The  stack  frame  size of functions may now exceed 2 GB in 64-bit
2245        code.
2246      * A port for the 64-bit IBM TPF operating system has been added; the
2247        configuration is s390x-ibm-tpf. This configuration is supported as
2248        cross-compilation target only.
2249      * Various   changes   to   improve  the  generated  code  have  been
2250        implemented, including:
2251           + GCC  now  uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT
2252             instructions  to  significantly  speed up many floating-point
2253             applications.
2254           + GCC  now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL
2255             WITH BORROW instructions to speed up long long arithmetic.
2256           + GCC  now  uses  the  SEARCH  STRING  instruction to implement
2257             strlen().
2258           + In  many  cases,  function  call overhead for 31-bit code has
2259             been  reduced  by placing the literal pool after the function
2260             code instead of after the function prolog.
2261           + Register 14 is no longer reserved in 64-bit code.
2262           + Handling of global register variables has been improved.
2264   SPARC
2266      * The option -mflat is deprecated.
2267      * Support  for  large  (>  2GB)  frames has been added to the 64-bit
2268        port.
2269      * Several [27]ABI bugs have been fixed. Unfortunately, these changes
2270        will break binary compatibility with earlier releases.
2271      * The  default  debugging  format  has  been  switched from STABS to
2272        DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already
2273        the default debugging format for 64-bit code on Solaris.
2275   SuperH
2277      * Support for the SH2E processor has been added. Enabled at run time
2278        with  the  -m2e  command  line  switch,  or  at  configure time by
2279        specifying sh2e as the machine part of the target triple.
2281   V850
2283      * Support  for  the Mitsubishi V850E1 processor has been added. This
2284        is a variant of the V850E processor with some additional debugging
2285        instructions.
2287   Xtensa
2289      * Several  ABI  bugs  have  been fixed. Unfortunately, these changes
2290        break binary compatibility with earlier releases.
2291           + For  big-endian  processors,  the padding of aggregate return
2292             values  larger  than  a  word  has changed. If the size of an
2293             aggregate return value is not a multiple of 32 bits, previous
2294             versions  of  GCC  inserted  padding  in the most-significant
2295             bytes  of  the first return value register. Aggregates larger
2296             than  a word are now padded in the least-significant bytes of
2297             the  last return value register used. Aggregates smaller than
2298             a  word  are  still padded in the most-significant bytes. The
2299             return  value  padding  has  not  changed  for  little-endian
2300             processors.
2301           + Function  arguments  with  16-byte alignment are now properly
2302             aligned.
2303           + The implementation of the va_list type has changed. A va_list
2304             value  created  by va_start from a previous release cannot be
2305             used with va_arg from this release, or vice versa.
2306      * More  processor  configuration  options  for Xtensa processors are
2307        supported:
2308           + the ABS instruction is now optional;
2309           + the ADDX* and SUBX* instructions are now optional;
2310           + an experimental CONST16 instruction can be used to synthesize
2311             constants instead of loading them from constant pools.
2312        These  and  other  Xtensa  processor  configuration options can no
2313        longer  be  enabled  or  disabled  by  command-line  options;  the
2314        processor  configuration  must be specified by the xtensa-config.h
2315        header    file    when    building    GCC.    Additionally,    the
2316        -mno-serialize-volatile option is no longer supported.
2318 Obsolete Systems
2320    Support  for  a  number of older systems has been declared obsolete in
2321    GCC  3.4. Unless there is activity to revive them, the next release of
2322    GCC will have their sources permanently removed.
2324    All  configurations of the following processor architectures have been
2325    declared obsolete:
2326      * Mitsubishi D30V, d30v-*
2327      * AT&T DSP1600 and DSP1610, dsp16xx-*
2328      * Intel 80960, i960
2330    Also, some individual systems have been obsoleted:
2331      * ARM Family
2332           + Support  for  generating  code  for operation in APCS/26 mode
2333             (-mapcs-26).
2334      * IBM ESA/390
2335           + "Bigfoot"  port, i370-*. (The other port, s390-*, is actively
2336             maintained and supported.)
2337      * Intel 386 family
2338           + MOSS, i?86-moss-msdos and i?86-*-moss*
2339           + NCR 3000 running System V r.4, i?86-ncr-sysv4*
2340           + FreeBSD  with  a.out  object format, i?86-*-freebsd*aout* and
2341             i?86-*-freebsd2*
2342           + Linux with a.out object format, i?86-linux*aout*
2343           + Linux with libc5, a.k.a. glibc1, i?86-linux*libc1*
2344           + Interix versions before Interix 3, i?86-*-interix
2345           + Mach microkernel, i?86-mach*
2346           + SCO UnixWare with UDK, i?86-*-udk*
2347           + Generic System V releases 1, 2, and 3, i?86-*-sysv[123]*
2348           + VSTa microkernel, i386-*-vsta
2349      * Motorola M68000 family
2350           + HPUX, m68k-hp-hpux* and m68000-hp-hpux*
2351           + NetBSD   with   a.out  object  format  (before  NetBSD  1.4),
2352             m68k-*-*-netbsd* except m68k-*-*-netbsdelf*
2353           + Generic System V r.4, m68k-*-sysv4*
2354      * VAX
2355           + Generic  VAX,  vax-*-* (This is generic VAX only; we have not
2356             obsoleted any VAX triples for specific operating systems.)
2358 Documentation improvements
2360 Other significant improvements
2362      * The  build  system  has  undergone  several  significant cleanups.
2363        Subdirectories  will  only  be configured if they are being built,
2364        and all subdirectory configures are run from the make command. The
2365        top level has been autoconfiscated.
2366      * Building GCC no longer writes to its source directory. This should
2367        help  those wishing to share a read-only source directory over NFS
2368        or  build  from  a  CD.  The exceptions to this feature are if you
2369        configure      with     either     --enable-maintainer-mode     or
2370        --enable-generated-files-in-srcdir.
2371      * The  -W  warning option has been renamed to -Wextra, which is more
2372        easily  understood.  The  older  spelling  will  be  retained  for
2373        backwards compatibility.
2374      * Substantial   improvements   in   compile  time  have  been  made,
2375        particularly for non-optimizing compilations.
2376      _________________________________________________________________
2378 GCC 3.4.0
2380   Bug Fixes
2382    A  vast number of bugs have been fixed in 3.4.0, too many to publish a
2383    complete  list  here.  [28]Follow  this  link  to  query  the Bugzilla
2384    database  for  the  list  of over 900 bugs fixed in 3.4.0. This is the
2385    list  of  all  bugs marked as resolved and fixed in 3.4.0 that are not
2386    flagged as 3.4 regressions.
2387      _________________________________________________________________
2389 GCC 3.4.1
2391   Bug Fixes
2393    This  section  lists the problem reports (PRs) from GCC's bug tracking
2394    system  that  are  known  to  be fixed in the 3.4.1 release. This list
2395    might not be complete (that is, it is possible that some PRs that have
2396    been fixed are not listed here).
2398     Bootstrap failures
2400      * [29]10129  Ada  bootstrap  fails on PPC-Darwin - invalid assembler
2401        emitted - PIC related
2402      * [30]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
2403      * [31]14760    A   bug   in   configure.in   prevents   using   both
2404        --program-suffix and --program-prefix
2405      * [32]14671      [hppa64]      bootstrap      fails:      ICE     in
2406        save_call_clobbered_regs, in caller_save.c
2407      * [33]15093  [alpha][Java]  make bootstrap fails to configure libffi
2408        on Alpha
2409      * [34]15178 Solaris 9/x86 fails linking after stage 3
2411     Multi-platform internal compiler errors (ICEs)
2413      * [35]12753  (preprocessor) Memory corruption in preprocessor on bad
2414        input
2415      * [36]13985 ICE in gcc.c-torture/compile/930621-1.c
2416      * [37]14810  (c++)  tree  check failures with invalid code involving
2417        templates
2418      * [38]14883  (c++) ICE on invalid code, in cp_parser_lookup_name, in
2419        cp/parser.c
2420      * [39]15044 (c++) ICE on syntax error, template header
2421      * [40]15057  (c++)  Compiling  of conditional value throw constructs
2422        cause a segmentation violation
2423      * [41]15064 (c++) typeid of template parameter gives ICE
2424      * [42]15142  (c++)  ICE  when  passing  a  string  where  a char* is
2425        expected in a throw statement
2426      * [43]15159 ICE in rtl_verify_flow_info_1
2427      * [44]15165 (c++) ICE in instantiate_template
2428      * [45]15193   Unary  minus  using  pointer  to  V4SF  vector  causes
2429        -fforce-mem to exhaust all memory
2430      * [46]15209 (c++) Runs out of memory with packed structs
2431      * [47]15227 (c++) Trouble with invalid function definition
2432      * [48]15285  (c++)  instantiate_type  ICE  when  forming  pointer to
2433        template function
2434      * [49]15299 (c++) ICE in resolve_overloaded_unification
2435      * [50]15329 (c++) ICE on constructor of member template
2436      * [51]15550 ICE in extract_insn, in recog.c
2437      * [52]15554 (c++) ICE in tsubst_copy, in cp/pt.c
2438      * [53]15640   (c++)   ICE   on   invalid   code   in  arg_assoc,  in
2439        cp/name-lookup.c
2440      * [54]15666 [unit-at-a-time] Gcc abort on valid code
2441      * [55]15696 (c++) ICE with bad pointer-to-member code
2442      * [56]15701 (c++) ICE with friends and template template parameter
2443      * [57]15761 ICE in do_SUBST, in combine.c
2444      * [58]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
2446     Ada
2448      * [59]14538 All RTEMS targets broken for gnat
2450     C front end
2452      * [60]12391 missing warning about assigning to an incomplete type
2453      * [61]14649 atan(1.0) should not be a constant expression
2454      * [62]15004  [unit-at-a-time]  no  warning  for  unused paramater in
2455        static function
2456      * [63]15749  --pedantic-errors  behaves  differently from --pedantic
2457        with C-compiler on GNU/Linux
2459     C++ compiler and library
2461      * [64]10646  non-const  reference is incorrectly matched in a "const
2462        T" partial specialization
2463      * [65]12077 wcin.rdbuf()->in_avail() return value too high
2464      * [66]13598 enc_filebuf doesn't work
2465      * [67]14211 const_cast returns lvalue but should be rvalue
2466      * [68]14220 num_put::do_put() undesired float/double behavior
2467      * [69]14245     problem     with    user-defined    allocators    in
2468        std::basic_string
2469      * [70]14340  libstdc++  Debug  mode:  failure to convert iterator to
2470        const_iterator
2471      * [71]14600  __gnu_cxx::stdio_sync_filebuf  should  expose  internal
2472        FILE*
2473      * [72]14668 no warning anymore for reevaluation of declaration
2474      * [73]14775 LFS (large file support) tests missing
2475      * [74]14821   Duplicate   namespace  alias  declaration  should  not
2476        conflict
2477      * [75]14930 Friend declaration ignored
2478      * [76]14932  cannot use offsetof to get offsets of array elements in
2479        g++ 3.4.0
2480      * [77]14950  [non  unit-at-a-time]  always_inline  does not mix with
2481        templates and -O0
2482      * [78]14962 g++ ignores #pragma redefine_extname
2483      * [79]14975 Segfault on low-level write error during imbue
2484      * [80]15002  Linewise  stream  input  is  unusably slow (std::string
2485        slow)
2486      * [81]15025   compiler   accepts   redeclaration   of   template  as
2487        non-template
2488      * [82]15046 [arm] Math functions misdetected by cross configuration
2489      * [83]15069 a bit test on a variable of enum type is miscompiled
2490      * [84]15074 g++ -lsupc++ still links against libstdc++
2491      * [85]15083 spurious "statement has no effect" warning
2492      * [86]15096 parse error with templates and pointer to const member
2493      * [87]15287  combination  of  operator[]  and  operator  .* fails in
2494        templates
2495      * [88]15317  __attribute__  unused in first parameter of constructor
2496        gives error
2497      * [89]15337 sizeof on incomplete type diagnostic
2498      * [90]15361 bitset<>::_Find_next fails
2499      * [91]15412  _GLIBCXX_ symbols symbols defined and used in different
2500        namespaces
2501      * [92]15427 valid code results in incomplete type error
2502      * [93]15471   Incorrect   member   pointer   offsets   in  anonymous
2503        structs/unions
2504      * [94]15503 nested template problem
2505      * [95]15507 compiler hangs while laying out union
2506      * [96]15542 operator & and template definitions
2507      * [97]15565 SLES9: leading + sign for unsigned int with showpos
2508      * [98]15625  friend  defined  inside a template fails to find static
2509        function
2510      * [99]15629 Function templates, overloads, and friend name injection
2511      * [100]15742  'noreturn'  attribute  ignored  in  method of template
2512        functions.
2513      * [101]15775 Allocator::pointer consistently ignored
2514      * [102]15821 Duplicate namespace alias within namespace rejected
2515      * [103]15862 'enum yn' fails (confict with undeclared builtin)
2516      * [104]15875 rejects pointer to member in template
2517      * [105]15877  valid  code  using  templates  and  anonymous enums is
2518        rejected
2519      * [106]15947 Puzzling error message for wrong destructor declaration
2520        in template class
2521      * [107]16020 cannot copy __gnu_debug::bitset
2522      * [108]16154 input iterator concept too restrictive
2523      * [109]16174 deducing top-level consts
2525     Java
2527      * [110]14315 Java compiler is not parallel make safe
2529     Fortran
2531      * [111]15151 [g77] incorrect logical i/o in 64-bit mode
2533     Objective-C
2535      * [112]7993 private variables cannot be shadowed in subclasses
2537     Optimization bugs
2539      * [113]15228 useless copies of floating point operands
2540      * [114]15345   [non-unit-at-a-time]   unreferenced   nested   inline
2541        functions not optimized away
2542      * [115]15945 Incorrect floating point optimization
2543      * [116]15526 ftrapv aborts on 0 * (-1)
2544      * [117]14690 Miscompiled POOMA tests
2545      * [118]15112 GCC generates code to write to unchanging memory
2547     Preprocessor
2549      * [119]15067 Minor glitch in the source of cpp
2551     Main driver program bugs
2553      * [120]1963    collect2   interprets   -oldstyle_liblookup   as   -o
2554        ldstyle_liblookup
2556     x86-specific (Intel/AMD)
2558      * [121]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
2559        section}
2561     HPPA-specific
2563      * [122]14782 GCC produces an unaligned data access at -O2
2564      * [123]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
2565      * [124]15202 ICE in reload_cse_simplify_operands, in postreload.c
2567     IA64-specific
2569      * [125]14610 __float80 constants incorrectly emitted
2570      * [126]14813 init_array sections are initialized in the wrong order
2571      * [127]14857 GCC segfault on duplicated asm statement
2572      * [128]15598 Gcc 3.4 ICE on valid code
2573      * [129]15653 Gcc 3.4 ICE on valid code
2575     MIPS-specific
2577      * [130]15189  wrong  filling  of  delay  slot  with -march=mips1 -G0
2578        -mno-split-addresses -mno-explicit-relocs
2579      * [131]15331  Assembler  error building gnatlib on IRIX 6.5 with GNU
2580        as 2.14.91
2581      * [132]16144 Bogus reference to __divdf3 when -O1
2582      * [133]16176 Miscompilation of unaligned data in MIPS backend
2584     PowerPC-specific
2586      * [134]11591 ICE in gcc.dg/altivec-5.c
2587      * [135]12028 powerpc-eabispe produces bad sCOND operation
2588      * [136]14478 rs6000 geu/ltu patterns generate incorrect code
2589      * [137]14567 long double and va_arg complex args
2590      * [138]14715  Altivec  stack  layout may overlap gpr save with stack
2591        temps
2592      * [139]14902   (libstdc++)   Stream  checking  functions  fail  when
2593        -pthread option is used.
2594      * [140]14924 Compiler ICE on valid code
2595      * [141]14960 -maltivec affects vector return with -mabi=no-altivec
2596      * [142]15106   vector   varargs  failure  passing  from  altivec  to
2597        non-altivec code for -m32
2598      * [143]16026  ICE in function.c:4804, assign_parms, when -mpowerpc64
2599        & half-word operation
2600      * [144]15191  -maltivec  -mabi=no-altivec results in mis-aligned lvx
2601        and stvx
2602      * [145]15662  Segmentation  fault when an exception is thrown - even
2603        if try and catch are specified
2605     s390-specific
2607      * [146]15054 Bad code due to overlapping stack temporaries
2609     SPARC-specific
2611      * [147]15783 ICE with union assignment in 64-bit mode
2612      * [148]15626   GCC   3.4   emits  "ld:  warning:  relocation  error:
2613        R_SPARC_UA32"
2615     x86-64-specific
2617      * [149]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
2618      * [150]14723 Backported -march=nocona from mainline
2619      * [151]15290 __float128 failed to pass to function properly
2621     Cygwin/Mingw32-specific
2623      * [152]15250  Option  -mms-bitfields  support  on  GCC  3.4  is  not
2624        conformant to MS layout
2625      * [153]15551  -mtune=pentium4  -O2  with  sjlj EH breaks stack probe
2626        worker on windows32 targets
2628     Bugs specific to embedded processors
2630      * [154]8309  [m68k]  -m5200  produces  erroneous SImode set of short
2631        varaible on stack
2632      * [155]13250  [SH]  Gcc code for rotation clobbers the register, but
2633        gcc continues to use the register as if it was not clobbered
2634      * [156]13803 [coldfire] movqi operand constraints too restrictivefor
2635        TARGET_COLDFIRE
2636      * [157]14093 [SH] ICE for code when using -mhitachi option in SH
2637      * [158]14457 [m6811hc] ICE with simple c++ source
2638      * [159]14542 [m6811hc] ICE on simple source
2639      * [160]15100 [SH] cc1plus got hang-up on
2640        libstdc++-v3/testsuite/abi_check.cc
2641      * [161]15296  [CRIS]  Delayed branch scheduling causing invalid code
2642        on cris-*
2643      * [162]15396 [SH] ICE with -O2 -fPIC
2644      * [163]15782  [coldfire]  m68k_output_mi_thunk  emits wrong code for
2645        ColdFire
2647     Testsuite problems (compiler not affected)
2649      * [164]11610   libstdc++   testcases  27_io/*  don't  work  properly
2650        remotely
2651      * [165]15488  (libstdc++) possibly insufficient file permissions for
2652        executing test suite
2653      * [166]15489 (libstdc++) testsuite_files determined incorrectly
2655     Documentation bugs
2657      * [167]13928  (libstdc++) no whatis info in some man pages generated
2658        by doxygen
2659      * [168]14150 Ada documentation out of date
2660      * [169]14949 (c++) Need to document method visibility changes
2661      * [170]15123 libstdc++-doc: Allocators.3 manpage is empty
2662      _________________________________________________________________
2664 GCC 3.4.2
2666   Bug Fixes
2668    This  section  lists the problem reports (PRs) from GCC's bug tracking
2669    system  that  are  known  to  be fixed in the 3.4.2 release. This list
2670    might not be complete (that is, it is possible that some PRs that have
2671    been fixed are not listed here).
2673     Bootstrap failures and issues
2675      * [171]16469      [mips-sgi-irix5.3]      bootstrap     fails     in
2676        libstdc++-v3/testsuite
2677      * [172]16344    [hppa-linux-gnu]    libstdc++'s    PCH    built   by
2678        profiledbootstrap does not work with the built compiler
2679      * [173]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
2681     Multi-platform internal compiler errors (ICEs)
2683      * [174]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
2684        cp_parser_class_specifier, in cp/parser.c
2685      * [175]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
2686      * [176]15461 (c++) ICE due to NRV and inlining
2687      * [177]15890 (c++) ICE in c_expand_expr, in c-common.c
2688      * [178]16180 ICE: segmentation fault in RTL optimization
2689      * [179]16224 (c++) ICE in write_unscoped_name (template/namespace)
2690      * [180]16408 ICE: in delete_insn, in cfgrtl.c
2691      * [181]16529 (c++) ICE for: namespace-alias shall not be declared as
2692        the name of any other entity
2693      * [182]16698   (c++)   ICE   with   exceptions  and  declaration  of
2694        __cxa_throw
2695      * [183]16706    (c++)    ICE    in   finish_member_declaration,   in
2696        cp/semantics.c
2697      * [184]16810  (c++)  Legal  C++  program  with  cast  gives  ICE  in
2698        build_ptrmemfunc
2699      * [185]16851 (c++) ICE when throwing a comma expression
2700      * [186]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
2701      * [187]16904   (c++)   ICE  in  finish_class_member_access_expr,  in
2702        cp/typeck.c
2703      * [188]16905 (c++) ICE (segfault) with exceptions
2704      * [189]16964   (c++)   ICE   in   cp_parser_class_specifier  due  to
2705        redefinition
2706      * [190]17068  (c++)  ICE:  tree  check: expected class 'd', have 'x'
2707        (identifier_node) in dependent_template_p, in cp/pt.c
2709     Preprocessor bugs
2711      * [191]16366 Preprocessor option -remap causes memory corruption
2713     Optimization
2715      * [192]15345 unreferenced nested inline functions not optimized away
2716      * [193]16590 Incorrect execution when compiling with -O2
2717      * [194]16693  Bitwise AND is lost when used within a cast to an enum
2718        of the same precision
2719      * [195]17078 Jump into if(0) substatement fails
2721     Problems in generated debug information
2723      * [196]13956 incorrect stabs for nested local variables
2725     C front end bugs
2727      * [197]16684  GCC  should not warn about redundant redeclarations of
2728        built-ins
2730     C++ compiler and library
2732      * [198]12658   Thread   safety   problems  in  locale::global()  and
2733        locale::locale()
2734      * [199]13092 g++ accepts invalid pointer-to-member conversion
2735      * [200]15320 Excessive memory consumption
2736      * [201]16246 Incorrect template argument deduction
2737      * [202]16273  Memory exhausted when using nested classes and virtual
2738        functions
2739      * [203]16401 ostringstream in gcc 3.4.x very slow for big data
2740      * [204]16411 undefined reference to
2741        __gnu_cxx::stdio_sync_filebuf<char,         std::char_traits<char>
2742        >::file()
2743      * [205]16489 G++ incorrectly rejects use of a null constant integral
2744        expression as a null constant pointer
2745      * [206]16618 offsetof fails with constant member
2746      * [207]16637 syntax error reported for valid input code
2747      * [208]16717 __attribute__((constructor)) broken in C++
2748      * [209]16813  compiler  error  in  DEBUG  version of range insertion
2749        std::map::insert
2750      * [210]16853  pointer-to-member initialization from incompatible one
2751        accepted
2752      * [211]16889 ambiguity is not detected
2753      * [212]16959 Segmentation fault in ios_base::sync_with_stdio
2755     Java compiler and library
2757      * [213]7587 direct threaded interpreter not thread-safe
2758      * [214]16473 ServerSocket accept() leaks file descriptors
2759      * [215]16478 Hash synchronization deadlock with finalizers
2761     Alpha-specific
2763      * [216]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
2764      * [217]16974  could  not  split  insn  (ice  in  final_scan_insn, in
2765        final.c)
2767     x86-specific
2769      * [218]16298 ICE in output_operand
2770      * [219]17113 ICE with SSE2 intrinsics
2772     x86-64 specific
2774      * [220]14697 libstdc++ couldn't find 32bit libgcc_s
2776     MIPS-specific
2778      * [221]15869 [mips64] No NOP after LW (with -mips1 -O0)
2779      * [222]16325 [mips64] value profiling clobbers gp on mips
2780      * [223]16357  [mipsisa64-elf]  ICE  copying  7  bytes between extern
2781        char[]s
2782      * [224]16380  [mips64]  Use  of  uninitialised  register  after dbra
2783        conversion
2784      * [225]16407 [mips64] Unaligned access to local variables
2785      * [226]16643    [mips64]    verify_local_live_at_start   ICE   after
2786        crossjumping & cfgcleanup
2788     ARM-specific
2790      * [227]15927  THUMB -O2: strength-reduced iteration variable ends up
2791        off by 1
2792      * [228]15948 THUMB: ICE with non-commutative cbranch
2793      * [229]17019   THUMB:   bad   switch   statement   in  md  code  for
2794        addsi3_cbranch_scratch
2796     IA64-specific
2798      * [230]16130  ICE  on valid code: in bundling, in config/ia64/ia64.c
2799        (-mtune=merced)
2800      * [231]16142  ICE  on valid code: in bundling, in config/ia64/ia64.c
2801        (-mtune=itanium)
2802      * [232]16278 Gcc failed to build Linux kernel with -mtune=merced
2803      * [233]16414  ICE on valid code: typo in comparison of asm_noperands
2804        result
2805      * [234]16445 ICE on valid code: don't count ignored insns
2806      * [235]16490 ICE (segfault) while compiling with -fprofile-use
2807      * [236]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
2809     PowerPC-specific
2811      * [237]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
2812      * [238]16239  ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions
2813        issue)
2815     SPARC-specific
2817      * [239]16199 ICE while compiling apache 2.0.49
2818      * [240]16416 -m64 doesn't imply -mcpu=v9 anymore
2819      * [241]16430  ICE  when  returning  non-C  aggregates larger than 16
2820        bytes
2822     Bugs specific to embedded processors
2824      * [242]16379 [m32r] can't output large model function call of memcpy
2825      * [243]17093 [m32r] ICE with -msdata=use -O0
2826      * [244]17119 [m32r] ICE at switch case 0x8000
2828     DJGPP-specific
2830      * [245]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
2832     Alpha Tru64-specific
2834      * [246]16210 libstdc++ gratuitously omits "long long" I/O
2836     Testsuite, documentation issues (compiler is not affected):
2838      * [247]15488  (libstdc++) possibly insufficient file permissions for
2839        executing test suite
2840      * [248]16250 ada/doctools runs makeinfo even in release tarball
2841      _________________________________________________________________
2843 GCC 3.4.3
2845    This is the [249]list of problem reports (PRs) from GCC's bug tracking
2846    system  that  are  known  to  be fixed in the 3.4.3 release. This list
2847    might not be complete (that is, it is possible that some PRs that have
2848    been fixed are not listed here).
2850     Bootstrap failures
2852      * [250]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
2853      * [251]17850  [arm-elf]  bootstrap  failure - libstdc++ uses strtold
2854        when undeclared
2856     Internal compiler errors (ICEs) affecting multiple platforms
2858      * [252]13948  (java)  GCJ segmentation fault while compiling GL4Java
2859        .class files
2860      * [253]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
2861      * [254]16301  (c++)  ICE  when  "strong"  attribute is attached to a
2862        using directive
2863      * [255]16566 ICE with flexible arrays
2864      * [256]17023 ICE with nested functions in parameter declaration
2865      * [257]17027 ICE with noreturn function in loop at -O2
2866      * [258]17524 ICE in grokdeclarator, in cp/decl.c
2867      * [259]17826 (c++) ICE in cp_tree_equal
2869     C and optimization bugs
2871      * [260]15526 -ftrapv aborts on 0 * (-1)
2872      * [261]16999 #ident stopped working
2873      * [262]17503 quadratic behaviour in invalid_mode_change_p
2874      * [263]17581   Long  long  arithmetic  fails  inside  a  switch/case
2875        statement when compiled with -O2
2876      * [264]18129 -fwritable-strings doesn't work
2878     C++ compiler and library bugs
2880      * [265]10975 incorrect initial ostringstream::tellp()
2881      * [266]11722 Unbuffered filebuf::sgetn is slow
2882      * [267]14534  Unrecognizing  static function as a template parameter
2883        when its return value is also templated
2884      * [268]15172    Copy    constructor    optimization   in   aggregate
2885        initialization
2886      * [269]15786 Bad error message for frequently occuring error.
2887      * [270]16162 Rejects valid member-template-definition
2888      * [271]16612 empty basic_strings can't live in shared memory
2889      * [272]16715  std::basic_iostream  is  instantiated  when used, even
2890        though instantiations are already contained in libstdc++
2891      * [273]16848 code in /ext/demangle.h appears broken
2892      * [274]17132 GCC fails to eliminate function template specialization
2893        when argument deduction fails
2894      * [275]17259  One more _S_leaf incorrectly qualified with _RopeRep::
2895        in ropeimpl.h
2896      * [276]17327 use of `enumeral_type' in template type unification
2897      * [277]17393 "unused variable '._0'" warning with -Wall
2898      * [278]17501 Confusion with member templates
2899      * [279]17537  g++  not  passing  -lstdc++ to linker when all command
2900        line arguments are libraries
2901      * [280]17585  usage of unqualified name of static member from within
2902        class not allowed
2903      * [281]17821 Poor diagnostic for using "." instead of "->"
2904      * [282]17829 wrong error: call of overloaded function is ambiguous
2905      * [283]17851 Misleading diagnostic for invalid function declarations
2906        with undeclared types
2907      * [284]17976 Destructor is called twice
2908      * [285]18020 rejects valid definition of enum value in template
2909      * [286]18093 bogus conflict in namespace aliasing
2910      * [287]18140 C++ parser bug when using >> in templates
2912     Fortran
2914      * [288]17541 data statements with double precision constants fail
2916     x86-specific
2918      * [289]17853 -O2 ICE for MMX testcase
2920     SPARC-specific
2922      * [290]17245 ICE compiling gsl-1.5 statistics/lag1.c
2924     Darwin-specific
2926      * [291]17167 FATAL:Symbol L_foo$stub already defined.
2928     AIX-specific
2930      * [292]17277 could not catch an exception when specified -maix64
2932     Solaris-specific
2934      * [293]17505  <cmath>  calls  acosf(),  ceilf(), and other functions
2935        missing from system libraries
2937     HP/UX specific:
2939      * [294]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
2941     ARM-specific
2943      * [295]17384 ICE with mode attribute on structures
2945     MIPS-specific
2947      * [296]17770 No NOP after LWL with -mips1
2949     Other embedded target specific
2951      * [297]11476 [arc-elf] gcc ICE on newlib's vfprintf.c
2952      * [298]14064 [avr-elf] -fdata-sections triggers ICE
2953      * [299]14678 [m68hc11-elf] gcc ICE
2954      * [300]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
2955      * [301]15790 [i686-coff] Alignment error building gcc with i686-coff
2956        target
2957      * [302]15886 [SH] Miscompilation with -O2 -fPIC
2958      * [303]16884   [avr-elf]   [fweb  related]  bug  while  initializing
2959        variables
2961     Bugs relating to debugger support
2963      * [304]13841 missing debug info for _Complex function arguments
2964      * [305]15860  [big-endian  targets]  No DW_AT_location debug info is
2965        emitted  for  formal  arguments to a function that uses "register"
2966        qualifiers
2968     Testsuite issues (compiler not affected)
2970      * [306]17465 Testsuite in libffi overrides LD_LIBRARY_PATH
2971      * [307]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
2972      * [308]18138  [mips-sgi-irix6.5]  libgcc_s.so.1  not found by 64-bit
2973        testsuite
2975     Documentation
2977      * [309]15498  typo in gcc manual: non-existing locale example en_UK,
2978        should be en_GB
2979      * [310]15747  [mips-sgi-irix5.3]  /bin/sh  hangs  during  bootstrap:
2980        document broken shell
2981      * [311]16406 USE_LD_AS_NEEDED undocumented
2982      _________________________________________________________________
2984 GCC 3.4.4
2986    This is the [312]list of problem reports (PRs) from GCC's bug tracking
2987    system  that  are  known  to  be fixed in the 3.4.4 release. This list
2988    might not be complete (that is, it is possible that some PRs that have
2989    been fixed are not listed here).
2990      _________________________________________________________________
2992 GCC 3.4.5
2994    This is the [313]list of problem reports (PRs) from GCC's bug tracking
2995    system  that  are  known  to  be fixed in the 3.4.5 release. This list
2996    might not be complete (that is, it is possible that some PRs that have
2997    been fixed are not listed here).
2999     Bootstrap issues
3001      * [314]24688 sco_math fixincl breaks math.h
3003     C compiler bugs
3005      * [315]17188 struct Foo { } redefinition
3006      * [316]20187   wrong   code   for   ((unsigned  char)(unsigned  long
3007        long)((a?a:1)&(a*b)))?0:1)
3008      * [317]21873 infinite warning loop on bad array initializer
3009      * [318]21899 enum definition accepts values to be overriden
3010      * [319]22061 ICE in find_function_data, in function.c
3011      * [320]22308 Failure to diagnose violation of constraint 6.516p2
3012      * [321]22458 ICE on missing brace
3013      * [322]22589 ICE casting to long long
3014      * [323]24101 Segfault with preprocessed source
3016     C++ compiler and library bugs
3018      * [324]10611 operations on vector mode not recognized in C++
3019      * [325]13377 unexpected behavior of namespace usage directive
3020      * [326]16002 Strange error message with new parser
3021      * [327]17413 local classes as template argument
3022      * [328]17609 spurious error message after using keyword
3023      * [329]17618 ICE in cp_convert_to_pointer, in cp/cvt.c
3024      * [330]18124 ICE with invalid template template parameter
3025      * [331]18155 typedef in template declaration not rejected
3026      * [332]18177 ICE with const_cast for undeclared variable
3027      * [333]18368 C++ error message regression
3028      * [334]16378 ICE when returning a copy of a packed member
3029      * [335]18466 int ::i; accepted
3030      * [336]18512 ICE on invalid usage of template base class
3031      * [337]18454 ICE when returning undefined type
3032      * [338]18738 typename not allowed with non-dependent qualified name
3033      * [339]18803 rejects access to operator() in template
3034      * [340]19004 ICE in uses_template_parms, in cp/pt.c
3035      * [341]19208 Spurious error about variably modified type
3036      * [342]18253 bad error message / ICE for invalid template parameter
3037      * [343]19608 ICE after friend function definition in local class
3038      * [344]19884   ICE  on  explicit  instantiation  of  a  non-template
3039        constructor
3040      * [345]20153 ICE when C++ template function contains anonymous union
3041      * [346]20563  Infinite  loop  in  diagnostic  (and  ice  after error
3042        message)
3043      * [347]20789 ICE with incomplete type in template
3044      * [348]21336 Internal compiler error when using custom new operators
3045      * [349]21768  ICE  in  error  message  due  to  violation  of coding
3046        conventions
3047      * [350]21853 constness of pointer to data member ignored
3048      * [351]21903   Default   argument  of  template  function  causes  a
3049        compile-time error
3050      * [352]21983 multiple diagnostics
3051      * [353]21987 New testsuite failure
3052        g++.dg/warn/conversion-function-1.C
3053      * [354]22153 ICE on invalid template specialization
3054      * [355]22172 Internal compiler error, seg fault.
3055      * [356]21286 filebuf::xsgetn vs pipes
3056      * [357]22233 ICE with wrong number of template parameters
3057      * [358]22508 ICE after invalid operator new
3058      * [359]22545  ICE  with  pointer  to  class  member  &  user defined
3059        conversion operator
3060      * [360]23528 Wrong default allocator in ext/hash_map
3061      * [361]23550 char_traits requirements/1.cc test bad math
3062      * [362]23586 Bad diagnostic for invalid namespace-name
3063      * [363]23624 ICE in invert_truthvalue, in fold-const.c
3064      * [364]23639  Bad  error  message:  not  a  member  of '<declaration
3065        error>'
3066      * [365]23797 ICE on typename outside template
3067      * [366]23965  Bogus  error message: no matching function for call to
3068        'foo(<type error>)'
3069      * [367]24052  &#`label_decl'  not supported by dump_expr#<expression
3070        error>
3071      * [368]24580 virtual base class cause exception not to be caught
3073     Problems in generated debug information
3075      * [369]24267 Bad DWARF for altivec vectors
3077     Optimizations issues
3079      * [370]17810 ICE in verify_local_live_at_start
3080      * [371]17860 Wrong generated code for loop with varying bound
3081      * [372]21709 ICE on compile-time complex NaN
3082      * [373]21964 broken tail call at -O2 or more
3083      * [374]22167 Strange optimization bug when using -Os
3084      * [375]22619    Compilation    failure    for   real_const_1.f   and
3085        real_const_2.f90
3086      * [376]23241 Invalid code generated for comparison of uchar to 255
3087      * [377]23478  Miscompilation  due to reloading of a var that is also
3088        used in EH pad
3089      * [378]24470 segmentation fault in cc1plus when compiling with -O
3090      * [379]24950 ICE in operand_subword_force
3092     Precompiled headers problems
3094      * [380]14400 Cannot compile qt-x11-free-3.3.0
3095      * [381]14940 PCH largefile test fails on various platforms
3097     Preprocessor bugs
3099      * [382]20239 ICE on empty preprocessed input
3100      * [383]15220  "gcc  -E  -MM  -MG"  reports missing system headers in
3101        source directory
3103     Testsuite issues
3105      * [384]19275   gcc.dg/20020919-1.c   fails   with   -fpic/-fPIC   on
3106        i686-pc-linux-gnu
3108     Alpha specific
3110      * [385]21888 bootstrap failure with linker relaxation enabled
3112     ARM specific
3114      * [386]15342 [arm-linux]: ICE in verify_local_live_at_start
3115      * [387]23985 Memory aliasing information incorrect in inlined memcpy
3117     ColdFile specific
3119      * [388]16719  Illegal  move  of  byte  into  address register causes
3120        compiler to ICE
3122     HPPA specific
3124      * [389]21723 ICE while building libgfortran
3125      * [390]21841 -mhp-ld/-mgnu-ld documentation
3127     IA-64 specific
3129      * [391]23644   IA-64   hardware  models  and  configuration  options
3130        documentation error
3131      * [392]24718 Shared libgcc not used for linking by default
3133     M68000 specific
3135      * [393]18421 ICE in reload_cse_simplify_operands, in postreload.c
3137     MIPS specific
3139      * [394]20621 ICE in change_address_1, in emit-rtl.c
3141     PowerPC and PowerPC64 specific
3143      * [395]18583 error on valid code: const
3144        __attribute__((altivec(vector__))) doesn't work in arrays
3145      * [396]20191 ICE in reload_cse_simplify_operands
3146      * [397]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined
3147      * [398]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set
3148      * [399]23404 gij trashes args of functions with more than 8 fp args
3149      * [400]23539  C  &  C++  compiler  generating  misaligned references
3150        regardless of compiler flags
3151      * [401]24102 floatdisf2_internal2 broken
3152      * [402]24465 -mminimal-toc miscompilation of __thread vars
3154     Solaris specific
3156      * [403]19933 Problem with define of HUGE_VAL in math_c99
3157      * [404]21889 Native Solaris assembler cannot grok DTP-relative debug
3158        symbols
3160     SPARC specific
3162      * [405]19300 PCH failures on sparc-linux
3163      * [406]20301 Assembler labels have a leading "-"
3164      * [407]20673 C PCH testsuite assembly comparison failure
3166     x86 and x86_64 specific
3168      * [408]18582 ICE with arrays of type V2DF
3169      * [409]19340   Compilation   SEGFAULTs  with  -O1  -fschedule-insns2
3170        -fsched2-use-traces
3171      * [410]21716 ICE in reg-stack.c's swap_rtx_condition
3172      * [411]24315 amd64 fails -fpeephole2
3173      _________________________________________________________________
3175 GCC 3.4.6
3177    This is the [412]list of problem reports (PRs) from GCC's bug tracking
3178    system  that  are  known  to  be fixed in the 3.4.6 release. This list
3179    might not be complete (that is, it is possible that some PRs that have
3180    been fixed are not listed here).
3182    Please send FSF & GNU inquiries & questions to [413]gnu@gnu.org. There
3183    are also [414]other ways to contact the FSF.
3185    These pages are maintained by [415]the GCC team.
3188     For  questions  related  to the use of GCC, please consult these web
3189     pages    and    the   [416]GCC   manuals.   If   that   fails,   the
3190     [417]gcc-help@gcc.gnu.org mailing list might help.
3191     Please  send  comments on these web pages and the development of GCC
3192     to    our    developer   mailing   list   at   [418]gcc@gnu.org   or
3193     [419]gcc@gcc.gnu.org. All of our lists have [420]public archives.
3195    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
3196    Floor, Boston, MA 02110, USA.
3198    Verbatim  copying and distribution of this entire article is permitted
3199    in any medium, provided this notice is preserved.
3200    Last modified 2006-06-21 [421]Valid XHTML 1.0 
3202 References
3204    1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
3205    2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
3206    3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
3207    4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
3208    5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
3209    6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
3210    7. http://www.boost.org/
3211    8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953
3212    9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
3213   10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
3214   11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
3215   12. http://gcc.gnu.org/bugs.html#cxx_rvalbind
3216   13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
3217   14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
3218   15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
3219   16. http://www.gnu.org/software/classpath/
3220   17. http://www.eclipse.org/
3221   18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
3222   19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
3223   20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure
3224   21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
3225   22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
3226   23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
3227   24. http://gcc.gnu.org/gcc-3.4/mips-abi.html
3228   25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html
3229   26. http://www.opendarwin.org/projects/dlcompat/
3230   27. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
3231   28. 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
3232   29. http://gcc.gnu.org/PR10129
3233   30. http://gcc.gnu.org/PR14576
3234   31. http://gcc.gnu.org/PR14760
3235   32. http://gcc.gnu.org/PR14671
3236   33. http://gcc.gnu.org/PR15093
3237   34. http://gcc.gnu.org/PR15178
3238   35. http://gcc.gnu.org/PR12753
3239   36. http://gcc.gnu.org/PR13985
3240   37. http://gcc.gnu.org/PR14810
3241   38. http://gcc.gnu.org/PR14883
3242   39. http://gcc.gnu.org/PR15044
3243   40. http://gcc.gnu.org/PR15057
3244   41. http://gcc.gnu.org/PR15064
3245   42. http://gcc.gnu.org/PR15142
3246   43. http://gcc.gnu.org/PR15159
3247   44. http://gcc.gnu.org/PR15165
3248   45. http://gcc.gnu.org/PR15193
3249   46. http://gcc.gnu.org/PR15209
3250   47. http://gcc.gnu.org/PR15227
3251   48. http://gcc.gnu.org/PR15285
3252   49. http://gcc.gnu.org/PR15299
3253   50. http://gcc.gnu.org/PR15329
3254   51. http://gcc.gnu.org/PR15550
3255   52. http://gcc.gnu.org/PR15554
3256   53. http://gcc.gnu.org/PR15640
3257   54. http://gcc.gnu.org/PR15666
3258   55. http://gcc.gnu.org/PR15696
3259   56. http://gcc.gnu.org/PR15701
3260   57. http://gcc.gnu.org/PR15761
3261   58. http://gcc.gnu.org/PR15829
3262   59. http://gcc.gnu.org/PR14538
3263   60. http://gcc.gnu.org/PR12391
3264   61. http://gcc.gnu.org/PR14649
3265   62. http://gcc.gnu.org/PR15004
3266   63. http://gcc.gnu.org/PR15749
3267   64. http://gcc.gnu.org/PR10646
3268   65. http://gcc.gnu.org/PR12077
3269   66. http://gcc.gnu.org/PR13598
3270   67. http://gcc.gnu.org/PR14211
3271   68. http://gcc.gnu.org/PR14220
3272   69. http://gcc.gnu.org/PR14245
3273   70. http://gcc.gnu.org/PR14340
3274   71. http://gcc.gnu.org/PR14600
3275   72. http://gcc.gnu.org/PR14668
3276   73. http://gcc.gnu.org/PR14775
3277   74. http://gcc.gnu.org/PR14821
3278   75. http://gcc.gnu.org/PR14930
3279   76. http://gcc.gnu.org/PR14932
3280   77. http://gcc.gnu.org/PR14950
3281   78. http://gcc.gnu.org/PR14962
3282   79. http://gcc.gnu.org/PR14975
3283   80. http://gcc.gnu.org/PR15002
3284   81. http://gcc.gnu.org/PR15025
3285   82. http://gcc.gnu.org/PR15046
3286   83. http://gcc.gnu.org/PR15069
3287   84. http://gcc.gnu.org/PR15074
3288   85. http://gcc.gnu.org/PR15083
3289   86. http://gcc.gnu.org/PR15096
3290   87. http://gcc.gnu.org/PR15287
3291   88. http://gcc.gnu.org/PR15317
3292   89. http://gcc.gnu.org/PR15337
3293   90. http://gcc.gnu.org/PR15361
3294   91. http://gcc.gnu.org/PR15412
3295   92. http://gcc.gnu.org/PR15427
3296   93. http://gcc.gnu.org/PR15471
3297   94. http://gcc.gnu.org/PR15503
3298   95. http://gcc.gnu.org/PR15507
3299   96. http://gcc.gnu.org/PR15542
3300   97. http://gcc.gnu.org/PR15565
3301   98. http://gcc.gnu.org/PR15625
3302   99. http://gcc.gnu.org/PR15629
3303  100. http://gcc.gnu.org/PR15742
3304  101. http://gcc.gnu.org/PR15775
3305  102. http://gcc.gnu.org/PR15821
3306  103. http://gcc.gnu.org/PR15862
3307  104. http://gcc.gnu.org/PR15875
3308  105. http://gcc.gnu.org/PR15877
3309  106. http://gcc.gnu.org/PR15947
3310  107. http://gcc.gnu.org/PR16020
3311  108. http://gcc.gnu.org/PR16154
3312  109. http://gcc.gnu.org/PR16174
3313  110. http://gcc.gnu.org/PR14315
3314  111. http://gcc.gnu.org/PR15151
3315  112. http://gcc.gnu.org/PR7993
3316  113. http://gcc.gnu.org/PR15228
3317  114. http://gcc.gnu.org/PR15345
3318  115. http://gcc.gnu.org/PR15945
3319  116. http://gcc.gnu.org/PR15526
3320  117. http://gcc.gnu.org/PR14690
3321  118. http://gcc.gnu.org/PR15112
3322  119. http://gcc.gnu.org/PR15067
3323  120. http://gcc.gnu.org/PR1963
3324  121. http://gcc.gnu.org/PR15717
3325  122. http://gcc.gnu.org/PR14782
3326  123. http://gcc.gnu.org/PR14828
3327  124. http://gcc.gnu.org/PR15202
3328  125. http://gcc.gnu.org/PR14610
3329  126. http://gcc.gnu.org/PR14813
3330  127. http://gcc.gnu.org/PR14857
3331  128. http://gcc.gnu.org/PR15598
3332  129. http://gcc.gnu.org/PR15653
3333  130. http://gcc.gnu.org/PR15189
3334  131. http://gcc.gnu.org/PR15331
3335  132. http://gcc.gnu.org/PR16144
3336  133. http://gcc.gnu.org/PR16176
3337  134. http://gcc.gnu.org/PR11591
3338  135. http://gcc.gnu.org/PR12028
3339  136. http://gcc.gnu.org/PR14478
3340  137. http://gcc.gnu.org/PR14567
3341  138. http://gcc.gnu.org/PR14715
3342  139. http://gcc.gnu.org/PR14902
3343  140. http://gcc.gnu.org/PR14924
3344  141. http://gcc.gnu.org/PR14960
3345  142. http://gcc.gnu.org/PR15106
3346  143. http://gcc.gnu.org/PR16026
3347  144. http://gcc.gnu.org/PR15191
3348  145. http://gcc.gnu.org/PR15662
3349  146. http://gcc.gnu.org/PR15054
3350  147. http://gcc.gnu.org/PR15783
3351  148. http://gcc.gnu.org/PR15626
3352  149. http://gcc.gnu.org/PR14326
3353  150. http://gcc.gnu.org/PR14723
3354  151. http://gcc.gnu.org/PR15290
3355  152. http://gcc.gnu.org/PR15250
3356  153. http://gcc.gnu.org/PR15551
3357  154. http://gcc.gnu.org/PR8309
3358  155. http://gcc.gnu.org/PR13250
3359  156. http://gcc.gnu.org/PR13803
3360  157. http://gcc.gnu.org/PR14093
3361  158. http://gcc.gnu.org/PR14457
3362  159. http://gcc.gnu.org/PR14542
3363  160. http://gcc.gnu.org/PR15100
3364  161. http://gcc.gnu.org/PR15296
3365  162. http://gcc.gnu.org/PR15396
3366  163. http://gcc.gnu.org/PR15782
3367  164. http://gcc.gnu.org/PR11610
3368  165. http://gcc.gnu.org/PR15488
3369  166. http://gcc.gnu.org/PR15489
3370  167. http://gcc.gnu.org/PR13928
3371  168. http://gcc.gnu.org/PR14150
3372  169. http://gcc.gnu.org/PR14949
3373  170. http://gcc.gnu.org/PR15123
3374  171. http://gcc.gnu.org/PR16469
3375  172. http://gcc.gnu.org/PR16344
3376  173. http://gcc.gnu.org/PR16842
3377  174. http://gcc.gnu.org/PR12608
3378  175. http://gcc.gnu.org/PR14492
3379  176. http://gcc.gnu.org/PR15461
3380  177. http://gcc.gnu.org/PR15890
3381  178. http://gcc.gnu.org/PR16180
3382  179. http://gcc.gnu.org/PR16224
3383  180. http://gcc.gnu.org/PR16408
3384  181. http://gcc.gnu.org/PR16529
3385  182. http://gcc.gnu.org/PR16698
3386  183. http://gcc.gnu.org/PR16706
3387  184. http://gcc.gnu.org/PR16810
3388  185. http://gcc.gnu.org/PR16851
3389  186. http://gcc.gnu.org/PR16870
3390  187. http://gcc.gnu.org/PR16904
3391  188. http://gcc.gnu.org/PR16905
3392  189. http://gcc.gnu.org/PR16964
3393  190. http://gcc.gnu.org/PR17068
3394  191. http://gcc.gnu.org/PR16366
3395  192. http://gcc.gnu.org/PR15345
3396  193. http://gcc.gnu.org/PR16590
3397  194. http://gcc.gnu.org/PR16693
3398  195. http://gcc.gnu.org/PR17078
3399  196. http://gcc.gnu.org/PR13956
3400  197. http://gcc.gnu.org/PR16684
3401  198. http://gcc.gnu.org/PR12658
3402  199. http://gcc.gnu.org/PR13092
3403  200. http://gcc.gnu.org/PR15320
3404  201. http://gcc.gnu.org/PR16246
3405  202. http://gcc.gnu.org/PR16273
3406  203. http://gcc.gnu.org/PR16401
3407  204. http://gcc.gnu.org/PR16411
3408  205. http://gcc.gnu.org/PR16489
3409  206. http://gcc.gnu.org/PR16618
3410  207. http://gcc.gnu.org/PR16637
3411  208. http://gcc.gnu.org/PR16717
3412  209. http://gcc.gnu.org/PR16813
3413  210. http://gcc.gnu.org/PR16853
3414  211. http://gcc.gnu.org/PR16889
3415  212. http://gcc.gnu.org/PR16959
3416  213. http://gcc.gnu.org/PR7587
3417  214. http://gcc.gnu.org/PR16473
3418  215. http://gcc.gnu.org/PR16478
3419  216. http://gcc.gnu.org/PR10695
3420  217. http://gcc.gnu.org/PR16974
3421  218. http://gcc.gnu.org/PR16298
3422  219. http://gcc.gnu.org/PR17113
3423  220. http://gcc.gnu.org/PR14697
3424  221. http://gcc.gnu.org/PR15869
3425  222. http://gcc.gnu.org/PR16325
3426  223. http://gcc.gnu.org/PR16357
3427  224. http://gcc.gnu.org/PR16380
3428  225. http://gcc.gnu.org/PR16407
3429  226. http://gcc.gnu.org/PR16643
3430  227. http://gcc.gnu.org/PR15927
3431  228. http://gcc.gnu.org/PR15948
3432  229. http://gcc.gnu.org/PR17019
3433  230. http://gcc.gnu.org/PR16130
3434  231. http://gcc.gnu.org/PR16142
3435  232. http://gcc.gnu.org/PR16278
3436  233. http://gcc.gnu.org/PR16414
3437  234. http://gcc.gnu.org/PR16445
3438  235. http://gcc.gnu.org/PR16490
3439  236. http://gcc.gnu.org/PR16683
3440  237. http://gcc.gnu.org/PR16195
3441  238. http://gcc.gnu.org/PR16239
3442  239. http://gcc.gnu.org/PR16199
3443  240. http://gcc.gnu.org/PR16416
3444  241. http://gcc.gnu.org/PR16430
3445  242. http://gcc.gnu.org/PR16379
3446  243. http://gcc.gnu.org/PR17093
3447  244. http://gcc.gnu.org/PR17119
3448  245. http://gcc.gnu.org/PR15928
3449  246. http://gcc.gnu.org/PR16210
3450  247. http://gcc.gnu.org/PR15488
3451  248. http://gcc.gnu.org/PR16250
3452  249. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3
3453  250. http://gcc.gnu.org/PR17369
3454  251. http://gcc.gnu.org/PR17850
3455  252. http://gcc.gnu.org/PR13948
3456  253. http://gcc.gnu.org/PR14492
3457  254. http://gcc.gnu.org/PR16301
3458  255. http://gcc.gnu.org/PR16566
3459  256. http://gcc.gnu.org/PR17023
3460  257. http://gcc.gnu.org/PR17027
3461  258. http://gcc.gnu.org/PR17524
3462  259. http://gcc.gnu.org/PR17826
3463  260. http://gcc.gnu.org/PR15526
3464  261. http://gcc.gnu.org/PR16999
3465  262. http://gcc.gnu.org/PR17503
3466  263. http://gcc.gnu.org/PR17581
3467  264. http://gcc.gnu.org/PR18129
3468  265. http://gcc.gnu.org/PR10975
3469  266. http://gcc.gnu.org/PR11722
3470  267. http://gcc.gnu.org/PR14534
3471  268. http://gcc.gnu.org/PR15172
3472  269. http://gcc.gnu.org/PR15786
3473  270. http://gcc.gnu.org/PR16162
3474  271. http://gcc.gnu.org/PR16612
3475  272. http://gcc.gnu.org/PR16715
3476  273. http://gcc.gnu.org/PR16848
3477  274. http://gcc.gnu.org/PR17132
3478  275. http://gcc.gnu.org/PR17259
3479  276. http://gcc.gnu.org/PR17327
3480  277. http://gcc.gnu.org/PR17393
3481  278. http://gcc.gnu.org/PR17501
3482  279. http://gcc.gnu.org/PR17537
3483  280. http://gcc.gnu.org/PR17585
3484  281. http://gcc.gnu.org/PR17821
3485  282. http://gcc.gnu.org/PR17829
3486  283. http://gcc.gnu.org/PR17851
3487  284. http://gcc.gnu.org/PR17976
3488  285. http://gcc.gnu.org/PR18020
3489  286. http://gcc.gnu.org/PR18093
3490  287. http://gcc.gnu.org/PR18140
3491  288. http://gcc.gnu.org/PR17541
3492  289. http://gcc.gnu.org/PR17853
3493  290. http://gcc.gnu.org/PR17245
3494  291. http://gcc.gnu.org/PR17167
3495  292. http://gcc.gnu.org/PR17277
3496  293. http://gcc.gnu.org/PR17505
3497  294. http://gcc.gnu.org/PR17684
3498  295. http://gcc.gnu.org/PR17384
3499  296. http://gcc.gnu.org/PR17770
3500  297. http://gcc.gnu.org/PR11476
3501  298. http://gcc.gnu.org/PR14064
3502  299. http://gcc.gnu.org/PR14678
3503  300. http://gcc.gnu.org/PR15583
3504  301. http://gcc.gnu.org/PR15790
3505  302. http://gcc.gnu.org/PR15886
3506  303. http://gcc.gnu.org/PR16884
3507  304. http://gcc.gnu.org/PR13841
3508  305. http://gcc.gnu.org/PR15860
3509  306. http://gcc.gnu.org/PR17465
3510  307. http://gcc.gnu.org/PR17469
3511  308. http://gcc.gnu.org/PR18138
3512  309. http://gcc.gnu.org/PR15498
3513  310. http://gcc.gnu.org/PR15747
3514  311. http://gcc.gnu.org/PR16406
3515  312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4
3516  313. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5
3517  314. http://gcc.gnu.org/PR24688
3518  315. http://gcc.gnu.org/PR17188
3519  316. http://gcc.gnu.org/PR20187
3520  317. http://gcc.gnu.org/PR21873
3521  318. http://gcc.gnu.org/PR21899
3522  319. http://gcc.gnu.org/PR22061
3523  320. http://gcc.gnu.org/PR22208
3524  321. http://gcc.gnu.org/PR22458
3525  322. http://gcc.gnu.org/PR22589
3526  323. http://gcc.gnu.org/PR24101
3527  324. http://gcc.gnu.org/PR10611
3528  325. http://gcc.gnu.org/PR13377
3529  326. http://gcc.gnu.org/PR16002
3530  327. http://gcc.gnu.org/PR17413
3531  328. http://gcc.gnu.org/PR17609
3532  329. http://gcc.gnu.org/PR17618
3533  330. http://gcc.gnu.org/PR18124
3534  331. http://gcc.gnu.org/PR18155
3535  332. http://gcc.gnu.org/PR18177
3536  333. http://gcc.gnu.org/PR18368
3537  334. http://gcc.gnu.org/PR18378
3538  335. http://gcc.gnu.org/PR18466
3539  336. http://gcc.gnu.org/PR18512
3540  337. http://gcc.gnu.org/PR18545
3541  338. http://gcc.gnu.org/PR18738
3542  339. http://gcc.gnu.org/PR18803
3543  340. http://gcc.gnu.org/PR19004
3544  341. http://gcc.gnu.org/PR19208
3545  342. http://gcc.gnu.org/PR19253
3546  343. http://gcc.gnu.org/PR19608
3547  344. http://gcc.gnu.org/PR19884
3548  345. http://gcc.gnu.org/PR20153
3549  346. http://gcc.gnu.org/PR20563
3550  347. http://gcc.gnu.org/PR20789
3551  348. http://gcc.gnu.org/PR21336
3552  349. http://gcc.gnu.org/PR21768
3553  350. http://gcc.gnu.org/PR21853
3554  351. http://gcc.gnu.org/PR21903
3555  352. http://gcc.gnu.org/PR21983
3556  353. http://gcc.gnu.org/PR21987
3557  354. http://gcc.gnu.org/PR22153
3558  355. http://gcc.gnu.org/PR22172
3559  356. http://gcc.gnu.org/PR21286
3560  357. http://gcc.gnu.org/PR22233
3561  358. http://gcc.gnu.org/PR22508
3562  359. http://gcc.gnu.org/PR22545
3563  360. http://gcc.gnu.org/PR23528
3564  361. http://gcc.gnu.org/PR23550
3565  362. http://gcc.gnu.org/PR23586
3566  363. http://gcc.gnu.org/PR23624
3567  364. http://gcc.gnu.org/PR23639
3568  365. http://gcc.gnu.org/PR23797
3569  366. http://gcc.gnu.org/PR23965
3570  367. http://gcc.gnu.org/PR24052
3571  368. http://gcc.gnu.org/PR24580
3572  369. http://gcc.gnu.org/PR24267
3573  370. http://gcc.gnu.org/PR17810
3574  371. http://gcc.gnu.org/PR17860
3575  372. http://gcc/gnu.org/PR21709
3576  373. http://gcc.gnu.org/PR21964
3577  374. http://gcc.gnu.org/PR22167
3578  375. http://gcc.gnu.org/PR22619
3579  376. http://gcc.gnu.org/PR23241
3580  377. http://gcc.gnu.org/PR23478
3581  378. http://gcc.gnu.org/PR24470
3582  379. http://gcc.gnu.org/PR24950
3583  380. http://gcc.gnu.org/PR14400
3584  381. http://gcc.gnu.org/PR14940
3585  382. http://gcc.gnu.org/PR20239
3586  383. http://gcc.gnu.org/PR15220
3587  384. http://gcc.gnu.org/PR19275
3588  385. http://gcc.gnu.org/PR21888
3589  386. http://gcc.gnu.org/PR15342
3590  387. http://gcc.gnu.org/PR23985
3591  388. http://gcc.gnu.org/PR16719
3592  389. http://gcc.gnu.org/PR21723
3593  390. http://gcc.gnu.org/PR21841
3594  391. http://gcc.gnu.org/PR23644
3595  392. http://gcc.gnu.org/PR24718
3596  393. http://gcc.gnu.org/PR18421
3597  394. http://gcc.gnu.org/PR20621
3598  395. http://gcc.gnu.org/PR18583
3599  396. http://gcc.gnu.org/PR20191
3600  397. http://gcc.gnu.org/PR22083
3601  398. http://gcc.gnu.org/PR23070
3602  399. http://gcc.gnu.org/PR23404
3603  400. http://gcc.gnu.org/PR23539
3604  401. http://gcc.gnu.org/PR24102
3605  402. http://gcc.gnu.org/PR24465
3606  403. http://gcc.gnu.org/PR19933
3607  404. http://gcc.gnu.org/PR21889
3608  405. http://gcc.gnu.org/PR19300
3609  406. http://gcc.gnu.org/PR20301
3610  407. http://gcc.gnu.org/PR20673
3611  408. http://gcc.gnu.org/PR18582
3612  409. http://gcc.gnu.org/PR19340
3613  410. http://gcc.gnu.org/PR21716
3614  411. http://gcc.gnu.org/PR24315
3615  412. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6
3616  413. mailto:gnu@gnu.org
3617  414. http://www.gnu.org/home.html#ContactInfo
3618  415. http://gcc.gnu.org/about.html
3619  416. http://gcc.gnu.org/onlinedocs/
3620  417. mailto:gcc-help@gcc.gnu.org
3621  418. mailto:gcc@gnu.org
3622  419. mailto:gcc@gcc.gnu.org
3623  420. http://gcc.gnu.org/lists.html
3624  421. http://validator.w3.org/check/referer
3625 ======================================================================
3626 http://gcc.gnu.org/gcc-3.3/index.html
3628                            GCC 3.3 Release Series
3630    May 03, 2005
3632    The  [1]GNU project and the GCC developers are pleased to announce the
3633    release of GCC 3.3.6.
3635    This release is a bug-fix release, containing fixes for regressions in
3636    GCC 3.3.5 relative to previous releases of GCC.
3638    This release is the last of the series 3.3.x.
3640    The   GCC  3.3  release  series  includes  numerous  [2]new  features,
3641    improvements,  bug  fixes,  and other changes, thanks to an [3]amazing
3642    group of volunteers.
3644 Release History
3646    GCC 3.3.6
3647           May 3, 2005 ([4]changes)
3649    GCC 3.3.5
3650           September 30, 2004 ([5]changes)
3652    GCC 3.3.4
3653           May 31, 2004 ([6]changes)
3655    GCC 3.3.3
3656           February 14, 2004 ([7]changes)
3658    GCC 3.3.2
3659           October 16, 2003 ([8]changes)
3661    GCC 3.3.1
3662           August 8, 2003 ([9]changes)
3664    GCC 3.3
3665           May 14, 2003 ([10]changes)
3667 References and Acknowledgements
3669    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
3670    supports  several  other languages aside from C, it now stands for the
3671    GNU Compiler Collection.
3673    A  list of [11]successful builds is updated as new information becomes
3674    available.
3676    The  GCC  developers would like to thank the numerous people that have
3677    contributed  new  features, improvements, bug fixes, and other changes
3678    as  well  as test results to GCC. This [12]amazing group of volunteers
3679    is what makes GCC successful.
3681    For  additional  information  about  GCC  please  refer to the [13]GCC
3682    project web site or contact the [14]GCC development mailing list.
3684    To  obtain  GCC  please  use  [15]our mirror sites, one of the [16]GNU
3685    mirror sites, or our CVS server.
3687    Please  send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
3688    are also [18]other ways to contact the FSF.
3690    These pages are maintained by [19]the GCC team.
3693     For  questions  related  to the use of GCC, please consult these web
3694     pages    and    the    [20]GCC   manuals.   If   that   fails,   the
3695     [21]gcc-help@gcc.gnu.org mailing list might help.
3696     Please  send  comments on these web pages and the development of GCC
3697     to    our    developer    mailing   list   at   [22]gcc@gnu.org   or
3698     [23]gcc@gcc.gnu.org. All of our lists have [24]public archives.
3700    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
3701    Floor, Boston, MA 02110, USA.
3703    Verbatim  copying and distribution of this entire article is permitted
3704    in any medium, provided this notice is preserved.
3705    Last modified 2006-06-21 [25]Valid XHTML 1.0 
3707 References
3709    1. http://www.gnu.org/
3710    2. http://gcc.gnu.org/gcc-3.3/changes.html
3711    3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3712    4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
3713    5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5
3714    6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4
3715    7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
3716    8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
3717    9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
3718   10. http://gcc.gnu.org/gcc-3.3/changes.html
3719   11. http://gcc.gnu.org/gcc-3.3/buildstat.html
3720   12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3721   13. http://gcc.gnu.org/index.html
3722   14. mailto:gcc@gcc.gnu.org
3723   15. http://gcc.gnu.org/mirrors.html
3724   16. http://www.gnu.org/order/ftp.html
3725   17. mailto:gnu@gnu.org
3726   18. http://www.gnu.org/home.html#ContactInfo
3727   19. http://gcc.gnu.org/about.html
3728   20. http://gcc.gnu.org/onlinedocs/
3729   21. mailto:gcc-help@gcc.gnu.org
3730   22. mailto:gcc@gnu.org
3731   23. mailto:gcc@gcc.gnu.org
3732   24. http://gcc.gnu.org/lists.html
3733   25. http://validator.w3.org/check/referer
3734 ======================================================================
3735 http://gcc.gnu.org/gcc-3.3/changes.html
3737                            GCC 3.3 Release Series
3738                       Changes, New Features, and Fixes
3740    The latest release in the 3.3 release series is [1]GCC 3.3.6.
3742 Caveats
3744      * The  preprocessor  no  longer  accepts multi-line string literals.
3745        They were deprecated in 3.0, 3.1, and 3.2.
3746      * The  preprocessor no longer supports the -A- switch when appearing
3747        alone. -A- followed by an assertion is still supported.
3748      * Support  for  all  the  systems  [2]obsoleted  in GCC 3.1 has been
3749        removed from GCC 3.3. See below for a [3]list of systems which are
3750        obsoleted in this release.
3751      * Checking  for  null  format  arguments has been decoupled from the
3752        rest  of  the  format  checking  mechanism. Programs which use the
3753        format  attribute  may  regain this functionality by using the new
3754        [4]nonnull  function  attribute. Note that all functions for which
3755        GCC  has  a  built-in  format  attribute,  an appropriate built-in
3756        nonnull attribute is also applied.
3757      * The  DWARF  (version  1)  debugging format has been deprecated and
3758        will be removed in a future version of GCC. Version 2 of the DWARF
3759        debugging format will continue to be supported for the foreseeable
3760        future.
3761      * The  C  and  Objective-C  compilers  no  longer accept the "Naming
3762        Types"  extension  (typedef foo = bar); it was already unavailable
3763        in  C++.  Code  which  uses  it will need to be changed to use the
3764        "typeof"  extension  instead:  typedef  typeof(bar)  foo. (We have
3765        removed  this extension without a period of deprecation because it
3766        has  caused  the  compiler  to  crash since version 3.0 and no one
3767        noticed  until  very  recently.  Thus  we  conclude  it  is not in
3768        widespread use.)
3769      * The  -traditional  C  compiler  option  has  been  removed. It was
3770        deprecated  in  3.1  and  3.2.  (Traditional preprocessing remains
3771        available.)  The  <varargs.h>  header,  used  for writing variadic
3772        functions in traditional C, still exists but will produce an error
3773        message if used.
3774      * GCC  3.3.1  automatically places zero-initialized variables in the
3775        .bss  section  on some operating systems. Versions of GNU Emacs up
3776        to  (and  including)  21.3 will not work correctly when using this
3777        optimization;  you can use -fno-zero-initialized-in-bss to disable
3778        it.
3780 General Optimizer Improvements
3782      * A  new  scheme  for accurately describing processor pipelines, the
3783        [5]DFA scheduler, has been added.
3784      * Pavel Nejedly, Charles University Prague, has contributed new file
3785        format used by the edge coverage profiler (-fprofile-arcs).
3786        The  new  format  is  robust  and  diagnoses common mistakes where
3787        profiles  from different versions (or compilations) of the program
3788        are  combined  resulting  in nonsensical profiles and slow code to
3789        produced  with  profile  feedback. Additionally this format allows
3790        extra  data  to  be  gathered.  Currently,  overall statistics are
3791        produced  helping  optimizers  to  identify hot spots of a program
3792        globally  replacing  the old intra-procedural scheme and resulting
3793        in  better  code.  Note that the gcov tool from older GCC versions
3794        will  not  be  able to parse the profiles generated by GCC 3.3 and
3795        vice versa.
3796      * Jan Hubicka, SuSE Labs, has contributed a new superblock formation
3797        pass enabled using -ftracer. This pass simplifies the control flow
3798        of functions allowing other optimizations to do better job.
3799        He    also    contributed    the    function    reordering    pass
3800        (-freorder-functions) to optimize function placement using profile
3801        feedback.
3803 New Languages and Language specific improvements
3805   C/ObjC/C++
3807      * The preprocessor now accepts directives within macro arguments. It
3808        processes  them  just  as  if  they  had  not  been  within  macro
3809        arguments.
3810      * The   separate   ISO   and  traditional  preprocessors  have  been
3811        completely   removed.   The  front  end  handles  either  type  of
3812        preprocessed output if necessary.
3813      * In  C99  mode  preprocessor arithmetic is done in the precision of
3814        the target's intmax_t, as required by that standard.
3815      * The preprocessor can now copy comments inside macros to the output
3816        file  when  the macro is expanded. This feature, enabled using the
3817        -CC  option,  is  intended  for  use  by  applications which place
3818        metadata or directives inside comments, such as lint.
3819      * The  method of constructing the list of directories to be searched
3820        for  header  files  has been revised. If a directory named by a -I
3821        option  is  a  standard  system  include  directory, the option is
3822        ignored  to  ensure  that  the  default  search  order  for system
3823        directories  and  the special treatment of system header files are
3824        not defeated.
3825      * A few more [6]ISO C99 features now work correctly.
3826      * A  new  function  attribute,  nonnull, has been added which allows
3827        pointer  arguments  to  functions  to  be specified as requiring a
3828        non-null  value.  The  compiler currently uses this information to
3829        issue  a  warning  when  it detects a null value passed in such an
3830        argument slot.
3831      * A  new  type  attribute,  may_alias,  has  been added. Accesses to
3832        objects  with  types  with  this  attribute  are  not subjected to
3833        type-based  alias  analysis, but are instead assumed to be able to
3834        alias any other type of objects, just like the char type.
3836   C++
3838      * Type  based  alias analysis has been implemented for C++ aggregate
3839        types.
3841   Objective-C
3843      * Generate  an  error  if Objective-C objects are passed by value in
3844        function and method calls.
3845      * When  -Wselector is used, check the whole list of selectors at the
3846        end  of  compilation,  and  emit a warning if a @selector() is not
3847        known.
3848      * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime.
3849      * No  longer need to include objc/objc-class.h to compile self calls
3850        in class methods (NeXT runtime only).
3851      * New -Wundeclared-selector option.
3852      * Removed selector bloating which was causing object files to be 10%
3853        bigger on average (GNU runtime only).
3854      * Using  at  run  time @protocol() objects has been fixed in certain
3855        situations (GNU runtime only).
3856      * Type  checking  has  been  fixed  and  improved in many situations
3857        involving protocols.
3859   Java
3861      * The  java.sql  and  javax.sql  packages now implement the JDBC 3.0
3862        (JDK 1.4) API.
3863      * The JDK 1.4 assert facility has been implemented.
3864      * The bytecode interpreter is now direct threaded and thus faster.
3866   Fortran
3868      * Fortran improvements are listed in [7]the Fortran documentation.
3870   Ada
3872      * Ada tasking now works with glibc 2.3.x threading libraries.
3874 New Targets and Target Specific Improvements
3876      * The following changes have been made to the HP-PA port:
3877           + The  port now defaults to scheduling for the PA8000 series of
3878             processors.
3879           + Scheduling support for the PA7300 processor has been added.
3880           + The 32-bit port now supports weak symbols under HP-UX 11.
3881           + The handling of initializers and finalizers has been improved
3882             under HP-UX 11. The 64-bit port no longer uses collect2.
3883           + Dwarf2 EH support has been added to the 32-bit linux port.
3884           + ABI  fixes  to  correct  the  passing  of small structures by
3885             value.
3886      * The  SPARC,  HP-PA, SH4, and x86/pentium ports have been converted
3887        to use the DFA processor pipeline description.
3888      * The  following  NetBSD  configurations  for  the  SuperH processor
3889        family have been added:
3890           + SH3, big-endian, sh-*-netbsdelf*
3891           + SH3, little-endian, shle-*-netbsdelf*
3892           + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd*
3893           + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd*
3894           + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd*
3895           + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd*
3896      * The following changes have been made to the IA-32/x86-64 port:
3897           + SSE2 and 3dNOW! intrinsics are now supported.
3898           + Support  for thread local storage has been added to the IA-32
3899             and x86-64 ports.
3900           + The x86-64 port has been significantly improved.
3901      * The following changes have been made to the MIPS port:
3902           + All configurations now accept the -mabi switch. Note that you
3903             will  need  appropriate  multilibs  for  this  option to work
3904             properly.
3905           + ELF  configurations  will  always  pass  an  ABI  flag to the
3906             assembler, except when the MIPS EABI is selected.
3907           + -mabi=64 no longer selects MIPS IV code.
3908           + The  -mcpu  option,  which was deprecated in 3.1 and 3.2, has
3909             been removed from this release.
3910           + -march  now changes the core ISA level. In previous releases,
3911             it would change the use of processor-specific extensions, but
3912             would  leave  the core ISA unchanged. For example, mips64-elf
3913             -march=r8000 will now generate MIPS IV code.
3914           + Under  most  configurations, -mipsN now acts as a synonym for
3915             -march.
3916           + There are some new preprocessor macros to describe the -march
3917             and  -mtune  settings. See the documentation of those options
3918             for details.
3919           + Support for the NEC VR-Series processors has been added. This
3920             includes the 54xx, 5500, and 41xx series.
3921           + Support for the Sandcraft sr71k processor has been added.
3922      * The following changes have been made to the S/390 port:
3923           + Support  to  build the Java runtime libraries has been added.
3924             Java   is   now  enabled  by  default  on  s390-*-linux*  and
3925             s390x-*-linux* targets.
3926           + Multilib  support  for  the  s390x-*-linux*  target  has been
3927             added;  this  allows  to build 31-bit binaries using the -m31
3928             option.
3929           + Support for thread local storage has been added.
3930           + Inline  assembler  code  may  now  use  the 'Q' constraint to
3931             specify memory operands without index register.
3932           + Various  platform-specific performance improvements have been
3933             implemented;  in particular, the compiler now uses the BRANCH
3934             ON  COUNT  family of instructions and makes more frequent use
3935             of the TEST UNDER MASK family of instructions.
3936      * The following changes have been made to the PowerPC port:
3937           + Support for IBM Power4 processor added.
3938           + Support for Motorola e500 SPE added.
3939           + Support for AIX 5.2 added.
3940           + Function and Data sections now supported on AIX.
3941           + Sibcall optimizations added.
3942      * The support for H8 Tiny is added to the H8/300 port with -mn.
3944 Obsolete Systems
3946    Support  for  a  number of older systems has been declared obsolete in
3947    GCC  3.3. Unless there is activity to revive them, the next release of
3948    GCC will have their sources permanently removed.
3950    All  configurations of the following processor architectures have been
3951    declared obsolete:
3952      * Matsushita MN10200, mn10200-*-*
3953      * Motorola 88000, m88k-*-*
3954      * IBM ROMP, romp-*-*
3956    Also, some individual systems have been obsoleted:
3957      * Alpha
3958           + Interix, alpha*-*-interix*
3959           + Linux libc1, alpha*-*-linux*libc1*
3960           + Linux ECOFF, alpha*-*-linux*ecoff*
3961      * ARM
3962           + Generic a.out, arm*-*-aout*
3963           + Conix, arm*-*-conix*
3964           + "Old ABI," arm*-*-oabi
3965           + StrongARM/COFF, strongarm-*-coff*
3966      * HPPA (PA-RISC)
3967           + Generic OSF, hppa1.0-*-osf*
3968           + Generic BSD, hppa1.0-*-bsd*
3969           + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]*
3970           + HiUX, hppa*-*-hiux*
3971           + Mach Lites, hppa*-*-lites*
3972      * Intel 386 family
3973           + Windows NT 3.x, i?86-*-win32
3974      * MC68000 family
3975           + HP systems, m68000-hp-bsd* and m68k-hp-bsd*
3976           + Sun    systems,   m68000-sun-sunos*,   m68k-sun-sunos*,   and
3977             m68k-sun-mach*
3978           + AT&T systems, m68000-att-sysv*
3979           + Atari systems, m68k-atari-sysv*
3980           + Motorola systems, m68k-motorola-sysv*
3981           + NCR systems, m68k-ncr-sysv*
3982           + Plexus systems, m68k-plexus-sysv*
3983           + Commodore systems, m68k-cbm-sysv*
3984           + Citicorp TTI, m68k-tti-*
3985           + Unos, m68k-crds-unos*
3986           + Concurrent RTU, m68k-ccur-rtu*
3987           + Linux a.out, m68k-*-linux*aout*
3988           + Linux libc1, m68k-*-linux*libc1*
3989           + pSOS, m68k-*-psos*
3990      * MIPS
3991           + Generic ECOFF, mips*-*-ecoff*
3992           + SINIX, mips-sni-sysv4
3993           + Orion RTEMS, mips64orion-*-rtems*
3994      * National Semiconductor 32000
3995           + OpenBSD, ns32k-*-openbsd*
3996      * POWER (aka RS/6000) and PowerPC
3997           + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]*
3998           + Bull BOSX, rs6000-bull-bosx
3999           + Generic Mach, rs6000-*-mach*
4000           + Generic SysV, powerpc*-*-sysv*
4001           + Linux libc1, powerpc*-*-linux*libc1*
4002      * Sun SPARC
4003           + Generic      a.out,      sparc-*-aout*,     sparclet-*-aout*,
4004             sparclite-*-aout*, and sparc86x-*-aout*
4005           + NetBSD a.out, sparc-*-netbsd*aout*
4006           + Generic BSD, sparc-*-bsd*
4007           + ChorusOS, sparc-*-chorusos*
4008           + Linux a.out, sparc-*-linux*aout*
4009           + Linux libc1, sparc-*-linux*libc1*
4010           + LynxOS, sparc-*-lynxos*
4011           + Solaris on HAL hardware, sparc-hal-solaris2*
4012           + SunOS versions 3 and 4, sparc-*-sunos[34]*
4013      * NEC V850
4014           + RTEMS, v850-*-rtems*
4015      * VAX
4016           + VMS, vax-*-vms*
4018 Documentation improvements
4020 Other significant improvements
4022      * Almost  all  front-end  dependencies  in  the  compiler  have been
4023        separated  out  into  a  set  of  language hooks. This should make
4024        adding a new front end clearer and easier.
4025      * One  effect  of  removing  the  separate  preprocessor  is a small
4026        increase  in  the  robustness  of the compiler in general, and the
4027        maintainability of target descriptions. Previously target-specific
4028        built-in  macros  and  others,  such  as  __FAST_MATH__, had to be
4029        handled  with  so-called  specs  that were hard to maintain. Often
4030        they  would  fail to behave properly when conflicting options were
4031        supplied  on  the  command  line,  and define macros in the user's
4032        namespace   even   when   strict  ISO  compliance  was  requested.
4033        Integrating the preprocessor has cleanly solved these issues.
4034      * The  Makefile  suite  now  supports redirection of make install by
4035        means of the variable DESTDIR.
4036      _________________________________________________________________
4038 GCC 3.3
4040    Detailed release notes for the GCC 3.3 release follow.
4042   Bug Fixes
4044     bootstrap failures
4046      * [8]10140  cross  compiler  build failures: missing __mempcpy (DUP:
4047        [9]10198,[10]10338)
4049     Internal compiler errors (multi-platform)
4051      * [11]3581 large string causes segmentation fault in cc1
4052      * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
4053      * [13]5533  (c++)  ICE  when  processing std::accumulate(begin, end,
4054        init, invalid_op)
4055      * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
4056      * [15]6412 (c++) ICE in retrieve_specialization
4057      * [16]6620  (c++)  partial  template  specialization  causes  an ICE
4058        (segmentation fault)
4059      * [17]6663 (c++) ICE with attribute aligned
4060      * [18]7068 ICE with incomplete types
4061      * [19]7083 (c++) ICE using -gstabs with dodgy class derivation
4062      * [20]7647  (c++) ICE when data member has the name of the enclosing
4063        class
4064      * [21]7675 ICE in fixup_var_refs_1
4065      * [22]7718 'complex' template instantiation causes ICE
4066      * [23]8116 (c++) ICE in member template function
4067      * [24]8358 (ada) Ada compiler accesses freed memory, crashes
4068      * [25]8511  (c++) ICE: (hopefully) reproducible cc1plus segmentation
4069        fault
4070      * [26]8564 (c++) ICE in find_function_data, in function.c
4071      * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
4072      * [28]8766  (c++) ICE after failed initialization of static template
4073        variable
4074      * [29]8803 ICE in instantiate_virtual_regs_1, in function.c
4075      * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
4076      * [31]8906  (c++) ICE (Segmentation fault) when parsing nested-class
4077        definition
4078      * [32]9216 (c++) ICE on missing template parameter
4079      * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
4080      * [34]9263  (fortran)  ICE caused by invalid PARAMETER in implied DO
4081        loop
4082      * [35]9429  (c++) ICE in template instantiation with a pointered new
4083        operator
4084      * [36]9516 Internal error when using a big array
4085      * [37]9600 (c++) ICE with typedefs in template class
4086      * [38]9629 (c++) virtual inheritance segfault
4087      * [39]9672 (c++) ICE: Error reporting routines re-entered
4088      * [40]9749   (c++)  ICE  in  write_expression  on  invalid  function
4089        prototype
4090      * [41]9794  (fortran)  ICE: floating point exception during constant
4091        folding
4092      * [42]9829 (c++) Missing colon in nested namespace usage causes ICE
4093      * [43]9916 (c++) ICE with noreturn function in ?: statement
4094      * [44]9936 ICE with local function and variable-length 2d array
4095      * [45]10262 (c++) cc1plus crashes with large generated code
4096      * [46]10278 (c++) ICE in parser for invalid code
4097      * [47]10446  (c++)  ICE on definition of nonexistent member function
4098        of nested class in a class template
4099      * [48]10451   (c++)   ICE  in  grokdeclarator  on  spurious  mutable
4100        declaration
4101      * [49]10506    (c++)    ICE   in   build_new   at   cp/init.c   with
4102        -fkeep-inline-functions and multiple inheritance
4103      * [50]10549  (c++)  ICE  in store_bit_field on bitfields that exceed
4104        the precision of the declared type
4106     Optimization bugs
4108      * [51]2001 Inordinately long compile times in reload CSE regs
4109      * [52]2391 Exponential compilation time explosion in combine
4110      * [53]2960 Duplicate loop conditions even with -Os
4111      * [54]4046 redundant conditional branch
4112      * [55]6405 Loop-unrolling related performance regressions
4113      * [56]6798 very long compile time with large case-statement
4114      * [57]6871 const objects shouldn't be moved to .bss
4115      * [58]6909 problem w/ -Os on modified loop-2c.c test case
4116      * [59]7189  gcc  -O2  -Wall  does not print ``control reaches end of
4117        non-void function'' warning
4118      * [60]7642 optimization problem with signbit()
4119      * [61]8634 incorrect code for inlining of memcpy under -O2
4120      * [62]8750 Cygwin prolog generation erroneously emitting __alloca as
4121        regular function call
4123     C front end
4125      * [63]2161 long if-else cascade overflows parser stack
4126      * [64]4319 short accepted on typedef'd char
4127      * [65]8602  incorrect  line  numbers  in warning messages when using
4128        inline functions
4129      * [66]9177    -fdump-translation-unit:    C    front   end   deletes
4130        function_decl AST nodes and breaks debugging dumps
4131      * [67]9853 miscompilation of non-constant structure initializer
4133     c++ compiler and library
4135      * [68]45  legal  template  specialization  code  is  rejected  (DUP:
4136        [69]3784)
4137      * [70]764  lookup  failure:  friend  operator  and  dereferencing  a
4138        pointer and templates (DUP: [71]5116)
4139      * [72]2862  gcc  accepts invalid explicit instantiation syntax (DUP:
4140        2863)
4141      * [73]3663   G++   doesn't  check  access  control  during  template
4142        instantiation
4143      * [74]3797  gcc  fails to emit explicit specialization of a template
4144        member
4145      * [75]3948  Two  destructors  are  called when no copy destructor is
4146        defined (ABI change)
4147      * [76]4137 Conversion operator within template is not accepted
4148      * [77]4361 bogus ambiguity taking the address of a member template
4149      * [78]4802  g++  accepts  illegal  template  code (access to private
4150        member; DUP: [79]5837)
4151      * [80]4803  inline  function is used but never defined, and g++ does
4152        not object
4153      * [81]5094 Partial specialization cannot be friend?
4154      * [82]5730    complex<double>::norm()    --   huge   slowdown   from
4155        egcs-2.91.66
4156      * [83]6713  Regression  wrt 3.0.4: g++ -O2 leads to seg fault at run
4157        time
4158      * [84]7015 certain __asm__ constructs rejected
4159      * [85]7086   compile   time   regression   (quadratic   behavior  in
4160        fixup_var_refs)
4161      * [86]7099  G++  doesn't set the noreturn attribute on std::exit and
4162        std::abort
4163      * [87]7247  copy  constructor missing when inlining enabled (invalid
4164        optimization?)
4165      * [88]7441  string  array initialization compilation time regression
4166        from seconds to minutes
4167      * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
4168      * [90]7804  bad  printing  of  floating  point  constant  in warning
4169        message
4170      * [91]8099 Friend classes and template specializations
4171      * [92]8117 member function pointers and multiple inheritance
4172      * [93]8205 using declaration and multiple inheritance
4173      * [94]8645 unnecessary non-zero checks in stl_tree.h
4174      * [95]8724 explicit destructor call for incomplete class allowed
4175      * [96]8805 compile time regression with many member variables
4176      * [97]8691 -O3 and -fno-implicit-templates are incompatible
4177      * [98]8700 unhelpful error message for binding temp to reference
4178      * [99]8724 explicit destructor call for incomplete class allowed
4179      * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
4180      * [101]9016  Failure  to  consistently  constant fold "constant" C++
4181        objects
4182      * [102]9053  g++  confused  about  ambiguity  of overloaded function
4183        templates
4184      * [103]9152 undefined virtual thunks
4185      * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
4186      * [105]9297 data corruption due to codegen bug (when copying.)
4187      * [106]9318 i/ostream::operator>>/<<(streambuf*) broken
4188      * [107]9320    Incorrect    usage    of   traits_type::int_type   in
4189        stdio_filebuf
4190      * [108]9400  bogus -Wshadow warning: shadowed declaration of this in
4191        local classes
4192      * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
4193      * [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
4194      * [112]9474  GCC freezes in compiling a weird code mixing <iostream>
4195        and <iostream.h>
4196      * [113]9548    Incorrect    results    from   setf(ios::fixed)   and
4197        precision(-1) [114][DR 231]
4198      * [115]9555 ostream inserters fail to set badbit on exception
4199      * [116]9561 ostream inserters rethrow exception of wrong type
4200      * [117]9563 ostream::sentry returns true after a failed preparation
4201      * [118]9582 one-definition rule violation in std::allocator
4202      * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
4203      * [120]9683  bug in initialization chains for static const variables
4204        from template classes
4205      * [121]9791 -Woverloaded-virtual reports hiding of destructor
4206      * [122]9817 collate::compare doesn't handle nul characters
4207      * [123]9825 filebuf::sputbackc breaks sbumpc
4208      * [124]9826 operator>>(basic_istream, basic_string) fails to compile
4209        with custom traits
4210      * [125]9924  Multiple  using  statements  for  builtin functions not
4211        allowed
4212      * [126]9946 destructor is not called for temporary object
4213      * [127]9964 filebuf::close() sometimes fails to close file
4214      * [128]9988 filebuf::overflow writes EOF to file
4215      * [129]10033  optimization  breaks  polymorphic references w/ typeid
4216        operator
4217      * [130]10097 filebuf::underflow drops characters
4218      * [131]10132 filebuf destructor can throw exceptions
4219      * [132]10180 gcc fails to warn about non-inlined function
4220      * [133]10199   method   parametrized   by  template  does  not  work
4221        everywhere
4222      * [134]10300 use of array-new (nothrow) in segfaults on NULL return
4223      * [135]10427  Stack corruption with variable-length automatic arrays
4224        and virtual destructors
4225      * [136]10503 Compilation never stops in fixed_type_or_null
4227     Objective-C
4229      * [137]5956  selectors  aren't  matched  properly  when added to the
4230        selector table
4232     Fortran compiler and library
4234      * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't
4235        detect
4236      * [139]3924 g77 generates code that is rejected by GAS if COFF debug
4237        info requested
4238      * [140]5634 doc: explain that configure --prefix=~/... does not work
4239      * [141]6367 multiple repeat counts confuse namelist read into array
4240      * [142]6491   Logical   operations  error  on  logicals  when  using
4241        -fugly-logint
4242      * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C"
4243      * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os
4244        on irix6.5
4245      * [145]7236  OPEN(...,RECL=nnn,...)  without  ACCESS='DIRECT' should
4246        assume a direct access file
4247      * [146]7278   g77   "bug";   the  executable  misbehaves  (with  -O2
4248        -fno-automatic)
4249      * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows
4250      * [148]7388 Incorrect output with 0-based array of characters
4251      * [149]8587  Double  complex  zero ** double precision number -> NaN
4252        instead of zero
4253      * [150]9038   -ffixed-line-length-none   -x   f77-cpp-input   gives:
4254        Warning: unknown register name line-length-none
4255      * [151]10197 Direct access files not unformatted by default
4257     Java compiler and library
4259      * [152]6005 gcj fails to build rhug on alpha
4260      * [153]6389    System.getProperty("")   should   always   throw   an
4261        IllegalArgumentException
4262      * [154]6576 java.util.ResourceBundle.getResource ignores locale
4263      * [155]6652 new java.io.File("").getCanonicalFile() throws exception
4264      * [156]7060 getMethod() doesn't search super interface
4265      * [157]7073  bytecode  interpreter  gives wrong answer for interface
4266        getSuperclass()
4267      * [158]7180 possible bug in
4268        javax.naming.spi.NamingManager.getPlusPath()
4269      * [159]7416 java.security startup refs "GNU libgcj.security"
4270      * [160]7570  Runtime.exec  with  null  envp:  child  doesn't inherit
4271        parent env (DUP: [161]7578)
4272      * [162]7611 Internal error while compiling libjava with -O
4273      * [163]7709 NullPointerException in _Jv_ResolvePoolEntry
4274      * [164]7766  ZipInputStream.available  returns  0  immediately after
4275        construction
4276      * [165]7785   Calendar.getTimeInMillis/setTimeInMillis   should   be
4277        public
4278      * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
4279      * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens'
4280      * [168]8234  ZipInputStream  chokes  when InputStream.read() returns
4281        small chunks
4282      * [169]8415 reflection bug: exception info for Method
4283      * [170]8481 java.Random.nextInt(int) may return negative
4284      * [171]8593 Error reading GZIPped files with BufferedReader
4285      * [172]8759   java.beans.Introspector   has   no   flushCaches()  or
4286        flushFromCaches() methods
4287      * [173]8997 spin() calls Thread.sleep
4288      * [174]9253  on  win32,  java.io.File.listFiles("C:\\")  returns pwd
4289        instead of the root content of C:
4290      * [175]9254   java::lang::Object::wait(),  threads-win32.cc  returns
4291        wrong return codes
4292      * [176]9271 Severe bias in java.security.SecureRandom
4294     Ada compiler and library
4296      * [177]6767 make gnatlib-shared fails on -laddr2line
4297      * [178]9911   gnatmake  fails  to  link  when  GCC  configured  with
4298        --with-sjlj-exceptions=yes
4299      * [179]10020 Can't bootstrap gcc on AIX with Ada enabled
4300      * [180]10546 Ada tasking not working on Red Hat 9
4302     preprocessor
4304      * [181]7029 preprocessor should ignore #warning with -M
4306     ARM-specific
4308      * [182]2903 [arm] Optimization bug with long long arithmetic
4309      * [183]7873  arm-linux-gcc  fails  when  assigning  address to a bit
4310        field
4312     FreeBSD-specific
4314      * [184]7680  float  functions undefined in math.h/cmath with #define
4315        _XOPEN_SOURCE
4317     HP-UX or HP-PA-specific
4319      * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
4320      * [186]9986  [HP-UX]  Incorrect  transformation of fputs_unlocked to
4321        fputc_unlocked
4322      * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
4324     m68hc11-specific
4326      * [188]6744  Bad  assembler  code  generated:  reference  to  pseudo
4327        register z
4328      * [189]7361 Internal compiler error in reload_cse_simplify_operands,
4329        in reload1.c
4331     MIPS-specific
4333      * [190]9496 [mips-linux] bug in optimizer?
4335     PowerPC-specific
4337      * [191]7067  -Os  with -mcpu=powerpc optimizes for speed (?) instead
4338        of space
4339      * [192]8480 reload ICEs for LAPACK code on powerpc64-linux
4340      * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg
4341      * [194]10315 [powerpc] ICE: in extract_insn, in recog.c
4343     SPARC-specific
4345      * [195]10267    (documentation)   Wrong   build   instructions   for
4346        *-*-solaris2*
4348     x86-specific (Intel/AMD)
4350      * [196]7916 ICE in instantiate_virtual_register_1
4351      * [197]7926  (c++)  i486  instructions  in  header  files  make  c++
4352        programs crash on i386
4353      * [198]8555 ICE in gen_split_1231
4354      * [199]8994 ICE with -O -march=pentium4
4355      * [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs
4356      * [201]9806 ICE in inline assembly with -fPIC flag
4357      * [202]10077  gcc  -msse2  generates movd to move dwords between xmm
4358        regs
4359      * [203]10233 64-bit comparison only comparing bottom 32-bits
4360      * [204]10286 type-punning doesn't work with __m64 and -O
4361      * [205]10308 [x86] ICE with -O -fgcse or -O2
4362      _________________________________________________________________
4364 GCC 3.3.1
4366   Bug Fixes
4368    This  section  lists the problem reports (PRs) from GCC's bug tracking
4369    system  that  are  known  to  be fixed in the 3.3.1 release. This list
4370    might not be complete (that is, it is possible that some PRs that have
4371    been fixed are not listed here).
4373     Bootstrap failures
4375      * [206]11272 [Solaris] make bootstrap fails while building libstdc++
4377     Internal compiler errors (multi-platform)
4379      * [207]5754 ICE on invalid nested template class
4380      * [208]6597  ICE  in set_mem_alias_set compiling Qt with -O2 on ia64
4381        and --enable-checking
4382      * [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c
4383      * [210]7053 (c++) ICE when declaring a function already defined as a
4384        friend method of a template class
4385      * [211]8164  (c++)  ICE  when  using  different const expressions as
4386        template parameter
4387      * [212]8384 (c++) ICE in is_base_type, in dwarf2out.c
4388      * [213]9559 (c++) ICE with invalid initialization of a static const
4389      * [214]9649    (c++)    ICE    in    finish_member_declaration,   in
4390        cp/semantics.c when redeclaring a static member variable
4391      * [215]9864   (fortran)  ICE  in  add_abstract_origin_attribute,  in
4392        dwarfout.c with -g -O -finline-functions
4393      * [216]10432 (c++) ICE in poplevel, in cp/decl.c
4394      * [217]10475 ICE in subreg_highpart_offset for code with long long
4395      * [218]10635  (c++) ICE when dereferencing an incomplete type casted
4396        from a void pointer
4397      * [219]10661   (c++)  ICE  in  instantiate_decl,  in  cp/pt.c  while
4398        instantiating static member variables
4399      * [220]10700 ICE in copy_to_mode_reg on 64-bit targets
4400      * [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c
4401      * [222]10796 (c++) ICE when defining an enum with two values: -1 and
4402        MAX_INT_64BIT
4403      * [223]10890  ICE  in  merge_assigned_reloads  building Linux 2.4.2x
4404        sched.c
4405      * [224]10939 (c++) ICE with template code
4406      * [225]10956  (c++) ICE when specializing a template member function
4407        of a template class, in tsubst, in cp/pt.c
4408      * [226]11041  (c++)  ICE:  const  myclass &x = *x; (when operator*()
4409        defined)
4410      * [227]11059 (c++) ICE with empty union
4411      * [228]11083  (c++)  ICE  in  commit_one_edge_insertion, in cfgrtl.c
4412        with -O2 -fnon-call-exceptions
4413      * [229]11105 (c++) ICE in mangle_conv_op_name_for_type
4414      * [230]11149  (c++)  ICE  on  error  when  instantiation  with  call
4415        function of a base type
4416      * [231]11228  (c++)  ICE  on new-expression using array operator new
4417        and default-initialization
4418      * [232]11282 (c++) Infinite memory usage after syntax error
4419      * [233]11301 (fortran) ICE with -fno-globals
4420      * [234]11308  (c++) ICE when using an enum type name as if it were a
4421        class or namespace
4422      * [235]11473  (c++) ICE with -gstabs when empty struct inherits from
4423        an empty struct
4424      * [236]11503 (c++) ICE when instantiating template with ADDR_EXPR
4425      * [237]11513  (c++)  ICE  in  push_template_decl_real,  in  cp/pt.c:
4426        template member functions
4428     Optimization bugs
4430      * [238]11198  -O2  -frename-registers generates wrong code (aliasing
4431        problem)
4432      * [239]11304 Wrong code production with -fomit-frame-pointer
4433      * [240]11381 volatile memory access optimized away
4434      * [241]11536 [strength-reduce] -O2 optimization produces wrong code
4435      * [242]11557 constant folding bug generates wrong code
4437     C front end
4439      * [243]5897 No warning for statement after return
4440      * [244]11279 DWARF-2 output mishandles large enums
4442     Preprocessor bugs
4444      * [245]11022 no warning for non-compatible macro redefinition
4446     C++ compiler and library
4448      * [246]2330 static_cast<>() to a private base is allowed
4449      * [247]5388 Incorrect message "operands to ?: have different types"
4450      * [248]5390   Libiberty   fails  to  demangle  multi-digit  template
4451        parameters
4452      * [249]7877 Incorrect parameter passing to specializations of member
4453        function templates
4454      * [250]9393 Anonymous namespaces and compiling the same file twice
4455      * [251]10032 -pedantic converts some errors to warnings
4456      * [252]10468 const typeof(x) is non-const, but only in templates
4457      * [253]10527  confused  error  message  with  "new  int()" parameter
4458        initializer
4459      * [254]10679 parameter MIN_INLINE_INSNS is not honored
4460      * [255]10682  gcc  chokes  on  a  typedef for an enum inside a class
4461        template
4462      * [256]10689  pow(std::complex(0),1/3) returns (nan, nan) instead of
4463        0.
4464      * [257]10845  template  member  function  (with  nested  template as
4465        parameter)  cannot be called anymore if another unrelated template
4466        member function is defined
4467      * [258]10849  Cannot  define  an  out-of-class  specialization  of a
4468        private nested template class
4469      * [259]10888 Suppress -Winline warnings for system headers
4470      * [260]10929  -Winline warns about functions for which no definition
4471        is visible
4472      * [261]10931    valid    conversion    static_cast<const    unsigned
4473        int&>(lvalue-of-type-int) is rejected
4474      * [262]10940 Bad code with explicit specialization
4475      * [263]10968  If  member  function implicitly instantiated, explicit
4476        instantiation of class fails to instantiate it
4477      * [264]10990  Cannot  convert  with dynamic_cast<> to a private base
4478        class from within a member function
4479      * [265]11039  Bad  interaction between implicit typename deprecation
4480        and friendship
4481      * [266]11062   (libstdc++)   avoid   __attribute__  ((unused));  say
4482        "__unused__" instead
4483      * [267]11095  C++  iostream  manipulator causes segfault when called
4484        with negative argument
4485      * [268]11098  g++  doesn't  emit  complete debugging information for
4486        local variables in destructors
4487      * [269]11137  Linux  shared  library  constructors not called unless
4488        there's one global object
4489      * [270]11154   spurious   ambiguity   report   for   template  class
4490        specialization
4491      * [271]11329 Compiler cannot find user defined implicit typecast
4492      * [272]11332 Spurious error with casts in ?: expression
4493      * [273]11431  static_cast  behavior  with  subclasses  when  default
4494        constructor available
4495      * [274]11528 money_get facet does not accept "$.00" as valid
4496      * [275]11546  Type  lookup  problems  in out-of-line definition of a
4497        class doubly nested from a template class
4498      * [276]11567 C++ code containing templated member function with same
4499        name as pure virtual member function results in linking failure
4500      * [277]11645 Failure to deal with using and private inheritance
4502     Java compiler and library
4504      * [278]5179  Qualified  static  field  access doesn't initialize its
4505        class
4506      * [279]8204   gcj   -O2  to  native  reorders  certain  instructions
4507        improperly
4508      * [280]10838 java.io.ObjectInputStream syntax error
4509      * [281]10886  The  RMI  registry  that  comes with GCJ does not work
4510        correctly
4511      * [282]11349 JNDI URL context factories not located correctly
4513     x86-specific (Intel/AMD)
4515      * [283]4823 ICE on inline assembly code
4516      * [284]8878 miscompilation with -O and SSE
4517      * [285]9815  (c++  library)  atomicity.h - fails to compile with -O3
4518        -masm=intel
4519      * [286]10402  (inline assembly) [x86] ICE in merge_assigned_reloads,
4520        in reload1.c
4521      * [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2
4522      * [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source
4523      * [289]11044 [x86] out of range loop instructions for FP code on K6
4524      * [290]11089  ICE:  instantiate_virtual_regs_lossage while using SSE
4525        built-ins
4526      * [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC"
4527        is used
4529     SPARC- or Solaris- specific
4531      * [292]9362 solaris 'as' dies when fed .s and "-gstabs"
4532      * [293]10142   [SPARC64]   gcc  produces  wrong  code  when  passing
4533        structures by value
4534      * [294]10663 New configure check aborts with Sun tools.
4535      * [295]10835 combinatorial explosion in scheduler on HyperSPARC
4536      * [296]10876 ICE in calculate_giv_inc when building KDE
4537      * [297]10955  wrong code at -O3 for structure argument in context of
4538        structure return
4539      * [298]11018 -mcpu=ultrasparc busts tar-1.13.25
4540      * [299]11556  [sparc64]  ICE  in gen_reg_rtx() while compiling 2.6.x
4541        Linux kernel
4543     ia64 specific
4545      * [300]10907 gcc violates the ia64 ABI (GP must be preserved)
4546      * [301]11320 scheduler bug (in machine depended reorganization pass)
4547      * [302]11599 bug with conditional and __builtin_prefetch
4549     PowerPC specific
4551      * [303]9745  [powerpc]  gcc  mis-compiles  libmcrypt  (alias problem
4552        during loop)
4553      * [304]10871 error in rs6000_stack_info save_size computation
4554      * [305]11440   gcc   mis-compiles  c++  code  (libkhtml)  with  -O2,
4555        -fno-gcse cures it
4557     m68k-specific
4559      * [306]7594 [m68k] ICE on legal code associated with simplify-rtx
4560      * [307]10557 [m68k] ICE in subreg_offset_representable_p
4561      * [308]11054 [m68k] ICE in reg_overlap_mentioned_p
4563     ARM-specific
4565      * [309]10834  [arm]  GCC  3.3 still generates incorrect instructions
4566        for functions with __attribute__ ((interrupt ("IRQ")))
4567      * [310]10842  [arm]  Clobbered  link  register is copied to pc under
4568        certain circumstances
4569      * [311]11052 [arm] noce_process_if_block() can lose REG_INC notes
4570      * [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno
4571        (3.4)
4573     MIPS-specific
4575      * [313]11084 ICE in propagate_one_insn, in flow.c
4577     SH-specific
4579      * [314]10331 can't compile c++ part of gcc cross compiler for sh-elf
4580      * [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c
4581      * [316]11096  i686-linux to sh-linux cross compiler fails to compile
4582        C++ files
4584     GNU/Linux (or Hurd?) specific
4586      * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
4588     UnixWare specific
4590      * [318]3163   configure  bug:  gcc/aclocal.m4  mmap  test  fails  on
4591        UnixWare 7.1.1
4593     Cygwin (or mingw) specific
4595      * [319]5287 ICE with dllimport attribute
4596      * [320]10148 [MingW/CygWin] Compiler dumps core
4598     DJGPP specific
4600      * [321]8787  GCC  fails  to  emit  .intel_syntax  when  invoked with
4601        -masm=intel on DJGPP
4603     Darwin (and MacOS X) specific
4605      * [322]10900 trampolines crash
4607     Documentation
4609      * [323]1607 (c++) Format attributes on methods undocumented
4610      * [324]4252 Invalid option `-fdump-translation-unit'
4611      * [325]4490    Clarify    restrictions    on    -m96bit-long-double,
4612        -m128bit-long-double
4613      * [326]10355  document  an  issue  with  regparm  attribute  on some
4614        systems (e.g. Solaris)
4615      * [327]10726  (fortran)  Documentation for function "IDate Intrinsic
4616        (Unix)" is wrong
4617      * [328]10805 document bug in old version of Sun assembler
4618      * [329]10815 warn against GNU binutils on AIX
4619      * [330]10877 document need for newer binutils on i?86-*-linux-gnu
4620      * [331]11280 Manual incorrect with respect to -freorder-blocks
4621      * [332]11466  Document  -mlittle-endian and its restrictions for the
4622        sparc64 port
4624     Testsuite bugs (compiler itself is not affected)
4626      * [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly
4627        report failure
4628      * [334]10810   gcc-3.3   fails   make   check:   buffer  overrun  in
4629        test_demangle.c
4630      _________________________________________________________________
4632 GCC 3.3.2
4634   Bug Fixes
4636    This  section  lists  the  problem  reports  (PRs) from [335]GCC's bug
4637    tracking  system that are known to be fixed in the 3.3.2 release. This
4638    list might not be complete (that is, it is possible that some PRs that
4639    have been fixed are not listed here).
4641     Bootstrap failures and problems
4643      * [336]8336 [SCO5] bootstrap config still tries to use COFF options
4644      * [337]9330  [alpha-osf]  Bootstrap  failure  on  Compaq  Tru64 with
4645        --enable-threads=posix
4646      * [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap
4647      * [339]9877   fixincludes   makes  a  bad  sys/byteorder.h  on  svr5
4648        (UnixWare 7.1.1)
4649      * [340]11687 xstormy16-elf build fails in libf2c
4650      * [341]12263   [SGI   IRIX]   bootstrap   fails  during  compile  of
4651        libf2c/libI77/backspace.c
4652      * [342]12490  buffer  overflow  in  scan-decls.c  (during  Solaris 9
4653        fix-header processing)
4655     Internal compiler errors (multi-platform)
4657      * [343]7277 Casting integers to vector types causes ICE
4658      * [344]7939 (c++) ICE on invalid function template specialization
4659      * [345]11063 (c++) ICE on parsing initialization list of const array
4660        member
4661      * [346]11207 ICE with negative index in array element designator
4662      * [347]11522 (fortran) g77 dwarf-2 ICE in
4663        add_abstract_origin_attribute
4664      * [348]11595 (c++) ICE on duplicate label definition
4665      * [349]11646    (c++)    ICE   in   commit_one_edge_insertion   with
4666        -fnon-call-exceptions -fgcse -O
4667      * [350]11665 ICE in struct initializer when taking address
4668      * [351]11852 (c++) ICE with bad struct initializer.
4669      * [352]11878 (c++) ICE in cp_expr_size
4670      * [353]11883 ICE with any -O on mercury-generated C code
4671      * [354]11991   (c++)   ICE   in  cxx_incomplete_type_diagnostic,  in
4672        cp/typeck2.c  when  applying  typeid operator to template template
4673        parameter
4674      * [355]12146 ICE in lookup_template_function, in cp/pt.c
4675      * [356]12215   ICE  in  make_label_edge  with  -fnon-call-exceptions
4676        -fno-gcse -O2
4677      * [357]12369 (c++) ICE with templates and friends
4678      * [358]12446 ICE in emit_move_insn on complicated array reference
4679      * [359]12510 ICE in final_scan_insn
4680      * [360]12544 ICE with large parameters used in nested functions
4682     C and optimization bugs
4684      * [361]9862 spurious warnings with -W -finline-functions
4685      * [362]10962  lookup_field  is a linear search on a linked list (can
4686        be slow if large struct)
4687      * [363]11370 -Wunreachable-code gives false complaints
4688      * [364]11637 invalid assembly with -fnon-call-exceptions
4689      * [365]11885 Problem with bitfields in packed structs
4690      * [366]12082 Inappropriate unreachable code warnings
4691      * [367]12180 Inline optimization fails for variadic function
4692      * [368]12340 loop unroller + gcse produces wrong code
4694     C++ compiler and library
4696      * [369]3907 nested template parameter collides with member name
4697      * [370]5293   confusing  message  when  binding  a  temporary  to  a
4698        reference
4699      * [371]5296  [DR115] Pointers to functions and to template functions
4700        behave differently in deduction
4701      * [372]7939 ICE on function template specialization
4702      * [373]8656 Unable to assign function with __attribute__ and pointer
4703        return type to an appropriate variable
4704      * [374]10147  Confusing  error message for invalid template function
4705        argument
4706      * [375]11400 std::search_n() makes assumptions about Size parameter
4707      * [376]11409   issues  with  using  declarations,  overloading,  and
4708        built-in functions
4709      * [377]11740  ctype<wchar_t>::do_is(mask,  wchar_t)  doesn't  handle
4710        multiple bits in mask
4711      * [378]11786  operator()  call  on  variable  in other namespace not
4712        recognized
4713      * [379]11867 static_cast ignores ambiguity
4714      * [380]11928 bug with conversion operators that are typedefs
4715      * [381]12114 Uninitialized memory accessed in dtor
4716      * [382]12163 static_cast + explicit constructor regression
4717      * [383]12181 Wrong code with comma operator and c++
4718      * [384]12236 regparm and fastcall messes up parameters
4719      * [385]12266  incorrect  instantiation  of  unneeded template during
4720        overload resolution
4721      * [386]12296 istream::peek() doesn't set eofbit
4722      * [387]12298     [sjlj    exceptions]    Stack    unwind    destroys
4723        not-yet-constructed object
4724      * [388]12369 ICE with templates and friends
4725      * [389]12337 apparently infinite loop in g++
4726      * [390]12344 stdcall attribute ignored if function returns a pointer
4727      * [391]12451 missing(late) class forward declaration in cxxabi.h
4728      * [392]12486 g++ accepts invalid use of a qualified name
4730     x86 specific (Intel/AMD)
4732      * [393]8869  [x86  MMX] ICE with const variable optimization and MMX
4733        builtins
4734      * [394]9786  ICE  in fixup_abnormal_edges with -fnon-call-exceptions
4735        -O2
4736      * [395]11689 g++3.3 emits un-assembleable code for k6 architecture
4737      * [396]12116 [k6] Invalid assembly output values with X-MAME code
4738      * [397]12070  ICE  converting  between  double  and long double with
4739        -msoft-float
4741     ia64-specific
4743      * [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc
4744      * [399]11535 __builtin_return_address may not work on ia64
4745      * [400]11693 [ia64] ICE in gen_nop_type
4746      * [401]12224 [ia64] Thread-local storage doesn't work
4748     PowerPC-specific
4750      * [402]11087  [powerpc64-linux]  GCC  miscompiles raid1.c from linux
4751        kernel
4752      * [403]11319 loop miscompiled on ppc32
4753      * [404]11949 ICE Compiler segfault with ffmpeg -maltivec code
4755     SPARC-specific
4757      * [405]11662  wrong  code  for  expr.  with  cast  to  long long and
4758        exclusive or
4759      * [406]11965 invalid assembler code for a shift < 32 operation
4760      * [407]12301  (c++)  stack  corruption  when  a  returned expression
4761        throws an exception
4763     Alpha-specific
4765      * [408]11717  [alpha-linux]  unrecognizable  insn compiling for.c of
4766        kernel 2.4.22-pre8
4768     HPUX-specific
4770      * [409]11313 problem with #pragma weak and static inline functions
4771      * [410]11712 __STDC_EXT__ not defined for C++ by default anymore?
4773     Solaris specific
4775      * [411]12166 Profiled programs crash if PROFDIR is set
4777     Solaris-x86 specific
4779      * [412]12101 i386 Solaris no longer works with GNU as?
4781     Miscellaneous embedded target-specific bugs
4783      * [413]10988 [m32r-elf] wrong blockmove code with -O3
4784      * [414]11805  [h8300-unknown-coff]  [H8300] ICE for simple code with
4785        -O2
4786      * [415]11902 [sh4] spec file improperly inserts rpath even when none
4787        needed
4788      * [416]11903  [sh4] -pthread fails to link due to error in spec file
4789        on sh4
4790      _________________________________________________________________
4792 GCC 3.3.3
4794   Minor features
4796    In  addition  to the bug fixes documented below, this release contains
4797    few minor features such as:
4798      * Support for --with-sysroot
4799      * Support for automatic detection of executable stacks
4800      * Support for SSE3 instructions
4801      * Support for thread local storage debugging under GDB on S390
4803   Bug Fixes
4805    This  section  lists  the  problem  reports  (PRs) from [417]GCC's bug
4806    tracking  system that are known to be fixed in the 3.3.3 release. This
4807    list might not be complete (that is, it is possible that some PRs that
4808    have been fixed are not listed here).
4810     Bootstrap failures and issues
4812      * [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails
4813      * [419]12399  boehm-gc  fails  (when  building  a  cross  compiler):
4814        libtool unable to infer tagged configuration
4815      * [420]13068   mklibgcc.in   doesn't   handle  multi-level  multilib
4816        subdirectories properly
4818     Internal compiler errors (multi-platform)
4820      * [421]10060  ICE  (stack overflow) on huge file (300k lines) due to
4821        recursive behaviour of copy_rtx_if_shared, in emit_rtl.c
4822      * [422]10555 (c++) ICE on undefined template argument
4823      * [423]10706 (c++) ICE in mangle_class_name_for_template
4824      * [424]11496  (fortran) error in flow_loops_find when -funroll-loops
4825        active
4826      * [425]11741 ICE in pre_insert_copy_insn, in gcse.c
4827      * [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0
4828      * [427]12632 (fortran) -fbounds-check ICE
4829      * [428]12712  (c++)  ICE  on  short legit C++ code fragment with gcc
4830        3.3.2
4831      * [429]12726 (c++) ICE (segfault) on trivial code
4832      * [430]12890 (c++) ICE on compilation of class with throwing method
4833      * [431]12900 (c++) ICE in rtl_verify_flow_info_1
4834      * [432]13060  (fortran)  ICE  in  fixup_var_refs_1, in function.c on
4835        correct code with -O2 -fno-force-mem
4836      * [433]13289 (c++) ICE in regenerate_decl_from_template on recursive
4837        template
4838      * [434]13318 ICE: floating point exception in the loop optimizer
4839      * [435]13392   (c++)   ICE  in  convert_from_eh_region_ranges_1,  in
4840        except.c
4841      * [436]13574  (c++)  invalid array default initializer in class lets
4842        gcc consume all memory and die
4843      * [437]13475 ICE on SIMD variables with partial value initialization
4844      * [438]13797 (c++) ICE on invalid template parameter
4845      * [439]13824 (java) gcj SEGV with simple .java program
4847     C and optimization bugs
4849      * [440]8776 loop invariants are not removed (most likely)
4850      * [441]10339   [sparc,ppc,ppc64]   Invalid  optimization:  replacing
4851        strncmp by memcmp
4852      * [442]11350 undefined labels with -Os -fPIC
4853      * [443]12826 Optimizer removes reference through volatile pointer
4854      * [444]12500 stabs debug info: void no longer a predefined / builtin
4855        type
4856      * [445]12941 builtin-bitops-1.c miscompilation (latent bug)
4857      * [446]12953 tree inliner bug (in inline_forbidden_p) and fix
4858      * [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled
4859      * [448]13507 spurious printf format warning
4860      * [449]13382  Type  information  for const pointer disappears during
4861        optimization.
4862      * [450]13394 noreturn attribute ignored on recursive invokation
4863      * [451]13400 Compiled code crashes storing to read-only location
4864      * [452]13521 Endless loop in calculate_global_regs_live
4866     C++ compiler and library
4868    Some  of  the  bug fixes in this list were made to implement decisions
4869    that  the  ISO  C++  standards  committee  has made concerning several
4870    defect  reports  (DRs).  Links  in  the  list  below point to detailed
4871    discussion of the relevant defect report.
4872      * [453]2094  unimplemented:  use  of  `ptrmem_cst'  in template type
4873        unification
4874      * [454]2294 using declaration confusion
4875      * [455]5050  template  instantiation  depth exceeds limit: recursion
4876        problem?
4877      * [456]9371 Bad exception handling in
4878        i/ostream::operator>>/<<(streambuf*)
4879      * [457]9546 bad exception handling in ostream members
4880      * [458]10081  basic_ios::_M_cache_locale  leaves NULL members in the
4881        face of unknown locales
4882      * [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work
4883      * [461]10095   istream::operator>>(int&)   sets   ios::badbit   when
4884        ios::failbit is set.
4885      * [462]11554   Warning  about  reordering  of  initializers  doesn't
4886        mention location of constructor
4887      * [463]12297 istream::sentry::sentry() handles eof() incorrectly.
4888      * [464]12352 Exception safety problems in src/localename.cc
4889      * [465]12438 Memory leak in locale::combine()
4890      * [466]12540 Memory leak in locale::locale(const char*)
4891      * [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented
4892      * [470]12657 Resolution of [471]DR 292 (WP) still unimplemented
4893      * [472]12696  memory  eating  infinite  loop  in  diagnostics (error
4894        recovery problem)
4895      * [473]12815 Code compiled with optimization behaves unexpectedly
4896      * [474]12862  Conflicts  between typedefs/enums and namespace member
4897        declarations
4898      * [475]12926  Wrong  value after assignment in initialize list using
4899        bit-fields
4900      * [476]12967 Resolution of [477]DR 300 [WP] still unimplemented
4901      * [478]12971 Resolution of [479]DR 328 [WP] still unimplemented
4902      * [480]13007 basic_streambuf::pubimbue, imbue wrong
4903      * [481]13009  Implicitly-defined assignment operator writes to wrong
4904        memory
4905      * [482]13057 regparm attribute not applied to destructor
4906      * [483]13070 -Wformat option ignored in g++
4907      * [484]13081 forward template declarations in <complex> let inlining
4908        fail
4909      * [485]13239 Assertion does not seem to work correctly anymore
4910      * [486]13262  "xxx is private within this context" when initializing
4911        a self-contained template class
4912      * [487]13290 simple typo in concept checking for std::generate_n
4913      * [488]13323 Template code does not compile in presence of typedef
4914      * [489]13369 __verify_grouping (and __add_grouping?) not correct
4915      * [490]13371 infinite loop with packed struct and inlining
4916      * [491]13445 Template argument replacement "dereferences" a typedef
4917      * [492]13461 Fails to access protected-ctor from public constant
4918      * [493]13462 Non-standard-conforming type set::pointer
4919      * [494]13478  gcc  uses  wrong  constructor  to  initialize  a const
4920        reference
4921      * [495]13544 "conflicting types" for enums in different scopes
4922      * [496]13650     string::compare    should    not    (always)    use
4923        traits_type::length()
4924      * [497]13683 bogus warning about passing non-PODs through ellipsis
4925      * [498]13688  Derived class is denied access to protected base class
4926        member class
4927      * [499]13774 Member variable cleared in virtual multiple inheritance
4928        class
4929      * [500]13884 Protect sstream.tcc from extern template use
4931     Java compiler and library
4933      * [501]10746 [win32] garbage collection crash in GCJ
4935     Objective-C compiler and library
4937      * [502]11433  Crash  due to dereferencing null pointer when querying
4938        protocol
4940     Fortran compiler and library
4942      * [503]12633   logical   expression   gives  incorrect  result  with
4943        -fugly-logint option
4944      * [504]13037 [gcse-lm] g77 generates incorrect code
4945      * [505]13213  Hex constant problem when compiling with -fugly-logint
4946        and -ftypeless-boz
4948     x86-specific (Intel/AMD)
4950      * [506]4490 ICE with -m128bit-long-double
4951      * [507]12292  [x86_64]  ICE:  RTL  check: expected code `const_int',
4952        have `reg' in make_field_assignment, in combine.c
4953      * [508]12441 ICE: can't find a register to spill
4954      * [509]12943 array static-init failure under -fpic, -fPIC
4955      * [510]13608 Incorrect code with -O3 -ffast-math
4957     PowerPC-specific
4959      * [511]11598  testcase  gcc.dg/20020118-1.c  fails  runtime check of
4960        __attribute__((aligned(16)))
4961      * [512]11793 ICE in extract_insn, in recog.c (const_vector's)
4962      * [513]12467  vmsumubm  emitted  when  vmsummbm appropriate (typo in
4963        altivec.md)
4964      * [514]12537 g++ generates writeable text sections
4966     SPARC-specific
4968      * [515]12496  wrong  result  for __atomic_add(&value, -1) when using
4969        -O0 -m64
4970      * [516]12865 mprotect call to make trampoline executable may fail
4971      * [517]13354 ICE in sparc_emit_set_const32
4973     ARM-specific
4975      * [518]10467 [arm] ICE in pre_insert_copy_insn,
4977     ia64-specific
4979      * [519]11226 ICE passing struct arg with two floats
4980      * [520]11227 ICE for _Complex float, _Complex long double args
4981      * [521]12644 GCC 3.3.2 fails to compile glibc on ia64
4982      * [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn
4983      * Various fixes for libunwind
4985     Alpha-specific
4987      * [523]12654 Incorrect comparison code generated for Alpha
4988      * [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2
4989      * [525]13031     ICE    (unrecognizable    insn)    when    building
4990        gnome-libs-1.4.2
4992     HPPA-specific
4994      * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
4995      * [527]12158 [hppa] compilation does not terminate at -O1
4997     S390-specific
4999      * [528]11992  Wrong built-in code for memcmp with length 1<<24: only
5000        (1<<24)-1 possible for CLCL-Instruction
5002     SH-specific
5004      * [529]9365 segfault in gen_far_branch (config/sh/sh.c)
5005      * [530]10392 optimizer generates faulty array indexing
5006      * [531]11322 SH profiler outputs multiple definitions of symbol
5007      * [532]13069 gcc/config/sh/rtems.h broken
5008      * [533]13302 Putting a va_list in a struct causes seg fault
5009      * [534]13585 Incorrect optimization of call to sfunc
5010      * Fix  inappropriately  exported  libgcc  functions  from the shared
5011        library
5013     Other embedded target specific
5015      * [535]8916 [mcore] unsigned char assign gets hosed.
5016      * [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c
5017      * [537]13122  [h8300] local variable gets corrupted by function call
5018        when -fomit-frame-pointer is given
5019      * [538]13256 [cris] strict_low_part mistreated in delay slots
5020      * [539]13373   [mcore]   optimization   with  -frerun-cse-after-loop
5021        -fexpensive-optimizations produces wrong code on mcore
5023     GNU HURD-specific
5025      * [540]12561   gcc/config/t-gnu   needs   updating   to   work  with
5026        --with-sysroot
5028     Tru64 Unix specific
5030      * [541]6243  testsuite  fails  almost all tests due to no libintl in
5031        LD_LIBRARY_PATH during test.
5032      * [542]11397 weak aliases broken on Tru64 UNIX
5034     AIX-specific
5036      * [543]12505  build failure due to defines of uchar in cpphash.h and
5037        sys/types.h
5038      * [544]13150 WEAK symbols not exported by collect2
5040     IRIX-specific
5042      * [545]12666 fixincludes problem on IRIX 6.5.19m
5044     Solaris-specific
5046      * [546]12969 Including sys/byteorder.h breaks configure checks
5048     Testsuite problems (compiler is not affected)
5050      * [547]10819  testsuite  creates  CR+LF on compiler version lines in
5051        test summary files
5052      * [548]11612 abi_check not finding correct libgcc_s.so.1
5054     Miscellaneous
5056      * [549]13211 using -###, incorrect warnings about unused linker file
5057        are produced
5058      _________________________________________________________________
5060 GCC 3.3.4
5062    This is the [550]list of problem reports (PRs) from GCC's bug tracking
5063    system  that  are  known  to  be fixed in the 3.3.4 release. This list
5064    might not be complete (that is, it is possible that some PRs that have
5065    been fixed are not listed here).
5066      _________________________________________________________________
5068 GCC 3.3.5
5070    This is the [551]list of problem reports (PRs) from GCC's bug tracking
5071    system  that  are  known  to  be fixed in the 3.3.5 release. This list
5072    might not be complete (that is, it is possible that some PRs that have
5073    been fixed are not listed here).
5074      _________________________________________________________________
5076 GCC 3.3.6
5078    This is the [552]list of problem reports (PRs) from GCC's bug tracking
5079    system  that  are  known  to  be fixed in the 3.3.6 release. This list
5080    might not be complete (that is, it is possible that some PRs that have
5081    been fixed are not listed here).
5083    Please send FSF & GNU inquiries & questions to [553]gnu@gnu.org. There
5084    are also [554]other ways to contact the FSF.
5086    These pages are maintained by [555]the GCC team.
5089     For  questions  related  to the use of GCC, please consult these web
5090     pages    and    the   [556]GCC   manuals.   If   that   fails,   the
5091     [557]gcc-help@gcc.gnu.org mailing list might help.
5092     Please  send  comments on these web pages and the development of GCC
5093     to    our    developer   mailing   list   at   [558]gcc@gnu.org   or
5094     [559]gcc@gcc.gnu.org. All of our lists have [560]public archives.
5096    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
5097    Floor, Boston, MA 02110, USA.
5099    Verbatim  copying and distribution of this entire article is permitted
5100    in any medium, provided this notice is preserved.
5101    Last modified 2006-11-12 [561]Valid XHTML 1.0 
5103 References
5105    1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
5106    2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
5107    3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
5108    4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute
5109    5. http://gcc.gnu.org/news/dfa.html
5110    6. http://gcc.gnu.org/gcc-3.3/c99status.html
5111    7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
5112    8. http://gcc.gnu.org/PR10140
5113    9. http://gcc.gnu.org/PR10198
5114   10. http://gcc.gnu.org/PR10338
5115   11. http://gcc.gnu.org/PR3581
5116   12. http://gcc.gnu.org/PR4382
5117   13. http://gcc.gnu.org/PR5533
5118   14. http://gcc.gnu.org/PR6387
5119   15. http://gcc.gnu.org/PR6412
5120   16. http://gcc.gnu.org/PR6620
5121   17. http://gcc.gnu.org/PR6663
5122   18. http://gcc.gnu.org/PR7068
5123   19. http://gcc.gnu.org/PR7083
5124   20. http://gcc.gnu.org/PR7647
5125   21. http://gcc.gnu.org/PR7675
5126   22. http://gcc.gnu.org/PR7718
5127   23. http://gcc.gnu.org/PR8116
5128   24. http://gcc.gnu.org/PR8358
5129   25. http://gcc.gnu.org/PR8511
5130   26. http://gcc.gnu.org/PR8564
5131   27. http://gcc.gnu.org/PR8660
5132   28. http://gcc.gnu.org/PR8766
5133   29. http://gcc.gnu.org/PR8803
5134   30. http://gcc.gnu.org/PR8846
5135   31. http://gcc.gnu.org/PR8906
5136   32. http://gcc.gnu.org/PR9216
5137   33. http://gcc.gnu.org/PR9261
5138   34. http://gcc.gnu.org/PR9263
5139   35. http://gcc.gnu.org/PR9429
5140   36. http://gcc.gnu.org/PR9516
5141   37. http://gcc.gnu.org/PR9600
5142   38. http://gcc.gnu.org/PR9629
5143   39. http://gcc.gnu.org/PR9672
5144   40. http://gcc.gnu.org/PR9749
5145   41. http://gcc.gnu.org/PR9794
5146   42. http://gcc.gnu.org/PR9829
5147   43. http://gcc.gnu.org/PR9916
5148   44. http://gcc.gnu.org/PR9936
5149   45. http://gcc.gnu.org/PR10262
5150   46. http://gcc.gnu.org/PR10278
5151   47. http://gcc.gnu.org/PR10446
5152   48. http://gcc.gnu.org/PR10451
5153   49. http://gcc.gnu.org/PR10506
5154   50. http://gcc.gnu.org/PR10549
5155   51. http://gcc.gnu.org/PR2001
5156   52. http://gcc.gnu.org/PR2391
5157   53. http://gcc.gnu.org/PR2960
5158   54. http://gcc.gnu.org/PR4046
5159   55. http://gcc.gnu.org/PR6405
5160   56. http://gcc.gnu.org/PR6798
5161   57. http://gcc.gnu.org/PR6871
5162   58. http://gcc.gnu.org/PR6909
5163   59. http://gcc.gnu.org/PR7189
5164   60. http://gcc.gnu.org/PR7642
5165   61. http://gcc.gnu.org/PR8634
5166   62. http://gcc.gnu.org/PR8750
5167   63. http://gcc.gnu.org/PR2161
5168   64. http://gcc.gnu.org/PR4319
5169   65. http://gcc.gnu.org/PR8602
5170   66. http://gcc.gnu.org/PR9177
5171   67. http://gcc.gnu.org/PR9853
5172   68. http://gcc.gnu.org/PR45
5173   69. http://gcc.gnu.org/PR3784
5174   70. http://gcc.gnu.org/PR764
5175   71. http://gcc.gnu.org/PR5116
5176   72. http://gcc.gnu.org/PR2862
5177   73. http://gcc.gnu.org/PR3663
5178   74. http://gcc.gnu.org/PR3797
5179   75. http://gcc.gnu.org/PR3948
5180   76. http://gcc.gnu.org/PR4137
5181   77. http://gcc.gnu.org/PR4361
5182   78. http://gcc.gnu.org/PR4802
5183   79. http://gcc.gnu.org/PR5837
5184   80. http://gcc.gnu.org/PR4803
5185   81. http://gcc.gnu.org/PR5094
5186   82. http://gcc.gnu.org/PR5730
5187   83. http://gcc.gnu.org/PR6713
5188   84. http://gcc.gnu.org/PR7015
5189   85. http://gcc.gnu.org/PR7086
5190   86. http://gcc.gnu.org/PR7099
5191   87. http://gcc.gnu.org/PR7247
5192   88. http://gcc.gnu.org/PR7441
5193   89. http://gcc.gnu.org/PR7768
5194   90. http://gcc.gnu.org/PR7804
5195   91. http://gcc.gnu.org/PR8099
5196   92. http://gcc.gnu.org/PR8117
5197   93. http://gcc.gnu.org/PR8205
5198   94. http://gcc.gnu.org/PR8645
5199   95. http://gcc.gnu.org/PR8724
5200   96. http://gcc.gnu.org/PR8805
5201   97. http://gcc.gnu.org/PR8691
5202   98. http://gcc.gnu.org/PR8700
5203   99. http://gcc.gnu.org/PR8724
5204  100. http://gcc.gnu.org/PR8949
5205  101. http://gcc.gnu.org/PR9016
5206  102. http://gcc.gnu.org/PR9053
5207  103. http://gcc.gnu.org/PR9152
5208  104. http://gcc.gnu.org/PR9182
5209  105. http://gcc.gnu.org/PR9297
5210  106. http://gcc.gnu.org/PR9318
5211  107. http://gcc.gnu.org/PR9320
5212  108. http://gcc.gnu.org/PR9400
5213  109. http://gcc.gnu.org/PR9424
5214  110. http://gcc.gnu.org/PR9425
5215  111. http://gcc.gnu.org/PR9439
5216  112. http://gcc.gnu.org/PR9474
5217  113. http://gcc.gnu.org/PR9548
5218  114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
5219  115. http://gcc.gnu.org/PR9555
5220  116. http://gcc.gnu.org/PR9561
5221  117. http://gcc.gnu.org/PR9563
5222  118. http://gcc.gnu.org/PR9582
5223  119. http://gcc.gnu.org/PR9622
5224  120. http://gcc.gnu.org/PR9683
5225  121. http://gcc.gnu.org/PR9791
5226  122. http://gcc.gnu.org/PR9817
5227  123. http://gcc.gnu.org/PR9825
5228  124. http://gcc.gnu.org/PR9826
5229  125. http://gcc.gnu.org/PR9924
5230  126. http://gcc.gnu.org/PR9946
5231  127. http://gcc.gnu.org/PR9964
5232  128. http://gcc.gnu.org/PR9988
5233  129. http://gcc.gnu.org/PR10033
5234  130. http://gcc.gnu.org/PR10097
5235  131. http://gcc.gnu.org/PR10132
5236  132. http://gcc.gnu.org/PR10180
5237  133. http://gcc.gnu.org/PR10199
5238  134. http://gcc.gnu.org/PR10300
5239  135. http://gcc.gnu.org/PR10427
5240  136. http://gcc.gnu.org/PR10503
5241  137. http://gcc.gnu.org/PR5956
5242  138. http://gcc.gnu.org/PR1832
5243  139. http://gcc.gnu.org/PR3924
5244  140. http://gcc.gnu.org/PR5634
5245  141. http://gcc.gnu.org/PR6367
5246  142. http://gcc.gnu.org/PR6491
5247  143. http://gcc.gnu.org/PR6742
5248  144. http://gcc.gnu.org/PR7113
5249  145. http://gcc.gnu.org/PR7236
5250  146. http://gcc.gnu.org/PR7278
5251  147. http://gcc.gnu.org/PR7384
5252  148. http://gcc.gnu.org/PR7388
5253  149. http://gcc.gnu.org/PR8587
5254  150. http://gcc.gnu.org/PR9038
5255  151. http://gcc.gnu.org/PR10197
5256  152. http://gcc.gnu.org/PR6005
5257  153. http://gcc.gnu.org/PR6389
5258  154. http://gcc.gnu.org/PR6576
5259  155. http://gcc.gnu.org/PR6652
5260  156. http://gcc.gnu.org/PR7060
5261  157. http://gcc.gnu.org/PR7073
5262  158. http://gcc.gnu.org/PR7180
5263  159. http://gcc.gnu.org/PR7416
5264  160. http://gcc.gnu.org/PR7570
5265  161. http://gcc.gnu.org/PR7578
5266  162. http://gcc.gnu.org/PR7611
5267  163. http://gcc.gnu.org/PR7709
5268  164. http://gcc.gnu.org/PR7766
5269  165. http://gcc.gnu.org/PR7785
5270  166. http://gcc.gnu.org/PR7786
5271  167. http://gcc.gnu.org/PR8142
5272  168. http://gcc.gnu.org/PR8234
5273  169. http://gcc.gnu.org/PR8415
5274  170. http://gcc.gnu.org/PR8481
5275  171. http://gcc.gnu.org/PR8593
5276  172. http://gcc.gnu.org/PR8759
5277  173. http://gcc.gnu.org/PR8997
5278  174. http://gcc.gnu.org/PR9253
5279  175. http://gcc.gnu.org/PR9254
5280  176. http://gcc.gnu.org/PR9271
5281  177. http://gcc.gnu.org/PR6767
5282  178. http://gcc.gnu.org/PR9911
5283  179. http://gcc.gnu.org/PR10020
5284  180. http://gcc.gnu.org/PR10546
5285  181. http://gcc.gnu.org/PR7029
5286  182. http://gcc.gnu.org/PR2903
5287  183. http://gcc.gnu.org/PR7873
5288  184. http://gcc.gnu.org/PR7680
5289  185. http://gcc.gnu.org/PR8705
5290  186. http://gcc.gnu.org/PR9986
5291  187. http://gcc.gnu.org/PR10056
5292  188. http://gcc.gnu.org/PR6744
5293  189. http://gcc.gnu.org/PR7361
5294  190. http://gcc.gnu.org/PR9496
5295  191. http://gcc.gnu.org/PR7067
5296  192. http://gcc.gnu.org/PR8480
5297  193. http://gcc.gnu.org/PR8784
5298  194. http://gcc.gnu.org/PR10315
5299  195. http://gcc.gnu.org/PR10267
5300  196. http://gcc.gnu.org/PR7916
5301  197. http://gcc.gnu.org/PR7926
5302  198. http://gcc.gnu.org/PR8555
5303  199. http://gcc.gnu.org/PR8994
5304  200. http://gcc.gnu.org/PR9426
5305  201. http://gcc.gnu.org/PR9806
5306  202. http://gcc.gnu.org/PR10077
5307  203. http://gcc.gnu.org/PR10233
5308  204. http://gcc.gnu.org/PR10286
5309  205. http://gcc.gnu.org/PR10308
5310  206. http://gcc.gnu.org/PR11272
5311  207. http://gcc.gnu.org/PR5754
5312  208. http://gcc.gnu.org/PR6597
5313  209. http://gcc.gnu.org/PR6949
5314  210. http://gcc.gnu.org/PR7053
5315  211. http://gcc.gnu.org/PR8164
5316  212. http://gcc.gnu.org/PR8384
5317  213. http://gcc.gnu.org/PR9559
5318  214. http://gcc.gnu.org/PR9649
5319  215. http://gcc.gnu.org/PR9864
5320  216. http://gcc.gnu.org/PR10432
5321  217. http://gcc.gnu.org/PR10475
5322  218. http://gcc.gnu.org/PR10635
5323  219. http://gcc.gnu.org/PR10661
5324  220. http://gcc.gnu.org/PR10700
5325  221. http://gcc.gnu.org/PR10712
5326  222. http://gcc.gnu.org/PR10796
5327  223. http://gcc.gnu.org/PR10890
5328  224. http://gcc.gnu.org/PR10939
5329  225. http://gcc.gnu.org/PR10956
5330  226. http://gcc.gnu.org/PR11041
5331  227. http://gcc.gnu.org/PR11059
5332  228. http://gcc.gnu.org/PR11083
5333  229. http://gcc.gnu.org/PR11105
5334  230. http://gcc.gnu.org/PR11149
5335  231. http://gcc.gnu.org/PR11228
5336  232. http://gcc.gnu.org/PR11282
5337  233. http://gcc.gnu.org/PR11301
5338  234. http://gcc.gnu.org/PR11308
5339  235. http://gcc.gnu.org/PR11473
5340  236. http://gcc.gnu.org/PR11503
5341  237. http://gcc.gnu.org/PR11513
5342  238. http://gcc.gnu.org/PR11198
5343  239. http://gcc.gnu.org/PR11304
5344  240. http://gcc.gnu.org/PR11381
5345  241. http://gcc.gnu.org/PR11536
5346  242. http://gcc.gnu.org/PR11557
5347  243. http://gcc.gnu.org/PR5897
5348  244. http://gcc.gnu.org/PR11279
5349  245. http://gcc.gnu.org/PR11022
5350  246. http://gcc.gnu.org/PR2330
5351  247. http://gcc.gnu.org/PR5388
5352  248. http://gcc.gnu.org/PR5390
5353  249. http://gcc.gnu.org/PR7877
5354  250. http://gcc.gnu.org/PR9393
5355  251. http://gcc.gnu.org/PR10032
5356  252. http://gcc.gnu.org/PR10468
5357  253. http://gcc.gnu.org/PR10527
5358  254. http://gcc.gnu.org/PR10679
5359  255. http://gcc.gnu.org/PR10682
5360  256. http://gcc.gnu.org/PR10689
5361  257. http://gcc.gnu.org/PR10845
5362  258. http://gcc.gnu.org/PR10849
5363  259. http://gcc.gnu.org/PR10888
5364  260. http://gcc.gnu.org/PR10929
5365  261. http://gcc.gnu.org/PR10931
5366  262. http://gcc.gnu.org/PR10940
5367  263. http://gcc.gnu.org/PR10968
5368  264. http://gcc.gnu.org/PR10990
5369  265. http://gcc.gnu.org/PR11039
5370  266. http://gcc.gnu.org/PR11062
5371  267. http://gcc.gnu.org/PR11095
5372  268. http://gcc.gnu.org/PR11098
5373  269. http://gcc.gnu.org/PR11137
5374  270. http://gcc.gnu.org/PR11154
5375  271. http://gcc.gnu.org/PR11329
5376  272. http://gcc.gnu.org/PR11332
5377  273. http://gcc.gnu.org/PR11431
5378  274. http://gcc.gnu.org/PR11528
5379  275. http://gcc.gnu.org/PR11546
5380  276. http://gcc.gnu.org/PR11567
5381  277. http://gcc.gnu.org/PR11645
5382  278. http://gcc.gnu.org/PR5179
5383  279. http://gcc.gnu.org/PR8204
5384  280. http://gcc.gnu.org/PR10838
5385  281. http://gcc.gnu.org/PR10886
5386  282. http://gcc.gnu.org/PR11349
5387  283. http://gcc.gnu.org/PR4823
5388  284. http://gcc.gnu.org/PR8878
5389  285. http://gcc.gnu.org/PR9815
5390  286. http://gcc.gnu.org/PR10402
5391  287. http://gcc.gnu.org/PR10504
5392  288. http://gcc.gnu.org/PR10673
5393  289. http://gcc.gnu.org/PR11044
5394  290. http://gcc.gnu.org/PR11089
5395  291. http://gcc.gnu.org/PR11420
5396  292. http://gcc.gnu.org/PR9362
5397  293. http://gcc.gnu.org/PR10142
5398  294. http://gcc.gnu.org/PR10663
5399  295. http://gcc.gnu.org/PR10835
5400  296. http://gcc.gnu.org/PR10876
5401  297. http://gcc.gnu.org/PR10955
5402  298. http://gcc.gnu.org/PR11018
5403  299. http://gcc.gnu.org/PR11556
5404  300. http://gcc.gnu.org/PR10907
5405  301. http://gcc.gnu.org/PR11320
5406  302. http://gcc.gnu.org/PR11599
5407  303. http://gcc.gnu.org/PR9745
5408  304. http://gcc.gnu.org/PR10871
5409  305. http://gcc.gnu.org/PR11440
5410  306. http://gcc.gnu.org/PR7594
5411  307. http://gcc.gnu.org/PR10557
5412  308. http://gcc.gnu.org/PR11054
5413  309. http://gcc.gnu.org/PR10834
5414  310. http://gcc.gnu.org/PR10842
5415  311. http://gcc.gnu.org/PR11052
5416  312. http://gcc.gnu.org/PR11183
5417  313. http://gcc.gnu.org/PR11084
5418  314. http://gcc.gnu.org/PR10331
5419  315. http://gcc.gnu.org/PR10413
5420  316. http://gcc.gnu.org/PR11096
5421  317. http://gcc.gnu.org/PR2873
5422  318. http://gcc.gnu.org/PR3163
5423  319. http://gcc.gnu.org/PR5287
5424  320. http://gcc.gnu.org/PR10148
5425  321. http://gcc.gnu.org/PR8787
5426  322. http://gcc.gnu.org/PR10900
5427  323. http://gcc.gnu.org/PR1607
5428  324. http://gcc.gnu.org/PR4252
5429  325. http://gcc.gnu.org/PR4490
5430  326. http://gcc.gnu.org/PR10355
5431  327. http://gcc.gnu.org/PR10726
5432  328. http://gcc.gnu.org/PR10805
5433  329. http://gcc.gnu.org/PR10815
5434  330. http://gcc.gnu.org/PR10877
5435  331. http://gcc.gnu.org/PR11280
5436  332. http://gcc.gnu.org/PR11466
5437  333. http://gcc.gnu.org/PR10737
5438  334. http://gcc.gnu.org/PR10810
5439  335. http://gcc.gnu.org/bugzilla/
5440  336. http://gcc.gnu.org/PR8336
5441  337. http://gcc.gnu.org/PR9330
5442  338. http://gcc.gnu.org/PR9631
5443  339. http://gcc.gnu.org/PR9877
5444  340. http://gcc.gnu.org/PR11687
5445  341. http://gcc.gnu.org/PR12263
5446  342. http://gcc.gnu.org/PR12490
5447  343. http://gcc.gnu.org/PR7277
5448  344. http://gcc.gnu.org/PR7939
5449  345. http://gcc.gnu.org/PR11063
5450  346. http://gcc.gnu.org/PR11207
5451  347. http://gcc.gnu.org/PR11522
5452  348. http://gcc.gnu.org/PR11595
5453  349. http://gcc.gnu.org/PR11646
5454  350. http://gcc.gnu.org/PR11665
5455  351. http://gcc.gnu.org/PR11852
5456  352. http://gcc.gnu.org/PR11878
5457  353. http://gcc.gnu.org/PR11883
5458  354. http://gcc.gnu.org/PR11991
5459  355. http://gcc.gnu.org/PR12146
5460  356. http://gcc.gnu.org/PR12215
5461  357. http://gcc.gnu.org/PR12369
5462  358. http://gcc.gnu.org/PR12446
5463  359. http://gcc.gnu.org/PR12510
5464  360. http://gcc.gnu.org/PR12544
5465  361. http://gcc.gnu.org/PR9862
5466  362. http://gcc.gnu.org/PR10962
5467  363. http://gcc.gnu.org/PR11370
5468  364. http://gcc.gnu.org/PR11637
5469  365. http://gcc.gnu.org/PR11885
5470  366. http://gcc.gnu.org/PR12082
5471  367. http://gcc.gnu.org/PR12180
5472  368. http://gcc.gnu.org/PR12340
5473  369. http://gcc.gnu.org/PR3907
5474  370. http://gcc.gnu.org/PR5293
5475  371. http://gcc.gnu.org/PR5296
5476  372. http://gcc.gnu.org/PR7939
5477  373. http://gcc.gnu.org/PR8656
5478  374. http://gcc.gnu.org/PR10147
5479  375. http://gcc.gnu.org/PR11400
5480  376. http://gcc.gnu.org/PR11409
5481  377. http://gcc.gnu.org/PR11740
5482  378. http://gcc.gnu.org/PR11786
5483  379. http://gcc.gnu.org/PR11867
5484  380. http://gcc.gnu.org/PR11928
5485  381. http://gcc.gnu.org/PR12114
5486  382. http://gcc.gnu.org/PR12163
5487  383. http://gcc.gnu.org/PR12181
5488  384. http://gcc.gnu.org/PR12236
5489  385. http://gcc.gnu.org/PR12266
5490  386. http://gcc.gnu.org/PR12296
5491  387. http://gcc.gnu.org/PR12298
5492  388. http://gcc.gnu.org/PR12369
5493  389. http://gcc.gnu.org/PR12337
5494  390. http://gcc.gnu.org/PR12344
5495  391. http://gcc.gnu.org/PR12451
5496  392. http://gcc.gnu.org/PR12486
5497  393. http://gcc.gnu.org/PR8869
5498  394. http://gcc.gnu.org/PR9786
5499  395. http://gcc.gnu.org/PR11689
5500  396. http://gcc.gnu.org/PR12116
5501  397. http://gcc.gnu.org/PR12070
5502  398. http://gcc.gnu.org/PR11184
5503  399. http://gcc.gnu.org/PR11535
5504  400. http://gcc.gnu.org/PR11693
5505  401. http://gcc.gnu.org/PR12224
5506  402. http://gcc.gnu.org/PR11087
5507  403. http://gcc.gnu.org/PR11319
5508  404. http://gcc.gnu.org/PR11949
5509  405. http://gcc.gnu.org/PR11662
5510  406. http://gcc.gnu.org/PR11965
5511  407. http://gcc.gnu.org/PR12301
5512  408. http://gcc.gnu.org/PR11717
5513  409. http://gcc.gnu.org/PR11313
5514  410. http://gcc.gnu.org/PR11712
5515  411. http://gcc.gnu.org/PR12166
5516  412. http://gcc.gnu.org/PR12101
5517  413. http://gcc.gnu.org/PR10988
5518  414. http://gcc.gnu.org/PR11805
5519  415. http://gcc.gnu.org/PR11902
5520  416. http://gcc.gnu.org/PR11903
5521  417. http://gcc.gnu.org/bugzilla/
5522  418. http://gcc.gnu.org/PR11890
5523  419. http://gcc.gnu.org/PR12399
5524  420. http://gcc.gnu.org/PR13068
5525  421. http://gcc.gnu.org/PR10060
5526  422. http://gcc.gnu.org/PR10555
5527  423. http://gcc.gnu.org/PR10706
5528  424. http://gcc.gnu.org/PR11496
5529  425. http://gcc.gnu.org/PR11741
5530  426. http://gcc.gnu.org/PR12440
5531  427. http://gcc.gnu.org/PR12632
5532  428. http://gcc.gnu.org/PR12712
5533  429. http://gcc.gnu.org/PR12726
5534  430. http://gcc.gnu.org/PR12890
5535  431. http://gcc.gnu.org/PR12900
5536  432. http://gcc.gnu.org/PR13060
5537  433. http://gcc.gnu.org/PR13289
5538  434. http://gcc.gnu.org/PR13318
5539  435. http://gcc.gnu.org/PR13392
5540  436. http://gcc.gnu.org/PR13574
5541  437. http://gcc.gnu.org/PR13475
5542  438. http://gcc.gnu.org/PR13797
5543  439. http://gcc.gnu.org/PR13824
5544  440. http://gcc.gnu.org/PR8776
5545  441. http://gcc.gnu.org/PR10339
5546  442. http://gcc.gnu.org/PR11350
5547  443. http://gcc.gnu.org/PR12826
5548  444. http://gcc.gnu.org/PR12500
5549  445. http://gcc.gnu.org/PR12941
5550  446. http://gcc.gnu.org/PR12953
5551  447. http://gcc.gnu.org/PR13041
5552  448. http://gcc.gnu.org/PR13507
5553  449. http://gcc.gnu.org/PR13382
5554  450. http://gcc.gnu.org/PR13394
5555  451. http://gcc.gnu.org/PR13400
5556  452. http://gcc.gnu.org/PR13521
5557  453. http://gcc.gnu.org/PR2094
5558  454. http://gcc.gnu.org/PR2294
5559  455. http://gcc.gnu.org/PR5050
5560  456. http://gcc.gnu.org/PR9371
5561  457. http://gcc.gnu.org/PR9546
5562  458. http://gcc.gnu.org/PR10081
5563  459. http://gcc.gnu.org/PR10093
5564  460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
5565  461. http://gcc.gnu.org/PR10095
5566  462. http://gcc.gnu.org/PR11554
5567  463. http://gcc.gnu.org/PR12297
5568  464. http://gcc.gnu.org/PR12352
5569  465. http://gcc.gnu.org/PR12438
5570  466. http://gcc.gnu.org/PR12540
5571  467. http://gcc.gnu.org/PR12594
5572  468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
5573  469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
5574  470. http://gcc.gnu.org/PR12657
5575  471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
5576  472. http://gcc.gnu.org/PR12696
5577  473. http://gcc.gnu.org/PR12815
5578  474. http://gcc.gnu.org/PR12862
5579  475. http://gcc.gnu.org/PR12926
5580  476. http://gcc.gnu.org/PR12967
5581  477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
5582  478. http://gcc.gnu.org/PR12971
5583  479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
5584  480. http://gcc.gnu.org/PR13007
5585  481. http://gcc.gnu.org/PR13009
5586  482. http://gcc.gnu.org/PR13057
5587  483. http://gcc.gnu.org/PR13070
5588  484. http://gcc.gnu.org/PR13081
5589  485. http://gcc.gnu.org/PR13239
5590  486. http://gcc.gnu.org/PR13262
5591  487. http://gcc.gnu.org/PR13290
5592  488. http://gcc.gnu.org/PR13323
5593  489. http://gcc.gnu.org/PR13369
5594  490. http://gcc.gnu.org/PR13371
5595  491. http://gcc.gnu.org/PR13445
5596  492. http://gcc.gnu.org/PR13461
5597  493. http://gcc.gnu.org/PR13462
5598  494. http://gcc.gnu.org/PR13478
5599  495. http://gcc.gnu.org/PR13544
5600  496. http://gcc.gnu.org/PR13650
5601  497. http://gcc.gnu.org/PR13683
5602  498. http://gcc.gnu.org/PR13688
5603  499. http://gcc.gnu.org/PR13774
5604  500. http://gcc.gnu.org/PR13884
5605  501. http://gcc.gnu.org/PR10746
5606  502. http://gcc.gnu.org/PR11433
5607  503. http://gcc.gnu.org/PR12633
5608  504. http://gcc.gnu.org/PR13037
5609  505. http://gcc.gnu.org/PR13213
5610  506. http://gcc.gnu.org/PR4490
5611  507. http://gcc.gnu.org/PR12292
5612  508. http://gcc.gnu.org/PR12441
5613  509. http://gcc.gnu.org/PR12943
5614  510. http://gcc.gnu.org/PR13608
5615  511. http://gcc.gnu.org/PR11598
5616  512. http://gcc.gnu.org/PR11793
5617  513. http://gcc.gnu.org/PR12467
5618  514. http://gcc.gnu.org/PR12537
5619  515. http://gcc.gnu.org/PR12496
5620  516. http://gcc.gnu.org/PR12865
5621  517. http://gcc.gnu.org/PR13354
5622  518. http://gcc.gnu.org/PR10467
5623  519. http://gcc.gnu.org/PR11226
5624  520. http://gcc.gnu.org/PR11227
5625  521. http://gcc.gnu.org/PR12644
5626  522. http://gcc.gnu.org/PR13149
5627  523. http://gcc.gnu.org/PR12654
5628  524. http://gcc.gnu.org/PR12965
5629  525. http://gcc.gnu.org/PR13031
5630  526. http://gcc.gnu.org/PR11634
5631  527. http://gcc.gnu.org/PR12158
5632  528. http://gcc.gnu.org/PR11992
5633  529. http://gcc.gnu.org/PR9365
5634  530. http://gcc.gnu.org/PR10392
5635  531. http://gcc.gnu.org/PR11322
5636  532. http://gcc.gnu.org/PR13069
5637  533. http://gcc.gnu.org/PR13302
5638  534. http://gcc.gnu.org/PR13585
5639  535. http://gcc.gnu.org/PR8916
5640  536. http://gcc.gnu.org/PR11576
5641  537. http://gcc.gnu.org/PR13122
5642  538. http://gcc.gnu.org/PR13256
5643  539. http://gcc.gnu.org/PR13373
5644  540. http://gcc.gnu.org/PR12561
5645  541. http://gcc.gnu.org/PR6243
5646  542. http://gcc.gnu.org/PR11397
5647  543. http://gcc.gnu.org/PR12505
5648  544. http://gcc.gnu.org/PR13150
5649  545. http://gcc.gnu.org/PR12666
5650  546. http://gcc.gnu.org/PR12969
5651  547. http://gcc.gnu.org/PR10819
5652  548. http://gcc.gnu.org/PR11612
5653  549. http://gcc.gnu.org/PR13211
5654  550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4
5655  551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5
5656  552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6
5657  553. mailto:gnu@gnu.org
5658  554. http://www.gnu.org/home.html#ContactInfo
5659  555. http://gcc.gnu.org/about.html
5660  556. http://gcc.gnu.org/onlinedocs/
5661  557. mailto:gcc-help@gcc.gnu.org
5662  558. mailto:gcc@gnu.org
5663  559. mailto:gcc@gcc.gnu.org
5664  560. http://gcc.gnu.org/lists.html
5665  561. http://validator.w3.org/check/referer
5666 ======================================================================
5667 http://gcc.gnu.org/gcc-3.2/index.html
5669                            GCC 3.2 Release Series
5671    April 25, 2003
5673    The  [1]GNU project and the GCC developers are pleased to announce the
5674    release of GCC 3.2.3.
5676    The  purpose  of  the  GCC  3.2  release series is to provide a stable
5677    platform  for  OS  distributors to use building their next releases. A
5678    primary  objective  was  to stabilize the C++ ABI; we believe that the
5679    interface  to  the  compiler  and  the  C++  standard  library are now
5680    relatively stable.
5682    Be  aware  that  C++  code compiled by GCC 3.2.x will (in general) not
5683    interoperate with code compiled by GCC 3.1.1 or earlier.
5685    Please  refer  to our [2]detailed list of news, caveats, and bug-fixes
5686    for further information.
5688 Release History
5690    GCC 3.2.3
5691           April 25, 2003 ([3]changes)
5693    GCC 3.2.2
5694           February 5, 2003 ([4]changes)
5696    GCC 3.2.1
5697           November 19, 2002 ([5]changes)
5699    GCC 3.2
5700           August 14, 2002 ([6]changes)
5702 References and Acknowledgements
5704    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
5705    supports  several  other languages aside from C, it now stands for the
5706    GNU Compiler Collection.
5708    A  list  of [7]successful builds is updated as new information becomes
5709    available.
5711    The  GCC  developers would like to thank the numerous people that have
5712    contributed  new  features, improvements, bug fixes, and other changes
5713    as well as test results to GCC. This [8]amazing group of volunteers is
5714    what makes GCC successful.
5716    For  additional  information  about  GCC  please  refer  to the [9]GCC
5717    project web site or contact the [10]GCC development mailing list.
5719    To  obtain  GCC  please  use  [11]our mirror sites, one of the [12]GNU
5720    mirror sites, or our CVS server.
5722    Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
5723    are also [14]other ways to contact the FSF.
5725    These pages are maintained by [15]the GCC team.
5728     For  questions  related  to the use of GCC, please consult these web
5729     pages    and    the    [16]GCC   manuals.   If   that   fails,   the
5730     [17]gcc-help@gcc.gnu.org mailing list might help.
5731     Please  send  comments on these web pages and the development of GCC
5732     to    our    developer    mailing   list   at   [18]gcc@gnu.org   or
5733     [19]gcc@gcc.gnu.org. All of our lists have [20]public archives.
5735    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
5736    Floor, Boston, MA 02110, USA.
5738    Verbatim  copying and distribution of this entire article is permitted
5739    in any medium, provided this notice is preserved.
5740    Last modified 2006-06-21 [21]Valid XHTML 1.0 
5742 References
5744    1. http://www.gnu.org/
5745    2. http://gcc.gnu.org/gcc-3.2/changes.html
5746    3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
5747    4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2
5748    5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1
5749    6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2
5750    7. http://gcc.gnu.org/gcc-3.2/buildstat.html
5751    8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
5752    9. http://gcc.gnu.org/index.html
5753   10. mailto:gcc@gcc.gnu.org
5754   11. http://gcc.gnu.org/mirrors.html
5755   12. http://www.gnu.org/order/ftp.html
5756   13. mailto:gnu@gnu.org
5757   14. http://www.gnu.org/home.html#ContactInfo
5758   15. http://gcc.gnu.org/about.html
5759   16. http://gcc.gnu.org/onlinedocs/
5760   17. mailto:gcc-help@gcc.gnu.org
5761   18. mailto:gcc@gnu.org
5762   19. mailto:gcc@gcc.gnu.org
5763   20. http://gcc.gnu.org/lists.html
5764   21. http://validator.w3.org/check/referer
5765 ======================================================================
5766 http://gcc.gnu.org/gcc-3.2/changes.html
5768                            GCC 3.2 Release Series
5769                       Changes, New Features, and Fixes
5771    The latest release in the 3.2 release series is [1]GCC 3.2.3.
5773 Caveats and New Features
5775   Caveats
5777      * The    C++    compiler    does   not   correctly   zero-initialize
5778        pointers-to-data members. You must explicitly initialize them. For
5779        example:    int    S::*m(0);   will   work,   but   depending   on
5780        default-initialization  to  zero will not work. This bug cannot be
5781        fixed  in  GCC 3.2 without inducing unacceptable risks. It will be
5782        fixed in GCC 3.3.
5783      * This  GCC release is based on the GCC 3.1 sourcebase, and thus has
5784        all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has
5785        a  number  of  C++  ABI fixes which make its C++ compiler generate
5786        binary  code which is incompatible with the C++ compilers found in
5787        earlier GCC releases, including GCC 3.1 and GCC 3.1.1.
5789   Frontend Enhancements
5791     C/C++/Objective-C
5793      * The  method of constructing the list of directories to be searched
5794        for  header  files  has been revised. If a directory named by a -I
5795        option  is  a  standard  system  include  directory, the option is
5796        ignored  to  ensure  that  the  default  search  order  for system
5797        directories  and  the special treatment of system header files are
5798        not defeated.
5799      * The  C  and  Objective-C  compilers  no  longer accept the "Naming
5800        Types"  extension  (typedef foo = bar); it was already unavailable
5801        in  C++.  Code  which  uses  it will need to be changed to use the
5802        "typeof"  extension  instead:  typedef  typeof(bar)  foo. (We have
5803        removed  this extension without a period of deprecation because it
5804        has  caused  the  compiler  to  crash since version 3.0 and no one
5805        noticed  until  very  recently.  Thus  we  conclude  it  is not in
5806        widespread use.)
5808     C++
5810      * GCC 3.2 fixed serveral differences between the C++ ABI implemented
5811        in  GCC  and  the  multi-vendor standard, but more have been found
5812        since  the release. 3.2.1 adds a new warning, -Wabi, to warn about
5813        code  which  is  affected by these bugs. We will fix these bugs in
5814        some  future  release,  once  we  are confident that all have been
5815        found;  until then, it is our intention to make changes to the ABI
5816        only  if  they  are  necessary  for correct compilation of C++, as
5817        opposed to conformance to the ABI documents.
5818      * For  details  on  how  to  build  an  ABI  compliant  compiler for
5819        GNU/Linux systems, check the [3]common C++ ABI page.
5821   New Targets and Target Specific Improvements
5823     IA-32
5825      * Fixed a number of bugs in SSE and MMX intrinsics.
5826      * Fixed  common  compiler  crashes  with SSE instruction set enabled
5827        (implied by -march=pentium3, pentium4, athlon-xp)
5828      * __m128 and __m128i is not 128bit aligned when used in structures.
5830     x86-64
5832      * A  bug  whereby the compiler could generate bad code for bzero has
5833        been fixed.
5834      * ABI fixes (implying ABI incompatibilities with previous version in
5835        some corner cases)
5836      * Fixed prefetch code generation
5837      _________________________________________________________________
5839 GCC 3.2.3
5841    3.2.3  is  a bug fix release only; there are no new features that were
5842    not present in GCC 3.2.2.
5844   Bug Fixes
5846    This  section  lists the problem reports (PRs) from GCC's bug tracking
5847    system  that  are  known  to  be fixed in the 3.2.3 release. This list
5848    might not be complete (that is, it is possible that some PRs that have
5849    been  fixed  are  not  listed  here), and some of the titles have been
5850    changed to make them more clear.
5852     Internal Compiler Errors (multi-platform)
5854      * [4]3782:  (c++)  -quiet  -fstats  produces a segmentation fault in
5855        cc1plus
5856      * [5]6440: (c++) template specializations cause ICE
5857      * [6]7050: (c++) ICE on: (i ? get_string() : throw)
5858      * [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c)
5859      * [8]7982: (c++) ICE due to infinite recursion (using STL set)
5860      * [9]8068: exceedingly high (infinite) memory usage
5861      * [10]8178: ICE with __builtin_ffs
5862      * [11]8396: ICE in copy_to_mode_reg, in explow.c
5863      * [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c
5864      * [13]9768: ICE when optimizing inline code at -O2
5865      * [14]9798:     (c++)     Infinite     recursion    (segfault)    in
5866        cp/decl.c:push_using_directive with recursive using directives
5867      * [15]9799:  mismatching  structure initializer with nested flexible
5868        array member: ICE
5869      * [16]9928: ICE on duplicate enum declaration
5870      * [17]10114:  ICE  in  mem_loc_descriptor,  in  dwarf2out.c (affects
5871        sparc, alpha)
5872      * [18]10352: ICE in find_reloads_toplev
5873      * [19]10336: ICE with -Wunreachable-code
5875     C/optimizer bugs:
5877      * [20]8224: Incorrect joining of signed and unsigned division
5878      * [21]8613:   -O2  produces  wrong  code  with  builtin  strlen  and
5879        postincrements
5880      * [22]8828: gcc reports some code is unreachable when it is not
5881      * [23]9226: GCSE breaking argument passing
5882      * [24]9853: miscompilation of non-constant structure initializer
5883      * [25]9797: C99-style struct initializers are miscompiled
5884      * [26]9967:  Some  standard  C function calls should not be replaced
5885        when optimizing for size
5886      * [27]10116:  ce2: invalid merge of join_bb in the context of switch
5887        statements
5888      * [28]10171: wrong code for inlined function
5889      * [29]10175: -Wunreachable-code doesn't work for single lines
5891     C++ compiler and library:
5893      * [30]8316:  Confusing  diagnostic  for code that misuses conversion
5894        operators
5895      * [31]9169: filebuf output fails if codecvt<>::out returns noconv
5896      * [32]9420: incomplete type incorrectly reported
5897      * [33]9459:  typeof  in  return  type  specification of template not
5898        supported
5899      * [34]9507: filebuf::open handles ios_base::ate incorrectly
5900      * [35]9538: Out-of-bounds memory access in streambuf::sputbackc
5901      * [36]9602: Total confusion about template/friend/virtual/abstract
5902      * [37]9993:  destructor  not  called for local object created within
5903        and returned from infinite loop
5904      * [38]10167:    ieee_1003.1-2001   locale   specialisations   on   a
5905        glibc-2.3.2 system
5907     Java compiler and library:
5909      * [39]9652: libgcj build fails on irix6.5.1[78]
5910      * [40]10144:  gas  on  solaris  complains about bad .stabs lines for
5911        java, native as unaffected
5913     x86-specific (Intel/AMD):
5915      * [41]8746: gcc miscompiles Linux kernel ppa driver on x86
5916      * [42]9888: -mcpu=k6 -Os produces out of range loop instructions
5917      * [43]9638:  Cross-build  for  target i386-elf and i586-pc-linux-gnu
5918        failed
5919      * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib)
5920        failed
5922     SPARC-specific:
5924      * [45]7784: [Sparc] ICE in extract_insn, in recog.c
5925      * [46]7796:  sparc  extra failure with -m64 on execute/930921-1.c in
5926        unroll.c
5927      * [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc
5928      * [48]8366:  [Sparc]  C  testsuite  failure  with  -m64  -fpic -O in
5929        execute/loop-2d.c
5930      * [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc
5931      * [50]9414: Scheduling bug on Ultrasparc
5932      * [51]10067: GCC-3.2.2 outputs invalid asm on sparc64
5934     m68k-specific:
5936      * [52]7248: broken "inclusive or" code
5937      * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
5939     PowerPC-specific:
5941      * [54]9732: Wrong code with -O2 -fPIC
5942      * [55]10073: ICE: powerpc cannot split insn
5944     Alpha-specific:
5946      * [56]7702: optimization problem on a DEC alpha under OSF1
5947      * [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system
5949     HP-specific:
5951      * [58]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275)
5952      * [59]9953:  (ada)  gcc 3.2.x can't build 3.3-branch ada on HP-UX 10
5953        (missing symbol)
5954      * [60]10271:  Floating point args don't get reloaded across function
5955        calls with -O2
5957     MIPS specific:
5959      * [61]6362:  mips-irix6  gcc-3.1  C testsuite failure with -mips4 in
5960        compile/920501-4.c
5962     CRIS specific:
5964      * [62]10377: gcc-3.2.2 creates bad assembler code for cris
5966     Miscellaneous and minor bugs:
5968      * [63]6955: collect2 says "core dumped" when there is no core
5969      _________________________________________________________________
5971 GCC 3.2.2
5973    Beginning  with  3.2.2,  GCC's  Makefile suite supports redirection of
5974    make  install  by means of the DESTDIR variable. Parts of the GCC tree
5975    have  featured  that support long before, but now it is available even
5976    from the top level.
5978    Other than that, GCC 3.2.2 is a bug fix release only; there are no new
5979    features that were not present in GCC 3.2.1.
5981   Bug Fixes
5983    On  the  following  i386-based  systems GCC 3.2.1 broke the C ABI wrt.
5984    functions  returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped
5985    with  FreeBSD  5.0  does  not have this problem), Interix, a.out-based
5986    Linux  and  NetBSD,  OpenBSD,  and  Darwin. GCC 3.2.2 reverts this ABI
5987    change,  and  thus  restores  ABI-compatibility with previous releases
5988    (except GCC 3.2.1) on these platforms.
5990    This  section  lists the problem reports (PRs) from GCC's bug tracking
5991    system  that  are  known  to  be fixed in the 3.2.2 release. This list
5992    might not be complete (that is, it is possible that some PRs that have
5993    been  fixed  are  not  listed  here)  and some of the titles have been
5994    changed to make them more clear.
5996     Internal Compiler Errors (multi-platform)
5998      * [64]5919:  (c++)  ICE  when  passing  variable  array  to template
5999        function
6000      * [65]7129:  (c++)  ICE  with  min/max assignment operators (<?= and
6001        >?=)
6002      * [66]7507:  ICE  with  -O2  when  address  of  called function is a
6003        complicated expression
6004      * [67]7622:  ICE  with nested inline functions if function's address
6005        is taken
6006      * [68]7681:  (fortran)  ICE in compensate_edge, in reg-stack.c (also
6007        PR [69]9258)
6008      * [70]8031:  (c++)  ICE  in  code comparing typeids and casting from
6009        virtual base
6010      * [71]8275: ICE in simplify_subreg
6011      * [72]8332: (c++) builtin strlen/template interaction causes ICE
6012      * [73]8372: (c++) ICE on explicit call of destructor
6013      * [74]8439: (c, not c++) empty struct causes ICE
6014      * [75]8442: (c++) ICE with nested template classes
6015      * [76]8518: ICE when compiling mplayer ("extern inline" issue)
6016      * [77]8615:  (c++) ICE with out-of-range character constant template
6017        argument
6018      * [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307
6019      * [79]8799: (c++) ICE: error reporting routines re-entered
6020      * [80]9328: (c++) ICE with typeof(X) for overloaded X
6021      * [81]9465: (preprocessor) cpp -traditional ICE on null bytes
6023     C++ (compiler and library) bugs
6025      * [82]47: scoping in nested classes is broken
6026      * [83]6745: problems with iostream rdbuf() member function
6027      * [84]8214:  conversion  from  const  char* const to char* sometimes
6028        accepted illegally
6029      * [85]8493:  builtin  strlen  and  overload  resolution (same bug as
6030        [86]8332)
6031      * [87]8503: strange behaviour of function types
6032      * [88]8727:  compiler  confused  by  inheritance  from  an anonymous
6033        struct
6034      * [89]7445:    poor   performance   of   std::locale::classic()   in
6035        multi-threaded applications
6036      * [90]8230: mishandling of overflow in vector<T>::resize
6037      * [91]8399: sync_with_stdio(false) breaks unformatted input
6038      * [92]8662:  illegal  access  of  private member of unnamed class is
6039        accepted
6040      * [93]8707: "make distclean" fails in libstdc++-v3 directory
6041      * [94]8708: __USE_MALLOC doesn't work
6042      * [95]8790: Use of non-thread-safe strtok in src/localename.cc
6043      * [96]8887: Bug in date formats with --enable-clocale=generic
6044      * [97]9076: Call Frame Instructions are not handled correctly during
6045        unwind operation
6046      * [98]9151: std::setprecision limited to 16 digits when outputting a
6047        double to a stream
6048      * [99]9168: codecvt<char, char, mbstate_t> overwrites output buffers
6049      * [100]9269:  libstdc++ headers: explicit specialization of function
6050        must precede its first use
6051      * [101]9322:  return  value of basic_streambuf<>::getloc affected by
6052        locale::global
6053      * [102]9433: segfault in runtime support for dynamic_cast
6055     C and optimizer bugs
6057      * [103]8032:  GCC  incorrectly  initializes static structs that have
6058        flexible arrays
6059      * [104]8639: simple arithmetic expression broken
6060      * [105]8794: optimization improperly eliminates certain expressions
6061      * [106]8832: traditional "asm volatile" code is illegally optimized
6062      * [107]8988:  loop  optimizer  bug: with -O2, code is generated that
6063        segfaults (found on i386, bug present for all platforms)
6064      * [108]9492: structure copy clobbers subsequent stores to structure
6066     Objective-C bugs
6068      * [109]9267:   Objective-C  parser  won't  build  with  newer  bison
6069        versions (e.g. 1.875)
6071     Ada bugs
6073      * [110]8344:  Ada build problem due to conflict between gcc/final.o,
6074        gcc/ada/final.o
6076     Preprocessor bugs
6078      * [111]8524: _Pragma within macros is improperly expanded
6079      * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
6080        -fshort-wchar
6082     ARM-specific
6084      * [113]9090: arm ICE with >= -O2; regression from gcc-2.95
6086     x86-specific (Intel/AMD)
6088      * [114]8588:   ICE   in   extract_insn,   at   recog.c:NNNN   (shift
6089        instruction)
6090      * [115]8599: loop unroll bug with -march=k6-3
6091      * [116]9506:  ABI  breakage  in  structure  return  (affects BSD and
6092        Cygwin, but not GNU/Linux)
6094     FreeBSD 5.0 specific
6096      * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
6098     RTEMS-specific
6100      * [118]9292: hppa1.1-rtems configurery problems
6101      * [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug
6102      * [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue
6103      * [121]9296: gthr-rtems regression
6104      * [122]9316: powerpc-rtems: extending multilibs
6106     HP-PA specific
6108      * [123]9493: ICE with -O2 when building a simple function
6110     Documentation
6112      * [124]7341: hyperlink to gcov in GCC documentation doesn't work
6113      * [125]8947: Please add a warning about "-malign-double" in docs
6114      * [126]7448, [127]8882: typo cleanups
6115      _________________________________________________________________
6117 GCC 3.2.1
6119    3.2.1  adds  a  new  warning,  -Wabi.  This  option warns when GNU C++
6120    generates  code  that  is  known  not to be binary-compatible with the
6121    vendor-neutral  ia32/ia64 ABI. Please consult the GCC manual, included
6122    in the distribution, for details.
6124    This  release  also  removes an old GCC extension, "naming types", and
6125    the  documentation now directs users to use a different GCC extension,
6126    __typeof__,  instead.  The  feature  had  evidently  been broken for a
6127    while.
6129    Otherwise,  3.2.1  is a bug fix release only; other than bug fixes and
6130    the new warning there are no new features that were not present in GCC
6131    3.2.
6133    In  addition,  the  previous fix for [128]PR 7445 (poor performance of
6134    std::locale::classic()  in  multi-threaded  applications) was reverted
6135    ("unfixed"), because the "fix" was not thread-safe.
6137   Bug Fixes
6139    This  section  lists the problem reports (PRs) from GCC's bug tracking
6140    system  that  are  known  to  be fixed in the 3.2.1 release. This list
6141    might not be complete (that is, it is possible that some PRs that have
6142    been  fixed  are  not  listed here). As you can see, the number of bug
6143    fixes  is  quite  large,  so  it is strongly recommended that users of
6144    earlier GCC 3.x releases upgrade to GCC 3.2.1.
6146     Internal Compiler Errors (multi-platform)
6148      * [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c
6149      * [130]5661:  (c++)  ICE  instantiating template on array of unknown
6150        size (bad code)
6151      * [131]6419:  (c++)  ICE in make_decl_rtl for "longest" attribute on
6152        64-bit platforms
6153      * [132]6994: (c++) ICE in find_function_data
6154      * [133]7150: preprocessor: GCC -dM -E gives an ICE
6155      * [134]7160: ICE when optimizing branches without a return value
6156      * [135]7228:  (c++)  ICE  when  using  member  template and template
6157        function
6158      * [136]7266: (c++) ICE with -pedantic on missing typename
6159      * [137]7353: ICE from use of "Naming Types" extension, see above
6160      * [138]7411: ICE in instantiate_virtual_regs_1, in function.c
6161      * [139]7478: (c++) ICE on static_cast inside template
6162      * [140]7526:  preprocessor  core  dump  when _Pragma implies #pragma
6163        dependency
6164      * [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803
6165        is a duplicate)
6166      * [143]7754: (c++) ICE on union with template parameter
6167      * [144]7788:  (c++)  redeclaring a definition as an incomplete class
6168        causes ICE
6169      * [145]8031: (c++) ICE in comptypes, in cp/typeck.c
6170      * [146]8055:  preprocessor  dies  with  SIG11  when building FreeBSD
6171        kernel
6172      * [147]8067:  (c++)  ICE  due  to  mishandling  of  __FUNCTION__ and
6173        related variables
6174      * [148]8134: (c++) ICE in force_store_init_value on legal code
6175      * [149]8149: (c++) ICE on incomplete type
6176      * [150]8160:  (c++)  ICE in build_modify_expr, in cp/typeck.c: array
6177        initialization
6179     C++ (compiler and library) bugs
6181      * [151]5607: No pointer adjustment in covariant return types
6182      * [152]6579:  Infinite  loop  with  statement  expressions in member
6183        initialization
6184      * [153]6803: Default copy constructor bug in GCC 3.1
6185      * [154]7176: g++ confused by friend and static member with same name
6186      * [155]7188:  Segfault with template class and recursive (incorrect)
6187        initializer list
6188      * [156]7306:  Regression: GCC 3.x fails to compile code with virtual
6189        inheritance if a method has a variable number of arguments
6190      * [157]7461:  ctype<char>::classic_table()  returns  offset array on
6191        Cygwin
6192      * [158]7524: f(const float arg[3]) fails
6193      * [159]7584: Erroneous ambiguous base error on using declaration
6194      * [160]7676: Member template overloading problem
6195      * [161]7679: infinite loop when a right parenthesis is missing
6196      * [162]7811: default locale not taken from environment
6197      * [163]7961:   compare(   char   *)   implemented   incorrectly   in
6198        basic_string<>
6199      * [164]8071:  basic_ostream::operator<<(streambuf*) loops forever if
6200        streambuf::underflow()   leaves   gptr()  NULL  (dups:  [165]8127,
6201        [166]6745)
6202      * [167]8096:   deque::at()   throws   std::range_error   instead  of
6203        std::out_of_range
6204      * [168]8127: cout << cin.rdbuf() infinite loop
6205      * [169]8218:  Excessively  large  memory  consumed  for classes with
6206        large array members
6207      * [170]8287:  GCC  3.2:  Destructor called for non-constructed local
6208        object
6209      * [171]8347:  empty  vector range used in string construction causes
6210        core dump
6211      * [172]8348:  fail() flag is set in istringstream when eof() flag is
6212        set
6213      * [173]8391: regression: infinite loop in cp/decl2.c(finish_file)
6215     C and optimizer bugs
6217      * [174]6627:  -fno-align-functions  doesn't seem to disable function
6218        alignment
6219      * [175]6631: life_analysis misoptimizes code to initialize fields of
6220        a structure
6221      * [176]7102: unsigned char division results in floating exception
6222      * [177]7120:   Run   once   loop   should   *always*   be   unrolled
6223        (pessimization)
6224      * [178]7209: Bug involving array referencing and ?: operator
6225      * [179]7515: invalid inlining of global function with -O3
6226      * [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test
6227      * [181]8467: bug in sibling call optimization
6229     Preprocessor bugs
6231      * [182]4890:   incorrect   line   markers   from   the   traditional
6232        preprocessor
6233      * [183]7357:  -M  option  omits  system headers files (making it the
6234        same as -MM)
6235      * [184]7358: Changes to Sun's make Dependencies
6236      * [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as
6237        C headers
6238      * [186]7862: Interrupting GCC -MD removes .d file but not .o
6239      * [187]8190: Failed compilation deletes -MD dependency file
6240      * [188]8524: _Pragma within macro is improperly expanded
6242     x86 specific (Intel/AMD)
6244      * [189]5351:   (i686-only)  function  pass-by-value  structure  copy
6245        corrupts stack ([190]7591 is a duplicate)
6246      * [191]6845,    [192]7034,    [193]7124,   [194]7174:   ICE's   with
6247        -march=pentium3/pentium2/athlon (these are all the same underlying
6248        bug, in MMX register use)
6249      * [195]7134,  [196]7375,  [197]7390:  ICE  with -march=athlon (maybe
6250        same as above?)
6251      * [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken
6252      * [199]6981: wrong code in 64-bit manipulation on x86
6253      * [200]7242:      GCC      -mcpu=pentium[23]      doesn't     define
6254        __tune_pentiumpro__ macro
6255      * [201]7396:  ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE
6256        intrinsics are broken
6257      * [202]7630:  GCC  3.2  breaks  on  Mozilla  1.0's  JS  sources with
6258        -march=pentium4
6259      * [203]7693: Typo in i386 mmintrin.h header
6260      * [204]7723: ICE - Pentium3 sse - GCC 3.2
6261      * [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse
6262      * [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3
6264     PowerPC specific
6266      * [207]5967: GCC bug when profiling nested functions on powerpc
6267      * [208]6984:  wrong  code  generated with -O2, -O3, -Os for do-while
6268        loop on PowerPC
6269      * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
6270      * [210]7130:  miscompiled  code  for  GCC-3.1  in powerpc linux with
6271        -funroll-all-loops
6272      * [211]7133: PowerPC ICE: unrecognizable insn
6273      * [212]7380: ICE in extract_insn, at recog.c:2148
6274      * [213]8252: ICE on Altivec code with optimization turned on
6275      * [214]8451: Altivec ICE in GCC 3.2
6277     HP/PA specific
6279      * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa
6281     SPARC specific
6283      * [216]6668: when using --disable-multilib, libgcc_s.so is installed
6284        in the wrong place on sparc-solaris
6285      * [217]7151: ICE when compiling for UltraSPARC
6286      * [218]7335:  SPARC:  ICE  in verify_wide_reg (flow.c:557) with long
6287        double and -O1
6288      * [219]7842: [REGRESSION] SPARC code gen bug
6290     ARM specific
6292      * [220]7856: [arm] invalid offset in constant pool reference
6293      * [221]7967: optimization produces wrong code (ARM)
6295     Alpha specific
6297      * [222]7374: __builtin_fabsl broken on alpha
6299     IBM s390 specific
6301      * [223]7370: ICE in fixup_var_refs_1 on s390x
6302      * [224]7409: loop optimization bug on s390x-linux-gnu
6303      * [225]8232: s390x: ICE when using bcmp with int length argument
6305     SCO specific
6307      * [226]7623: SCO OpenServer build fails with machmode.def: undefined
6308        symbol: BITS_PER_UNIT
6310     m68k/Coldfire specific
6312      * [227]8314:  crtbegin,  crtend  need  to  be  multilib'ed  for this
6313        platform
6315     Documentation
6317      * [228]761: Document some undocumented options
6318      * [229]5610:  Fix  documentation  about  invoking  SSE  instructions
6319        (-mfpmath=sse)
6320      * [230]7484: List -Wmissing-declarations as C-only option
6321      * [231]7531: -mcmodel not documented for x86-64
6322      * [232]8120: Update documentation of bad use of ##
6323      _________________________________________________________________
6325 GCC 3.2
6327    3.2  is  a  small  bug  fix  release,  but  there  is  a change to the
6328    application  binary  interface  (ABI),  hence the change to the second
6329    part of the version number.
6331    The main purpose of the 3.2 release is to correct a couple of problems
6332    in  the  C++  ABI,  with the intention of providing a stable interface
6333    going forward.  Accordingly, 3.2 is only a small change to 3.1.1.
6335   Bug Fixes
6337     C++
6339      * [233]7320: g++ 3.2 relocation problem
6340      * [234]7470:  vtable:  virtual  function pointers not in declaration
6341        order
6343     libstdc++
6345      * [235]6410: Trouble with non-ASCII monetary symbols and wchar_t
6346      * [236]6503,   [237]6642,  [238]7186:  Problems  with  comparing  or
6347        subtracting various types of const and non-const iterators
6348      * [239]7216: ambiguity with basic_iostream::traits_type
6349      * [240]7220: problem with basic_istream::ignore(0,delimiter)
6350      * [241]7222: locale::operator==() doesn't work on std::locale("")
6351      * [242]7286: placement operator delete issue
6352      * [243]7442: cxxabi.h does not match the C++ ABI
6353      * [244]7445:   poor   performance   of   std::locale::classic()   in
6354        multi-threaded applications
6356     x86-64 specific
6358      * [245]7291: off-by-one in generated inline bzero code for x86-64
6360    Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There
6361    are also [247]other ways to contact the FSF.
6363    These pages are maintained by [248]the GCC team.
6366     For  questions  related  to the use of GCC, please consult these web
6367     pages    and    the   [249]GCC   manuals.   If   that   fails,   the
6368     [250]gcc-help@gcc.gnu.org mailing list might help.
6369     Please  send  comments on these web pages and the development of GCC
6370     to    our    developer   mailing   list   at   [251]gcc@gnu.org   or
6371     [252]gcc@gcc.gnu.org. All of our lists have [253]public archives.
6373    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
6374    Floor, Boston, MA 02110, USA.
6376    Verbatim  copying and distribution of this entire article is permitted
6377    in any medium, provided this notice is preserved.
6378    Last modified 2006-06-21 [254]Valid XHTML 1.0 
6380 References
6382    1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
6383    2. http://gcc.gnu.org/gcc-3.1/changes.html
6384    3. http://gcc.gnu.org/gcc-3.2/c++-abi.html
6385    4. http://gcc.gnu.org/PR3782
6386    5. http://gcc.gnu.org/PR6440
6387    6. http://gcc.gnu.org/PR7050
6388    7. http://gcc.gnu.org/PR7741
6389    8. http://gcc.gnu.org/PR7982
6390    9. http://gcc.gnu.org/PR8068
6391   10. http://gcc.gnu.org/PR8178
6392   11. http://gcc.gnu.org/PR8396
6393   12. http://gcc.gnu.org/PR8674
6394   13. http://gcc.gnu.org/PR9768
6395   14. http://gcc.gnu.org/PR9798
6396   15. http://gcc.gnu.org/PR9799
6397   16. http://gcc.gnu.org/PR9928
6398   17. http://gcc.gnu.org/PR10114
6399   18. http://gcc.gnu.org/PR10352
6400   19. http://gcc.gnu.org/PR10336
6401   20. http://gcc.gnu.org/PR8224
6402   21. http://gcc.gnu.org/PR8613
6403   22. http://gcc.gnu.org/PR8828
6404   23. http://gcc.gnu.org/PR9226
6405   24. http://gcc.gnu.org/PR9853
6406   25. http://gcc.gnu.org/PR9797
6407   26. http://gcc.gnu.org/PR9967
6408   27. http://gcc.gnu.org/PR10116
6409   28. http://gcc.gnu.org/PR10171
6410   29. http://gcc.gnu.org/PR10175
6411   30. http://gcc.gnu.org/PR8316
6412   31. http://gcc.gnu.org/PR9169
6413   32. http://gcc.gnu.org/PR9420
6414   33. http://gcc.gnu.org/PR9459
6415   34. http://gcc.gnu.org/PR9507
6416   35. http://gcc.gnu.org/PR9538
6417   36. http://gcc.gnu.org/PR9602
6418   37. http://gcc.gnu.org/PR9993
6419   38. http://gcc.gnu.org/PR10167
6420   39. http://gcc.gnu.org/PR9652
6421   40. http://gcc.gnu.org/PR10144
6422   41. http://gcc.gnu.org/PR8746
6423   42. http://gcc.gnu.org/PR9888
6424   43. http://gcc.gnu.org/PR9638
6425   44. http://gcc.gnu.org/PR9954
6426   45. http://gcc.gnu.org/PR7784
6427   46. http://gcc.gnu.org/PR7796
6428   47. http://gcc.gnu.org/PR8281
6429   48. http://gcc.gnu.org/PR8366
6430   49. http://gcc.gnu.org/PR8726
6431   50. http://gcc.gnu.org/PR9414
6432   51. http://gcc.gnu.org/PR10067
6433   52. http://gcc.gnu.org/PR7248
6434   53. http://gcc.gnu.org/PR8343
6435   54. http://gcc.gnu.org/PR9732
6436   55. http://gcc.gnu.org/PR10073
6437   56. http://gcc.gnu.org/PR7702
6438   57. http://gcc.gnu.org/PR9671
6439   58. http://gcc.gnu.org/PR8694
6440   59. http://gcc.gnu.org/PR9953
6441   60. http://gcc.gnu.org/PR10271
6442   61. http://gcc.gnu.org/PR6362
6443   62. http://gcc.gnu.org/PR10377
6444   63. http://gcc.gnu.org/PR6955
6445   64. http://gcc.gnu.org/PR5919
6446   65. http://gcc.gnu.org/PR7129
6447   66. http://gcc.gnu.org/PR7507
6448   67. http://gcc.gnu.org/PR7622
6449   68. http://gcc.gnu.org/PR7681
6450   69. http://gcc.gnu.org/PR9528
6451   70. http://gcc.gnu.org/PR8031
6452   71. http://gcc.gnu.org/PR8275
6453   72. http://gcc.gnu.org/PR8332
6454   73. http://gcc.gnu.org/PR8372
6455   74. http://gcc.gnu.org/PR8439
6456   75. http://gcc.gnu.org/PR8442
6457   76. http://gcc.gnu.org/PR8518
6458   77. http://gcc.gnu.org/PR8615
6459   78. http://gcc.gnu.org/PR8663
6460   79. http://gcc.gnu.org/PR8799
6461   80. http://gcc.gnu.org/PR9328
6462   81. http://gcc.gnu.org/PR9465
6463   82. http://gcc.gnu.org/PR47
6464   83. http://gcc.gnu.org/PR6745
6465   84. http://gcc.gnu.org/PR8214
6466   85. http://gcc.gnu.org/PR8493
6467   86. http://gcc.gnu.org/PR8332
6468   87. http://gcc.gnu.org/PR8503
6469   88. http://gcc.gnu.org/PR8727
6470   89. http://gcc.gnu.org/PR7445
6471   90. http://gcc.gnu.org/PR8230
6472   91. http://gcc.gnu.org/PR8399
6473   92. http://gcc.gnu.org/PR8662
6474   93. http://gcc.gnu.org/PR8707
6475   94. http://gcc.gnu.org/PR8708
6476   95. http://gcc.gnu.org/PR8790
6477   96. http://gcc.gnu.org/PR8887
6478   97. http://gcc.gnu.org/PR9076
6479   98. http://gcc.gnu.org/PR9151
6480   99. http://gcc.gnu.org/PR9168
6481  100. http://gcc.gnu.org/PR9269
6482  101. http://gcc.gnu.org/PR9322
6483  102. http://gcc.gnu.org/PR9433
6484  103. http://gcc.gnu.org/PR8032
6485  104. http://gcc.gnu.org/PR8639
6486  105. http://gcc.gnu.org/PR8794
6487  106. http://gcc.gnu.org/PR8832
6488  107. http://gcc.gnu.org/PR8988
6489  108. http://gcc.gnu.org/PR9492
6490  109. http://gcc.gnu.org/PR9267
6491  110. http://gcc.gnu.org/PR8344
6492  111. http://gcc.gnu.org/PR8524
6493  112. http://gcc.gnu.org/PR8880
6494  113. http://gcc.gnu.org/PR9090
6495  114. http://gcc.gnu.org/PR8588
6496  115. http://gcc.gnu.org/PR8599
6497  116. http://gcc.gnu.org/PR9506
6498  117. http://gcc.gnu.org/PR9484
6499  118. http://gcc.gnu.org/PR9292
6500  119. http://gcc.gnu.org/PR9293
6501  120. http://gcc.gnu.org/PR9295
6502  121. http://gcc.gnu.org/PR9296
6503  122. http://gcc.gnu.org/PR9316
6504  123. http://gcc.gnu.org/PR9493
6505  124. http://gcc.gnu.org/PR7341
6506  125. http://gcc.gnu.org/PR8947
6507  126. http://gcc.gnu.org/PR7448
6508  127. http://gcc.gnu.org/PR8882
6509  128. http://gcc.gnu.org/PR7445
6510  129. http://gcc.gnu.org/PR2521
6511  130. http://gcc.gnu.org/PR5661
6512  131. http://gcc.gnu.org/PR6419
6513  132. http://gcc.gnu.org/PR6994
6514  133. http://gcc.gnu.org/PR7150
6515  134. http://gcc.gnu.org/PR7160
6516  135. http://gcc.gnu.org/PR7228
6517  136. http://gcc.gnu.org/PR7266
6518  137. http://gcc.gnu.org/PR7353
6519  138. http://gcc.gnu.org/PR7411
6520  139. http://gcc.gnu.org/PR7478
6521  140. http://gcc.gnu.org/PR7526
6522  141. http://gcc.gnu.org/PR7721
6523  142. http://gcc.gnu.org/PR7803
6524  143. http://gcc.gnu.org/PR7754
6525  144. http://gcc.gnu.org/PR7788
6526  145. http://gcc.gnu.org/PR8031
6527  146. http://gcc.gnu.org/PR8055
6528  147. http://gcc.gnu.org/PR8067
6529  148. http://gcc.gnu.org/PR8134
6530  149. http://gcc.gnu.org/PR8149
6531  150. http://gcc.gnu.org/PR8160
6532  151. http://gcc.gnu.org/PR5607
6533  152. http://gcc.gnu.org/PR6579
6534  153. http://gcc.gnu.org/PR6803
6535  154. http://gcc.gnu.org/PR7176
6536  155. http://gcc.gnu.org/PR7188
6537  156. http://gcc.gnu.org/PR7306
6538  157. http://gcc.gnu.org/PR7461
6539  158. http://gcc.gnu.org/PR7524
6540  159. http://gcc.gnu.org/PR7584
6541  160. http://gcc.gnu.org/PR7676
6542  161. http://gcc.gnu.org/PR7679
6543  162. http://gcc.gnu.org/PR7811
6544  163. http://gcc.gnu.org/PR7961
6545  164. http://gcc.gnu.org/PR8071
6546  165. http://gcc.gnu.org/PR8127
6547  166. http://gcc.gnu.org/PR6745
6548  167. http://gcc.gnu.org/PR8096
6549  168. http://gcc.gnu.org/PR8127
6550  169. http://gcc.gnu.org/PR8218
6551  170. http://gcc.gnu.org/PR8287
6552  171. http://gcc.gnu.org/PR8347
6553  172. http://gcc.gnu.org/PR8348
6554  173. http://gcc.gnu.org/PR8391
6555  174. http://gcc.gnu.org/PR6627
6556  175. http://gcc.gnu.org/PR6631
6557  176. http://gcc.gnu.org/PR7102
6558  177. http://gcc.gnu.org/PR7120
6559  178. http://gcc.gnu.org/PR7209
6560  179. http://gcc.gnu.org/PR7515
6561  180. http://gcc.gnu.org/PR7814
6562  181. http://gcc.gnu.org/PR8467
6563  182. http://gcc.gnu.org/PR4890
6564  183. http://gcc.gnu.org/PR7357
6565  184. http://gcc.gnu.org/PR7358
6566  185. http://gcc.gnu.org/PR7602
6567  186. http://gcc.gnu.org/PR7862
6568  187. http://gcc.gnu.org/PR8190
6569  188. http://gcc.gnu.org/PR8524
6570  189. http://gcc.gnu.org/PR5351
6571  190. http://gcc.gnu.org/PR7591
6572  191. http://gcc.gnu.org/PR6845
6573  192. http://gcc.gnu.org/PR7034
6574  193. http://gcc.gnu.org/PR7124
6575  194. http://gcc.gnu.org/PR7174
6576  195. http://gcc.gnu.org/PR7134
6577  196. http://gcc.gnu.org/PR7375
6578  197. http://gcc.gnu.org/PR7390
6579  198. http://gcc.gnu.org/PR6890
6580  199. http://gcc.gnu.org/PR6981
6581  200. http://gcc.gnu.org/PR7242
6582  201. http://gcc.gnu.org/PR7396
6583  202. http://gcc.gnu.org/PR7630
6584  203. http://gcc.gnu.org/PR7693
6585  204. http://gcc.gnu.org/PR7723
6586  205. http://gcc.gnu.org/PR7951
6587  206. http://gcc.gnu.org/PR8146
6588  207. http://gcc.gnu.org/PR5967
6589  208. http://gcc.gnu.org/PR6984
6590  209. http://gcc.gnu.org/PR7114
6591  210. http://gcc.gnu.org/PR7130
6592  211. http://gcc.gnu.org/PR7133
6593  212. http://gcc.gnu.org/PR7380
6594  213. http://gcc.gnu.org/PR8252
6595  214. http://gcc.gnu.org/PR8451
6596  215. http://gcc.gnu.org/PR7250
6597  216. http://gcc.gnu.org/PR6668
6598  217. http://gcc.gnu.org/PR7151
6599  218. http://gcc.gnu.org/PR7335
6600  219. http://gcc.gnu.org/PR7842
6601  220. http://gcc.gnu.org/PR7856
6602  221. http://gcc.gnu.org/PR7967
6603  222. http://gcc.gnu.org/PR7374
6604  223. http://gcc.gnu.org/PR7370
6605  224. http://gcc.gnu.org/PR7409
6606  225. http://gcc.gnu.org/PR8232
6607  226. http://gcc.gnu.org/PR7623
6608  227. http://gcc.gnu.org/PR8314
6609  228. http://gcc.gnu.org/PR761
6610  229. http://gcc.gnu.org/PR5610
6611  230. http://gcc.gnu.org/PR7484
6612  231. http://gcc.gnu.org/PR7531
6613  232. http://gcc.gnu.org/PR8120
6614  233. http://gcc.gnu.org/PR7320
6615  234. http://gcc.gnu.org/PR7470
6616  235. http://gcc.gnu.org/PR6410
6617  236. http://gcc.gnu.org/PR6503
6618  237. http://gcc.gnu.org/PR6642
6619  238. http://gcc.gnu.org/PR7186
6620  239. http://gcc.gnu.org/PR7216
6621  240. http://gcc.gnu.org/PR7220
6622  241. http://gcc.gnu.org/PR7222
6623  242. http://gcc.gnu.org/PR7286
6624  243. http://gcc.gnu.org/PR7442
6625  244. http://gcc.gnu.org/PR7445
6626  245. http://gcc.gnu.org/PR7291
6627  246. mailto:gnu@gnu.org
6628  247. http://www.gnu.org/home.html#ContactInfo
6629  248. http://gcc.gnu.org/about.html
6630  249. http://gcc.gnu.org/onlinedocs/
6631  250. mailto:gcc-help@gcc.gnu.org
6632  251. mailto:gcc@gnu.org
6633  252. mailto:gcc@gcc.gnu.org
6634  253. http://gcc.gnu.org/lists.html
6635  254. http://validator.w3.org/check/referer
6636 ======================================================================
6637 http://gcc.gnu.org/gcc-3.1/index.html
6639                                   GCC 3.1
6641    July 27, 2002
6643    The  [1]GNU project and the GCC developers are pleased to announce the
6644    release of GCC 3.1.1.
6646    The links below still apply to GCC 3.1.1.
6648    May 15, 2002
6650    The  [2]GNU project and the GCC developers are pleased to announce the
6651    release of GCC 3.1.
6653    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
6654    supports  several  other languages aside from C, it now stands for the
6655    GNU Compiler Collection.
6657    A  list  of [3]successful builds is updated as new information becomes
6658    available.
6660    The  GCC  developers would like to thank the numerous people that have
6661    contributed  [4]new  features,  improvements,  bug  fixes,  and  other
6662    changes  as  well  as  test  results  to GCC. This [5]amazing group of
6663    volunteers is what makes GCC successful.
6665    For  additional  information  about  GCC  please  refer  to the [6]GCC
6666    project web site or contact the [7]GCC development mailing list.
6668    To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
6669    sites, or our CVS server.
6670      _________________________________________________________________
6672    Please  send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There
6673    are also [11]other ways to contact the FSF.
6675    These pages are maintained by [12]the GCC team.
6678     For  questions  related  to the use of GCC, please consult these web
6679     pages    and    the    [13]GCC   manuals.   If   that   fails,   the
6680     [14]gcc-help@gcc.gnu.org mailing list might help.
6681     Please  send  comments on these web pages and the development of GCC
6682     to    our    developer    mailing   list   at   [15]gcc@gnu.org   or
6683     [16]gcc@gcc.gnu.org. All of our lists have [17]public archives.
6685    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
6686    Floor, Boston, MA 02110, USA.
6688    Verbatim  copying and distribution of this entire article is permitted
6689    in any medium, provided this notice is preserved.
6690    Last modified 2006-06-21 [18]Valid XHTML 1.0 
6692 References
6694    1. http://www.gnu.org/
6695    2. http://www.gnu.org/
6696    3. http://gcc.gnu.org/gcc-3.1/buildstat.html
6697    4. http://gcc.gnu.org/gcc-3.1/changes.html
6698    5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
6699    6. http://gcc.gnu.org/index.html
6700    7. mailto:gcc@gcc.gnu.org
6701    8. http://gcc.gnu.org/mirrors.html
6702    9. http://www.gnu.org/order/ftp.html
6703   10. mailto:gnu@gnu.org
6704   11. http://www.gnu.org/home.html#ContactInfo
6705   12. http://gcc.gnu.org/about.html
6706   13. http://gcc.gnu.org/onlinedocs/
6707   14. mailto:gcc-help@gcc.gnu.org
6708   15. mailto:gcc@gnu.org
6709   16. mailto:gcc@gcc.gnu.org
6710   17. http://gcc.gnu.org/lists.html
6711   18. http://validator.w3.org/check/referer
6712 ======================================================================
6713 http://gcc.gnu.org/gcc-3.1/changes.html
6715                            GCC 3.1 Release Series
6716                       Changes, New Features, and Fixes
6718 Additional changes in GCC 3.1.1
6720      * A  bug  related to how structures and unions are returned has been
6721        fixed for powerpc-*-netbsd*.
6722      * An  important  bug in the implementation of -fprefetch-loop-arrays
6723        has  been  fixed.  Previously  the  optimization prefetched random
6724        blocks of memory for most targets except for i386.
6725      * The  Java compiler now compiles Java programs much faster and also
6726        works with parallel make.
6727      * Nested functions have been fixed for mips*-*-netbsd*.
6728      * Some  missing  floating point support routines have beed added for
6729        mips*-*-netbsd*.
6730      * This  [1]message gives additional information about the bugs fixed
6731        in this release.
6733 Caveats
6735      * The -traditional C compiler option has been deprecated and will be
6736        removed  in GCC 3.3. (It remains possible to preprocess non-C code
6737        with the traditional preprocessor.)
6738      * The  default  debugging  format  for most ELF platforms (including
6739        GNU/Linux  and  FreeBSD; notable exception is Solaris) has changed
6740        from stabs to DWARF2. This requires GDB 5.1.1 or later.
6742 General Optimizer Improvements
6744      * Jan  Hubicka, SuSE Labs, together with Richard Henderson, Red Hat,
6745        and  Andreas  Jaeger, SuSE Labs, has contributed [2]infrastructure
6746        for profile driven optimizations.
6747        Options  -fprofile-arcs and -fbranch-probabilities can now be used
6748        to  improve  speed  of  the generated code by profiling the actual
6749        program  behaviour on typical runs. In the absence of profile info
6750        the compiler attempts to guess the profile statically.
6751      * [3]SPEC2000  and  SPEC95  benchmark  suites  are now used daily to
6752        monitor performance of the generated code.
6753        According  to  the  SPECInt2000  results on an AMD Athlon CPU, the
6754        code generated by GCC 3.1 is 6% faster on the average (8.2% faster
6755        with  profile  feedback) compared to GCC 3.0. The code produced by
6756        GCC  3.0  is about 2.1% faster compared to 2.95.3. Tests were done
6757        using the -O2 -march=athlon command-line options.
6758      * Alexandre  Oliva,  of  Red  Hat, has generalized the tree inlining
6759        infrastructure  developed  by  CodeSourcery, LLC for the C++ front
6760        end,  so  that  it  is  now  used in the C front end too. Inlining
6761        functions as trees exposes them earlier to the compiler, giving it
6762        more opportunities for optimization.
6763      * Support  for  data  prefetching instructions has been added to the
6764        GCC  back  end  and  several  targets.  A  new  __builtin_prefetch
6765        intrinsic  is available to explicitly insert prefetch instructions
6766        and experimental support for loop array prefetching has been added
6767        (see -fprefetch-loop-array documentation).
6768      * Support  for  emitting  debugging  information for macros has been
6769        added for DWARF2. It is activated using -g3.
6771 New Languages and Language specific improvements
6773   C/C++
6775      * A few more [4]ISO C99 features.
6776      * The  preprocessor  is  10-50%  faster than the preprocessor in GCC
6777        3.0.
6778      * The  preprocessor's  symbol  table has been merged with the symbol
6779        table of the C, C++ and Objective-C front ends.
6780      * The preprocessor consumes less memory than the preprocessor in GCC
6781        3.0,  often  significantly so. On normal input files, it typically
6782        consumes less memory than pre-3.0 cccp-based GCC, too.
6784   C++
6786      * -fhonor-std  and  -fno-honor-std have been removed. -fno-honor-std
6787        was  a  workaround  to  allow  std compliant code to work with the
6788        non-std compliant libstdc++-v2. libstdc++-v3 is std compliant.
6789      * The  C++ ABI has been fixed so that void (A::*)() const is mangled
6790        as  "M1AKFvvE", rather than "MK1AFvvE" as before. This change only
6791        affects pointer to cv-qualified member function types.
6792      * The C++ ABI has been changed to correctly handle this code:
6793     struct A {
6794       void operator delete[] (void *, size_t);
6795     };
6797     struct B : public A {
6798     };
6800     new B[10];
6802        The amount of storage allocated for the array will be greater than
6803        it  was  in  3.0,  in order to store the number of elements in the
6804        array, so that the correct size can be passed to operator delete[]
6805        when  the  array  is  deleted.  Previously,  the  value  passed to
6806        operator delete[] was unpredictable.
6807        This  change  will  only  affect code that declares a two-argument
6808        operator delete[] with a second parameter of type size_t in a base
6809        class, and does not override that definition in a derived class.
6810      * The C++ ABI has been changed so that:
6811     struct A {
6812       void operator delete[] (void *, size_t);
6813       void operator delete[] (void *);
6814     };
6816        does  not  cause unnecessary storage to be allocated when an array
6817        of A objects is allocated.
6818        This  change  will  only  affect  code that declares both of these
6819        forms  of  operator  delete[],  and declared the two-argument form
6820        before the one-argument form.
6821      * The C++ ABI has been changed so that when a parameter is passed by
6822        value,  any cleanup for that parameter is performed in the caller,
6823        as  specified by the ia64 C++ ABI, rather than the called function
6824        as  before. As a result, classes with a non-trivial destructor but
6825        a  trivial  copy  constructor  will  be  passed  and  returned  by
6826        invisible reference, rather than by bitwise copy as before.
6827      * G++  now  supports the "named return value optimization": for code
6828        like
6829     A f () {
6830       A a;
6831       ...
6832       return a;
6833     }
6835        G++  will  allocate a in the return value slot, so that the return
6836        becomes  a  no-op.  For this to work, all return statements in the
6837        function must return the same variable.
6838      * Improvements  to the C++ library are listed in [5]the libstdc++-v3
6839        FAQ.
6841   Objective-C
6843      * Annoying  linker  warnings (due to incorrect code being generated)
6844        have been fixed.
6845      * If a class method cannot be found, the compiler no longer issues a
6846        warning  if  a  corresponding  instance  method exists in the root
6847        class.
6848      * Forward @protocol declarations have been fixed.
6849      * Loading  of  categories  has been fixed in certain situations (GNU
6850        run time only).
6851      * The  class  lookup  in  the run-time library has been rewritten so
6852        that  class  method dispatch is more than twice as fast as it used
6853        to be (GNU run time only).
6855   Java
6857      * libgcj   now  includes  RMI,  java.lang.ref.*,  javax.naming,  and
6858        javax.transaction.
6859      * Property  files  and  other  system resources can be compiled into
6860        executables which use libgcj using the new gcj --resource feature.
6861      * libgcj  has  been ported to more platforms. In particular there is
6862        now a mostly-functional mingw32 (Windows) target port.
6863      * JNI   and   CNI   invocation   interfaces   were  implemented,  so
6864        gcj-compiled Java code can now be called from a C/C++ application.
6865      * gcj  can  now use builtin functions for certain known methods, for
6866        instance Math.cos.
6867      * gcj  can  now automatically remove redundant array-store checks in
6868        some common cases.
6869      * The  --no-store-checks  optimization option was added. This can be
6870        used  to  omit runtime store checks for code which is known not to
6871        throw ArrayStoreException
6872      * The  following  third  party  interface  standards  were  added to
6873        libgcj: org.w3c.dom and org.xml.sax.
6874      * java.security  has been merged with GNU Classpath. The new package
6875        is now JDK 1.2 compliant, and much more complete.
6876      * A bytecode verifier was added to the libgcj interpreter.
6877      * java.lang.Character  was  rewritten to comply with the Unicode 3.0
6878        standard, and improve performance.
6879      * Partial support for many more locales was added to libgcj.
6880      * Socket timeouts have been implemented.
6881      * libgcj  has been merged into a single shared library. There are no
6882        longer  separate  shared  libraries  for the garbage collector and
6883        zlib.
6884      * Several performance improvements were made to gcj and libgcj:
6885           + Hash synchronization (thin locks)
6886           + A special allocation path for finalizer-free objects
6887           + Thread-local allocation
6888           + Parallel GC, and other GC tweaks
6890   Fortran
6892    Fortran improvements are listed in [6]the Fortran documentation.
6894   Ada
6896    [7]Ada  Core  Technologies, Inc, has contributed its GNAT Ada 95 front
6897    end  and  associated tools. The GNAT compiler fully implements the Ada
6898    language as defined by the ISO/IEC 8652 standard.
6900    Please note that the integration of the Ada front end is still work in
6901    progress.
6903 New Targets and Target Specific Improvements
6905      * Hans-Peter  Nilsson  has  contributed  a  port to [8]MMIX, the CPU
6906        architecture  used in new editions of Donald E. Knuth's The Art of
6907        Computer Programming.
6908      * [9]Axis  Communications  has  contributed its port to the CRIS CPU
6909        architecture,  used  in  the  ETRAX  system-on-a-chip  series. See
6910        [10]Axis' developer site for technical information.
6911      * Alexandre  Oliva,  of  Red  Hat,  has  contributed  a  port to the
6912        [11]SuperH  SH5 64-bit RISC microprocessor architecture, extending
6913        the existing SH port.
6914      * UltraSPARC  is  fully  supported  in  64-bit mode. The option -m64
6915        enables it.
6916      * For  compatibility  with the Sun compiler #pragma redefine_extname
6917        has been implemented on Solaris.
6918      * The x86 back end has had some noticeable work done to it.
6919           + SuSE  Labs  developers  Jan  Hubicka,  Bo Thorsen and Andreas
6920             Jaeger   have   contributed   a   port   to  the  AMD  x86-64
6921             architecture.    For   more   information   on   x86-64   see
6922             [12]http://www.x86-64.org.
6923           + The   compiler  now  supports  MMX,  3DNow!,  SSE,  and  SSE2
6924             instructions.  Options -mmmx, -m3dnow, -msse, and -msse2 will
6925             enable  the respective instruction sets. Intel C++ compatible
6926             MMX/3DNow!/SSE  intrinsics  are  implemented. SSE2 intrinsics
6927             will be added in next major release.
6928           + Following  those improvements, targets for Pentium MMX, K6-2,
6929             K6-3,  Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were
6930             added.  Refer  to  the  documentation  on  -march= and -mcpu=
6931             options for details.
6932           + For  those  targets  that support it, -mfpmath=sse will cause
6933             the  compiler  to generate SSE/SSE2 instructions for floating
6934             point  math  instead  of x87 instructions. Usually, this will
6935             lead  to  quicker  code  -- especially on the Pentium 4. Note
6936             that only scalar floating point instructions are used and GCC
6937             does not exploit SIMD features yet.
6938           + Prefetch  support  has been added to the Pentium III, Pentium
6939             4, K6-2, K6-3, and Athlon series.
6940           + Code  generated for floating point to integer conversions has
6941             been  improved  leading  to  better  performance  of  many 3D
6942             applications.
6943      * The PowerPC back end has added 64-bit PowerPC GNU/Linux support.
6944      * C++ support for AIX has been improved.
6945      * Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the
6946        PowerPC  port supporting the AltiVec programming model (SIMD). The
6947        support,  though presently useful, is experimental and is expected
6948        to  stabilize  for  3.2.  The  support  is  written  to conform to
6949        Motorola's AltiVec specs. See -maltivec.
6951 Obsolete Systems
6953    Support  for  a  number of older systems has been declared obsolete in
6954    GCC  3.1. Unless there is activity to revive them, the next release of
6955    GCC will have their sources permanently removed.
6957    All  configurations of the following processor architectures have been
6958    declared obsolete:
6959      * MIL-STD-1750A, 1750a-*-*
6960      * AMD A29k, a29k-*-*
6961      * Convex, c*-convex-*
6962      * Clipper, clipper-*-*
6963      * Elxsi, elxsi-*-*
6964      * Intel i860, i860-*-*
6965      * Sun picoJava, pj-*-* and pjl-*-*
6966      * Western Electric 32000, we32k-*-*
6968    Most configurations of the following processor architectures have been
6969    declared  obsolete, but we are preserving a few systems which may have
6970    active  developers.  It  is  unlikely  that the remaining systems will
6971    survive much longer unless we see definite signs of port activity.
6972      * Motorola 88000 except
6973           + Generic a.out, m88k-*-aout*
6974           + Generic SVR4, m88k-*-sysv4
6975           + OpenBSD, m88k-*-openbsd*
6976      * NS32k except
6977           + NetBSD, ns32k-*-netbsd*
6978           + OpenBSD, ns32k-*-openbsd*.
6979      * ROMP except
6980           + OpenBSD, romp-*-openbsd*.
6982    Finally, only some configurations of these processor architectures are
6983    being obsoleted.
6984      * Alpha:
6985           + OSF/1,  alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka
6986             alpha*-*-osf[45], are still supported.)
6987      * ARM:
6988           + RISCiX, arm-*-riscix*.
6989      * i386:
6990           + 386BSD, i?86-*-bsd*
6991           + Chorus, i?86-*-chorusos*
6992           + DG/UX, i?86-*-dgux*
6993           + FreeBSD 1.x, i?86-*-freebsd1.*
6994           + IBM AIX, i?86-*-aix*
6995           + ISC UNIX, i?86-*-isc*
6996           + Linux with pre-BFD linker, i?86-*-linux*oldld*
6997           + NEXTstep, i?86-next-*
6998           + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose*
6999           + RTEMS/coff, i?86-*-rtemscoff*
7000           + RTEMS/go32, i?86-go32-rtems*
7001           + Sequent/BSD, i?86-sequent-bsd*
7002           + Sequent/ptx   before  version  3,  i?86-sequent-ptx[12]*  and
7003             i?86-sequent-sysv3*
7004           + SunOS, i?86-*-sunos*
7005      * Motorola 68000:
7006           + Altos, m68[k0]*-altos-*
7007           + Apollo, m68[k0]*-apollo-*
7008           + Apple A/UX, m68[k0]*-apple-*
7009           + Bull, m68[k0]*-bull-*
7010           + Convergent, m68[k0]*-convergent-*
7011           + Generic SVR3, m68[k0]*-*-sysv3*
7012           + ISI, m68[k0]*-isi-*
7013           + LynxOS, m68[k0]*-*-lynxos*
7014           + NEXT, m68[k0]*-next-*
7015           + RTEMS/coff, m68[k0]*-*-rtemscoff*
7016           + Sony, m68[k0]*-sony-*
7017      * MIPS:
7018           + DEC Ultrix, mips-*-ultrix* and mips-dec-*
7019           + Generic BSD, mips-*-bsd*
7020           + Generic System V, mips-*-sysv*
7021           + IRIX before version 5, mips-sgi-irix[1234]*
7022           + RiscOS, mips-*-riscos*
7023           + Sony, mips-sony-*
7024           + Tandem, mips-tandem-*
7025      * SPARC:
7026           + RTEMS/a.out, sparc-*-rtemsaout*.
7028 Documentation improvements
7030      * The  old  manual ("Using and Porting the GNU Compiler Collection")
7031        has  been  replaced  by  a  users  manual ("Using the GNU Compiler
7032        Collection")  and  a  separate  internals  reference  manual ("GNU
7033        Compiler Collection Internals").
7034      * More complete and much improved documentation about GCC's internal
7035        representation used by the C and C++ front ends.
7036      * Many cleanups and improvements in general.
7038    Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
7039    are also [14]other ways to contact the FSF.
7041    These pages are maintained by [15]the GCC team.
7044     For  questions  related  to the use of GCC, please consult these web
7045     pages    and    the    [16]GCC   manuals.   If   that   fails,   the
7046     [17]gcc-help@gcc.gnu.org mailing list might help.
7047     Please  send  comments on these web pages and the development of GCC
7048     to    our    developer    mailing   list   at   [18]gcc@gnu.org   or
7049     [19]gcc@gcc.gnu.org. All of our lists have [20]public archives.
7051    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7052    Floor, Boston, MA 02110, USA.
7054    Verbatim  copying and distribution of this entire article is permitted
7055    in any medium, provided this notice is preserved.
7056    Last modified 2006-10-22 [21]Valid XHTML 1.0 
7058 References
7060    1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html
7061    2. http://gcc.gnu.org/news/profiledriven.html
7062    3. http://gcc.gnu.org/benchmarks/
7063    4. http://gcc.gnu.org/gcc-3.1/c99status.html
7064    5. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1
7065    6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
7066    7. http://www.gnat.com/
7067    8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html
7068    9. http://www.axis.com/
7069   10. http://developer.axis.com/
7070   11. http://www.superh.com/
7071   12. http://www.x86-64.org/
7072   13. mailto:gnu@gnu.org
7073   14. http://www.gnu.org/home.html#ContactInfo
7074   15. http://gcc.gnu.org/about.html
7075   16. http://gcc.gnu.org/onlinedocs/
7076   17. mailto:gcc-help@gcc.gnu.org
7077   18. mailto:gcc@gnu.org
7078   19. mailto:gcc@gcc.gnu.org
7079   20. http://gcc.gnu.org/lists.html
7080   21. http://validator.w3.org/check/referer
7081 ======================================================================
7082 http://gcc.gnu.org/gcc-3.0/gcc-3.0.html
7084                                  GCC 3.0.4
7086    February 20, 2002
7088    The  [1]GNU project and the GCC developers are pleased to announce the
7089    release  of  GCC  3.0.4,  which  is  a bug-fix release for the GCC 3.0
7090    series.
7092    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
7093    supports  several  other languages aside from C, it now stands for the
7094    GNU Compiler Collection.
7096    GCC  3.0.x  has  several new optimizations, new targets, new languages
7097    and  many  other  new features, relative to GCC 2.95.x. See the [2]new
7098    features page for a more complete list.
7100    A  list  of [3]successful builds is updated as new information becomes
7101    available.
7103    The  GCC  developers would like to thank the numerous people that have
7104    contributed  new  features,  test results, bug fixes, etc to GCC. This
7105    [4]amazing group of volunteers is what makes GCC successful.
7107    And  finally,  we  can't  in  good  conscience  fail  to  mention some
7108    [5]caveats to using GCC 3.0.x.
7110    For  additional  information  about  GCC  please  refer  to the [6]GCC
7111    project web site or contact the [7]GCC development mailing list.
7113    To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
7114    sites, or our CVS server.
7115      _________________________________________________________________
7117 Previous 3.0.x Releases
7119    December 20, 2001: GCC 3.0.3 has been released.
7120    October 25, 2001: GCC 3.0.2 has been released.
7121    August 20, 2001: GCC 3.0.1 has been released.
7122    June 18, 2001: GCC 3.0 has been released.
7124    Please  send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There
7125    are also [11]other ways to contact the FSF.
7127    These pages are maintained by [12]the GCC team.
7130     For  questions  related  to the use of GCC, please consult these web
7131     pages    and    the    [13]GCC   manuals.   If   that   fails,   the
7132     [14]gcc-help@gcc.gnu.org mailing list might help.
7133     Please  send  comments on these web pages and the development of GCC
7134     to    our    developer    mailing   list   at   [15]gcc@gnu.org   or
7135     [16]gcc@gcc.gnu.org. All of our lists have [17]public archives.
7137    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7138    Floor, Boston, MA 02110, USA.
7140    Verbatim  copying and distribution of this entire article is permitted
7141    in any medium, provided this notice is preserved.
7142    Last modified 2007-02-01 [18]Valid XHTML 1.0 
7144 References
7146    1. http://www.gnu.org/
7147    2. http://gcc.gnu.org/gcc-3.0/features.html
7148    3. http://gcc.gnu.org/gcc-3.0/buildstat.html
7149    4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
7150    5. http://gcc.gnu.org/gcc-3.0/caveats.html
7151    6. http://gcc.gnu.org/index.html
7152    7. mailto:gcc@gcc.gnu.org
7153    8. http://gcc.gnu.org/mirrors.html
7154    9. http://www.gnu.org/order/ftp.html
7155   10. mailto:gnu@gnu.org
7156   11. http://www.gnu.org/home.html#ContactInfo
7157   12. http://gcc.gnu.org/about.html
7158   13. http://gcc.gnu.org/onlinedocs/
7159   14. mailto:gcc-help@gcc.gnu.org
7160   15. mailto:gcc@gnu.org
7161   16. mailto:gcc@gcc.gnu.org
7162   17. http://gcc.gnu.org/lists.html
7163   18. http://validator.w3.org/check/referer
7164 ======================================================================
7165 http://gcc.gnu.org/gcc-3.0/features.html
7167                             GCC 3.0 New Features
7169 Additional changes in GCC 3.0.4
7171      * GCC  3.0  now  supports  newer versions of the [1]NetBSD operating
7172        system, which use the ELF object file format, on x86 processors.
7173      * Correct  debugging  information  is  generated from functions that
7174        have lines from multiple files (e.g. yacc output).
7175      * A  fix  for  whitespace handling in the -traditional preprocessor,
7176        which can affect Fortran.
7177      * Fixes to the exception handling runtime.
7178      * More fixes for bad code generation in C++.
7179      * A fix for shared library generation under AIX 4.3.
7180      * Documentation updates.
7181      * Port of GCC to Tensilica's Xtensa processor contributed.
7182      * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link).
7184 Additional changes in GCC 3.0.3
7186      * A fix to correct an accidental change to the PowerPC ABI.
7187      * Fixes for bad code generation on a variety of architectures.
7188      * Improvements  to  the  debugging  information  generated  for  C++
7189        classes.
7190      * Fixes for bad code generation in C++.
7191      * A fix to avoid crashes in the C++ demangler.
7192      * A fix to the C++ standard library to avoid buffer overflows.
7193      * Miscellaneous improvements for a variety of architectures.
7195 Additional changes in GCC 3.0.2
7197      * Fixes for bad code generation during loop unrolling.
7198      * Fixes for bad code generation by the sibling call optimization.
7199      * Minor improvements to x86 code generation.
7200      * Implementation of function descriptors in C++ vtables for IA64.
7201      * Numerous minor bug-fixes.
7203 Additional changes in GCC 3.0.1
7205      * C++ fixes for incorrect code-generation.
7206      * Improved cross-compiling support for the C++ standard library.
7207      * Fixes for some embedded targets that worked in GCC 2.95.3, but not
7208        in GCC 3.0.
7209      * Fixes for various exception-handling bugs.
7210      * A port to the S/390 architecture.
7212 General Optimizer Improvements
7214      * [2]Basic block reordering pass.
7215      * New  if-conversion  pass with support for conditional (predicated)
7216        execution.
7217      * New tail call and sibling call elimination optimizations.
7218      * New register renaming pass.
7219      * New    (experimental)    [3]static    single    assignment   (SSA)
7220        representation support.
7221      * New   dead-code   elimination   pass  implemented  using  the  SSA
7222        representation.
7223      * [4]Global null pointer test elimination.
7224      * [5]Global code hoisting/unification.
7225      * More  builtins and optimizations for stdio.h, string.h and old BSD
7226        functions, as well as for ISO C99 functions.
7227      * New  builtin  __builtin_expect  for  giving  hints  to  the branch
7228        predictor.
7230 New Languages and Language specific improvements
7232      * The GNU Compiler for the Java(TM) language (GCJ) is now integrated
7233        and  supported,  including  the  run-time  library containing most
7234        common non-GUI Java classes, a bytecode interpreter, and the Boehm
7235        conservative garbage collector. Many bugs have been fixed. GCJ can
7236        compile  Java  source  or  Java bytecodes to either native code or
7237        Java  class  files,  and supports native methods written in either
7238        the standard JNI or the more efficient and convenient CNI.
7239      * Here  is  a [6]partial list of C++ improvements, both new features
7240        and those no longer supported.
7241      * New   C++   ABI.   On   the  IA-64  platform  GCC  is  capable  of
7242        inter-operating with other IA-64 compilers.
7243      * The  new  ABI  also  significantly  reduces the size of symbol and
7244        debug information.
7245      * New  [7]C++  support  library  and  many  C++  bug  fixes,  vastly
7246        improving our conformance to the ISO C++ standard.
7247      * New [8]inliner for C++.
7248      * Rewritten C preprocessor, integrated into the C, C++ and Objective
7249        C compilers, with very many improvements including ISO C99 support
7250        and [9]improvements to dependency generation.
7251      * Support for more [10]ISO C99 features.
7252      * Many   improvements  to  support  for  checking  calls  to  format
7253        functions  such as printf and scanf, including support for ISO C99
7254        format features, extensions from the Single Unix Specification and
7255        GNU  libc  2.2, checking of strfmon formats and features to assist
7256        in auditing for format string security bugs.
7257      * New  warnings for C code that may have undefined semantics because
7258        of violations of sequence point rules in the C standard (such as a
7259        = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall.
7260      * Additional warning option -Wfloat-equal.
7261      * Improvements to -Wtraditional.
7262      * Fortran improvements are listed in [11]the Fortran documentation.
7264 New Targets and Target Specific Improvements
7266      * New x86 back-end, generating much improved code.
7267      * Support for a generic i386-elf target contributed.
7268      * New  option  to  emit  x86  assembly code using Intel style syntax
7269        (-mintel-syntax).
7270      * HPUX 11 support contributed.
7271      * Improved PowerPC code generation, including scheduled prologue and
7272        epilogue.
7273      * Port of GCC to Intel's IA-64 processor contributed.
7274      * Port of GCC to Motorola's MCore 210 and 340 contributed.
7275      * New unified back-end for Arm, Thumb and StrongArm contributed.
7276      * Port of GCC to Intel's XScale processor contributed.
7277      * Port of GCC to Atmel's AVR microcontrollers contributed.
7278      * Port of GCC to Mitsubishi's D30V processor contributed.
7279      * Port  of  GCC  to  Matsushita's  AM33  processor  (a member of the
7280        MN10300 processor family) contributed.
7281      * Port of GCC to Fujitsu's FR30 processor contributed.
7282      * Port   of   GCC   to   Motorola's  68HC11  and  68HC12  processors
7283        contributed.
7284      * Port of GCC to Sun's picoJava processor core contributed.
7286 Documentation improvements
7288      * Substantially rewritten and improved C preprocessor manual.
7289      * Many improvements to other documentation.
7290      * Manpages  for  gcc,  cpp  and gcov are now generated automatically
7291        from  the  master  Texinfo  manual,  eliminating  the  problem  of
7292        manpages  being  out  of  date.  (The  generated manpages are only
7293        extracts  from the full manual, which is provided in Texinfo form,
7294        from  which  info, HTML, other formats and a printed manual can be
7295        generated.)
7296      * Generated   info  files  are  included  in  the  release  tarballs
7297        alongside   their  Texinfo  sources,  avoiding  problems  on  some
7298        platforms with building makeinfo as part of the GCC distribution.
7300 Other significant improvements
7302      * Garbage collection used internally by the compiler for most memory
7303        allocation instead of obstacks.
7304      * Lengauer and Tarjan algorithm used for computing dominators in the
7305        CFG.  This  algorithm  can  be significantly faster and more space
7306        efficient than our older algorithm.
7307      * gccbug  script provided to assist in submitting bug reports to our
7308        bug tracking system. (Bug reports previously submitted directly to
7309        our  mailing lists, for which you received no bug tracking number,
7310        should  be  submitted  again using gccbug if you can reproduce the
7311        problem with GCC 3.0.)
7312      * The  internal  libgcc  library is [12]built as a shared library on
7313        systems that support it.
7314      * Extensive  testsuite  included  with  GCC, with many new tests. In
7315        addition  to  tests  for GCC bugs that have been fixed, many tests
7316        have  been  added  for  language  features,  compiler warnings and
7317        builtin functions.
7318      * Additional    language-independent   warning   options   -Wpacked,
7319        -Wpadded, -Wunreachable-code and -Wdisabled-optimization.
7320      * Target-independent  options  -falign-functions,  -falign-loops and
7321        -falign-jumps.
7323    Plus  a  great many bug fixes and almost all the [13]features found in
7324    GCC 2.95.
7326    Please  send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
7327    are also [15]other ways to contact the FSF.
7329    These pages are maintained by [16]the GCC team.
7332     For  questions  related  to the use of GCC, please consult these web
7333     pages    and    the    [17]GCC   manuals.   If   that   fails,   the
7334     [18]gcc-help@gcc.gnu.org mailing list might help.
7335     Please  send  comments on these web pages and the development of GCC
7336     to    our    developer    mailing   list   at   [19]gcc@gnu.org   or
7337     [20]gcc@gcc.gnu.org. All of our lists have [21]public archives.
7339    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7340    Floor, Boston, MA 02110, USA.
7342    Verbatim  copying and distribution of this entire article is permitted
7343    in any medium, provided this notice is preserved.
7344    Last modified 2007-02-01 [22]Valid XHTML 1.0 
7346 References
7348    1. http://www.netbsd.org/
7349    2. http://gcc.gnu.org/news/reorder.html
7350    3. http://gcc.gnu.org/news/ssa.html
7351    4. http://gcc.gnu.org/news/null.html
7352    5. http://gcc.gnu.org/news/unify.html
7353    6. http://gcc.gnu.org/gcc-3.0/c++features.html
7354    7. http://gcc.gnu.org/libstdc++/
7355    8. http://gcc.gnu.org/news/inlining.html
7356    9. http://gcc.gnu.org/news/dependencies.html
7357   10. http://gcc.gnu.org/gcc-3.0/c99status.html
7358   11. http://gcc.gnu.org/onlinedocs/g77/News.html
7359   12. http://gcc.gnu.org/gcc-3.0/libgcc.html
7360   13. http://gcc.gnu.org/gcc-2.95/features.html
7361   14. mailto:gnu@gnu.org
7362   15. http://www.gnu.org/home.html#ContactInfo
7363   16. http://gcc.gnu.org/about.html
7364   17. http://gcc.gnu.org/onlinedocs/
7365   18. mailto:gcc-help@gcc.gnu.org
7366   19. mailto:gcc@gnu.org
7367   20. mailto:gcc@gcc.gnu.org
7368   21. http://gcc.gnu.org/lists.html
7369   22. http://validator.w3.org/check/referer
7370 ======================================================================
7371 http://gcc.gnu.org/gcc-3.0/caveats.html
7373                               GCC 3.0 Caveats
7375      * -fstrict-aliasing  is  now  part  of  -O2  and higher optimization
7376        levels.  This allows the compiler to assume the strictest aliasing
7377        rules  applicable  to  the language being compiled. For C and C++,
7378        this  activates  optimizations  based  on the type of expressions.
7379        This optimization may thus break old, non-compliant code.
7380      * Enumerations   are  now  properly  promoted  to  int  in  function
7381        parameters  and  function  returns.  Normally  this  change is not
7382        visible, but when using -fshort-enums this is an ABI change.
7383      * The undocumented extension that allowed C programs to have a label
7384        at  the end of a compound statement has been deprecated and may be
7385        removed  in a future version. Programs that now generate a warning
7386        about  this  may  be  fixed  by  adding a null statement (a single
7387        semicolon) after the label.
7388      * The  poorly  documented extension that allowed string constants in
7389        C,  C++  and  Objective  C  to contain unescaped newlines has been
7390        deprecated  and may be removed in a future version. Programs using
7391        this  extension may be fixed in several ways: the bare newline may
7392        be replaced by \n, or preceded by \n\, or string concatenation may
7393        be  used with the bare newline preceded by \n" and " placed at the
7394        start of the next line.
7395      * The Chill compiler is not included in GCC 3.0, because of the lack
7396        of a volunteer to convert it to use garbage collection.
7397      * Certain  non-standard  iostream  methods  from earlier versions of
7398        libstdc++  are not included in libstdc++ v3, i.e. filebuf::attach,
7399        ostream::form,  and  istream::gets. Here are workaround hints for:
7400        [1]ostream::form, [2]filebuf::attach.
7401      * The  new  C++  ABI  is  not  yet fully supported by current (as of
7402        2001-07-01)  releases  and  development  versions  of  GDB, or any
7403        earlier  versions.  There is a problem setting breakpoints by line
7404        number,  and  other related issues that have been fixed in GCC 3.0
7405        but not yet handled in GDB:
7406        [3]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
7408    Please  send  FSF & GNU inquiries & questions to [4]gnu@gnu.org. There
7409    are also [5]other ways to contact the FSF.
7411    These pages are maintained by [6]the GCC team.
7414     For  questions  related  to the use of GCC, please consult these web
7415     pages    and    the    [7]GCC    manuals.   If   that   fails,   the
7416     [8]gcc-help@gcc.gnu.org mailing list might help.
7417     Please  send  comments on these web pages and the development of GCC
7418     to    our    developer    mailing    list   at   [9]gcc@gnu.org   or
7419     [10]gcc@gcc.gnu.org. All of our lists have [11]public archives.
7421    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7422    Floor, Boston, MA 02110, USA.
7424    Verbatim  copying and distribution of this entire article is permitted
7425    in any medium, provided this notice is preserved.
7426    Last modified 2006-06-21 [12]Valid XHTML 1.0 
7428 References
7430    1. http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html
7431    2. http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html
7432    3. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
7433    4. mailto:gnu@gnu.org
7434    5. http://www.gnu.org/home.html#ContactInfo
7435    6. http://gcc.gnu.org/about.html
7436    7. http://gcc.gnu.org/onlinedocs/
7437    8. mailto:gcc-help@gcc.gnu.org
7438    9. mailto:gcc@gnu.org
7439   10. mailto:gcc@gcc.gnu.org
7440   11. http://gcc.gnu.org/lists.html
7441   12. http://validator.w3.org/check/referer
7442 ======================================================================
7443 http://gcc.gnu.org/gcc-2.95/index.html
7445                                   GCC 2.95
7447    March  16, 2001: The GNU project and the GCC developers are pleased to
7448    announce the release of GCC version 2.95.3.
7450 Release History
7452    GCC 2.95.3
7453           March 16, 2001
7455    GCC 2.95.2
7456           October 27, 1999
7458    GCC 2.95.1
7459           August 19, 1999
7461    GCC 2.95
7462           July 31, 1999. This is the first release of GCC since the April
7463           1999  GCC/EGCS reunification and includes nearly a year's worth
7464           of new development and bugfixes.
7466 References and Acknowledgements
7468    GCC  used  to  stand  for  the  GNU C Compiler, but since the compiler
7469    supports  several  other languages aside from C, it now stands for the
7470    GNU Compiler Collection.
7472    The   whole  suite  has  been  extensively  [1]regression  tested  and
7473    [2]package  tested.  It should be reliable and suitable for widespread
7474    use.
7476    The compiler has several new optimizations, new targets, new languages
7477    and  other  new  features.  See  the  [3]new  features page for a more
7478    complete list of new features found in the GCC 2.95 releases.
7480    The  sources  include  installation  instructions  in  both  HTML  and
7481    plaintext forms in the install directory in the distribution. However,
7482    the  most  up  to  date [4]installation instructions and [5]build/test
7483    status  are  on  the  web  pages.  We  will  update those pages as new
7484    information becomes available.
7486    The  GCC  developers would like to thank the numerous people that have
7487    contributed  new  features,  test  results, bugfixes, etc to GCC. This
7488    [6]amazing group of volunteers is what makes GCC successful.
7490    And  finally,  we  can't  in  good  conscience  fail  to  mention some
7491    [7]caveats to using GCC 2.95.
7493    Download GCC 2.95 from the [8]GNU FTP server (ftp://ftp.gnu.org)
7494    [9]Find a GNU mirror site
7495    [10]Find a GCC mirror site
7497    For  additional  information  about GCC please see the [11]GCC project
7498    web server or contact the [12]GCC development mailing list.
7500    Please  send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
7501    are also [14]other ways to contact the FSF.
7503    These pages are maintained by [15]the GCC team.
7506     For  questions  related  to the use of GCC, please consult these web
7507     pages    and    the    [16]GCC   manuals.   If   that   fails,   the
7508     [17]gcc-help@gcc.gnu.org mailing list might help.
7509     Please  send  comments on these web pages and the development of GCC
7510     to    our    developer    mailing   list   at   [18]gcc@gnu.org   or
7511     [19]gcc@gcc.gnu.org. All of our lists have [20]public archives.
7513    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7514    Floor, Boston, MA 02110, USA.
7516    Verbatim  copying and distribution of this entire article is permitted
7517    in any medium, provided this notice is preserved.
7518    Last modified 2006-06-21 [21]Valid XHTML 1.0 
7520 References
7522    1. http://gcc.gnu.org/gcc-2.95/regress.html
7523    2. http://gcc.gnu.org/gcc-2.95/othertest.html
7524    3. http://gcc.gnu.org/gcc-2.95/features.html
7525    4. http://gcc.gnu.org/install/
7526    5. http://gcc.gnu.org/gcc-2.95/buildstat.html
7527    6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
7528    7. http://gcc.gnu.org/gcc-2.95/caveats.html
7529    8. ftp://ftp.gnu.org/pub/gnu/gcc/
7530    9. http://www.gnu.org/order/ftp.html
7531   10. http://gcc.gnu.org/mirrors.html
7532   11. http://gcc.gnu.org/index.html
7533   12. mailto:gcc@gcc.gnu.org
7534   13. mailto:gnu@gnu.org
7535   14. http://www.gnu.org/home.html#ContactInfo
7536   15. http://gcc.gnu.org/about.html
7537   16. http://gcc.gnu.org/onlinedocs/
7538   17. mailto:gcc-help@gcc.gnu.org
7539   18. mailto:gcc@gnu.org
7540   19. mailto:gcc@gcc.gnu.org
7541   20. http://gcc.gnu.org/lists.html
7542   21. http://validator.w3.org/check/referer
7543 ======================================================================
7544 http://gcc.gnu.org/gcc-2.95/features.html
7546                            GCC 2.95 New Features
7548      * General Optimizer Improvements:
7549           + [1]Localized  register  spilling  to  improve  speed and code
7550             density especially on small register class machines.
7551           + [2]Global CSE using lazy code motion algorithms.
7552           + [3]Improved global constant/copy propagation.
7553           + [4]Improved control flow graph analysis and manipulation.
7554           + [5]Local dead store elimination.
7555           + [6]Memory Load hoisting/store sinking in loops.
7556           + [7]Type based alias analysis is enabled by default. Note this
7557             feature will expose bugs in the Linux kernel. Please refer to
7558             the FAQ (as shipped with GCC 2.95) for additional information
7559             on this issue.
7560           + Major revamp of GIV detection, combination and simplification
7561             to improve loop performance.
7562           + Major improvements to register allocation and reloading.
7563      * New Languages and Language specific improvements
7564           + [8]Many C++ improvements.
7565           + [9]Many Fortran improvements.
7566           + [10]Java  front-end  has been integrated. [11]runtime library
7567             is available separately.
7568           + [12]ISO C99 support
7569           + [13]Chill front-end and runtime has been integrated.
7570           + Boehm garbage collector support in libobjc.
7571           + More  support  for  various  pragmas  which  appear in vendor
7572             include files
7573      * New Targets and Target Specific Improvements
7574           + [14]SPARC backend rewrite.
7575           + -mschedule=8000   will   optimize   code   for  PA8000  class
7576             processors;   -mpa-risc-2-0  will  generate  code  for  PA2.0
7577             processors
7578           + Various   micro-optimizations   for   the   ia32   port.   K6
7579             optimizations
7580           + Compiler  will  attempt  to align doubles in the stack on the
7581             ia32 port
7582           + Alpha EV6 support
7583           + PowerPC 750
7584           + RS6000/PowerPC:   -mcpu=401   was   added  as  an  alias  for
7585             -mcpu=403.   -mcpu=e603e  was  added  to  do  -mcpu=603e  and
7586             -msoft-float.
7587           + c3x, c4x
7588           + HyperSPARC
7589           + SparcLite86x
7590           + sh4
7591           + Support  for  new  systems  (OpenBSD, FreeBSD, UWIN, Interix,
7592             arm-linux)
7593           + vxWorks targets include support for vxWorks threads
7594           + StrongARM   110   and  ARM9  support  added.  ARM  Scheduling
7595             parameters rewritten.
7596           + Various  changes  to the MIPS port to avoid assembler macros,
7597             which in turn improves performance
7598           + Various performance improvements to the i960 port.
7599           + Major rewrite of ns32k port
7600      * Other significant improvements
7601           + [15]Ability to dump cfg information and display it using vcg.
7602           + The  new  faster  scheme  for  fixing  vendor header files is
7603             enabled by default.
7604           + Experimental internationalization support.
7605           + multibyte character support
7606           + Some compile-time speedups for pathological problems
7607           + Better support for complex types
7608      * Plus the usual mountain of bugfixes
7609      * Core  compiler is based on the gcc2 development tree from Sept 30,
7610        1998, so we have all of the [16]features found in GCC 2.8.
7612 Additional Changes in GCC 2.95.1
7614      * Generic bugfixes and improvements
7615           + Various documentation fixes related to the GCC/EGCS merger.
7616           + Fix  memory  management  bug  which  could  lead  to spurious
7617             aborts, core dumps or random parsing errors in the compiler.
7618           + Fix  a  couple  bugs  in  the  dwarf1 and dwarf2 debug record
7619             support.
7620           + Fix infinite loop in the CSE optimizer.
7621           + Avoid undefined behavior in compiler FP emulation code
7622           + Fix  install  problem  when  prefix is overridden on the make
7623             install command.
7624           + Fix  problem  with  unwanted installation of assert.h on some
7625             systems.
7626           + Fix problem with finding the wrong assembler in a single tree
7627             build.
7628           + Avoid  increasing  the  known alignment of a register that is
7629             already known to be a pointer.
7630      * Platform specific bugfixes and improvements
7631           + Codegen bugfix for prologue/epilogue for cpu32 target.
7632           + Fix long long code generation bug for the Coldfire target.
7633           + Fix various aborts in the SH compiler.
7634           + Fix bugs in libgcc support library for the SH.
7635           + Fix alpha ev6 code generation bug.
7636           + Fix  problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on
7637             AIX platforms.
7638           + Fix -fpic code generation bug for rs6000/ppc svr4 targets.
7639           + Fix  varargs/stdarg  code  generation bug for rs6000/ppc svr4
7640             targets.
7641           + Fix weak symbol handling for rs6000/ppc svr4 targets.
7642           + Fix  various  problems  with  64bit  code  generation for the
7643             rs6000/ppc port.
7644           + Fix  codegen bug which caused tetex to be mis-compiled on the
7645             x86.
7646           + Fix compiler abort in new cfg code exposed by x86 port.
7647           + Fix  out  of  range  array  reference  in  code  convert flat
7648             registers to the x87 stacked FP register file.
7649           + Fix minor vxworks configuration bug.
7650           + Fix return type of bsearch for SunOS 4.x.
7651      * Language & Runtime specific fixes.
7652           + The  G++  signature extension has been deprecated. It will be
7653             removed  in  the next major release of G++. Use of signatures
7654             will result in a warning from the compiler.
7655           + Several bugs relating to templates and namespaces were fixed.
7656           + A bug that caused crashes when combining templates with -g on
7657             DWARF1 platforms was fixed.
7658           + Pointers-to-members,    virtual   functions,   and   multiple
7659             inheritance should now work together correctly.
7660           + Some  code-generation  bugs  relating  to function try blocks
7661             were fixed.
7662           + G++  is  a  little  bit  more  lenient  with  certain archaic
7663             constructs than in GCC 2.95.
7664           + Fix to prevent shared library version #s from bring truncated
7665             to 1 digit
7666           + Fix missing std:: in the libstdc++ library.
7667           + Fix stream locking problems in libio.
7668           + Fix problem in java compiler driver.
7670 Additional Changes in GCC 2.95.2
7672    The  -fstrict-aliasing is not enabled by default for GCC 2.95.2. While
7673    the  optimizations  performed by -fstrict-aliasing are valid according
7674    to  the  C  and  C++  standards,  the  optimization  have  caused some
7675    problems, particularly with old non-conforming code.
7677    The  GCC  developers  are  experimenting with ways to warn users about
7678    code  which  violates  the C/C++ standards, but those warnings are not
7679    ready  for  widespread  use  at  this time. Rather than wait for those
7680    warnings  the  GCC developers have chosen to disable -fstrict-aliasing
7681    by default for the GCC 2.95.2 release.
7683    We  strongly  encourage developers to find and fix code which violates
7684    the  C/C++ standards as -fstrict-aliasing may be enabled by default in
7685    future  releases.  Use the option -fstrict-aliasing to re-enable these
7686    optimizations.
7687      * Generic bugfixes and improvements
7688           + Fix  incorrectly  optimized memory reference in global common
7689             subexpression elimination (GCSE) optimization pass.
7690           + Fix  code  generation  bug  in  regmove.c  in  which it could
7691             incorrectly change a "const" value.
7692           + Fix  bug  in  optimization of conditionals involving volatile
7693             memory references.
7694           + Avoid over-allocation of stack space for some procedures.
7695           + Fixed bug in the compiler which caused incorrect optimization
7696             of  an  obscure  series  of  bit  manipulations,  shifts  and
7697             arithmetic.
7698           + Fixed  register  allocator  bug  which  caused  teTeX  to  be
7699             mis-compiled on SPARC targets.
7700           + Avoid  incorrect  optimization  of degenerate case statements
7701             for certain targets such as the ARM.
7702           + Fix out of range memory reference in the jump optimizer.
7703           + Avoid dereferencing null pointer in fix-header.
7704           + Fix  test for GCC specific features so that it is possible to
7705             bootstrap with gcc-2.6.2 and older versions of GCC.
7706           + Fix  typo  in  scheduler which could potentially cause out of
7707             range memory accesses.
7708           + Avoid incorrect loop reversal which caused incorrect code for
7709             certain loops on PowerPC targets.
7710           + Avoid  incorrect optimization of switch statements on certain
7711             targets (for example the ARM).
7712      * Platform specific bugfixes and improvements
7713           + Work  around bug in Sun V5.0 compilers which caused bootstrap
7714             comparison failures on SPARC targets.
7715           + Fix SPARC backend bug which caused aborts in final.c.
7716           + Fix sparc-hal-solaris2* configuration fragments.
7717           + Fix bug in sparc block profiling.
7718           + Fix obscure code generation bug for the PARISC targets.
7719           + Define __STDC_EXT__ for HPUX configurations.
7720           + Various POWERPC64 code generation bugfixes.
7721           + Fix abort for PPC targets using ELF (ex GNU/Linux).
7722           + Fix collect2 problems for AIX targets.
7723           + Correct handling of .file directive for PPC targets.
7724           + Fix bug in fix_trunc x86 patterns.
7725           + Fix x86 port to correctly pop the FP stack for functions that
7726             return structures in memory.
7727           + Fix minor bug in strlen x86 pattern.
7728           + Use   stabs  debugging  instead  of  dwarf1  for  x86-solaris
7729             targets.
7730           + Fix  template repository code to handle leading underscore in
7731             mangled names.
7732           + Fix weak/weak alias support for OpenBSD.
7733           + GNU/Linux for the ARM has C++ compatible include files.
7734      * Language & Runtime specific fixes.
7735           + Fix  handling  of  constructor  attribute  in the C front-end
7736             which  caused  problems building the Chill runtime library on
7737             some targets.
7738           + Fix minor problem merging type qualifiers in the C front-end.
7739           + Fix aliasing bug for pointers and references (C/C++).
7740           + Fix    incorrect    "non-constant   initializer   bug"   when
7741             -traditional or -fwritable-strings is enabled.
7742           + Fix build error for Chill front-end on SunOS.
7743           + Do  not  complain  about  duplicate instantiations when using
7744             -frepo (C++).
7745           + Fix  array  bounds  handling  in  C++  front-end which caused
7746             problems   with   dwarf   debugging   information   in   some
7747             circumstances.
7748           + Fix minor namespace problem.
7749           + Fix problem linking java programs.
7751 Additional Changes in GCC 2.95.3
7753      * Generic bugfixes and improvements
7754           + Fix  numerous  problems that caused incorrect optimization in
7755             the register reloading code.
7756           + Fix  numerous  problems that caused incorrect optimization in
7757             the loop optimizer.
7758           + Fix  aborts  in the functions build_insn_chain and scan_loops
7759             under some circumstances.
7760           + Fix an alias analysis bug.
7761           + Fix an infinite compilation bug in the combiner.
7762           + A few problems with complex number support have been fixed.
7763           + It  is  no longer possible for gcc to act as a fork bomb when
7764             installed incorrectly.
7765           + The -fpack-struct option should be recognized now.
7766           + Fixed a bug that caused incorrect code to be generated due to
7767             a lost stack adjustment.
7768      * Platform specific bugfixes and improvements
7769           + Support building ARM toolchains hosted on Windows.
7770           + Fix attribute calculations in ARM toolchains.
7771           + arm-linux support has been improved.
7772           + Fix a PIC failure on sparc targets.
7773           + On  ix86  targets,  the  regparm  attribute  should  now work
7774             reliably.
7775           + Several updates for the h8300 port.
7776           + Fix problem building libio with glibc 2.2.
7778    Please  send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
7779    are also [18]other ways to contact the FSF.
7781    These pages are maintained by [19]the GCC team.
7784     For  questions  related  to the use of GCC, please consult these web
7785     pages    and    the    [20]GCC   manuals.   If   that   fails,   the
7786     [21]gcc-help@gcc.gnu.org mailing list might help.
7787     Please  send  comments on these web pages and the development of GCC
7788     to    our    developer    mailing   list   at   [22]gcc@gnu.org   or
7789     [23]gcc@gcc.gnu.org. All of our lists have [24]public archives.
7791    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7792    Floor, Boston, MA 02110, USA.
7794    Verbatim  copying and distribution of this entire article is permitted
7795    in any medium, provided this notice is preserved.
7796    Last modified 2006-06-21 [25]Valid XHTML 1.0 
7798 References
7800    1. http://gcc.gnu.org/news/spill.html
7801    2. http://gcc.gnu.org/news/lcm.html
7802    3. http://gcc.gnu.org/news/cprop.html
7803    4. http://gcc.gnu.org/news/cfg.html
7804    5. http://gcc.gnu.org/news/dse.html
7805    6. http://gcc.gnu.org/news/hoist.html
7806    7. http://gcc.gnu.org/news/alias.html
7807    8. http://gcc.gnu.org/gcc-2.95/c++features.html
7808    9. http://gcc.gnu.org/onlinedocs/g77/News.html
7809   10. http://gcc.gnu.org/java/gcj-announce.txt
7810   11. http://gcc.gnu.org/news/javaannounce.html
7811   12. http://gcc.gnu.org/c99status.html
7812   13. http://gcc.gnu.org/news/chill.html
7813   14. http://gcc.gnu.org/news/sparc.html
7814   15. http://gcc.gnu.org/news/egcs-vcg.html
7815   16. http://gcc.gnu.org/egcs-1.0/features-2.8.html
7816   17. mailto:gnu@gnu.org
7817   18. http://www.gnu.org/home.html#ContactInfo
7818   19. http://gcc.gnu.org/about.html
7819   20. http://gcc.gnu.org/onlinedocs/
7820   21. mailto:gcc-help@gcc.gnu.org
7821   22. mailto:gcc@gnu.org
7822   23. mailto:gcc@gcc.gnu.org
7823   24. http://gcc.gnu.org/lists.html
7824   25. http://validator.w3.org/check/referer
7825 ======================================================================
7826 http://gcc.gnu.org/gcc-2.95/caveats.html
7828                               GCC 2.95 Caveats
7830      * GCC  2.95  will issue an error for invalid asm statements that had
7831        been  silently  accepted by earlier versions of the compiler. This
7832        is  particularly  noticeable  when compiling older versions of the
7833        Linux  kernel  (2.0.xx).  Please refer to the FAQ (as shipped with
7834        GCC 2.95) for more information on this issue.
7835      * GCC  2.95  implements  type  based  alias analysis to disambiguate
7836        memory  references.  Some  programs, particularly the Linux kernel
7837        violate  ANSI/ISO  aliasing  rules  and  therefore may not operate
7838        correctly when compiled with GCC 2.95. Please refer to the FAQ (as
7839        shipped with GCC 2.95) for more information on this issue.
7840      * GCC  2.95 has a known bug in its handling of complex variables for
7841        64bit  targets. Instead of silently generating incorrect code, GCC
7842        2.95  will  issue  a fatal error for situations it can not handle.
7843        This primarily affects the Fortran community as Fortran makes more
7844        use of complex variables than C or C++.
7845      * GCC  2.95  has  an  integrated  libstdc++,  but  does  not have an
7846        integrated  libg++.  Furthermore old libg++ releases will not work
7847        with  GCC  2.95. You can retrieve a recent copy of libg++ from the
7848        [1]GCC ftp server.
7849        Note most C++ programs only need libstdc++.
7850      * Exception   handling   may   not   work   with  shared  libraries,
7851        particularly  on  alphas,  hppas,  rs6000/powerpc  and  mips based
7852        platforms.  Exception  handling  is known to work on x86 GNU/Linux
7853        platforms with shared libraries.
7854      * In  general, GCC 2.95 is more rigorous about rejecting invalid C++
7855        code or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0,
7856        or  EGCS  1.1.  As  a  result  it may be necessary to fix C++ code
7857        before it will compile with GCC 2.95.
7858      * G++  is  also  converting toward the ISO C++ standard; as a result
7859        code  which  was  previously  valid  (and  thus  accepted by other
7860        compilers  and  older  versions of g++) may no longer be accepted.
7861        The  flag  -fpermissive  may  allow  some  non-conforming  code to
7862        compile with GCC 2.95.
7863      * GCC  2.95  compiled  C++  code  is not binary compatible with EGCS
7864        1.1.x, EGCS 1.0.x or GCC 2.8.x.
7865      * GCC  2.95  does  not  have changes from the GCC 2.8 tree that were
7866        made between Sept 30, 1998 and April 30, 1999 (the official end of
7867        the  GCC  2.8  project).  Future GCC releases will include all the
7868        changes from the defunct GCC 2.8 sources.
7870    Please  send  FSF & GNU inquiries & questions to [2]gnu@gnu.org. There
7871    are also [3]other ways to contact the FSF.
7873    These pages are maintained by [4]the GCC team.
7876     For  questions  related  to the use of GCC, please consult these web
7877     pages    and    the    [5]GCC    manuals.   If   that   fails,   the
7878     [6]gcc-help@gcc.gnu.org mailing list might help.
7879     Please  send  comments on these web pages and the development of GCC
7880     to    our    developer    mailing    list   at   [7]gcc@gnu.org   or
7881     [8]gcc@gcc.gnu.org. All of our lists have [9]public archives.
7883    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
7884    Floor, Boston, MA 02110, USA.
7886    Verbatim  copying and distribution of this entire article is permitted
7887    in any medium, provided this notice is preserved.
7888    Last modified 2006-06-21 [10]Valid XHTML 1.0 
7890 References
7892    1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz
7893    2. mailto:gnu@gnu.org
7894    3. http://www.gnu.org/home.html#ContactInfo
7895    4. http://gcc.gnu.org/about.html
7896    5. http://gcc.gnu.org/onlinedocs/
7897    6. mailto:gcc-help@gcc.gnu.org
7898    7. mailto:gcc@gnu.org
7899    8. mailto:gcc@gcc.gnu.org
7900    9. http://gcc.gnu.org/lists.html
7901   10. http://validator.w3.org/check/referer
7902 ======================================================================
7903 http://gcc.gnu.org/egcs-1.1/index.html
7905                                   EGCS 1.1
7907    September 3, 1998: We are pleased to announce the release of EGCS 1.1.
7908    December  1,  1998:  We  are  pleased  to announce the release of EGCS
7909    1.1.1.
7910    March 15, 1999: We are pleased to announce the release of EGCS 1.1.2.
7912    EGCS  is a free software project to further the development of the GNU
7913    compilers using an open development environment.
7915    EGCS  1.1  is  a major new release of the EGCS compiler system. It has
7916    been  [1]extensively  tested and is believed to be stable and suitable
7917    for widespread use.
7919    EGCS  1.1  is  based  on  an  June  6,  1998  snapshot  of the GCC 2.8
7920    development  sources; it contains all of the new features found in GCC
7921    2.8.1 as well as all new development from GCC up to June 6, 1998.
7923    EGCS 1.1 also contains many improvements and features not found in GCC
7924    or in older versions of EGCS:
7925      * Global  common  subexpression elimination and global constant/copy
7926        propagation (aka [2]gcse)
7927      * Ongoing improvements to the [3]alias analysis support to allow for
7928        better optimizations throughout the compiler.
7929      * Vastly   improved  [4]C++  compiler  and  integrated  C++  runtime
7930        libraries.
7931      * Fixes for the /tmp symlink race security problems.
7932      * New targets including mips16, arm-thumb and 64 bit PowerPC.
7933      * Improvements  to  GNU  Fortran  (g77) compiler and runtime library
7934        made since g77 version 0.5.23.
7936    See  the [5]new features page for a more complete list of new features
7937    found in EGCS 1.1 releases.
7939    EGCS  1.1.1  is a minor update to fix several serious problems in EGCS
7940    1.1:
7941      * General improvements and fixes
7942           + Avoid some stack overflows when compiling large functions.
7943           + Avoid incorrect loop invariant code motions.
7944           + Fix some core dumps on Linux kernel code.
7945           + Bring back the imake -Di386 and friends fix from EGCS 1.0.2.
7946           + Fix code generation problem in gcse.
7947           + Various documentation related fixes.
7948      * g++/libstdc++ improvements and fixes
7949           + MT safe EH fix for setjmp/longjmp based exception handling.
7950           + Fix a few bad interactions between optimization and exception
7951             handling.
7952           + Fixes for demangling of template names starting with "__".
7953           + Fix  a  bug  that would fail to run destructors in some cases
7954             with -O2.
7955           + Fix 'new' of classes with virtual bases.
7956           + Fix crash building Qt on the Alpha.
7957           + Fix failure compiling WIFEXITED macro on GNU/Linux.
7958           + Fix some -frepo failures.
7959      * g77 and libf2c improvements and fixes
7960           + Various documentation fixes.
7961           + Avoid compiler crash on RAND intrinsic.
7962           + Fix minor bugs in makefiles exposed by BSD make programs.
7963           + Define  _XOPEN_SOURCE  for  libI77  build  to avoid potential
7964             problems on some 64-bit systems.
7965           + Fix problem with implicit endfile on rewind.
7966           + Fix spurious recursive I/O errors.
7967      * platform specific improvements and fixes
7968           + Match all versions of UnixWare7.
7969           + Do not assume x86 SVR4 or UnixWare targets can handle stabs.
7970           + Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion
7971             from unsigned ints to double precision floats.
7972           + Fix ARM ABI issue with NetBSD.
7973           + Fix a few arm code generation bugs.
7974           + Fixincludes  will fix additional broken SCO OpenServer header
7975             files.
7976           + Fix  a m68k backend bug which caused invalid offsets in reg+d
7977             addresses.
7978           + Fix problems with 64bit AIX 4.3 support.
7979           + Fix  handling  of  long longs for varargs/stdarg functions on
7980             the ppc.
7981           + Minor fixes to CPP predefines for Windows.
7982           + Fix  code generation problems with gpr<->fpr copies for 64bit
7983             ppc.
7984           + Fix a few coldfire code generation bugs.
7985           + Fix some more header file problems on SunOS 4.x.
7986           + Fix assert.h handling for RTEMS.
7987           + Fix Windows handling of TREE_SYMBOL_REFERENCED.
7988           + Fix x86 compiler abort in reg-stack pass.
7989           + Fix cygwin/windows problem with section attributes.
7990           + Fix  Alpha  code  generation  problem  exposed  by  SMP Linux
7991             kernels.
7992           + Fix typo in m68k 32->64bit integer conversion.
7993           + Make  sure  target libraries build with -fPIC for PPC & Alpha
7994             targets.
7996    EGCS  1.1.2  is a minor update to fix several serious problems in EGCS
7997    1.1.1:
7998      * General improvements and fixes
7999           + Fix  bug  in  loop  optimizer  which  caused  the  SPARC (and
8000             potentially other) ports to segfault.
8001           + Fix infinite recursion in alias analysis and combiner code.
8002           + Fix bug in regclass preferencing.
8003           + Fix incorrect loop reversal which caused incorrect code to be
8004             generated for several targets.
8005           + Fix return value for builtin memcpy.
8006           + Reduce compile time for certain loops which exposed quadratic
8007             behavior in the loop optimizer.
8008           + Fix  bug  which caused volatile memory to be written multiple
8009             times when only one write was needed/desired.
8010           + Fix compiler abort in caller-save.c
8011           + Fix  combiner  bug which caused incorrect code generation for
8012             certain division by constant operations.
8013           + Fix  incorrect  code  generation  due to a bug in range check
8014             optimizations.
8015           + Fix   incorrect   code  generation  due  to  mis-handling  of
8016             clobbered values in CSE.
8017           + Fix   compiler   abort/segfault  due  to  incorrect  register
8018             splitting when unrolling loops.
8019           + Fix  code generation involving autoincremented addresses with
8020             ternary operators.
8021           + Work  around  bug  in  the  scheduler  which  caused qt to be
8022             mis-compiled on some platforms.
8023           + Fix code generation problems with -fshort-enums.
8024           + Tighten security for temporary files.
8025           + Improve  compile  time  for  codes  which  make  heavy use of
8026             overloaded functions.
8027           + Fix multiply defined constructor/destructor symbol problems.
8028           + Avoid   setting   bogus  RPATH  environment  variable  during
8029             bootstrap.
8030           + Avoid GNU-make dependencies in the texinfo subdir.
8031           + Install  CPP wrapper script in $(prefix)/bin if --enable-cpp.
8032             --enable-cpp=<dirname>  can  be used to specify an additional
8033             install directory for the cpp wrapper script.
8034           + Fix CSE bug which caused incorrect label-label refs to appear
8035             on some platforms.
8036           + Avoid  linking  in  EH  routines  from libgcc if they are not
8037             needed.
8038           + Avoid obscure bug in aliasing code.
8039           + Fix bug in weak symbol handling.
8040      * Platform-specific improvements and fixes
8041           + Fix detection of PPro/PII on Unixware 7.
8042           + Fix compiler segfault when building spec99 and other programs
8043             for SPARC targets.
8044           + Fix  code-generation  bugs  for  integer  and  floating point
8045             conditional move instructions on the PPro/PII.
8046           + Use fixincludes to fix byteorder problems on i?86-*-sysv.
8047           + Fix build failure for the arc port.
8048           + Fix floating point format configuration for i?86-gnu port.
8049           + Fix  problems  with  hppa1.0-hp-hpux10.20  configuration when
8050             threads are enabled.
8051           + Fix coldfire code generation bugs.
8052           + Fix "unrecognized insn" problems for Alpha and PPC ports.
8053           + Fix h8/300 code generation problem with floating point values
8054             in memory.
8055           + Fix unrecognized insn problems for the m68k port.
8056           + Fix namespace-pollution problem for the x86 port.
8057           + Fix problems with old assembler on x86 NeXT systems.
8058           + Fix PIC code-generation problems for the SPARC port.
8059           + Fix minor bug with LONG_CALLS in PowerPC SVR4 support.
8060           + Fix  minor  ISO  namespace  violation in Alpha varargs/stdarg
8061             support.
8062           + Fix incorrect "braf" instruction usage for the SH port.
8063           + Fix minor bug in va-sh which prevented its use with -ansi.
8064           + Fix problems recognizing and supporting FreeBSD.
8065           + Handle OpenBSD systems correctly.
8066           + Minor fixincludes fix for Digital UNIX 4.0B.
8067           + Fix problems with ctors/dtors in SCO shared libraries.
8068           + Abort  instead  of  generating  incorrect  code  for PPro/PII
8069             floating point conditional moves.
8070           + Avoid  multiply  defined  symbols  on Linux/GNU systems using
8071             libc-5.4.xx.
8072           + Fix abort in alpha compiler.
8073      * Fortran-specific fixes
8074           + Fix  the  IDate  intrinsic  (VXT) (in libg2c) so the returned
8075             year  is  in the documented, non-Y2K-compliant range of 0-99,
8076             instead of being returned as 100 in the year 2000.
8077           + Fix  the  `Date_and_Time' intrinsic (in libg2c) to return the
8078             milliseconds value properly in Values(8).
8079           + Fix  the  `LStat'  intrinsic  (in libg2c) to return device-ID
8080             information properly in SArray(7).
8082    Each  release  includes  installation  instructions  in  both HTML and
8083    plaintext  forms  (see the INSTALL directory in the toplevel directory
8084    of  the  distribution).  However,  we  also  keep  the most up to date
8085    [6]installation instructions and [7]build/test status on our web page.
8086    We will update those pages as new information becomes available.
8088    The  EGCS  project  would  like to thank the numerous people that have
8089    contributed new features, test results, bugfixes, etc. This [8]amazing
8090    group of volunteers is what makes EGCS successful.
8092    And  finally,  we  can't  in  good  conscience  fail  to  mention some
8093    [9]caveats to using EGCS 1.1.
8095    Download EGCS from egcs.cygnus.com (USA California).
8097    The EGCS 1.1 release is also available on many mirror sites.
8098    [10]Goto mirror list to find a closer site.
8100    Please  send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
8101    are also [12]other ways to contact the FSF.
8103    These pages are maintained by [13]the GCC team.
8106     For  questions  related  to the use of GCC, please consult these web
8107     pages    and    the    [14]GCC   manuals.   If   that   fails,   the
8108     [15]gcc-help@gcc.gnu.org mailing list might help.
8109     Please  send  comments on these web pages and the development of GCC
8110     to    our    developer    mailing   list   at   [16]gcc@gnu.org   or
8111     [17]gcc@gcc.gnu.org. All of our lists have [18]public archives.
8113    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
8114    Floor, Boston, MA 02110, USA.
8116    Verbatim  copying and distribution of this entire article is permitted
8117    in any medium, provided this notice is preserved.
8118    Last modified 2006-06-21 [19]Valid XHTML 1.0 
8120 References
8122    1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html
8123    2. http://gcc.gnu.org/news/gcse.html
8124    3. http://gcc.gnu.org/news/alias.html
8125    4. http://gcc.gnu.org/egcs-1.1/c++features.html
8126    5. http://gcc.gnu.org/egcs-1.1/features.html
8127    6. http://gcc.gnu.org/install/
8128    7. http://gcc.gnu.org/egcs-1.1/buildstat.html
8129    8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
8130    9. http://gcc.gnu.org/egcs-1.1/caveats.html
8131   10. http://gcc.gnu.org/mirrors.html
8132   11. mailto:gnu@gnu.org
8133   12. http://www.gnu.org/home.html#ContactInfo
8134   13. http://gcc.gnu.org/about.html
8135   14. http://gcc.gnu.org/onlinedocs/
8136   15. mailto:gcc-help@gcc.gnu.org
8137   16. mailto:gcc@gnu.org
8138   17. mailto:gcc@gcc.gnu.org
8139   18. http://gcc.gnu.org/lists.html
8140   19. http://validator.w3.org/check/referer
8141 ======================================================================
8142 http://gcc.gnu.org/egcs-1.1/features.html
8144                            EGCS 1.1 new features
8146      * Integrated  GNU  Fortran  (g77)  compiler and runtime library with
8147        improvements, based on [1]g77 version 0.5.23.
8148      * Vast  improvements  in the C++ compiler; so many they have [2]page
8149        of their own!
8150      * Compiler implements [3]global common subexpression elimination and
8151        global copy/constant propagation.
8152      * More major improvements in the [4]alias analysis code.
8153      * More  major improvements in the exception handling code to improve
8154        performance,  lower static overhead and provide the infrastructure
8155        for future improvements.
8156      * The infamous /tmp symlink race security problems have been fixed.
8157      * The regmove optimization pass has been nearly completely rewritten
8158        to improve performance of generated code.
8159      * The  compiler  now  recomputes  register  usage information before
8160        local  register allocation. By providing more accurate information
8161        to   the   priority   based  allocator,  we  get  better  register
8162        allocation.
8163      * The  register reloading phase of the compiler optimizes spill code
8164        much better than in previous releases.
8165      * Some   bad   interactions   between  the  register  allocator  and
8166        instruction  scheduler  have  been fixed, resulting in much better
8167        code  for  certain  programs.  Additionally,  we  have  tuned  the
8168        scheduler in various ways to improve performance of generated code
8169        for some architectures.
8170      * The    compiler's   branch   shortening   algorithms   have   been
8171        significantly  improved to work better on targets which align jump
8172        targets.
8173      * The  compiler now supports -Os to prefer optimizing for code space
8174        over optimizing for code speed.
8175      * The  compiler  will  now  totally  eliminate  library  calls which
8176        compute  constant  values.  This  primarily  helps targets with no
8177        integer   div/mul  support  and  targets  without  floating  point
8178        support.
8179      * The compiler now supports an extensive "--help" option.
8180      * cpplib  has  been greatly improved and may be suitable for limited
8181        use.
8182      * Memory  footprint  for the compiler has been significantly reduced
8183        for some pathological cases.
8184      * The  time  to  build  EGCS  has  been improved for certain targets
8185        (particularly the alpha and mips platforms).
8186      * Many infrastructure improvements throughout the compiler, plus the
8187        usual mountain of bugfixes and minor improvements.
8188      * Target dependent improvements:
8189           + SPARC  port  now  includes  V8 plus and V9 support as well as
8190             performance  tuning  for Ultra class machines. The SPARC port
8191             now uses the Haifa scheduler.
8192           + Alpha  port  has  been tuned for the EV6 processor and has an
8193             optimized  expansion of memcpy/bzero. The Alpha port now uses
8194             the Haifa scheduler.
8195           + RS6000/PowerPC:  support for the Power64 architecture and AIX
8196             4.3. The RS6000/PowerPC port now uses the Haifa scheduler.
8197           + x86:  Alignment  of static store data and jump targets is per
8198             Intel  recommendations  now.  Various improvements throughout
8199             the  x86  port  to  improve performance on Pentium processors
8200             (including  improved epilogue sequences for Pentium chips and
8201             backend improvements which should help register allocation on
8202             all x86 variants. Conditional move support has been fixed and
8203             enabled  for  PPro  processors.  The  x86  port  also  better
8204             supports 64bit operations now. Unixware 7, a System V Release
8205             5  target,  is  now  supported and SCO OpenServer targets can
8206             support GAS.
8207           + MIPS  has  improved  multiply/multiply-add  support  and  now
8208             includes mips16 ISA support.
8209           + M68k has many micro-optimizations and Coldfire fixes.
8210      * Core  compiler  is  based on the GCC development tree from June 9,
8211        1998, so we have all of the [5]features found in GCC 2.8.
8213    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
8214    are also [7]other ways to contact the FSF.
8216    These pages are maintained by [8]the GCC team.
8219     For  questions  related  to the use of GCC, please consult these web
8220     pages    and    the    [9]GCC    manuals.   If   that   fails,   the
8221     [10]gcc-help@gcc.gnu.org mailing list might help.
8222     Please  send  comments on these web pages and the development of GCC
8223     to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
8224     [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
8226    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
8227    Floor, Boston, MA 02110, USA.
8229    Verbatim  copying and distribution of this entire article is permitted
8230    in any medium, provided this notice is preserved.
8231    Last modified 2006-06-21 [14]Valid XHTML 1.0 
8233 References
8235    1. http://gcc.gnu.org/onlinedocs/g77/News.html
8236    2. http://gcc.gnu.org/egcs-1.1/c++features.html
8237    3. http://gcc.gnu.org/news/gcse.html
8238    4. http://gcc.gnu.org/news/alias.html
8239    5. http://gcc.gnu.org/egcs-1.0/features-2.8.html
8240    6. mailto:gnu@gnu.org
8241    7. http://www.gnu.org/home.html#ContactInfo
8242    8. http://gcc.gnu.org/about.html
8243    9. http://gcc.gnu.org/onlinedocs/
8244   10. mailto:gcc-help@gcc.gnu.org
8245   11. mailto:gcc@gnu.org
8246   12. mailto:gcc@gcc.gnu.org
8247   13. http://gcc.gnu.org/lists.html
8248   14. http://validator.w3.org/check/referer
8249 ======================================================================
8250 http://gcc.gnu.org/egcs-1.1/caveats.html
8252                               EGCS 1.1 Caveats
8254      * EGCS  has an integrated libstdc++, but does not have an integrated
8255        libg++.  Furthermore  old libg++ releases will not work with EGCS;
8256        HJ  Lu has made a libg++-2.8.1.2 snapshot available which may work
8257        with EGCS.
8258        Note most C++ programs only need libstdc++.
8259      * Exception   handling   may   not   work   with  shared  libraries,
8260        particularly  on  alphas,  hppas,  rs6000/powerpc  and  mips based
8261        platforms.  Exception  handling  is  known  to  work  on x86-linux
8262        platforms with shared libraries.
8263      * Some  versions  of  the  Linux kernel have bugs which prevent them
8264        from being compiled or from running when compiled by EGCS. See the
8265        FAQ (as shipped with EGCS 1.1) for additional information.
8266      * In general, EGCS is more rigorous about rejecting invalid C++ code
8267        or deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As
8268        a  result  it  may  be  necessary  to  fix C++ code before it will
8269        compile with EGCS.
8270      * G++  is  also  converting toward the ISO C++ standard; as a result
8271        code  which  was  previously  valid  (and  thus  accepted by other
8272        compilers and older versions of g++) may no longer be accepted.
8273      * EGCS  1.1  compiled  C++  code  is not binary compatible with EGCS
8274        1.0.x or GCC 2.8.x due to changes necessary to support thread safe
8275        exception handling.
8277    Please  send  FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
8278    are also [2]other ways to contact the FSF.
8280    These pages are maintained by [3]the GCC team.
8283     For  questions  related  to the use of GCC, please consult these web
8284     pages    and    the    [4]GCC    manuals.   If   that   fails,   the
8285     [5]gcc-help@gcc.gnu.org mailing list might help.
8286     Please  send  comments on these web pages and the development of GCC
8287     to    our    developer    mailing    list   at   [6]gcc@gnu.org   or
8288     [7]gcc@gcc.gnu.org. All of our lists have [8]public archives.
8290    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
8291    Floor, Boston, MA 02110, USA.
8293    Verbatim  copying and distribution of this entire article is permitted
8294    in any medium, provided this notice is preserved.
8295    Last modified 2006-06-21 [9]Valid XHTML 1.0 
8297 References
8299    1. mailto:gnu@gnu.org
8300    2. http://www.gnu.org/home.html#ContactInfo
8301    3. http://gcc.gnu.org/about.html
8302    4. http://gcc.gnu.org/onlinedocs/
8303    5. mailto:gcc-help@gcc.gnu.org
8304    6. mailto:gcc@gnu.org
8305    7. mailto:gcc@gcc.gnu.org
8306    8. http://gcc.gnu.org/lists.html
8307    9. http://validator.w3.org/check/referer
8308 ======================================================================
8309 http://gcc.gnu.org/egcs-1.0/index.html
8311                                   EGCS 1.0
8313    December 3, 1997: We are pleased to announce the release of EGCS 1.0.
8314    January 6, 1998: We are pleased to announce the release of EGCS 1.0.1.
8315    March 16, 1998: We are pleased to announce the release of EGCS 1.0.2.
8316    May 15, 1998 We are pleased to announce the release of EGCS 1.0.3.
8318    EGCS  is  a  collaborative  effort involving several groups of hackers
8319    using  an open development model to accelerate development and testing
8320    of GNU compilers and runtime libraries.
8322    An  important  goal  of  EGCS  is  to  allow  wide  scale  testing  of
8323    experimental features and optimizations; therefore, EGCS contains some
8324    features and optimizations which are still under development. However,
8325    EGCS  has been carefully tested and should be comparable in quality to
8326    most GCC releases.
8328    EGCS  1.0  is  based  on  an  August  2,  1997 snapshot of the GCC 2.8
8329    development  sources; it contains nearly all of the new features found
8330    in GCC 2.8.
8332    EGCS 1.0 also contains many improvements and features not found in GCC
8333    2.7 and even the GCC 2.8 series (which was released after the original
8334    EGCS 1.0 release).
8335      * Integrated C++ runtime libraries, including support for most major
8336        GNU/Linux systems!
8337      * The integrated libstdc++ library includes a verbatim copy of SGI's
8338        STL release.
8339      * Integrated GNU Fortran compiler.
8340      * New instruction scheduler.
8341      * New alias analysis code.
8343    See the [1]new features page for a more complete list of new features.
8345    EGCS  1.0.1  is  a  minor update to the EGCS 1.0 compiler to fix a few
8346    critical bugs and add support for Red Hat 5.0 Linux. Changes since the
8347    EGCS 1.0 release:
8348      * Add  support  for  Red  Hat 5.0 Linux and better support for Linux
8349        systems using glibc2.
8350        Many  programs  failed  to link when compiled with EGCS 1.0 on Red
8351        Hat  5.0  or  on systems with newer versions of glibc2. EGCS 1.0.1
8352        should fix these problems.
8353      * Compatibility  with  both  EGCS  1.0  and GCC 2.8 libgcc exception
8354        handling interfaces.
8355        To  avoid  future  compatibility problems, we strongly urge anyone
8356        who  is planning on distributing shared libraries that contain C++
8357        code to upgrade to EGCS 1.0.1 first.
8358        Soon  after  EGCS  1.0  was released, the GCC developers made some
8359        incompatible  changes  in  libgcc's exception handling interfaces.
8360        These  changes  were  needed  to solve problems on some platforms.
8361        This  means  that GCC 2.8.0, when released, will not be seamlessly
8362        compatible  with shared libraries built by EGCS 1.0. The reason is
8363        that  the libgcc.a in GCC 2.8.0 will not contain a function needed
8364        by the old interface.
8365        The  result  of  this  is that there may be compatibility problems
8366        with shared libraries built by EGCS 1.0 when used with GCC 2.8.0.
8367        With   EGCS  1.0.1,  generated  code  uses  the  new  (GCC  2.8.0)
8368        interface,  and libgcc.a has the support routines for both the old
8369        and  the  new  interfaces  (so EGCS 1.0.1 and EGCS 1.0 code can be
8370        freely  mixed,  and  EGCS  1.0.1  and GCC 2.8.0 code can be freely
8371        mixed).
8372        The maintainers of GCC 2.x have decided against including seamless
8373        support  for  the  old  interface  in  2.8.0,  since  it was never
8374        "official", so to avoid future compatibility problems we recommend
8375        against  distributing  any shared libraries built by EGCS 1.0 that
8376        contain C++ code (upgrade to 1.0.1 and use that).
8377      * Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
8378        The  x86  changes fix code generation errors exposed when building
8379        glibc2 and the Linux dynamic linker (ld.so).
8380        The  hppa  change  fixes  a compiler abort when configured for use
8381        with RTEMS.
8382        The  MIPS  changes fix problems with the definition of LONG_MAX on
8383        newer systems, allow for command line selection of the target ABI,
8384        and fix one code generation problem.
8385        The  rs6000/ppc change fixes some problems with passing structures
8386        to varargs/stdarg functions.
8387      * A  few machine independent bugfixes, mostly to fix code generation
8388        errors when building Linux kernels or glibc.
8389      * Fix a few critical exception handling and template bugs in the C++
8390        compiler.
8391      * Fix Fortran namelist bug on alphas.
8392      * Fix build problems on x86-solaris systems.
8394    EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several
8395    serious problems in EGCS 1.0.1.
8396      * General improvements and fixes
8397           + Memory  consumption  significantly  reduced,  especially  for
8398             templates and inline functions.
8399           + Fix various problems with glibc2.1.
8400           + Fix loop optimization bug exposed by rs6000/ppc port.
8401           + Fix to avoid potential code generation problems in jump.c.
8402           + Fix some undefined symbol problems in dwarf1 debug support.
8403      * g++/libstdc++ improvements and fixes
8404           + libstdc++  in the EGCS release has been updated and should be
8405             link compatible with libstdc++-2.8.
8406           + Various  fixes  in  libio/libstdc++  to  work better on Linux
8407             systems.
8408           + Fix  problems  with  duplicate symbols on systems that do not
8409             support weak symbols.
8410           + Memory  corruption bug and undefined symbols in bastring have
8411             been fixed.
8412           + Various exception handling fixes.
8413           + Fix compiler abort for very long thunk names.
8414      * g77 improvements and fixes
8415           + Fix   compiler  crash  for  omitted  bound  in  Fortran  CASE
8416             statement.
8417           + Add missing entries to g77 lang-options.
8418           + Fix problem with -fpedantic in the g77 compiler.
8419           + Fix "backspace" problem with g77 on alphas.
8420           + Fix x86 backend problem with Fortran literals and -fpic.
8421           + Fix  some of the problems with negative subscripts for g77 on
8422             alphas.
8423           + Fixes for Fortran builds on cygwin32/mingw32.
8424      * platform specific improvements and fixes
8425           + Fix long double problems on x86 (exposed by glibc).
8426           + x86 ports define i386 again to keep imake happy.
8427           + Fix exception handling support on NetBSD ports.
8428           + Several changes to collect2 to fix many problems with AIX.
8429           + Define __ELF__ for rs6000/linux.
8430           + Fix -mcall-linux problem on rs6000/linux.
8431           + Fix stdarg/vararg problem for rs6000/linux.
8432           + Allow autoconf to select a proper install problem on AIX 3.1.
8433           + m68k  port  support  includes -mcpu32 option as well as cpu32
8434             multilibs.
8435           + Fix stdarg bug for irix6.
8436           + Allow EGCS to build on irix5 without the gnu assembler.
8437           + Fix problem with static linking on sco5.
8438           + Fix bootstrap on sco5 with native compiler.
8439           + Fix for abort building newlib on H8 target.
8440           + Fix fixincludes handling of math.h on SunOS.
8441           + Minor fix for Motorola 3300 m68k systems.
8443    EGCS  1.0.3  is a minor update to the EGCS 1.0.2 compiler to fix a few
8444    problems reported by Red Hat for builds of Red Hat 5.1.
8445      * Generic bugfixes:
8446           + Fix  a  typo in the libio library which resulted in incorrect
8447             behavior of istream::get.
8448           + Fix the Fortran negative array index problem.
8449           + Fix  a  major  problem  with  the ObjC runtime thread support
8450             exposed by glibc2.
8451           + Reduce memory consumption of the Haifa scheduler.
8452      * Target specific bugfixes:
8453           + Fix  one  x86  floating  point code generation bug exposed by
8454             glibc2 builds.
8455           + Fix one x86 internal compiler error exposed by glibc2 builds.
8456           + Fix profiling bugs on the Alpha.
8457           + Fix ImageMagick & emacs 20.2 build problems on the Alpha.
8458           + Fix  rs6000/ppc bug when converting values from integer types
8459             to floating point types.
8461    The  EGCS  1.0 releases include installation instructions in both HTML
8462    and  plaintext  forms  (see  the  INSTALL  directory  in  the toplevel
8463    directory  of  the distribution). However, we also keep the most up to
8464    date  [2]installation instructions and [3]build/test status on our web
8465    page. We will update those pages as new information becomes available.
8467    And,  we  can't  in good conscience fail to mention some [4]caveats to
8468    using EGCS.
8470    Update:  Big  thanks  to  Stanford for providing a high speed link for
8471    downloading EGCS (go.cygnus.com)!
8473    Download  EGCS  from  ftp.cygnus.com (USA California) or go.cygnus.com
8474    (USA California -- High speed link provided by Stanford).
8476    The EGCS 1.0 release is also available many mirror sites.
8477    [5]Goto mirror list to find a closer site
8479    We'd  like  to  thank  the  numerous  people that have contributed new
8480    features,  test results, bugfixes, etc. Unfortunately, they're far too
8481    numerous to mention by name.
8483    Please  send  FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
8484    are also [7]other ways to contact the FSF.
8486    These pages are maintained by [8]the GCC team.
8489     For  questions  related  to the use of GCC, please consult these web
8490     pages    and    the    [9]GCC    manuals.   If   that   fails,   the
8491     [10]gcc-help@gcc.gnu.org mailing list might help.
8492     Please  send  comments on these web pages and the development of GCC
8493     to    our    developer    mailing   list   at   [11]gcc@gnu.org   or
8494     [12]gcc@gcc.gnu.org. All of our lists have [13]public archives.
8496    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
8497    Floor, Boston, MA 02110, USA.
8499    Verbatim  copying and distribution of this entire article is permitted
8500    in any medium, provided this notice is preserved.
8501    Last modified 2006-06-21 [14]Valid XHTML 1.0 
8503 References
8505    1. http://gcc.gnu.org/egcs-1.0/features.html
8506    2. http://gcc.gnu.org/install/
8507    3. http://gcc.gnu.org/egcs-1.0/buildstat.html
8508    4. http://gcc.gnu.org/egcs-1.0/caveats.html
8509    5. http://gcc.gnu.org/mirrors.html
8510    6. mailto:gnu@gnu.org
8511    7. http://www.gnu.org/home.html#ContactInfo
8512    8. http://gcc.gnu.org/about.html
8513    9. http://gcc.gnu.org/onlinedocs/
8514   10. mailto:gcc-help@gcc.gnu.org
8515   11. mailto:gcc@gnu.org
8516   12. mailto:gcc@gcc.gnu.org
8517   13. http://gcc.gnu.org/lists.html
8518   14. http://validator.w3.org/check/referer
8519 ======================================================================
8520 http://gcc.gnu.org/egcs-1.0/features.html
8522                              EGCS 1.0 features
8524      * Core  compiler  is  based on the gcc2 development tree from Aug 2,
8525        1997, so we have most of the [1]features found in GCC 2.8.
8526      * Integrated GNU Fortran compiler based on g77-0.5.22-19970929.
8527      * Vast  improvements  in the C++ compiler; so many they have [2]page
8528        of their own!
8529      * Integrated C++ runtime libraries, including support for most major
8530        linux systems!
8531      * New  instruction  scheduler  from IBM Haifa which includes support
8532        for  function  wide  instruction scheduling as well as superscalar
8533        scheduling.
8534      * Significantly improved alias analysis code.
8535      * Improved register allocation for two address machines.
8536      * Significant  code  generation  improvements  for  Fortran  code on
8537        Alphas.
8538      * Various  optimizations  from  the  g77 project as well as improved
8539        loop optimizations.
8540      * Dwarf2 debug format support for some targets.
8541      * egcs   libstdc++  includes  the  SGI  STL  implementation  without
8542        changes.
8543      * As  a  result  of  these  and  other changes, egcs libstc++ is not
8544        binary compatible with previous releases of libstdc++.
8545      * Various  new  ports  -- UltraSPARC, Irix6.2 & Irix6.3 support, The
8546        SCO  Openserver  5  family (5.0.{0,2,4} and Internet FastStart 1.0
8547        and  1.1),  Support for RTEMS on several embedded targets, Support
8548        for arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and
8549        MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc.
8550      * Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
8551      * RS6000/PowerPC   ports   generate   code  which  can  run  on  all
8552        RS6000/PowerPC variants by default.
8553      * -mcpu=  and  -march=  switches  for  the  x86 port to allow better
8554        control over how the x86 port generates code.
8555      * Includes  the template repository patch (aka repo patch); note the
8556        new template code makes repo obsolete for ELF systems using gnu-ld
8557        such as Linux.
8558      * Plus the usual assortment of bugfixes and improvements.
8560    Please  send  FSF & GNU inquiries & questions to [3]gnu@gnu.org. There
8561    are also [4]other ways to contact the FSF.
8563    These pages are maintained by [5]the GCC team.
8566     For  questions  related  to the use of GCC, please consult these web
8567     pages    and    the    [6]GCC    manuals.   If   that   fails,   the
8568     [7]gcc-help@gcc.gnu.org mailing list might help.
8569     Please  send  comments on these web pages and the development of GCC
8570     to    our    developer    mailing    list   at   [8]gcc@gnu.org   or
8571     [9]gcc@gcc.gnu.org. All of our lists have [10]public archives.
8573    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
8574    Floor, Boston, MA 02110, USA.
8576    Verbatim  copying and distribution of this entire article is permitted
8577    in any medium, provided this notice is preserved.
8578    Last modified 2006-06-21 [11]Valid XHTML 1.0 
8580 References
8582    1. http://gcc.gnu.org/egcs-1.0/features-2.8.html
8583    2. http://gcc.gnu.org/egcs-1.0/c++features.html
8584    3. mailto:gnu@gnu.org
8585    4. http://www.gnu.org/home.html#ContactInfo
8586    5. http://gcc.gnu.org/about.html
8587    6. http://gcc.gnu.org/onlinedocs/
8588    7. mailto:gcc-help@gcc.gnu.org
8589    8. mailto:gcc@gnu.org
8590    9. mailto:gcc@gcc.gnu.org
8591   10. http://gcc.gnu.org/lists.html
8592   11. http://validator.w3.org/check/referer
8593 ======================================================================
8594 http://gcc.gnu.org/egcs-1.0/caveats.html
8596                               EGCS 1.0 Caveats
8598      * EGCS  has an integrated libstdc++, but does not have an integrated
8599        libg++. Furthermore old libg++ releases will not work with egc; HJ
8600        Lu has made a libg++-2.8.1.2 available which may work with EGCS.
8601        Note most C++ programs only need libstdc++.
8602      * Note  that using -pedantic or -Wreturn-type can cause an explosion
8603        in  the  amount of memory needed for template-heavy C++ code, such
8604        as   code   that   uses   STL.   Also  note  that  -Wall  includes
8605        -Wreturn-type,  so  if  you  use  -Wall  you  will need to specify
8606        -Wno-return-type to turn it off.
8607      * Exception   handling   may   not   work   with  shared  libraries,
8608        particularly on alphas, hppas, and mips based platforms. Exception
8609        handling  is  known  to  work  on  x86-linux platforms with shared
8610        libraries.
8611      * Some  versions  of  the  Linux kernel have bugs which prevent them
8612        from being compiled or from running when compiled by EGCS. See the
8613        FAQ (as shipped with EGCS 1.0) for additional information.
8614      * In general, EGCS is more rigorous about rejecting invalid C++ code
8615        or  deprecated  C++ constructs than G++ 2.7. As a result it may be
8616        necessary to fix C++ code before it will compile with EGCS.
8617      * G++  is  also  aggressively tracking the C++ standard; as a result
8618        code  which  was  previously  valid  (and  thus  accepted by other
8619        compilers and older versions of G++) may no longer be accepted.
8620      * EGCS  1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS
8621        1.0.x and later releases should work with Red Hat Linux 5.0.
8623    Please  send  FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
8624    are also [2]other ways to contact the FSF.
8626    These pages are maintained by [3]the GCC team.
8629     For  questions  related  to the use of GCC, please consult these web
8630     pages    and    the    [4]GCC    manuals.   If   that   fails,   the
8631     [5]gcc-help@gcc.gnu.org mailing list might help.
8632     Please  send  comments on these web pages and the development of GCC
8633     to    our    developer    mailing    list   at   [6]gcc@gnu.org   or
8634     [7]gcc@gcc.gnu.org. All of our lists have [8]public archives.
8636    Copyright  (C)  Free  Software Foundation, Inc., 51 Franklin St, Fifth
8637    Floor, Boston, MA 02110, USA.
8639    Verbatim  copying and distribution of this entire article is permitted
8640    in any medium, provided this notice is preserved.
8641    Last modified 2006-06-21 [9]Valid XHTML 1.0 
8643 References
8645    1. mailto:gnu@gnu.org
8646    2. http://www.gnu.org/home.html#ContactInfo
8647    3. http://gcc.gnu.org/about.html
8648    4. http://gcc.gnu.org/onlinedocs/
8649    5. mailto:gcc-help@gcc.gnu.org
8650    6. mailto:gcc@gnu.org
8651    7. mailto:gcc@gcc.gnu.org
8652    8. http://gcc.gnu.org/lists.html
8653    9. http://validator.w3.org/check/referer
8654 ======================================================================