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