- update from gcc-4_1-branch (-r126008:130387)
- PRs middle-end/34030, rtl-optimization/28062, rtl-optimization/33822,
bootstrap/33418, c++/31941, c++/32113, java/31842, target/33256,
tree-optimization/33142, c++/32112, c++/17763, rtl-optimization/32450,
target/31331, target/32641, target/32660, tree-optimization/32681,
boehm-gc/21940, boehm-gc/21942, target/28307, target/32506,
tree-optimization/31966, tree-optimization/32533
- fix if-conversion to avoid introducing races into threaded code
(Ian Lance Taylor, #391731)
- move the gcc4 lib/libexec dirs to /usr/lib{,exec}/*-linux5E/ from
/usr/lib{,exec}/*-linux/ and also move /usr/lib*/gcj-* to /usr/lib*/gcj4-*
to avoid upgrade problems to RHEL5.1 and higher (#434847)
- fix PCH failure if a precompiled header is included more than
once (#251682, PR pch/13675)
- allow non-aggregate extern "Java" types in C++ placement new
(PR c++/34829, Tom Tromey)
- make sure no errors are reported during tentative parsing of
pseudo-destructors (PR c++/35138)
- fix i386 <= 0xNNffffffffLL comparison optimization (Michael Matz,
PR target/35264)
- generate DW_TAG_class_type for C++ and Java classes in DWARF3
debuginfo (#371831, PR debug/7081)
- don't unnecessarily create a stack frame in leaf functions e.g. on ppc with
-fpic or -maltivec (Nathan Sidwell, Daniel Jacobowitz, #369541,
PRs target/28966, target/29248)
- compile libstdc++-4*.s390.rpm DSO with -march=z900, as RHEL5 only supports
those CPUs. libstdc++-devel*.s390.rpm should still work even for older
CPUs (#298801)
- add SSE5 support (Michael Meissner, Dwarakanath Rajagopal, Tony Linthicum,
Uros Bizjak, #252998)
- java_mark_cni_decl_local fix (Andrew Haley, #414411, PR java/27643)
- i386 <= 0xNNffffffffLL comparison optimization (PR target/29978)
- fix Fortran alternate returns with dummy procedure (Paul Thomas, #399531,
PR fortran/31483)
- OpenMP fixes (PR c++/33890, c/34506, c++/34513)
- don't hold a global guard mutex across whole local static initialization
(Doug Kwan, #426846)
- fix OpenMP handling of global vars privatized in orphaned constructs
with #pragma omp parallel inside them
- -frepo fixes (#411741, PRs c++/34178, c++/34340)
- fix dynamic_cast<C &> in templates (PR c++/34364)
- fix error diagnostics involving ABS_EXPR (PR c++/34394)
- two ctor preevaluation fixes (Olivier Hainque,
Eric Botcazou, #407281)
- consider static data members and static member functions in anon ns
classes to be external for C++ linkage type handling (PR c++/34213)
- handle OBJ_TYPE_REF in C++ diagnostics (PR c++/34275)
- backport a bunch of bugfixes from GCC trunk
- PRs c++/29225, c++/30293, c++/30294, c++/30988, c++/32241,
c++/32384, c++/33501, c++/33516, c++/33616, c++/33836,
c++/33842, c++/33844, c++/33962, c++/34089,
c/34146, debug/33537, middle-end/23848, middle-end/34070,
testsuite/33978, tree-optimization/33723
- fix abs optimization (Richard Guenther, #394271, PR middle-end/34130)
- fortran lbound/ubound fix (Paul Thomas, #391151, PR fortran/29712)
- generate proper fortran debuginfo for assumed-size, assumed-shape
and deferred arrays (#364001)
- fix ppc64 unwinding of cr2 register if vdso=0
- only allow __label__ at the start of a block (PR c++/32121)
- disable -fipa-type-escape by default (PR tree-optimization/33136)
- VLA handling fix (PR c/33238, PR c/27301)
- disable TER of pure and const function calls except for __builtin_expect
(PR tree-optimization/33619)
- fix parsing of C++ function-like cast in template argument where cast's
argument uses greater-than operator (PR c++/33744)
- ignore always_inline attribute on redefined extern inline
functions (Jan Hubicka, #329671, PR tree-optimization/33763)
- add support for Fortran int conversion intrinsics (Francois-Xavier
Coudert, #317051)
- don't drop DECL_BUILT_IN_CLASS when defining a builtin function
- print virtual inline backtrace in some diagnostic messages to help
locate bugs reported with -D_FORTIFY_SOURCE{,=2}
- add support for artificial, error and warning attributes
- fix ICE with set_rhs allowing non-gimple (Roger Sayle, #247407,
PR tree-optimization/32694)
- fix ICE on Fortran interface-body declaring current subroutine name
(Paul Thomas, #300851, PR fortran/20880)
- don't ignore throw specification of function types in type hashing
(PR c++/33506)
- fix ICE on __builtin_mem*_chk if it couldn't be folded until
expand time and at that point it can avoid a call (PR middle-end/33423)
- handle the upcoming POSIX 'm' *scanf allocation modifier in
GCC format checking, fix up some details about %as/%aS/%a[
- backport __builtin_va_arg_pack () and __builtin_va_arg_pack_len () support
- fix Fortran error recovery with DATA (Jerry DeLisle, #281331,
PR fortran/27954)
- make sure __builtin_{,v}{,f}{print,scan}f, __builtin_{,f}printf_unlocked
and __builtin___{,v}{,f}printf_chk can throw
- handle __*_chk builtins without __builtin_ in the name as anticipated in
C++
- fix libmudflap-devel multilib conflict on ppc/ppc64 and sparc/sparc64
(#270281)
- backport __attribute__((__gnu_inline__)) support for C++
- fix ppc/ppc64 __sync_* builtins with aligned 8 or 16-bit values
- don't set executable flag on .note.GNU-stack on ppc64/ia64 even
when trampolines are used - trampolines on those architectures
don't need executable stack
- fix ppc32 libgcc.a(tramp.o), so that binaries using trampolines
aren't forced to use bss PLT
- fix a fortran charlen sharing bug (#253102)
- fix ICE with X|~X or X^~X with vectors (PR middle-end/32912)
- nuke bits/stdc++.gch directories from libstdc++-devel (#253304)
- fix fortran Tx format handling (Jerry DeLisle, #252152,
PR libgfortran/32678)
- don't NRV optimize fields inside anonymous unions (PR c++/32992)
- fortran debuginfo improvements for constant bound arrays (#248541,
PR fortran/22244)