Index: trunk/src/gcc/.brik
===================================================================
--- trunk/src/gcc/.brik	(revision 1462)
+++ trunk/src/gcc/.brik	(revision 1465)
@@ -5,8 +5,8 @@
 
 2864072627b     ./.cvsignore
- 454904501b     ./BUGS
+ 471477660b     ./BUGS
 2171125041b     ./COPYING
  508743035b     ./COPYING.LIB
-3759805510b     ./ChangeLog
+3629030398b     ./ChangeLog
 1351330966b     ./FAQ
 2229468985b     ./INSTALL/README
@@ -19,5 +19,5 @@
 2051725251b     ./INSTALL/index.html
 3273734043b     ./INSTALL/old.html
- 975149080b     ./INSTALL/specific.html
+1213577831b     ./INSTALL/specific.html
 1887949984b     ./INSTALL/test.html
  387185131b     ./MAINTAINERS
@@ -25,9 +25,10 @@
  673596399b     ./Makefile.in
 1638614068b     ./Makefile.tpl
+4278808334b     ./NEWS
 3697693037b     ./README
 3286946454b     ./README.SCO
  655018850b     ./boehm-gc/AmigaOS.c
 2411687152b     ./boehm-gc/BCC_MAKEFILE
-3243278359b     ./boehm-gc/ChangeLog
+ 606939130b     ./boehm-gc/ChangeLog
 3428452570b     ./boehm-gc/EMX_MAKEFILE
  145946109b     ./boehm-gc/MacOS.c
@@ -61,5 +62,5 @@
 1272640704b     ./boehm-gc/config.guess
 4182969326b     ./boehm-gc/config.sub
-2350970747b     ./boehm-gc/configure
+ 669517649b     ./boehm-gc/configure
 4265937088b     ./boehm-gc/configure.host
  725430640b     ./boehm-gc/configure.in
@@ -140,5 +141,5 @@
  583510369b     ./boehm-gc/include/private/gc_pmark.h
 1990877525b     ./boehm-gc/include/private/gc_priv.h
-3820561693b     ./boehm-gc/include/private/gcconfig.h
+2015574914b     ./boehm-gc/include/private/gcconfig.h
 2686914147b     ./boehm-gc/include/private/solaris_threads.h
 3935909412b     ./boehm-gc/include/private/specific.h
@@ -186,10 +187,10 @@
  332085760b     ./boehm-gc/version.h
   62682092b     ./boehm-gc/win32_threads.c
-1119116469b     ./bugs.html
+3769610403b     ./bugs.html
   71055409b     ./config-ml.in
 3794184949b     ./config.guess
 2016379063b     ./config.if
  537897852b     ./config.sub
-2651333699b     ./config/ChangeLog
+2777322408b     ./config/ChangeLog
  430854799b     ./config/acinclude.m4
  636889995b     ./config/mh-a68bsd
@@ -241,5 +242,5 @@
 4143692422b     ./configure
 4078400456b     ./configure.in
-1869491039b     ./contrib/ChangeLog
+2009899693b     ./contrib/ChangeLog
 1948950130b     ./contrib/analyze_brprob
  550196746b     ./contrib/compare_tests
@@ -254,5 +255,5 @@
 3683285493b     ./contrib/newcvsroot
 3406928738b     ./contrib/paranoia.cc
-1172428181b     ./contrib/regression/ChangeLog
+3695013605b     ./contrib/regression/ChangeLog
 1757898889b     ./contrib/regression/README
 3661855799b     ./contrib/regression/btest-gcc.sh
@@ -268,5 +269,5 @@
 1745615150b     ./fastjar/CHANGES
 1396100520b     ./fastjar/COPYING
- 513215636b     ./fastjar/ChangeLog
+ 974192234b     ./fastjar/ChangeLog
 2770615802b     ./fastjar/INSTALL
 1805291518b     ./fastjar/Makefile.am
@@ -276,6 +277,6 @@
   54199525b     ./fastjar/acinclude.m4
 1369101675b     ./fastjar/aclocal.m4
-3743222129b     ./fastjar/compress.c
-1169302702b     ./fastjar/compress.h
+2132087313b     ./fastjar/compress.c
+1156006004b     ./fastjar/compress.h
 1117462681b     ./fastjar/config.h.in
 2619265826b     ./fastjar/configure
@@ -285,18 +286,18 @@
 2011191902b     ./fastjar/fastjar.info
 3589129523b     ./fastjar/fastjar.texi
-2140953762b     ./fastjar/grepjar.1
+2586149589b     ./fastjar/grepjar.1
 2331671736b     ./fastjar/install-defs.sh.in
 1178077958b     ./fastjar/install-sh
- 715748854b     ./fastjar/jar.1
+1945178907b     ./fastjar/jar.1
 2281221680b     ./fastjar/jargrep.c
 4062871816b     ./fastjar/jargrep.h
 2905933595b     ./fastjar/jartool.c
-2754304773b     ./fastjar/jartool.h
+1514589557b     ./fastjar/jartool.h
  990942143b     ./fastjar/missing
 1455437353b     ./fastjar/mkinstalldirs
-1315168235b     ./fastjar/pushback.c
+3455675750b     ./fastjar/pushback.c
  302085493b     ./fastjar/pushback.h
  216805921b     ./fastjar/stamp-h.in
-3071504729b     ./fastjar/zipfile.h
+ 542050258b     ./fastjar/zipfile.h
 1308782881b     ./gcc/.cvsignore
 2215240433b     ./gcc/ABOUT-GCC-NLS
@@ -304,5 +305,5 @@
 2171125041b     ./gcc/COPYING
  508743035b     ./gcc/COPYING.LIB
-1746505507b     ./gcc/ChangeLog
+2937448737b     ./gcc/ChangeLog
 4112479902b     ./gcc/ChangeLog.0
 3216066841b     ./gcc/ChangeLog.1
@@ -318,6 +319,5 @@
 1302016933b     ./gcc/FSFChangeLog.11
 3016546082b     ./gcc/LANGUAGES
-  27665921b     ./gcc/Makefile.in
- 515860724b     ./gcc/NEWS
+3705739792b     ./gcc/Makefile.in
 1799560872b     ./gcc/ONEWS
 2799003008b     ./gcc/README-fixinc
@@ -455,5 +455,5 @@
 2024826220b     ./gcc/ada/5rosinte.ads
   54965811b     ./gcc/ada/5rparame.adb
-3957530165b     ./gcc/ada/5rtpopsp.adb
+ 434049025b     ./gcc/ada/5rtpopsp.adb
 1163200540b     ./gcc/ada/5sintman.adb
 3949337666b     ./gcc/ada/5sosinte.adb
@@ -517,5 +517,5 @@
 4053303068b     ./gcc/ada/86numaux.ads
 3760778950b     ./gcc/ada/9drpc.adb
- 998495436b     ./gcc/ada/ChangeLog
+2992046559b     ./gcc/ada/ChangeLog
 1311661804b     ./gcc/ada/Make-lang.in
 4249262083b     ./gcc/ada/Makefile.adalib
@@ -1712,5 +1712,5 @@
 4190686960b     ./gcc/ada/xsnames.adb
  511048883b     ./gcc/ada/xtreeprs.adb
-2840631424b     ./gcc/alias.c
+ 497115330b     ./gcc/alias.c
 3329204760b     ./gcc/attribs.c
  661204297b     ./gcc/basic-block.h
@@ -1728,5 +1728,5 @@
 2498727911b     ./gcc/c-config-lang.in
 4223371978b     ./gcc/c-convert.c
- 579906276b     ./gcc/c-decl.c
+ 977508971b     ./gcc/c-decl.c
  420078897b     ./gcc/c-dump.c
 3988343334b     ./gcc/c-errors.c
@@ -1744,6 +1744,6 @@
  322270390b     ./gcc/c-pretty-print.h
 2307648174b     ./gcc/c-semantics.c
-3323894092b     ./gcc/c-tree.h
-3800723537b     ./gcc/c-typeck.c
+4019526083b     ./gcc/c-tree.h
+3701983261b     ./gcc/c-typeck.c
 1929894132b     ./gcc/caller-save.c
 1946827628b     ./gcc/calls.c
@@ -1760,13 +1760,13 @@
 3800413649b     ./gcc/combine.c
 4122382037b     ./gcc/conditions.h
-3072373159b     ./gcc/config.gcc
+1259394586b     ./gcc/config.gcc
 1315260558b     ./gcc/config.guess
-1565770251b     ./gcc/config.in
+1003831241b     ./gcc/config.in
 3917072699b     ./gcc/config/README
 1081521208b     ./gcc/config/alpha/alpha-interix.h
 1148890194b     ./gcc/config/alpha/alpha-protos.h
-3977497323b     ./gcc/config/alpha/alpha.c
-1346602339b     ./gcc/config/alpha/alpha.h
-3145148145b     ./gcc/config/alpha/alpha.md
+ 350504332b     ./gcc/config/alpha/alpha.c
+ 391232502b     ./gcc/config/alpha/alpha.h
+2260956100b     ./gcc/config/alpha/alpha.md
 3915788506b     ./gcc/config/alpha/alpha32.h
 1407988137b     ./gcc/config/alpha/crtfastmath.c
@@ -1783,5 +1783,5 @@
 3083238444b     ./gcc/config/alpha/openbsd.h
 2934606255b     ./gcc/config/alpha/osf.h
-1148914945b     ./gcc/config/alpha/osf5.h
+2917376975b     ./gcc/config/alpha/osf5.h
 1190572001b     ./gcc/config/alpha/qrnnd.asm
 2672344824b     ./gcc/config/alpha/t-alpha
@@ -1825,7 +1825,7 @@
 1511706560b     ./gcc/config/arm/arm-modes.def
 2313150707b     ./gcc/config/arm/arm-protos.h
-2570786956b     ./gcc/config/arm/arm.c
-2554986637b     ./gcc/config/arm/arm.h
-1970299264b     ./gcc/config/arm/arm.md
+3331013521b     ./gcc/config/arm/arm.c
+3375361902b     ./gcc/config/arm/arm.h
+1471782774b     ./gcc/config/arm/arm.md
  152133707b     ./gcc/config/arm/coff.h
 3566890009b     ./gcc/config/arm/conix-elf.h
@@ -1833,8 +1833,8 @@
 3836293988b     ./gcc/config/arm/crtn.asm
 4281626291b     ./gcc/config/arm/ecos-elf.h
- 259208134b     ./gcc/config/arm/elf.h
+1164983154b     ./gcc/config/arm/elf.h
 4010625370b     ./gcc/config/arm/freebsd.h
 3355567723b     ./gcc/config/arm/lib1funcs.asm
-2684835712b     ./gcc/config/arm/linux-elf.h
+1798495796b     ./gcc/config/arm/linux-elf.h
 2410223095b     ./gcc/config/arm/linux-gas.h
  816029099b     ./gcc/config/arm/netbsd-elf.h
@@ -1885,10 +1885,10 @@
 3670658933b     ./gcc/config/cris/arit.c
  881494957b     ./gcc/config/cris/cris-protos.h
-2733582021b     ./gcc/config/cris/cris.c
- 718151887b     ./gcc/config/cris/cris.h
-3653765946b     ./gcc/config/cris/cris.md
+1368638670b     ./gcc/config/cris/cris.c
+2924208224b     ./gcc/config/cris/cris.h
+1867690514b     ./gcc/config/cris/cris.md
 4228128527b     ./gcc/config/cris/cris_abi_symbol.c
  744364725b     ./gcc/config/cris/linux.h
- 907689569b     ./gcc/config/cris/mulsi3.asm
+4103004758b     ./gcc/config/cris/mulsi3.asm
   45521295b     ./gcc/config/cris/t-aout
 3846478151b     ./gcc/config/cris/t-cris
@@ -1906,5 +1906,5 @@
 1838012452b     ./gcc/config/darwin-protos.h
 3101942541b     ./gcc/config/darwin.c
-3020045688b     ./gcc/config/darwin.h
+3380830035b     ./gcc/config/darwin.h
 2662634125b     ./gcc/config/dbx.h
 2063159136b     ./gcc/config/dbxcoff.h
@@ -2004,7 +2004,7 @@
 1349730319b     ./gcc/config/i386/i386-modes.def
 1963183629b     ./gcc/config/i386/i386-protos.h
-4151473718b     ./gcc/config/i386/i386.c
+1321068495b     ./gcc/config/i386/i386.c
 3999975198b     ./gcc/config/i386/i386.h
-1850777154b     ./gcc/config/i386/i386.md
+1308483456b     ./gcc/config/i386/i386.md
 3652974168b     ./gcc/config/i386/i386elf.h
 3010218896b     ./gcc/config/i386/k6.md
@@ -2173,5 +2173,5 @@
 3524361138b     ./gcc/config/m68k/m68k-protos.h
 1109594909b     ./gcc/config/m68k/m68k-psos.h
-2980964013b     ./gcc/config/m68k/m68k.c
+ 946681800b     ./gcc/config/m68k/m68k.c
 2362160659b     ./gcc/config/m68k/m68k.h
 1138622429b     ./gcc/config/m68k/m68k.md
@@ -2263,5 +2263,5 @@
 3380342822b     ./gcc/config/mips/mips.c
 2942767704b     ./gcc/config/mips/mips.h
- 673414041b     ./gcc/config/mips/mips.md
+3890715545b     ./gcc/config/mips/mips.md
 2024693888b     ./gcc/config/mips/mips16.S
  405403345b     ./gcc/config/mips/netbsd.h
@@ -2344,11 +2344,11 @@
 2077118199b     ./gcc/config/pa/pa-protos.h
 1461752469b     ./gcc/config/pa/pa.c
- 921995916b     ./gcc/config/pa/pa.h
-1569454373b     ./gcc/config/pa/pa.md
+3137755484b     ./gcc/config/pa/pa.h
+3400055606b     ./gcc/config/pa/pa.md
 2968109913b     ./gcc/config/pa/pa32-linux.h
 4077989132b     ./gcc/config/pa/pa32-regs.h
-1058350505b     ./gcc/config/pa/pa64-hpux.h
+ 831299985b     ./gcc/config/pa/pa64-hpux.h
 2920878761b     ./gcc/config/pa/pa64-linux.h
- 653142328b     ./gcc/config/pa/pa64-regs.h
+ 717189620b     ./gcc/config/pa/pa64-regs.h
 3813586304b     ./gcc/config/pa/pa64-start.h
  710975505b     ./gcc/config/pa/quadlib.c
@@ -2417,5 +2417,5 @@
 1041172543b     ./gcc/config/rs6000/rs6000.c
 3955032986b     ./gcc/config/rs6000/rs6000.h
-1596117806b     ./gcc/config/rs6000/rs6000.md
+ 395480338b     ./gcc/config/rs6000/rs6000.md
  255651415b     ./gcc/config/rs6000/rtems.h
 3703627966b     ./gcc/config/rs6000/sol-ci.asm
@@ -2423,5 +2423,5 @@
 1152541462b     ./gcc/config/rs6000/spe.h
 1909067452b     ./gcc/config/rs6000/spe.md
-2504151540b     ./gcc/config/rs6000/sysv4.h
+ 461628230b     ./gcc/config/rs6000/sysv4.h
 1653865007b     ./gcc/config/rs6000/sysv4le.h
 2203981804b     ./gcc/config/rs6000/t-aix43
@@ -2443,5 +2443,5 @@
 1708069305b     ./gcc/config/rs6000/windiss.h
 1783558965b     ./gcc/config/rs6000/xcoff.h
-1142085470b     ./gcc/config/rtems.h
+2664584122b     ./gcc/config/rtems.h
 3459519933b     ./gcc/config/s390/fixdfdi.h
 1186498086b     ./gcc/config/s390/libgcc-glibc.ver
@@ -2449,7 +2449,7 @@
 3010749633b     ./gcc/config/s390/s390-modes.def
  256640970b     ./gcc/config/s390/s390-protos.h
-2031787402b     ./gcc/config/s390/s390.c
+1401621072b     ./gcc/config/s390/s390.c
 3430773218b     ./gcc/config/s390/s390.h
-1850339257b     ./gcc/config/s390/s390.md
+1935796260b     ./gcc/config/s390/s390.md
 3998835120b     ./gcc/config/s390/s390x.h
 2119089207b     ./gcc/config/s390/t-crtstuff
@@ -2468,8 +2468,8 @@
  252295721b     ./gcc/config/sh/rtems.h
 2180360594b     ./gcc/config/sh/rtemself.h
- 626627764b     ./gcc/config/sh/sh-protos.h
-3880315160b     ./gcc/config/sh/sh.c
+1835467310b     ./gcc/config/sh/sh-protos.h
+3673754278b     ./gcc/config/sh/sh.c
  818613438b     ./gcc/config/sh/sh.h
-2307903251b     ./gcc/config/sh/sh.md
+3502041219b     ./gcc/config/sh/sh.md
 2384035668b     ./gcc/config/sh/sh64.h
 3656510246b     ./gcc/config/sh/shmedia.h
@@ -2501,6 +2501,6 @@
 1761187951b     ./gcc/config/sparc/libgcc-sparc-glibc.ver
   34002579b     ./gcc/config/sparc/linux-aout.h
-3607976878b     ./gcc/config/sparc/linux.h
-2951666700b     ./gcc/config/sparc/linux64.h
+ 806322588b     ./gcc/config/sparc/linux.h
+2826732008b     ./gcc/config/sparc/linux64.h
 2424336991b     ./gcc/config/sparc/lite.h
 1314010724b     ./gcc/config/sparc/litecoff.h
@@ -2531,7 +2531,7 @@
    5497380b     ./gcc/config/sparc/sparc-modes.def
 2593826026b     ./gcc/config/sparc/sparc-protos.h
-1648958243b     ./gcc/config/sparc/sparc.c
-3359941887b     ./gcc/config/sparc/sparc.h
-1783747926b     ./gcc/config/sparc/sparc.md
+2049123525b     ./gcc/config/sparc/sparc.c
+2309109580b     ./gcc/config/sparc/sparc.h
+2442065936b     ./gcc/config/sparc/sparc.md
  113806067b     ./gcc/config/sparc/sparclet.md
  842964351b     ./gcc/config/sparc/splet.h
@@ -2545,4 +2545,5 @@
 3744055768b     ./gcc/config/sparc/t-elf
 1582758741b     ./gcc/config/sparc/t-halos
+4294967295b     ./gcc/config/sparc/t-linux
 2435625847b     ./gcc/config/sparc/t-linux64
 1132426437b     ./gcc/config/sparc/t-netbsd64
@@ -2623,41 +2624,41 @@
  856985218b     ./gcc/config/xtensa/t-xtensa
 2796950173b     ./gcc/config/xtensa/xtensa-config.h
-2260785040b     ./gcc/config/xtensa/xtensa-protos.h
-2323376682b     ./gcc/config/xtensa/xtensa.c
-1634616005b     ./gcc/config/xtensa/xtensa.h
- 992524755b     ./gcc/config/xtensa/xtensa.md
- 722449861b     ./gcc/configure
+2873778437b     ./gcc/config/xtensa/xtensa-protos.h
+2894548004b     ./gcc/config/xtensa/xtensa.c
+1733982936b     ./gcc/config/xtensa/xtensa.h
+  66995864b     ./gcc/config/xtensa/xtensa.md
+2503935890b     ./gcc/configure
 2239237249b     ./gcc/configure.frag
-3653195722b     ./gcc/configure.in
+3562026117b     ./gcc/configure.in
 1207339419b     ./gcc/conflict.c
 4183575079b     ./gcc/convert.c
 2020855935b     ./gcc/convert.h
 1230086821b     ./gcc/cp/.cvsignore
-3800780522b     ./gcc/cp/ChangeLog
+ 616904652b     ./gcc/cp/ChangeLog
  190176486b     ./gcc/cp/ChangeLog.1
   97583749b     ./gcc/cp/ChangeLog.2
 2546444747b     ./gcc/cp/ChangeLog.egcs
-3233008176b     ./gcc/cp/Make-lang.in
+2781524853b     ./gcc/cp/Make-lang.in
 1213810021b     ./gcc/cp/NEWS
-1022212391b     ./gcc/cp/call.c
+1974804067b     ./gcc/cp/call.c
 2726184849b     ./gcc/cp/cfns.gperf
 3403558692b     ./gcc/cp/cfns.h
-1102478473b     ./gcc/cp/class.c
+3636976578b     ./gcc/cp/class.c
 4001109630b     ./gcc/cp/config-lang.in
 3624674049b     ./gcc/cp/cp-lang.c
 2277233898b     ./gcc/cp/cp-tree.def
  222408911b     ./gcc/cp/cp-tree.h
-1969471444b     ./gcc/cp/cvt.c
-3764097079b     ./gcc/cp/decl.c
+3579835497b     ./gcc/cp/cvt.c
+ 861786324b     ./gcc/cp/decl.c
 1385119476b     ./gcc/cp/decl.h
-1843026114b     ./gcc/cp/decl2.c
+ 368933091b     ./gcc/cp/decl2.c
  757230858b     ./gcc/cp/dump.c
 2188196379b     ./gcc/cp/error.c
- 452521469b     ./gcc/cp/except.c
+3855464245b     ./gcc/cp/except.c
 1201332681b     ./gcc/cp/expr.c
 1270190491b     ./gcc/cp/friend.c
 1574667259b     ./gcc/cp/g++.1
  729602332b     ./gcc/cp/g++spec.c
-4201962631b     ./gcc/cp/init.c
+3704374773b     ./gcc/cp/init.c
 1486125690b     ./gcc/cp/lang-options.h
 2659645047b     ./gcc/cp/lang-specs.h
@@ -2669,16 +2670,16 @@
 1390979693b     ./gcc/cp/optimize.c
 1958572835b     ./gcc/cp/parse.c
- 347693869b     ./gcc/cp/parse.h
+1538412344b     ./gcc/cp/parse.h
 2206367944b     ./gcc/cp/parse.y
- 253080353b     ./gcc/cp/pt.c
+1753359582b     ./gcc/cp/pt.c
  660118186b     ./gcc/cp/ptree.c
 2028729644b     ./gcc/cp/repo.c
-4034613095b     ./gcc/cp/rtti.c
+3127022870b     ./gcc/cp/rtti.c
  645435452b     ./gcc/cp/search.c
 1948405158b     ./gcc/cp/semantics.c
 1129915797b     ./gcc/cp/spew.c
 3953515268b     ./gcc/cp/tree.c
-3375104317b     ./gcc/cp/typeck.c
-1959780068b     ./gcc/cp/typeck2.c
+2412596194b     ./gcc/cp/typeck.c
+1048341266b     ./gcc/cp/typeck2.c
 3576138321b     ./gcc/cppdefault.c
  438802138b     ./gcc/cppdefault.h
@@ -2688,7 +2689,7 @@
 3476502948b     ./gcc/cpphash.c
 3455547586b     ./gcc/cpphash.h
- 870628956b     ./gcc/cppinit.c
+2647738345b     ./gcc/cppinit.c
 3206802280b     ./gcc/cpplex.c
-3323456088b     ./gcc/cpplib.c
+3585652702b     ./gcc/cpplib.c
 3918562409b     ./gcc/cpplib.h
 1301003990b     ./gcc/cppmacro.c
@@ -2697,9 +2698,9 @@
  968619349b     ./gcc/cpptrad.c
 3987640245b     ./gcc/crtstuff.c
-4070757557b     ./gcc/cse.c
+1442126897b     ./gcc/cse.c
 1095744296b     ./gcc/cselib.c
 2819991749b     ./gcc/cselib.h
  216805921b     ./gcc/cstamp-h.in
-4197208992b     ./gcc/dbxout.c
+ 269217575b     ./gcc/dbxout.c
 2583180678b     ./gcc/dbxout.h
 1104788844b     ./gcc/dbxstclass.h
@@ -2721,5 +2722,5 @@
 2901937683b     ./gcc/doc/contrib.texi
 2272556046b     ./gcc/doc/contribute.texi
-3470974240b     ./gcc/doc/cpp.1
+3682002567b     ./gcc/doc/cpp.1
 1734701030b     ./gcc/doc/cpp.info
 2327079292b     ./gcc/doc/cpp.texi
@@ -2728,19 +2729,19 @@
 1958814700b     ./gcc/doc/cppinternals.texi
 1294675045b     ./gcc/doc/cppopts.texi
-3684147379b     ./gcc/doc/extend.texi
+1616293727b     ./gcc/doc/extend.texi
  803819253b     ./gcc/doc/fragments.texi
 2401477723b     ./gcc/doc/frontends.texi
-1174875497b     ./gcc/doc/fsf-funding.7
-1150993227b     ./gcc/doc/gcc.1
-1520709202b     ./gcc/doc/gcc.info
+ 466133703b     ./gcc/doc/fsf-funding.7
+3561618638b     ./gcc/doc/gcc.1
+2402704689b     ./gcc/doc/gcc.info
 1998340815b     ./gcc/doc/gcc.texi
- 924665797b     ./gcc/doc/gccinstall.info
-2694630683b     ./gcc/doc/gccint.info
-4222820739b     ./gcc/doc/gccint.texi
-2779318379b     ./gcc/doc/gcov.1
+3309603760b     ./gcc/doc/gccinstall.info
+3276417531b     ./gcc/doc/gccint.info
+ 141162277b     ./gcc/doc/gccint.texi
+1745905150b     ./gcc/doc/gcov.1
  799484262b     ./gcc/doc/gcov.texi
-1609433609b     ./gcc/doc/gfdl.7
+  45659587b     ./gcc/doc/gfdl.7
 4217859569b     ./gcc/doc/gnu.texi
-3978439329b     ./gcc/doc/gpl.7
+ 808896001b     ./gcc/doc/gpl.7
 2598049702b     ./gcc/doc/gty.texi
 2874371193b     ./gcc/doc/headerdirs.texi
@@ -2748,12 +2749,12 @@
 3288537183b     ./gcc/doc/include/fdl.texi
 2048065465b     ./gcc/doc/include/funding.texi
-2975375281b     ./gcc/doc/include/gcc-common.texi
+2696579760b     ./gcc/doc/include/gcc-common.texi
 3092587370b     ./gcc/doc/include/gpl.texi
  124394628b     ./gcc/doc/include/texinfo.tex
 3427634226b     ./gcc/doc/install-old.texi
-3857557723b     ./gcc/doc/install.texi
+2723098307b     ./gcc/doc/install.texi
 1451529977b     ./gcc/doc/install.texi2html
 3000332536b     ./gcc/doc/interface.texi
- 333630846b     ./gcc/doc/invoke.texi
+2632136122b     ./gcc/doc/invoke.texi
 1327866291b     ./gcc/doc/languages.texi
  904420347b     ./gcc/doc/makefile.texi
@@ -2766,5 +2767,5 @@
 3166516007b     ./gcc/doc/sourcebuild.texi
 3565606796b     ./gcc/doc/standards.texi
- 975697525b     ./gcc/doc/tm.texi
+1055177840b     ./gcc/doc/tm.texi
  128574166b     ./gcc/doc/trouble.texi
 3258612192b     ./gcc/doloop.c
@@ -2776,5 +2777,5 @@
 4027179154b     ./gcc/dwarf2asm.c
  538758205b     ./gcc/dwarf2asm.h
-2150551288b     ./gcc/dwarf2out.c
+2453775919b     ./gcc/dwarf2out.c
 3517290530b     ./gcc/dwarf2out.h
 3351836985b     ./gcc/dwarfout.c
@@ -2784,16 +2785,16 @@
  100350032b     ./gcc/et-forest.c
 2508316488b     ./gcc/et-forest.h
- 656135734b     ./gcc/except.c
+ 901121420b     ./gcc/except.c
 3819344801b     ./gcc/except.h
  490409806b     ./gcc/explow.c
 2338822673b     ./gcc/expmed.c
-2095490193b     ./gcc/expr.c
+2165326436b     ./gcc/expr.c
 1872989667b     ./gcc/expr.h
 1546791101b     ./gcc/f/.cvsignore
- 425385891b     ./gcc/f/BUGS
- 865163855b     ./gcc/f/ChangeLog
+2352153414b     ./gcc/f/BUGS
+2086892822b     ./gcc/f/ChangeLog
 3233190569b     ./gcc/f/ChangeLog.0
 3329871744b     ./gcc/f/Make-lang.in
-3650365852b     ./gcc/f/NEWS
+ 783695012b     ./gcc/f/NEWS
 3295584012b     ./gcc/f/RELEASE-PREP
 1934744031b     ./gcc/f/ansify.c
@@ -2820,7 +2821,7 @@
  333493781b     ./gcc/f/ffe.texi
  782070966b     ./gcc/f/fini.c
-3111156901b     ./gcc/f/g77.1
-1664581766b     ./gcc/f/g77.info
-3302596636b     ./gcc/f/g77.texi
+1796631795b     ./gcc/f/g77.1
+3593753756b     ./gcc/f/g77.info
+3544733467b     ./gcc/f/g77.texi
 1023118578b     ./gcc/f/g77spec.c
 4062822261b     ./gcc/f/global.c
@@ -2839,5 +2840,5 @@
 1048488593b     ./gcc/f/intrin.def
 3418049706b     ./gcc/f/intrin.h
-2907149479b     ./gcc/f/invoke.texi
+1644799486b     ./gcc/f/invoke.texi
 1861938661b     ./gcc/f/lab.c
 3674332618b     ./gcc/f/lab.h
@@ -2854,10 +2855,10 @@
 3383472522b     ./gcc/f/parse.c
 1067232252b     ./gcc/f/proj.h
-1741768325b     ./gcc/f/root.texi
+2509479696b     ./gcc/f/root.texi
 3531682397b     ./gcc/f/src.c
  246620254b     ./gcc/f/src.h
 3466162958b     ./gcc/f/st.c
 1705988958b     ./gcc/f/st.h
-3608541363b     ./gcc/f/sta.c
+ 187442946b     ./gcc/f/sta.c
  520236030b     ./gcc/f/sta.h
  520927036b     ./gcc/f/stb.c
@@ -2918,5 +2919,5 @@
 2267967746b     ./gcc/fixinc/fixincl.sh
 2178021789b     ./gcc/fixinc/fixincl.tpl
-  67361470b     ./gcc/fixinc/fixincl.x
+2439735898b     ./gcc/fixinc/fixincl.x
 1372603529b     ./gcc/fixinc/fixlib.c
  971233728b     ./gcc/fixinc/fixlib.h
@@ -2925,5 +2926,5 @@
 2190395998b     ./gcc/fixinc/gnu-regex.c
 1403987073b     ./gcc/fixinc/gnu-regex.h
- 818290950b     ./gcc/fixinc/inclhack.def
+1049904184b     ./gcc/fixinc/inclhack.def
 3144429405b     ./gcc/fixinc/mkfixinc.sh
 1834585069b     ./gcc/fixinc/procopen.c
@@ -3007,12 +3008,12 @@
 3381524450b     ./gcc/flags.h
 1465737068b     ./gcc/floatlib.c
-1755734781b     ./gcc/flow.c
- 429314078b     ./gcc/fold-const.c
+1733713569b     ./gcc/flow.c
+2512479731b     ./gcc/fold-const.c
 3820449811b     ./gcc/fp-test.c
- 371039034b     ./gcc/function.c
+ 748773970b     ./gcc/function.c
  660035943b     ./gcc/function.h
 3058774034b     ./gcc/future.options
 3783840564b     ./gcc/gbl-ctors.h
-3411062223b     ./gcc/gcc.c
+2480988432b     ./gcc/gcc.c
 4230721321b     ./gcc/gcc.h
 3093644366b     ./gcc/gcc.hlp
@@ -3037,5 +3038,5 @@
 1430019866b     ./gcc/genflags.c
  904540311b     ./gcc/gengenrtl.c
-1317340942b     ./gcc/gengtype-lex.c
+1132727291b     ./gcc/gengtype-lex.c
 3137000585b     ./gcc/gengtype-lex.l
 3799875986b     ./gcc/gengtype-yacc.c
@@ -3084,6 +3085,6 @@
 1833150569b     ./gcc/hashtable.c
 3438684682b     ./gcc/hashtable.h
- 127562897b     ./gcc/hooks.c
-3729897617b     ./gcc/hooks.h
+3947874044b     ./gcc/hooks.c
+2537183437b     ./gcc/hooks.h
 4221207654b     ./gcc/hwint.h
 1775598304b     ./gcc/ifcvt.c
@@ -3094,5 +3095,5 @@
 3277280645b     ./gcc/intl.c
 2379664116b     ./gcc/intl.h
-  68457480b     ./gcc/intl/ChangeLog
+1948269992b     ./gcc/intl/ChangeLog
  680616337b     ./gcc/intl/Makefile.in
 1166279255b     ./gcc/intl/VERSION
@@ -3126,5 +3127,5 @@
 1971238900b     ./gcc/intl/textdomain.c
  503022028b     ./gcc/java/.cvsignore
- 112847771b     ./gcc/java/ChangeLog
+1558282539b     ./gcc/java/ChangeLog
  827934844b     ./gcc/java/Make-lang.in
  700876101b     ./gcc/java/boehm.c
@@ -3141,10 +3142,10 @@
  808662179b     ./gcc/java/except.c
 3550734029b     ./gcc/java/expr.c
-2303455424b     ./gcc/java/gcj.1
+4174611121b     ./gcc/java/gcj.1
 1285466178b     ./gcc/java/gcj.info
 3613529008b     ./gcc/java/gcj.texi
-3134108520b     ./gcc/java/gcjh.1
+1419212109b     ./gcc/java/gcjh.1
  533046670b     ./gcc/java/gen-table.pl
-3664868515b     ./gcc/java/gij.1
+2607193814b     ./gcc/java/gij.1
  871232158b     ./gcc/java/gjavah.c
 1545050516b     ./gcc/java/java-except.h
@@ -3155,5 +3156,5 @@
 3553057247b     ./gcc/java/javaop.h
 1618392854b     ./gcc/java/jcf-depend.c
-1145142244b     ./gcc/java/jcf-dump.1
+3198880519b     ./gcc/java/jcf-dump.1
  989986345b     ./gcc/java/jcf-dump.c
  265802933b     ./gcc/java/jcf-io.c
@@ -3163,6 +3164,6 @@
 2779561656b     ./gcc/java/jcf-write.c
 1096034698b     ./gcc/java/jcf.h
-1300895839b     ./gcc/java/jv-convert.1
-1028955287b     ./gcc/java/jv-scan.1
+2009127575b     ./gcc/java/jv-convert.1
+3195548808b     ./gcc/java/jv-scan.1
 1608362154b     ./gcc/java/jv-scan.c
 3805988298b     ./gcc/java/jvgenmain.c
@@ -3177,11 +3178,11 @@
 3475732428b     ./gcc/java/mangle.c
 1178542691b     ./gcc/java/mangle_name.c
- 348918369b     ./gcc/java/parse-scan.c
+1429685691b     ./gcc/java/parse-scan.c
  222108707b     ./gcc/java/parse-scan.y
-2596574559b     ./gcc/java/parse.c
+1611596066b     ./gcc/java/parse.c
 1819635606b     ./gcc/java/parse.h
-3662037178b     ./gcc/java/parse.y
-3027172474b     ./gcc/java/rmic.1
- 581770323b     ./gcc/java/rmiregistry.1
+ 794022336b     ./gcc/java/parse.y
+3780385607b     ./gcc/java/rmic.1
+   7701542b     ./gcc/java/rmiregistry.1
 4133292138b     ./gcc/java/typeck.c
 3461608157b     ./gcc/java/verify.c
@@ -3208,6 +3209,6 @@
 1812783525b     ./gcc/location.h
 3570672314b     ./gcc/longlong.h
-2461034006b     ./gcc/loop.c
-3228595845b     ./gcc/loop.h
+4189038592b     ./gcc/loop.c
+ 654517475b     ./gcc/loop.h
 1751002388b     ./gcc/machmode.def
 2912025978b     ./gcc/machmode.h
@@ -3238,5 +3239,5 @@
 2857922994b     ./gcc/objc/objc-parse.y
  688475759b     ./gcc/objc/objc-tree.def
-4252415064b     ./gcc/optabs.c
+2109631796b     ./gcc/optabs.c
 2466464809b     ./gcc/optabs.h
 4051333287b     ./gcc/output.h
@@ -3244,5 +3245,5 @@
 3767044429b     ./gcc/params.def
  984476649b     ./gcc/params.h
- 232711754b     ./gcc/po/ChangeLog
+1326043753b     ./gcc/po/ChangeLog
 4281232887b     ./gcc/po/EXCLUDES
 1765678219b     ./gcc/po/be.gmo
@@ -3297,8 +3298,8 @@
  886698666b     ./gcc/regrename.c
 4261713084b     ./gcc/regs.h
-4081923274b     ./gcc/reload.c
+1474155121b     ./gcc/reload.c
 3481272321b     ./gcc/reload.h
- 963102091b     ./gcc/reload1.c
- 926972925b     ./gcc/reorg.c
+2824165939b     ./gcc/reload1.c
+3164110364b     ./gcc/reorg.c
  998121861b     ./gcc/resource.c
 1496727907b     ./gcc/resource.h
@@ -3306,5 +3307,5 @@
 2941705038b     ./gcc/rtl.c
 3774845754b     ./gcc/rtl.def
- 462167881b     ./gcc/rtl.h
+1765792475b     ./gcc/rtl.h
 3358091595b     ./gcc/rtlanal.c
 1290811844b     ./gcc/sbitmap.c
@@ -3314,6 +3315,6 @@
   75721905b     ./gcc/scan.c
  339714129b     ./gcc/scan.h
-2704776331b     ./gcc/sched-deps.c
-3401032447b     ./gcc/sched-ebb.c
+ 723954729b     ./gcc/sched-deps.c
+2646579076b     ./gcc/sched-ebb.c
  227158360b     ./gcc/sched-int.h
 1052849256b     ./gcc/sched-rgn.c
@@ -3330,5 +3331,5 @@
  661640452b     ./gcc/stab.def
  471587796b     ./gcc/stack.h
-2279062054b     ./gcc/stmt.c
+1801617416b     ./gcc/stmt.c
  859696767b     ./gcc/stor-layout.c
 3600592812b     ./gcc/stringpool.c
@@ -3336,7 +3337,7 @@
  482558466b     ./gcc/sys-types.h
  644385845b     ./gcc/system.h
-3943359312b     ./gcc/target-def.h
-1185210674b     ./gcc/target.h
- 538408163b     ./gcc/testsuite/ChangeLog
+ 833215330b     ./gcc/target-def.h
+1550490872b     ./gcc/target.h
+2063025041b     ./gcc/testsuite/ChangeLog
  986418331b     ./gcc/testsuite/README
 3846056859b     ./gcc/testsuite/README.QMTEST
@@ -5164,4 +5165,5 @@
  700720258b     ./gcc/testsuite/g++.dg/compat/init/init-ref2_x.C
 2301277977b     ./gcc/testsuite/g++.dg/compat/init/init-ref2_y.C
+ 356819005b     ./gcc/testsuite/g++.dg/conversion/op2.C
 2365486838b     ./gcc/testsuite/g++.dg/conversion/to-virtual-base-1.C
 3896968797b     ./gcc/testsuite/g++.dg/cpp/c++98-pedantic.C
@@ -5184,4 +5186,5 @@
 3959371868b     ./gcc/testsuite/g++.dg/dg.exp
 2975391044b     ./gcc/testsuite/g++.dg/eh/cleanup1.C
+2632826316b     ./gcc/testsuite/g++.dg/eh/cond2.C
 3604468645b     ./gcc/testsuite/g++.dg/eh/ctor1.C
 2992503335b     ./gcc/testsuite/g++.dg/eh/ctor2.C
@@ -5207,4 +5210,5 @@
 1384086633b     ./gcc/testsuite/g++.dg/eh/spec5.C
  292797123b     ./gcc/testsuite/g++.dg/eh/spec6.C
+3415667192b     ./gcc/testsuite/g++.dg/eh/spec7.C
 2126977935b     ./gcc/testsuite/g++.dg/eh/stabilize.C
  985744667b     ./gcc/testsuite/g++.dg/eh/synth1.C
@@ -5212,11 +5216,12 @@
 3379396295b     ./gcc/testsuite/g++.dg/eh/template2.C
 1789254796b     ./gcc/testsuite/g++.dg/eh/unexpected1.C
- 341775930b     ./gcc/testsuite/g++.dg/expr/anew1.C
-2577406969b     ./gcc/testsuite/g++.dg/expr/anew2.C
-1242918408b     ./gcc/testsuite/g++.dg/expr/anew3.C
-2363098696b     ./gcc/testsuite/g++.dg/expr/anew4.C
+ 564385950b     ./gcc/testsuite/g++.dg/expr/anew1.C
+ 629123995b     ./gcc/testsuite/g++.dg/expr/anew2.C
+3042982408b     ./gcc/testsuite/g++.dg/expr/anew3.C
+ 250085794b     ./gcc/testsuite/g++.dg/expr/anew4.C
 3540714573b     ./gcc/testsuite/g++.dg/expr/cast1.C
 1287092719b     ./gcc/testsuite/g++.dg/expr/comma1.C
  880147168b     ./gcc/testsuite/g++.dg/expr/cond1.C
+1745658440b     ./gcc/testsuite/g++.dg/expr/cond5.C
 3467644215b     ./gcc/testsuite/g++.dg/expr/dtor1.C
 1191085278b     ./gcc/testsuite/g++.dg/expr/member-of-incomplete-type-1.C
@@ -5232,4 +5237,5 @@
 1653326846b     ./gcc/testsuite/g++.dg/ext/anon-struct2.C
 1772814405b     ./gcc/testsuite/g++.dg/ext/anon-struct3.C
+4078456003b     ./gcc/testsuite/g++.dg/ext/anon-struct4.C
 1550451528b     ./gcc/testsuite/g++.dg/ext/array1.C
  592156091b     ./gcc/testsuite/g++.dg/ext/asm1.C
@@ -5327,4 +5333,5 @@
 1144691903b     ./gcc/testsuite/g++.dg/init/ctor1.C
  163984973b     ./gcc/testsuite/g++.dg/init/ctor2.C
+3890903348b     ./gcc/testsuite/g++.dg/init/ctor3.C
 1741245578b     ./gcc/testsuite/g++.dg/init/dtor1.C
  356489409b     ./gcc/testsuite/g++.dg/init/dtor2.C
@@ -5335,4 +5342,5 @@
  827423108b     ./gcc/testsuite/g++.dg/init/enum2.C
  736777071b     ./gcc/testsuite/g++.dg/init/error1.C
+1308129887b     ./gcc/testsuite/g++.dg/init/goto1.C
 2640181867b     ./gcc/testsuite/g++.dg/init/init-ref1.C
 3275947242b     ./gcc/testsuite/g++.dg/init/init-ref2.C
@@ -5349,4 +5357,5 @@
 3206400652b     ./gcc/testsuite/g++.dg/init/ref1.C
 3052467884b     ./gcc/testsuite/g++.dg/init/ref10.C
+1573776522b     ./gcc/testsuite/g++.dg/init/ref11.C
 1135829210b     ./gcc/testsuite/g++.dg/init/ref2.C
  550201609b     ./gcc/testsuite/g++.dg/init/ref3.C
@@ -5357,6 +5366,8 @@
 2843431707b     ./gcc/testsuite/g++.dg/init/ref9.C
 1760232845b     ./gcc/testsuite/g++.dg/init/static1.C
+4164268685b     ./gcc/testsuite/g++.dg/init/static2.C
  710300032b     ./gcc/testsuite/g++.dg/init/string1.C
 1661800402b     ./gcc/testsuite/g++.dg/init/struct1.C
+2097064362b     ./gcc/testsuite/g++.dg/init/union1.C
 4082145348b     ./gcc/testsuite/g++.dg/lookup/anon1.C
 3674515572b     ./gcc/testsuite/g++.dg/lookup/anon2.C
@@ -5368,4 +5379,5 @@
 3013908110b     ./gcc/testsuite/g++.dg/lookup/disamb1.C
 1685614125b     ./gcc/testsuite/g++.dg/lookup/enum1.C
+3436241271b     ./gcc/testsuite/g++.dg/lookup/enum2.C
 1698581993b     ./gcc/testsuite/g++.dg/lookup/forscope1.C
 3727433793b     ./gcc/testsuite/g++.dg/lookup/friend1.C
@@ -5409,6 +5421,6 @@
 2869206713b     ./gcc/testsuite/g++.dg/opt/inline2.C
 3194356521b     ./gcc/testsuite/g++.dg/opt/inline3.C
-2860828140b     ./gcc/testsuite/g++.dg/opt/inline4.C
- 269645761b     ./gcc/testsuite/g++.dg/opt/inline6.C
+2820265225b     ./gcc/testsuite/g++.dg/opt/inline4.C
+3640214107b     ./gcc/testsuite/g++.dg/opt/inline6.C
  373643534b     ./gcc/testsuite/g++.dg/opt/local1.C
 3146403914b     ./gcc/testsuite/g++.dg/opt/longbranch1.C
@@ -5422,4 +5434,5 @@
  447614414b     ./gcc/testsuite/g++.dg/opt/nrv5.C
  881706634b     ./gcc/testsuite/g++.dg/opt/operator1.C
+ 738357752b     ./gcc/testsuite/g++.dg/opt/pr15054.C
 3580960284b     ./gcc/testsuite/g++.dg/opt/pr6713.C
  442892442b     ./gcc/testsuite/g++.dg/opt/preinc1.C
@@ -5455,4 +5468,5 @@
 3254620469b     ./gcc/testsuite/g++.dg/other/copy1.C
 2255061677b     ./gcc/testsuite/g++.dg/other/copy2.C
+3775621645b     ./gcc/testsuite/g++.dg/other/crash-2.C
 4162972212b     ./gcc/testsuite/g++.dg/other/cxa-atexit1.C
 1473349538b     ./gcc/testsuite/g++.dg/other/do1.C
@@ -5473,4 +5487,5 @@
 1073045139b     ./gcc/testsuite/g++.dg/other/pragma-ep-1.C
  198088036b     ./gcc/testsuite/g++.dg/other/pragma-re-1.C
+ 747688442b     ./gcc/testsuite/g++.dg/other/profile1.C
 1453288357b     ./gcc/testsuite/g++.dg/other/ptrmem1.C
  392352692b     ./gcc/testsuite/g++.dg/other/ptrmem2.C
@@ -5483,4 +5498,5 @@
  873911472b     ./gcc/testsuite/g++.dg/other/stdbool-if.C
  547272836b     ./gcc/testsuite/g++.dg/other/struct-va_list.C
+1333242398b     ./gcc/testsuite/g++.dg/other/switch1.C
 1809278557b     ./gcc/testsuite/g++.dg/other/warning1.C
 2421396411b     ./gcc/testsuite/g++.dg/overload/ambig1.C
@@ -5510,4 +5526,5 @@
 2724794863b     ./gcc/testsuite/g++.dg/parse/error7.C
 3454082090b     ./gcc/testsuite/g++.dg/parse/friend1.C
+ 809707559b     ./gcc/testsuite/g++.dg/parse/init1.C
  849996881b     ./gcc/testsuite/g++.dg/parse/inline1.C
 1601717576b     ./gcc/testsuite/g++.dg/parse/named_ops.C
@@ -5575,4 +5592,5 @@
 2692451775b     ./gcc/testsuite/g++.dg/template/deduce1.C
 3818821570b     ./gcc/testsuite/g++.dg/template/defarg2.C
+2725414642b     ./gcc/testsuite/g++.dg/template/defarg4.C
  184359799b     ./gcc/testsuite/g++.dg/template/dtor1.C
 1161800603b     ./gcc/testsuite/g++.dg/template/explicit-instantiation.C
@@ -5663,4 +5681,6 @@
 2914549620b     ./gcc/testsuite/g++.dg/template/spec1.C
 2086014865b     ./gcc/testsuite/g++.dg/template/spec10.C
+2879534177b     ./gcc/testsuite/g++.dg/template/spec11.C
+ 140674172b     ./gcc/testsuite/g++.dg/template/spec12.C
 2378483146b     ./gcc/testsuite/g++.dg/template/spec2.C
 4044137217b     ./gcc/testsuite/g++.dg/template/spec3.C
@@ -5712,4 +5732,5 @@
 2827119941b     ./gcc/testsuite/g++.dg/warn/Wunused-3.C
 3534874517b     ./gcc/testsuite/g++.dg/warn/compare1.C
+ 445772433b     ./gcc/testsuite/g++.dg/warn/conv2.C
 3909264609b     ./gcc/testsuite/g++.dg/warn/conversion-function-1.C
  439467252b     ./gcc/testsuite/g++.dg/warn/ctor-init-1.C
@@ -7536,5 +7557,5 @@
  396388537b     ./gcc/testsuite/g++.old-deja/g++.ns/using8.C
  536814910b     ./gcc/testsuite/g++.old-deja/g++.ns/using9.C
-1838465373b     ./gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
+1810157936b     ./gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
 3728265872b     ./gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
 3026414575b     ./gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
@@ -9404,4 +9425,5 @@
  431248112b     ./gcc/testsuite/gcc.c-torture/compile/20031220-1.c
 1198495265b     ./gcc/testsuite/gcc.c-torture/compile/20031231-1.c
+ 949931487b     ./gcc/testsuite/gcc.c-torture/compile/20040304-1.c
  375311401b     ./gcc/testsuite/gcc.c-torture/compile/900116-1.c
 4181931788b     ./gcc/testsuite/gcc.c-torture/compile/900216-1.c
@@ -9704,4 +9726,5 @@
  935994442b     ./gcc/testsuite/gcc.c-torture/compile/mipscop-4.x
 1060389673b     ./gcc/testsuite/gcc.c-torture/compile/packed-1.c
+1869656721b     ./gcc/testsuite/gcc.c-torture/compile/pr13889.c
 3351120683b     ./gcc/testsuite/gcc.c-torture/compile/simd-1.c
 3894704862b     ./gcc/testsuite/gcc.c-torture/compile/simd-2.c
@@ -9940,4 +9963,9 @@
 2736693548b     ./gcc/testsuite/gcc.c-torture/execute/20031201-1.c
 1999424349b     ./gcc/testsuite/gcc.c-torture/execute/20031215-1.c
+3442892101b     ./gcc/testsuite/gcc.c-torture/execute/20040218-1.c
+4271434266b     ./gcc/testsuite/gcc.c-torture/execute/20040302-1.c
+3100722732b     ./gcc/testsuite/gcc.c-torture/execute/20040307-1.c
+ 482019764b     ./gcc/testsuite/gcc.c-torture/execute/20040313-1.c
+3076819546b     ./gcc/testsuite/gcc.c-torture/execute/20040331-1.c
   37158978b     ./gcc/testsuite/gcc.c-torture/execute/900409-1.c
 1241514475b     ./gcc/testsuite/gcc.c-torture/execute/920202-1.c
@@ -10381,4 +10409,5 @@
 3662025483b     ./gcc/testsuite/gcc.c-torture/execute/packed-2.c
  781350511b     ./gcc/testsuite/gcc.c-torture/execute/pending-4.c
+ 686503560b     ./gcc/testsuite/gcc.c-torture/execute/pr15296.c
 1246182987b     ./gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
 1048909723b     ./gcc/testsuite/gcc.c-torture/execute/pure-1.c
@@ -10752,8 +10781,8 @@
 4235098888b     ./gcc/testsuite/gcc.dg/20001012-1.c
 3084023965b     ./gcc/testsuite/gcc.dg/20001012-2.c
-2504286200b     ./gcc/testsuite/gcc.dg/20001013-1.c
+3299283740b     ./gcc/testsuite/gcc.dg/20001013-1.c
  989710521b     ./gcc/testsuite/gcc.dg/20001023-1.c
-2648600842b     ./gcc/testsuite/gcc.dg/20001101-1.c
- 452608955b     ./gcc/testsuite/gcc.dg/20001102-1.c
+ 804447400b     ./gcc/testsuite/gcc.dg/20001101-1.c
+4223638294b     ./gcc/testsuite/gcc.dg/20001102-1.c
 2644591049b     ./gcc/testsuite/gcc.dg/20001108-1.c
 3796315325b     ./gcc/testsuite/gcc.dg/20001116-1.c
@@ -10866,4 +10895,9 @@
 1753956620b     ./gcc/testsuite/gcc.dg/20031202-1.c
 2896586238b     ./gcc/testsuite/gcc.dg/20040112-1.c
+4275516998b     ./gcc/testsuite/gcc.dg/20040127-1.c
+1205096549b     ./gcc/testsuite/gcc.dg/20040127-2.c
+1977816766b     ./gcc/testsuite/gcc.dg/20040306-1.c
+2303960477b     ./gcc/testsuite/gcc.dg/20040311-2.c
+ 781462338b     ./gcc/testsuite/gcc.dg/20040322-1.c
 1577979025b     ./gcc/testsuite/gcc.dg/920413-1.c
 2176221389b     ./gcc/testsuite/gcc.dg/940409-1.c
@@ -11066,4 +11100,5 @@
 2444556566b     ./gcc/testsuite/gcc.dg/concat.c
  720344318b     ./gcc/testsuite/gcc.dg/concat2.c
+2191898752b     ./gcc/testsuite/gcc.dg/const-1.c
  872352985b     ./gcc/testsuite/gcc.dg/conv-1.c
 2296607049b     ./gcc/testsuite/gcc.dg/cpp/19921210-1.c
@@ -11470,4 +11505,5 @@
  745582715b     ./gcc/testsuite/gcc.dg/gnu89-init-1.c
  339065893b     ./gcc/testsuite/gcc.dg/gnu89-init-2.c
+ 356145767b     ./gcc/testsuite/gcc.dg/gnu89-init-3.c
 1770671475b     ./gcc/testsuite/gcc.dg/gnu99-init-1.c
 2038429173b     ./gcc/testsuite/gcc.dg/h8300-stack-1.c
@@ -11509,5 +11545,7 @@
 2512902839b     ./gcc/testsuite/gcc.dg/inline-1.c
 1196369631b     ./gcc/testsuite/gcc.dg/inline-2.c
+2286477942b     ./gcc/testsuite/gcc.dg/inline-5.c
  247919548b     ./gcc/testsuite/gcc.dg/loop-1.c
+ 264507121b     ./gcc/testsuite/gcc.dg/loop-4.c
  775331063b     ./gcc/testsuite/gcc.dg/lvalue1.c
 2663557248b     ./gcc/testsuite/gcc.dg/m-un-1.c
@@ -11553,4 +11591,5 @@
 2927938029b     ./gcc/testsuite/gcc.dg/noncompile/init-2.c
 4011814030b     ./gcc/testsuite/gcc.dg/noncompile/init-3.c
+1980622562b     ./gcc/testsuite/gcc.dg/noncompile/init-4.c
  835046904b     ./gcc/testsuite/gcc.dg/noncompile/invalid_asm.c
 3441206096b     ./gcc/testsuite/gcc.dg/noncompile/label-lineno-1.c
@@ -11578,4 +11617,7 @@
 1383345482b     ./gcc/testsuite/gcc.dg/ppc-spe.c
 2768371812b     ./gcc/testsuite/gcc.dg/ppc-stackalign-1.c
+1186813764b     ./gcc/testsuite/gcc.dg/pr14289-1.c
+ 840178763b     ./gcc/testsuite/gcc.dg/pr14289-2.c
+2802493289b     ./gcc/testsuite/gcc.dg/pr14289-3.c
 3395691298b     ./gcc/testsuite/gcc.dg/pragma-align.c
 2976918557b     ./gcc/testsuite/gcc.dg/pragma-darwin.c
@@ -11599,5 +11641,6 @@
  358299505b     ./gcc/testsuite/gcc.dg/sparc-constant-1.c
 2828537866b     ./gcc/testsuite/gcc.dg/sparc-dwarf2.c
- 802040009b     ./gcc/testsuite/gcc.dg/sparc-ret.c
+1485204465b     ./gcc/testsuite/gcc.dg/sparc-ret.c
+ 857417952b     ./gcc/testsuite/gcc.dg/sparc-trap-1.c
 1993113484b     ./gcc/testsuite/gcc.dg/special/20000419-2.c
 3430419731b     ./gcc/testsuite/gcc.dg/special/alias-1.c
@@ -11647,11 +11690,11 @@
 1860858242b     ./gcc/testsuite/gcc.dg/ultrasp1.c
 2282506048b     ./gcc/testsuite/gcc.dg/ultrasp10.c
- 789972216b     ./gcc/testsuite/gcc.dg/ultrasp2.c
+2770537186b     ./gcc/testsuite/gcc.dg/ultrasp2.c
 2708772692b     ./gcc/testsuite/gcc.dg/ultrasp3.c
-1890424464b     ./gcc/testsuite/gcc.dg/ultrasp4.c
+3126553207b     ./gcc/testsuite/gcc.dg/ultrasp4.c
 2979039757b     ./gcc/testsuite/gcc.dg/ultrasp5.c
  783369369b     ./gcc/testsuite/gcc.dg/ultrasp6.c
 2907651471b     ./gcc/testsuite/gcc.dg/ultrasp7.c
- 906694114b     ./gcc/testsuite/gcc.dg/ultrasp8.c
+3534670154b     ./gcc/testsuite/gcc.dg/ultrasp8.c
 3540624174b     ./gcc/testsuite/gcc.dg/ultrasp9.c
 2258658308b     ./gcc/testsuite/gcc.dg/uninit-1.c
@@ -11908,5 +11951,5 @@
  416130789b     ./gcc/testsuite/objc/execute/string4.m
   34483048b     ./gcc/testsuite/objc/execute/va_method.m
-2021644960b     ./gcc/testsuite/treelang/ChangeLog
+2774873768b     ./gcc/testsuite/treelang/ChangeLog
 2484589993b     ./gcc/testsuite/treelang/Makefile.in
  459055346b     ./gcc/testsuite/treelang/a01gcci01.c
@@ -11918,10 +11961,10 @@
   70728940b     ./gcc/timevar.h
 2501087508b     ./gcc/tlink.c
-2483790730b     ./gcc/toplev.c
+2826617480b     ./gcc/toplev.c
 2285258868b     ./gcc/toplev.h
 3423640720b     ./gcc/tracer.c
 3233962690b     ./gcc/tree-dump.c
 3355334157b     ./gcc/tree-dump.h
-2369766666b     ./gcc/tree-inline.c
+3693992938b     ./gcc/tree-inline.c
 3754771676b     ./gcc/tree-inline.h
 2405545318b     ./gcc/tree.c
@@ -11929,5 +11972,5 @@
 2808711120b     ./gcc/tree.h
 1245022634b     ./gcc/treelang/.cvsignore
-4228296385b     ./gcc/treelang/ChangeLog
+2766150449b     ./gcc/treelang/ChangeLog
 4164319034b     ./gcc/treelang/Make-lang.in
 1455824996b     ./gcc/treelang/README
@@ -11944,20 +11987,20 @@
 2170053915b     ./gcc/tsystem.h
 4139263293b     ./gcc/typeclass.h
-2938578497b     ./gcc/unroll.c
- 821072330b     ./gcc/unwind-c.c
+3037639127b     ./gcc/unroll.c
+ 853732038b     ./gcc/unwind-c.c
 2891582256b     ./gcc/unwind-dw2-fde-darwin.c
 4043744940b     ./gcc/unwind-dw2-fde-glibc.c
 4197489626b     ./gcc/unwind-dw2-fde.c
 1040599635b     ./gcc/unwind-dw2-fde.h
- 586184029b     ./gcc/unwind-dw2.c
+ 269773062b     ./gcc/unwind-dw2.c
 3859517403b     ./gcc/unwind-libunwind.c
- 703686593b     ./gcc/unwind-pe.h
+1945804221b     ./gcc/unwind-pe.h
 2302719627b     ./gcc/unwind-sjlj.c
 2380024293b     ./gcc/unwind.h
 1020619093b     ./gcc/unwind.inc
-3386360022b     ./gcc/varasm.c
+ 405552653b     ./gcc/varasm.c
 2835975751b     ./gcc/varray.c
 1175263363b     ./gcc/varray.h
-2511869126b     ./gcc/version.c
+2456375056b     ./gcc/version.c
 3311075015b     ./gcc/version.h
 1174103923b     ./gcc/vmsdbg.h
@@ -11966,5 +12009,5 @@
 1199287060b     ./gcc/xcoffout.h
 2171125041b     ./include/COPYING
-3759863705b     ./include/ChangeLog
+ 590850335b     ./include/ChangeLog
  815071723b     ./include/ansidecl.h
 3196744694b     ./include/demangle.h
@@ -11978,5 +12021,5 @@
 2315750201b     ./include/md5.h
 1017179691b     ./include/objalloc.h
-2663239037b     ./include/obstack.h
+3485810233b     ./include/obstack.h
  953934126b     ./include/partition.h
  618378141b     ./include/safe-ctype.h
@@ -11988,5 +12031,5 @@
 1261882580b     ./include/xregex2.h
  656627656b     ./install-sh
-3068789997b     ./libf2c/ChangeLog
+1597529073b     ./libf2c/ChangeLog
 1037519030b     ./libf2c/Makefile.in
 3111321221b     ./libf2c/README
@@ -11994,5 +12037,5 @@
 2266217259b     ./libf2c/aclocal.m4
 1973941211b     ./libf2c/changes.netlib
-2076327479b     ./libf2c/configure
+1349304150b     ./libf2c/configure
 2026513347b     ./libf2c/configure.in
 2487502900b     ./libf2c/disclaimer.netlib
@@ -12245,5 +12288,5 @@
 1384146782b     ./libf2c/permission.netlib
 3513813969b     ./libf2c/readme.netlib
- 637025596b     ./libffi/ChangeLog
+2445957053b     ./libffi/ChangeLog
 2702617959b     ./libffi/ChangeLog.libgcj
 1481682558b     ./libffi/ChangeLog.v1
@@ -12255,5 +12298,5 @@
 2067133813b     ./libffi/acinclude.m4
  724319761b     ./libffi/aclocal.m4
-1642766366b     ./libffi/configure
+4222507888b     ./libffi/configure
 3275746772b     ./libffi/configure.in
 3275597189b     ./libffi/fficonfig.h.in
@@ -12304,5 +12347,5 @@
  216805921b     ./libffi/stamp-h.in
  508743035b     ./libiberty/COPYING.LIB
- 413373498b     ./libiberty/ChangeLog
+3535422853b     ./libiberty/ChangeLog
 2009246522b     ./libiberty/Makefile.in
 2709928858b     ./libiberty/README
@@ -12422,5 +12465,5 @@
  387398324b     ./libiberty/xstrerror.c
 2171125041b     ./libjava/COPYING
-3818304799b     ./libjava/ChangeLog
+1781799623b     ./libjava/ChangeLog
 3473562392b     ./libjava/ChangeLog-1999
 2385951174b     ./libjava/ChangeLog-2001
@@ -12437,5 +12480,5 @@
 3784840223b     ./libjava/addr2name.awk
 1162779077b     ./libjava/boehm.cc
-4057856725b     ./libjava/configure
+2311827252b     ./libjava/configure
 1341552609b     ./libjava/configure.host
 3029277452b     ./libjava/configure.in
@@ -13490,5 +13533,5 @@
 3239854152b     ./libjava/java/net/MulticastSocket.java
 1976437067b     ./libjava/java/net/NetPermission.java
-2182773416b     ./libjava/java/net/NetworkInterface.java
+1363831002b     ./libjava/java/net/NetworkInterface.java
 1314162899b     ./libjava/java/net/NoRouteToHostException.java
 2364180137b     ./libjava/java/net/PasswordAuthentication.java
@@ -14350,5 +14393,5 @@
 3885054737b     ./libjava/libltdl/.cvsignore
 1530919786b     ./libjava/libltdl/COPYING.LIB
-2498936849b     ./libjava/libltdl/ChangeLog
+3259549880b     ./libjava/libltdl/ChangeLog
 3589765398b     ./libjava/libltdl/Makefile.am
 2495909158b     ./libjava/libltdl/Makefile.in
@@ -14417,5 +14460,5 @@
  314779727b     ./libjava/org/xml/sax/helpers/LocatorImpl.java
  750502649b     ./libjava/org/xml/sax/helpers/NamespaceSupport.java
-1300988152b     ./libjava/org/xml/sax/helpers/NewInstance.java
+ 956658334b     ./libjava/org/xml/sax/helpers/NewInstance.java
 3105076878b     ./libjava/org/xml/sax/helpers/ParserAdapter.java
 1733309899b     ./libjava/org/xml/sax/helpers/ParserFactory.java
@@ -14423,6 +14466,6 @@
 1610756734b     ./libjava/org/xml/sax/helpers/XMLReaderAdapter.java
 3616638609b     ./libjava/org/xml/sax/helpers/XMLReaderFactory.java
-3155728298b     ./libjava/org/xml/sax/helpers/package.html
-1586395588b     ./libjava/org/xml/sax/package.html
+ 774663118b     ./libjava/org/xml/sax/helpers/package.html
+2679463761b     ./libjava/org/xml/sax/package.html
 1371529945b     ./libjava/posix-threads.cc
 2522783030b     ./libjava/posix.cc
@@ -14450,5 +14493,5 @@
 2903495760b     ./libjava/sysdep/sparc/locks.h
 1725741696b     ./libjava/sysdep/x86-64/locks.h
-2576287933b     ./libjava/testsuite/ChangeLog
+1665639178b     ./libjava/testsuite/ChangeLog
   41198457b     ./libjava/testsuite/Makefile.am
  813266623b     ./libjava/testsuite/Makefile.in
@@ -14942,5 +14985,5 @@
  295719627b     ./libjava/win32-threads.cc
 3481778046b     ./libjava/win32.cc
-3769241727b     ./libobjc/ChangeLog
+2121095721b     ./libobjc/ChangeLog
 4293292598b     ./libobjc/Makefile.in
  638422313b     ./libobjc/NXConstStr.m
@@ -14955,5 +14998,5 @@
 1187612736b     ./libobjc/class.c
 1748737547b     ./libobjc/config.h.in
- 216167108b     ./libobjc/configure
+2029120684b     ./libobjc/configure
  944229002b     ./libobjc/configure.in
 2269926719b     ./libobjc/encoding.c
@@ -14971,5 +15014,5 @@
  226797930b     ./libobjc/objc/Protocol.h
 2395655210b     ./libobjc/objc/encoding.h
-  75862554b     ./libobjc/objc/hash.h
+3057525217b     ./libobjc/objc/hash.h
 1908906592b     ./libobjc/objc/objc-api.h
 1569406371b     ./libobjc/objc/objc-list.h
@@ -14997,5 +15040,5 @@
 2963027857b     ./libobjc/thr-win32.c
 2758799845b     ./libobjc/thr.c
-2201693294b     ./libstdc++-v3/ChangeLog
+1749235064b     ./libstdc++-v3/ChangeLog
 1996982572b     ./libstdc++-v3/ChangeLog-2000
 3665233589b     ./libstdc++-v3/ChangeLog-2001
@@ -15004,6 +15047,6 @@
  201474883b     ./libstdc++-v3/README
 1476631381b     ./libstdc++-v3/acconfig.h
-2565448560b     ./libstdc++-v3/acinclude.m4
- 331813293b     ./libstdc++-v3/aclocal.m4
+1695739764b     ./libstdc++-v3/acinclude.m4
+1154438994b     ./libstdc++-v3/aclocal.m4
  569844405b     ./libstdc++-v3/config.h.in
 3829016086b     ./libstdc++-v3/config/abi/alpha-freebsd5/baseline_symbols.txt
@@ -15022,5 +15065,5 @@
 1636456412b     ./libstdc++-v3/config/cpu/cris/atomicity.h
 3088308555b     ./libstdc++-v3/config/cpu/generic/atomicity.h
- 264186165b     ./libstdc++-v3/config/cpu/hppa/atomicity.h
+2413817322b     ./libstdc++-v3/config/cpu/hppa/atomicity.h
 4160964918b     ./libstdc++-v3/config/cpu/i386/atomicity.h
 1602541359b     ./libstdc++-v3/config/cpu/i486/atomicity.h
@@ -15036,8 +15079,8 @@
  467422175b     ./libstdc++-v3/config/io/basic_file_stdio.h
 1754405198b     ./libstdc++-v3/config/io/c_io_libio.h
- 714808428b     ./libstdc++-v3/config/io/c_io_libio_codecvt.c
+2876141466b     ./libstdc++-v3/config/io/c_io_libio_codecvt.c
 3948747720b     ./libstdc++-v3/config/io/c_io_stdio.h
 1615839786b     ./libstdc++-v3/config/linker-map.dummy
-3861607433b     ./libstdc++-v3/config/linker-map.gnu
+2907442778b     ./libstdc++-v3/config/linker-map.gnu
 3981697735b     ./libstdc++-v3/config/locale/generic/c++locale_internal.h
 1424668937b     ./libstdc++-v3/config/locale/generic/c_locale.cc
@@ -15137,6 +15180,6 @@
  273313682b     ./libstdc++-v3/config/os/windiss/ctype_noninline.h
 2207004934b     ./libstdc++-v3/config/os/windiss/os_defines.h
-2154062380b     ./libstdc++-v3/configure
-3531775573b     ./libstdc++-v3/configure.in
+ 713262734b     ./libstdc++-v3/configure
+3576129576b     ./libstdc++-v3/configure.in
 2975501078b     ./libstdc++-v3/configure.target
 2885814097b     ./libstdc++-v3/docs/doxygen/Intro.3
@@ -15201,5 +15244,5 @@
 1205808203b     ./libstdc++-v3/docs/html/ext/lwg-active.html
 1419862998b     ./libstdc++-v3/docs/html/ext/lwg-defects.html
-2357878516b     ./libstdc++-v3/docs/html/ext/sgiexts.html
+3201826010b     ./libstdc++-v3/docs/html/ext/sgiexts.html
 2373947009b     ./libstdc++-v3/docs/html/faq/index.html
 3010809624b     ./libstdc++-v3/docs/html/faq/index.txt
@@ -15227,5 +15270,5 @@
 1508058162b     ./libstdc++-v3/include/backward/iostream.h
 1766778751b     ./libstdc++-v3/include/backward/istream.h
-3559514326b     ./libstdc++-v3/include/backward/iterator.h
+1367459860b     ./libstdc++-v3/include/backward/iterator.h
  477791767b     ./libstdc++-v3/include/backward/list.h
 2194603711b     ./libstdc++-v3/include/backward/map.h
@@ -15250,6 +15293,6 @@
 2377036917b     ./libstdc++-v3/include/bits/basic_string.h
 2617734007b     ./libstdc++-v3/include/bits/basic_string.tcc
-3126573300b     ./libstdc++-v3/include/bits/boost_concept_check.h
-3555994863b     ./libstdc++-v3/include/bits/c++config
+3875598835b     ./libstdc++-v3/include/bits/boost_concept_check.h
+1309470357b     ./libstdc++-v3/include/bits/c++config
  994369839b     ./libstdc++-v3/include/bits/char_traits.h
  694818237b     ./libstdc++-v3/include/bits/codecvt.h
@@ -15268,5 +15311,5 @@
 1753104675b     ./libstdc++-v3/include/bits/locale_classes.h
 1832292610b     ./libstdc++-v3/include/bits/locale_facets.h
-2013744461b     ./libstdc++-v3/include/bits/locale_facets.tcc
+ 314473935b     ./libstdc++-v3/include/bits/locale_facets.tcc
 3993915647b     ./libstdc++-v3/include/bits/localefwd.h
 1105005297b     ./libstdc++-v3/include/bits/mask_array.h
@@ -15412,8 +15455,8 @@
 2660730597b     ./libstdc++-v3/include/std/std_valarray.h
 3713138538b     ./libstdc++-v3/include/std/std_vector.h
- 462797626b     ./libstdc++-v3/libio/ChangeLog
+1708608958b     ./libstdc++-v3/libio/ChangeLog
 3759774482b     ./libstdc++-v3/libio/Makefile.am
 3035076726b     ./libstdc++-v3/libio/Makefile.in
- 314955067b     ./libstdc++-v3/libio/_G_config.h
+2019924297b     ./libstdc++-v3/libio/_G_config.h
 2122576197b     ./libstdc++-v3/libio/filedoalloc.c
 3590060213b     ./libstdc++-v3/libio/fileops.c
@@ -15422,5 +15465,5 @@
  932932445b     ./libstdc++-v3/libio/iofopen.c
 2284824626b     ./libstdc++-v3/libio/iofwide.c
-3964237465b     ./libstdc++-v3/libio/iolibio.h
+2381541474b     ./libstdc++-v3/libio/iolibio.h
 4269898080b     ./libstdc++-v3/libio/libio.h
  276542374b     ./libstdc++-v3/libio/libioP.h
@@ -15466,5 +15509,5 @@
 2851101423b     ./libstdc++-v3/libsupc++/pure.cc
 1354681125b     ./libstdc++-v3/libsupc++/tinfo.cc
-1192700122b     ./libstdc++-v3/libsupc++/tinfo.h
+1738455575b     ./libstdc++-v3/libsupc++/tinfo.h
 4266179473b     ./libstdc++-v3/libsupc++/tinfo2.cc
 1563723440b     ./libstdc++-v3/libsupc++/typeinfo
@@ -15478,5 +15521,5 @@
 4161545945b     ./libstdc++-v3/po/fr.po
  571561184b     ./libstdc++-v3/po/libstdc++.pot
-1352447199b     ./libstdc++-v3/po/string_literals.cc
+2242875680b     ./libstdc++-v3/po/string_literals.cc
 3533995407b     ./libstdc++-v3/src/Makefile.am
 3193819837b     ./libstdc++-v3/src/Makefile.in
@@ -15508,5 +15551,5 @@
  721446018b     ./libstdc++-v3/src/valarray-inst.cc
 2601290630b     ./libstdc++-v3/src/vterminate.cc
-1651008667b     ./libstdc++-v3/src/wstring-inst.cc
+1660947187b     ./libstdc++-v3/src/wstring-inst.cc
 3407177850b     ./libstdc++-v3/testsuite/17_intro/header_cassert.cc
  718483329b     ./libstdc++-v3/testsuite/17_intro/header_cerrno.cc
@@ -15770,5 +15813,5 @@
  336967323b     ./libstdc++-v3/testsuite/Makefile.in
 2335944059b     ./libstdc++-v3/testsuite/README
- 897528513b     ./libstdc++-v3/testsuite/abi_check.cc
+2681592900b     ./libstdc++-v3/testsuite/abi_check.cc
 3762370376b     ./libstdc++-v3/testsuite/backward/header_deque_h.cc
  651880874b     ./libstdc++-v3/testsuite/backward/header_hash_map_h.cc
@@ -15804,15 +15847,15 @@
 1701874201b     ./libstdc++-v3/testsuite/thread/pthread6.cc
 1094483777b     ./libstdc++-v3/testsuite_flags.in
-3719830716b     ./libtool.m4
+3382288367b     ./libtool.m4
 3680999751b     ./ltcf-c.sh
  809573867b     ./ltcf-cxx.sh
 2744413125b     ./ltcf-gcj.sh
- 910615352b     ./ltconfig
+1656951777b     ./ltconfig
 1562969795b     ./ltmain.sh
- 569373942b     ./maintainer-scripts/ChangeLog
+ 801767510b     ./maintainer-scripts/ChangeLog
 3126840705b     ./maintainer-scripts/README
 3655238705b     ./maintainer-scripts/crontab
 4171969357b     ./maintainer-scripts/doc_exclude
-2394357728b     ./maintainer-scripts/gcc_release
+2933910739b     ./maintainer-scripts/gcc_release
  865042342b     ./maintainer-scripts/snapshot-README
  449123050b     ./maintainer-scripts/snapshot-index.html
@@ -15827,5 +15870,5 @@
 1077958069b     ./symlink-tree
 1370970362b     ./ylwrap
-2033573000b     ./zlib/ChangeLog
+3738427596b     ./zlib/ChangeLog
  642840868b     ./zlib/ChangeLog.gcj
 1790959550b     ./zlib/FAQ
@@ -15838,10 +15881,10 @@
 1221785251b     ./zlib/acinclude.m4
   63064805b     ./zlib/aclocal.m4
-4246695714b     ./zlib/adler32.c
+ 261684038b     ./zlib/adler32.c
 2360440520b     ./zlib/algorithm.txt
 1537725969b     ./zlib/amiga/Makefile.pup
 3919607569b     ./zlib/amiga/Makefile.sas
-1397025471b     ./zlib/compress.c
-3790213997b     ./zlib/configure
+ 869749416b     ./zlib/compress.c
+1944249901b     ./zlib/configure
 1753606500b     ./zlib/configure.in
 3769239525b     ./zlib/contrib/README.contrib
@@ -15870,5 +15913,5 @@
 1960805227b     ./zlib/contrib/iostream/zfstream.cpp
  933409408b     ./zlib/contrib/iostream/zfstream.h
-3191203911b     ./zlib/contrib/iostream2/zstream.h
+2013096941b     ./zlib/contrib/iostream2/zstream.h
 3297987584b     ./zlib/contrib/iostream2/zstream_test.cpp
 2533758279b     ./zlib/contrib/minizip/ChangeLogUnzip
@@ -15890,10 +15933,10 @@
 1384858048b     ./zlib/contrib/untgz/untgz.c
 2352798505b     ./zlib/contrib/visual-basic.txt
- 409540251b     ./zlib/crc32.c
- 754093270b     ./zlib/deflate.c
-2321655791b     ./zlib/deflate.h
+2556381586b     ./zlib/crc32.c
+2709017522b     ./zlib/deflate.c
+ 405082726b     ./zlib/deflate.h
 1690938184b     ./zlib/descrip.mms
-1880553404b     ./zlib/example.c
-2238767519b     ./zlib/gzio.c
+1330717058b     ./zlib/example.c
+1766465763b     ./zlib/gzio.c
 3009787290b     ./zlib/infblock.c
   34847356b     ./zlib/infblock.h
@@ -15909,5 +15952,5 @@
 2297950969b     ./zlib/infutil.h
  196153738b     ./zlib/maketree.c
- 470692683b     ./zlib/minigzip.c
+1405584811b     ./zlib/minigzip.c
  955312409b     ./zlib/msdos/Makefile.b32
 3122518693b     ./zlib/msdos/Makefile.bor
@@ -15926,11 +15969,11 @@
 2605576410b     ./zlib/os2/Makefile.os2
   99579017b     ./zlib/os2/zlib.def
-1164927361b     ./zlib/trees.c
+1629625515b     ./zlib/trees.c
   10665304b     ./zlib/trees.h
- 275019746b     ./zlib/uncompr.c
- 894113733b     ./zlib/zconf.h
+1726726774b     ./zlib/uncompr.c
+ 726194935b     ./zlib/zconf.h
 3626005175b     ./zlib/zlib.3
 3609968891b     ./zlib/zlib.h
  191319815b     ./zlib/zlib.html
-2621638539b     ./zlib/zutil.c
-1523742995b     ./zlib/zutil.h
+1235989202b     ./zlib/zutil.c
+ 631674220b     ./zlib/zutil.h
Index: trunk/src/gcc/BUGS
===================================================================
--- trunk/src/gcc/BUGS	(revision 1462)
+++ trunk/src/gcc/BUGS	(revision 1465)
@@ -19,5 +19,5 @@
           + [10]C++
                o [11]Missing features
-               o [12]Bugs fixed in the upcoming 3.4 series
+               o [12]Bugs fixed in the 3.4 series
           + [13]Fortran
      * [14]Non-bugs
@@ -256,5 +256,5 @@
           definitions may be included from the header.
 
-  Bugs fixed in the upcoming 3.4 series
+  Bugs fixed in the 3.4 series
 
    The following bugs are present up to (and including) GCC 3.3.x. They
@@ -365,5 +365,5 @@
           on others.
 
-          The is the result of rounding: The computer cannot represent
+          This is the result of rounding: The computer cannot represent
           all real numbers exactly, so it has to use approximations. When
           computing with approximation, the computer needs to round to
@@ -588,25 +588,78 @@
           scope operator.
 
+   Copy constructor access check while initializing a reference.
+          Consider this code:
+
+class A
+{
+public:
+  A();
+
+private:
+  A(const A&);   // private copy ctor
+};
+
+A makeA(void);
+void foo(const A&);
+
+void bar(void)
+{
+  foo(A());       // error, copy ctor is not accessible
+  foo(makeA());   // error, copy ctor is not accessible
+
+  A a1;
+  foo(a1);        // OK, a1 is a lvalue
+}
+
+          Starting with GCC 3.4.0, binding an rvalue to a const reference
+          requires an accessible copy constructor. This might be
+          surprising at first sight, especially since most popular
+          compilers do not correctly implement this rule.
+
+          The C++ Standard says that a temporary object should be created
+          in this context and its contents filled with a copy of the
+          object we are trying to bind to the reference; it also says
+          that the temporary copy can be elided, but the semantic
+          constraints (eg. accessibility) of the copy constructor still
+          have to be checked.
+
+          For further information, you can consult the following
+          paragraphs of the C++ standard: [dcl.init.ref]/5, bullet 2,
+          sub-bullet 1, and [class.temporary]/2.
+
   Common problems when upgrading the compiler
 
     ABI changes
 
-   The application binary interface (ABI) defines how the elements of
-   classes are laid out, how functions are called, how function names are
-   mangled etc. It usually changes with each major release (i.e. when the
-   first or second part of the version number changes). You must
-   recompile all C++ libraries, or you risk linker errors or
-   malfunctioning programs. However, the ABI is not changed with bug-fix
-   releases (i.e. when the third part of the version number changes). The
-   code should be binary compatible among these versions.
+   The C++ application binary interface (ABI) consists of two components:
+   the first defines how the elements of classes are laid out, how
+   functions are called, how function names are mangled, etc; the second
+   part deals with the internals of the objects in libstdc++. Although we
+   strive for a non-changing ABI, so far we have had to modify it with
+   each major release. If you change your compiler to a different major
+   release you must recompile all libraries that contain C++ code. If you
+   fail to do so you risk getting linker errors or malfunctioning
+   programs. Some of our Java support libraries also contain C++ code, so
+   you might want to recompile all libraries to be safe. It should not be
+   necessary to recompile if you have changed to a bug-fix release of the
+   same version of the compiler; bug-fix releases are careful to avoid
+   ABI changes. See also the [34]compatibility section of the GCC manual.
+
+   Remark: A major release is designated by a change to the first or
+   second component of the two- or three-part version number. A minor
+   (bug-fix) release is designated by a change to the third component
+   only. Thus GCC 3.2 and 3.3 are major releases, while 3.3.1 and 3.3.2
+   are bug-fix releases for GCC 3.3. With the 3.4 series we are
+   introducing a new naming scheme; the first release of this series is
+   3.4.0 instead of just 3.4.
 
     Standard conformance
 
    With each release, we try to make G++ conform closer to the ISO C++
-   standard (available at [34]http://www.ncits.org/cplusplus.htm). We
+   standard (available at [35]http://www.ncits.org/cplusplus.htm). We
    have also implemented some of the core and library defect reports
    (available at
-   [35]http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html &
-   [36]http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html
+   [36]http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html &
+   [37]http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html
    respectively).
 
@@ -620,6 +673,6 @@
 
    Two milestones in standard conformance are GCC 3.0 (including a major
-   overhaul of the standard library) and the upcoming 3.4.0 version (with
-   its new C++ parser).
+   overhaul of the standard library) and the 3.4.0 version (with its new
+   C++ parser).
 
     New in GCC 3.0
@@ -713,5 +766,5 @@
 
    In addition to the problems listed above, the manual contains a
-   section on [37]Common Misunderstandings with GNU C++.
+   section on [38]Common Misunderstandings with GNU C++.
 
 References
@@ -750,6 +803,7 @@
   32. http://mail-index.NetBSD.org/tech-kern/2003/08/11/0001.html
   33. http://www.gnu.org/software/libc/
-  34. http://www.ncits.org/cplusplus.htm
-  35. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html
-  36. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html
-  37. http://gcc.gnu.org/onlinedocs/gcc/C---Misunderstandings.html
+  34. http://gcc.gnu.org/onlinedocs/gcc/Compatibility.html
+  35. http://www.ncits.org/cplusplus.htm
+  36. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
+  37. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html
+  38. http://gcc.gnu.org/onlinedocs/gcc/C---Misunderstandings.html
Index: trunk/src/gcc/ChangeLog
===================================================================
--- trunk/src/gcc/ChangeLog	(revision 1462)
+++ trunk/src/gcc/ChangeLog	(revision 1465)
@@ -1,2 +1,17 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
+2004-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	PR bootstrap/15120
+        * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on sh*.
+        * */configure: Rebuilt.
+
+2004-03-05  David Edelsohn  <edelsohn@gnu.org>
+
+	* ltconfig: Disable building static libraries if building shared
+	libraries on AIX 5L.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/boehm-gc/ChangeLog
===================================================================
--- trunk/src/gcc/boehm-gc/ChangeLog	(revision 1462)
+++ trunk/src/gcc/boehm-gc/ChangeLog	(revision 1465)
@@ -1,2 +1,12 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
+2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* include/private/gcconfig.h (PREFETCH): Use __builtin_prefetch
+	for gcc >= 3.0.
+	(PREFETCH_FOR_WRITE): Likewise.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/boehm-gc/include/private/gcconfig.h
===================================================================
--- trunk/src/gcc/boehm-gc/include/private/gcconfig.h	(revision 1462)
+++ trunk/src/gcc/boehm-gc/include/private/gcconfig.h	(revision 1465)
@@ -1668,8 +1668,8 @@
 #            define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
 #       endif
-#	define PREFETCH(x) \
-	  __asm__ __volatile__ ("	prefetch	%0": : "m"(*(char *)(x)))
-#	define PREFETCH_FOR_WRITE(x) \
-	  __asm__ __volatile__ ("	prefetchw	%0": : "m"(*(char *)(x)))
+#	if defined(__GNUC__) && __GNUC__ >= 3
+#	    define PREFETCH(x) __builtin_prefetch ((x), 0, 0)
+#	    define PREFETCH_FOR_WRITE(x) __builtin_prefetch ((x), 1)
+#	endif
 #   endif
 # endif
Index: trunk/src/gcc/bugs.html
===================================================================
--- trunk/src/gcc/bugs.html	(revision 1462)
+++ trunk/src/gcc/bugs.html	(revision 1465)
@@ -30,5 +30,5 @@
     <ul>
     <li><a href="#missing">Missing features</a></li>
-    <li><a href="#fixed34">Bugs fixed in the upcoming 3.4 series</a></li>
+    <li><a href="#fixed34">Bugs fixed in the 3.4 series</a></li>
     </ul>
   </li>
@@ -316,5 +316,5 @@
 </dl>
 
-<h3><a name="fixed34">Bugs fixed in the upcoming 3.4 series</a></h3>
+<h3><a name="fixed34">Bugs fixed in the 3.4 series</a></h3>
 
 <p>The following bugs are present up to (and including) GCC 3.3.x.
@@ -443,5 +443,5 @@
 others.</p>
 
-<p>The is the result of <em>rounding</em>: The computer cannot
+<p>This is the result of <em>rounding</em>: The computer cannot
 represent all real numbers exactly, so it has to use
 approximations. When computing with approximation, the computer needs
@@ -686,4 +686,47 @@
 ::X&gt;</code>, i.e. place a space between the opening angle bracket
 and the scope operator.</p></dd>
+
+
+<dt><a name="cxx_rvalbind">Copy constructor access check while 
+initializing a reference.</a></dt>
+
+<dd><p>Consider this code:</p>
+
+<blockquote><pre>
+class A 
+{
+public:
+  A();
+
+private:
+  A(const A&amp;);   // private copy ctor
+};
+
+A makeA(void);
+void foo(const A&amp;);
+
+void bar(void)
+{
+  foo(A());       // error, copy ctor is not accessible
+  foo(makeA());   // error, copy ctor is not accessible
+
+  A a1;
+  foo(a1);        // OK, a1 is a lvalue
+}</pre></blockquote>
+
+<p>Starting with GCC 3.4.0, binding an rvalue to a const reference requires
+an accessible copy constructor. This might be surprising at first sight, 
+especially since most popular compilers do not correctly implement this 
+rule.</p>
+
+<p>The C++ Standard says that a temporary object should be created in 
+this context and its contents filled with a copy of the object we are 
+trying to bind to the reference; it also says that the temporary copy 
+can be elided, but the semantic constraints (eg. accessibility) of the 
+copy constructor still have to be checked.</p>
+
+<p>For further information, you can consult the following paragraphs of
+the C++ standard: [dcl.init.ref]/5, bullet 2, sub-bullet 1, and
+[class.temporary]/2.</p></dd>
 </dl>
 
@@ -692,12 +735,26 @@
 <h4>ABI changes</h4>
 
-<p>The application binary interface (ABI) defines how the elements of
-classes are laid out, how functions are called, how function names are
-mangled etc.  It usually changes with each major release (i.e. when the
-first or second part of the version number changes).  You <em>must</em>
-recompile all C++ libraries, or you risk linker errors or malfunctioning
-programs.  However, the ABI is not changed with bug-fix releases (i.e.
-when the third part of the version number changes).  The code should be
-binary compatible among these versions.</p>
+<p>The C++ application binary interface (ABI) consists of two
+components: the first defines how the elements of classes are laid
+out, how functions are called, how function names are mangled, etc;
+the second part deals with the internals of the objects in libstdc++.
+Although we strive for a non-changing ABI, so far we have had to
+modify it with each major release.  If you change your compiler to a
+different major release <em>you must recompile all libraries that
+contain C++ code</em>.  If you fail to do so you risk getting linker
+errors or malfunctioning programs.  Some of our Java support libraries
+also contain C++ code, so you might want to recompile all libraries to
+be safe.  It should not be necessary to recompile if you have changed
+to a bug-fix release of the same version of the compiler; bug-fix
+releases are careful to avoid ABI changes. See also the
+<a href="onlinedocs/gcc/Compatibility.html">compatibility section</a>
+of the GCC manual.</p>
+
+<p>Remark: A major release is designated by a change to the first or second
+component of the two- or three-part version number.  A minor (bug-fix)
+release is designated by a change to the third component only.  Thus GCC
+3.2 and 3.3 are major releases, while 3.3.1 and 3.3.2 are bug-fix releases
+for GCC 3.3.  With the 3.4 series we are introducing a new naming scheme;
+the first release of this series is 3.4.0 instead of just 3.4.</p>
 
 <h4>Standard conformance</h4>
@@ -708,7 +765,7 @@
 We have also implemented some of the core and library defect reports
 (available at
-<a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html">http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html</a>
+<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html</a>
 &amp;
-<a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html">http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html</a>
+<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html">http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html</a>
 respectively).</p>
 
@@ -721,6 +778,6 @@
 
 <p>Two milestones in standard conformance are GCC 3.0 (including a major
-overhaul of the standard library) and the upcoming 3.4.0 version (with its
-new C++ parser).</p>
+overhaul of the standard library) and the 3.4.0 version (with its new C++
+parser).</p>
 
 <h4>New in GCC 3.0</h4>
Index: trunk/src/gcc/config/ChangeLog
===================================================================
--- trunk/src/gcc/config/ChangeLog	(revision 1462)
+++ trunk/src/gcc/config/ChangeLog	(revision 1465)
@@ -1,2 +1,6 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/contrib/ChangeLog
===================================================================
--- trunk/src/gcc/contrib/ChangeLog	(revision 1462)
+++ trunk/src/gcc/contrib/ChangeLog	(revision 1465)
@@ -1,2 +1,6 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/contrib/regression/ChangeLog
===================================================================
--- trunk/src/gcc/contrib/regression/ChangeLog	(revision 1462)
+++ trunk/src/gcc/contrib/regression/ChangeLog	(revision 1465)
@@ -1,2 +1,6 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/fastjar/ChangeLog
===================================================================
--- trunk/src/gcc/fastjar/ChangeLog	(revision 1462)
+++ trunk/src/gcc/fastjar/ChangeLog	(revision 1465)
@@ -1,2 +1,6 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/fastjar/compress.c
===================================================================
--- trunk/src/gcc/fastjar/compress.c	(revision 1462)
+++ trunk/src/gcc/fastjar/compress.c	(revision 1465)
@@ -1,20 +1,5 @@
-/* $Id: compress.c,v 1.3 2002/01/03 04:57:56 rodrigc Exp $
+/* $Id: compress.c,v 1.2 2000/12/14 18:45:35 ghazi Exp $
 
    $Log: compress.c,v $
-   Revision 1.3  2002/01/03 04:57:56  rodrigc
-   2001-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
-
-           PR bootstrap/5117
-           * configure.in (AC_CHECK_HEADERS): Check for stdlib.h.
-           * Makefile.am: Move grepjar to bin_PROGRAMS.
-           * config.h.in: Regenerated.
-           * Makefile.in: Regenerated.
-           * aclocal.m4: Regenerated.
-           * jargrep.c: Eliminate some signed/unsigned and default
-           uninitialized warnings. Use HAVE_STDLIB_H instead of
-           STDC_HEADERS macro.
-           * jartool.c: Likewise.
-           * compress.c: Likewise.
-
    Revision 1.2  2000/12/14 18:45:35  ghazi
    Warning fixes:
Index: trunk/src/gcc/fastjar/compress.h
===================================================================
--- trunk/src/gcc/fastjar/compress.h	(revision 1462)
+++ trunk/src/gcc/fastjar/compress.h	(revision 1465)
@@ -1,33 +1,5 @@
-/* $Id: compress.h,v 1.2 2000/12/14 18:45:35 ghazi Exp $
+/* $Id: compress.h,v 1.1 2000/12/09 03:08:23 apbianco Exp $
 
    $Log: compress.h,v $
-   Revision 1.2  2000/12/14 18:45:35  ghazi
-   Warning fixes:
-
-   	* compress.c: Include stdlib.h and compress.h.
-   	(rcsid): Delete.
-   	(report_str_error): Make static.
-   	(ez_inflate_str): Delete unused variable.  Add parens in if-stmt.
-   	(hrd_inflate_str): Likewise.
-
-   	* compress.h (init_compression, end_compression, init_inflation,
-   	end_inflation): Prototype void arguments.
-
-   	* dostime.c (rcsid): Delete.
-
-   	* jargrep.c: Include ctype.h, stdlib.h, zlib.h and compress.h.
-   	Make functions static.  Cast ctype function argument to `unsigned
-   	char'.  Add parens in if-stmts.  Constify.
-   	(Usage): Change into a macro.
-   	(jargrep): Remove unused parameter.
-
-   	* jartool.c: Constify.  Add parens in if-stmts.  Align
-   	signed/unsigned char pointers in functions calls using casts.
-   	(rcsid): Delete.
-   	(list_jar): Fix printf format specifier.
-   	(usage): Chop long string into bits.  Reformat.
-
-   	* pushback.c (rcsid): Delete.
-
    Revision 1.1  2000/12/09 03:08:23  apbianco
    2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
Index: trunk/src/gcc/fastjar/jartool.h
===================================================================
--- trunk/src/gcc/fastjar/jartool.h	(revision 1462)
+++ trunk/src/gcc/fastjar/jartool.h	(revision 1465)
@@ -1,10 +1,5 @@
-/* $Id: jartool.h,v 1.1 2000/12/09 03:08:23 apbianco Exp $
+/* $Id: jartool.h,v 1.4 2000/08/24 15:23:35 cory Exp $
 
    $Log: jartool.h,v $
-   Revision 1.1  2000/12/09 03:08:23  apbianco
-   2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
-
-           * fastjar: Imported.
-
    Revision 1.4  2000/08/24 15:23:35  cory
    Set version number since I think we can let this one out.
Index: trunk/src/gcc/fastjar/pushback.c
===================================================================
--- trunk/src/gcc/fastjar/pushback.c	(revision 1462)
+++ trunk/src/gcc/fastjar/pushback.c	(revision 1465)
@@ -1,20 +1,5 @@
-/* $Id: pushback.c,v 1.3 2002/01/03 04:57:56 rodrigc Exp $
+/* $Id: pushback.c,v 1.2 2000/12/14 18:45:35 ghazi Exp $
 
    $Log: pushback.c,v $
-   Revision 1.3  2002/01/03 04:57:56  rodrigc
-   2001-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
-
-           PR bootstrap/5117
-           * configure.in (AC_CHECK_HEADERS): Check for stdlib.h.
-           * Makefile.am: Move grepjar to bin_PROGRAMS.
-           * config.h.in: Regenerated.
-           * Makefile.in: Regenerated.
-           * aclocal.m4: Regenerated.
-           * jargrep.c: Eliminate some signed/unsigned and default
-           uninitialized warnings. Use HAVE_STDLIB_H instead of
-           STDC_HEADERS macro.
-           * jartool.c: Likewise.
-           * compress.c: Likewise.
-
    Revision 1.2  2000/12/14 18:45:35  ghazi
    Warning fixes:
Index: trunk/src/gcc/fastjar/zipfile.h
===================================================================
--- trunk/src/gcc/fastjar/zipfile.h	(revision 1462)
+++ trunk/src/gcc/fastjar/zipfile.h	(revision 1465)
@@ -1,10 +1,5 @@
-/* $Id: zipfile.h,v 1.1 2000/12/09 03:08:23 apbianco Exp $
+/* $Id: zipfile.h,v 1.1.1.1 1999/12/06 03:09:11 toast Exp $
 
    $Log: zipfile.h,v $
-   Revision 1.1  2000/12/09 03:08:23  apbianco
-   2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
-
-           * fastjar: Imported.
-
    Revision 1.1.1.1  1999/12/06 03:09:11  toast
    initial checkin..
Index: trunk/src/gcc/gcc/ChangeLog
===================================================================
--- trunk/src/gcc/gcc/ChangeLog	(revision 1462)
+++ trunk/src/gcc/gcc/ChangeLog	(revision 1465)
@@ -1,2 +1,798 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
+2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR target/15693
+	* config/sparc/sparc.c (compare_operand): New predicate.
+	* config/sparc/sparc.h (PREDICATE_CODES): Add it.
+	* config/sparc/sparc.md (cmpsi expander): Use it.  If the first
+	operand is a ZERO_EXTRACT and the second operand is not zero,
+	force the former to a register.
+	(cmpdi expander): Likewise.
+
+2004-05-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR optimization/13653
+	* loop.c (loop_givs_rescan): When reducing a non-replaceable giv,
+	clear the RTX_UNCHANGING_P flag.
+
+2004-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR bootstrap/14671
+	* alias.c (init_alias_analysis): Allocate alias_invariant array with
+	ggc_alloc_cleared instead of xrealloc.
+	(end_alias_analysis): Don't free alias_invariant.
+
+2004-05-27  Richard Henderson  <rth@redhat.com>
+
+	Backport from mainline:
+	2004-01-19  Richard Henderson  <rth@redhat.com>
+        * alpha.md (UNSPEC_NT_LDA): Renumber.
+        (UNSPEC_CVTLQ, cvtlq): New.
+        (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
+        (extendsidi2_fix): Remove.
+        (extendsidi2 splitter): Use cvtlq.
+        (extendsidi2 fp peepholes): Remove.
+        (cvtql): Use SFmode instead of SImode.
+        (fix_trunc?fsi): Update to match.
+        (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
+        (movsi): Rename from movsi_nofix, remove f alternatives.
+        (movsi_nt_vms): Similarly.
+        (movsi_fix, movsi_nt_vms_fix): Remove.
+
+2004-05-26  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR optimization/15296
+	* reorg.c (fill_simple_delay_slots): Use next_real_insn when
+	getting last consecutive label at a branch.
+	(relax_delay_slots): Similar, near top of loop.
+
+2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline
+
+	PR target/15301
+	PR target/15302
+	2004-05-17  Jan Hubicka  <jh@suse.cz>
+
+	* i386.c (construct_container): Do not produce BLKmode registers.
+	(classify_argument): Properly compute alignment of complex types.
+
+2004-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR optimization/11841
+	* loop.h (REGNO_LAST_NOTE_LUID): New macro.
+	* unroll.c (unroll_loop): Take into account notes when deciding
+	whether a pseudo is local to the loop.
+
+2004-05-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Backport from mainline
+	2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
+	PR middle-end/15054
+	* expr.c (expand_expr_real): Do not call preserve_temp_slots 
+	on a TARGET_EXPR temp.
+	* function.c (assign_stack_temp_for_type): Set 'keep' flag for
+	TARGET_EXPR temp slots.
+
+2004-05-13  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	PR target/15130
+	* config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
+	* config/sh/sh.c (output_stack_adjust): Generate a special
+	push/pop sequence when failing to get a temporary register for
+	non SHmedia epilogue.
+	(sh_expand_epilogue): Add an argument to show whether it's for
+	sibcall or not.  Take the sibcall epilogue into account.
+	(sh_need_epilogue): Call sh_expand_epilogue with 0.
+	* config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
+	with 1.
+	(epilogue): Call sh_expand_epilogue with 0.
+
+2004-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* alias.c (set_reg_known_value, set_reg_known_equiv_p):
+	Prototype.
+	(get_reg_known_value, set_reg_known_value,
+	get_reg_known_equiv_p, set_reg_known_equiv_p): Use traditional
+	style function definitions.
+	(set_reg_known_equiv_p): Change parameter from bool to int.
+	
+	Backport:
+	
+	2003-06-13  Matt Kraai  <kraai@alumni.cmu.edu>
+
+	* unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE.
+	* unwind-pe.h (size_of_encoded_value): Do not define if
+	NO_SIZE_OF_ENCODED_VALUE is defined.
+
+	2003-10-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+	
+	* unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
+	appropriate.
+
+	2003-05-07  Richard Henderson  <rth@redhat.com>
+	
+	* unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
+	not _Unwind_Word.
+
+2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	* doc/install.texi (sparc-sun-solaris2*): Document bootstrap
+	problems with earlier versions of the GNU compiler.
+
+2004-05-07  Steven Bosscher  <stevenb@suse.de>
+
+	PR opt/14749
+	* expr.c (do_jump): If TREE_CONSTANT_OVERFLOW is set, don't
+	trust integer_zerop.  Just expand both branches.
+
+2004-04-29  Matthias Klose  <doko@debian.org>
+
+	Backport:
+
+	2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR optimization/14235
+	* expr.c (convert_move): Copy the source to a new pseudo
+	when converting from a sub-word source to a larger-than-word
+	register which conflicts with the source.
+
+2004-04-29  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/sparc/sparc.h (FLOATDITF2_LIBCALL, FIX_TRUNCTFDI2_LIBCALL,
+	FIXUNS_TRUNCTFDI2_LIBCALL): Define.
+	(INIT_TARGET_OPTABS): If DITF_CONVERSION_LIBFUNCS, initialize
+	DI <-> TF libfuncs for TARGET_ARCH32.
+	(DITF_CONVERSION_LIBFUNCS): Define to 0.
+	* config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+	* config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+	* config.gcc (sparc-*-linux*): Revert 2004-03-25 change.
+	* config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
+	* config/sparc/t-linux: Removed.
+
+2004-04-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/15084
+	* config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
+	and renamed to movdi_insv_1_rex64.
+	(insv): Support SImode for 32bit and DImode for 64bit.
+
+2004-04-24  Richard Henderson  <rth@redhat.com>
+
+	PR bootstrap/14671
+	* alias.c (alias_invariant, alias_invariant_size): Mark GTY.
+	(reg_known_value, reg_known_value_size): Likewise; make static.
+	(reg_known_equiv_p): Make static.
+	(clear_reg_alias_info): Update for new indexing.
+	(get_reg_known_value, set_reg_known_value): New.
+	(get_reg_known_equiv_p, set_reg_known_equiv_p): New.
+	(canon_rtx): Use them. 
+	(init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
+	Don't play queer offsetting games with reg_known_value and
+	reg_known_equiv_p.
+	(end_alias_analysis): Don't free reg_known_value.
+	* rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
+	* sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
+	(deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
+	functions instead.
+
+2004-04-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
+
+	* pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
+	SAR register.  Fix comment.
+	(ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
+	(%cr11).
+
+2004-04-14  Zack Weinberg  <zack@codesourcery.com>
+
+	PR 14936
+	Backport from mainline:
+	2004-03-12  Matt Austern  <austern@apple.com>
+
+	* varasm.c (make_decl_one_only): Don't use DECL_COMMON if
+	we're compiling for a SUPPORTS_ONE_ONLY target.
+
+2004-04-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR debug/14919
+
+	From gcc-3_2-rhl8-branch:
+	2003-02-04  Jakub Jelinek  <jakub@redhat.com>
+
+	* dwarf2out.c (dwarf2out_finish): Add AT_comp_dir attribute
+	even if input file name is absolute, but one of the includes
+	is relative.
+
+2004-04-06  Devang Patel  <dpatel@apple.com>
+
+	PR 14467
+	* config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
+
+2004-03-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* expr.c (store_constructor): Use gen_int_mode to correctly
+	sign-extend CONST_INT value.
+
+2004-04-01  Alan Modra  <amodra@bigpond.net.au>
+	    Jakub Jelinek  <jakub@redhat.com>
+
+	* gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
+	-lgcc --as-needed -lgcc_s --no-as-needed by default.
+	* configure.in (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
+	* configure: Rebuilt.
+	* config.in: Rebuilt.
+	* Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
+	(stage2-start, stage3-start, stage4-start): Likewise.
+	(stageprofile-start, stagefeedback-start): Likewise.
+
+2004-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/14755
+	* fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
+	"bitfld++ == const" to "++bitfld == const + incr" transformations.
+
+2004-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/14069
+	* c-decl.c (finish_struct): Change type of incorrect flexible array
+	field into error_mark_node.
+
+	Backport from mainline:
+	2003-04-07  J"orn Rennecke  <joern.rennecke@superh.com>
+
+	* c-typeck.c (output_init_element): Check for type == error_mark_node.
+
+2004-04-01  Alan Modra  <amodra@bigpond.net.au>
+
+	* dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
+
+2004-03-30  Matthias Klose  <doko@debian.org>
+
+	Backport:
+
+	2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
+
+	PR bootstrap/12527
+	* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
+	Move linux-gas.h and linux-elf.h before aout.h.
+	* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
+	* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
+
+	2003-05-15  Philip Blundell  <philb@gnu.org>
+
+	* config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
+	All uses updated.
+	(arm_tune_xscale): New variable.
+	(arm_override_options): Set it.
+	(arm_adjust_cost): Use it in place of arm_arch_xscale.
+	(arm_gen_load_multiple): Likewise.
+	(arm_gen_store_multiple): Likewise.
+	* config/arm/arm.md (is_xscale): Likewise.
+	* config/arm/arm.h (arm_tune_xscale): Declare.
+
+	2003-04-28  Nick Clifton  <nickc@redhat.com>
+
+	* config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
+
+2004-03-29  Matthias Klose  <doko@debian.org>
+
+	2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
+
+	* config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc.
+
+2004-03-29  Matthias Klose  <doko@debian.org>
+
+	Backport:
+	2004-01-15  Andreas Schwab  <schwab@suse.de>
+
+	PR bootstrap/13562
+	* config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
+	status for NOTB/NOTW/NEGW methods.
+
+2004-03-29  Aldy Hernandez  <aldyh@redhat.com>
+
+	PR 14219
+	* c-typeck.c (build_binary_op): Do not allow comparisons of
+	vectors.
+
+2004-03-27  Matthias Klose  <doko@debian.org>
+
+	PR target/11716
+	Michael Eager <eager@mvista.com>
+
+	* config/mips/mips.md: Limit the maximum length of a short branch to
+	64K instead of 128K.
+
+2004-03-26  Richard Henderson  <rth@redhat.com>
+
+	PR 11527
+	* c-typeck.c (pop_init_level): Emit pending init elements earlier
+	rather than later.
+
+2004-03-26  Jan Hubicka  <jh@suse.cz>
+	    H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR Target/14723
+	* config.gcc: Add support --with-cpu=nocona.
+
+	* config/i386/i386.c (override_options): Add support for
+	Prescott and Nocona.
+
+	* doc/invoke.texi: Extend documentation of -mcpu/-march for new
+	CPUs.
+
+2004-03-25  Jakub Jelinek  <jakub@redhat.com>
+
+	* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
+	* config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
+	* config/sparc/t-linux: New file.
+
+2004-03-24  Kelley Cook  <kcook@gcc.gnu.org>
+
+	Backport:
+	2004-03-01  Mark Mitchell  <mark@codesourcery.com>
+
+	PR bootstrap/14356
+	* gcc.c (process_command): Remove const-qualification from argv.
+	(main): Likewise.
+
+2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR preprocessor/14438
+	* cpplib.c (do_pragma): Remove line_change call after pragma
+	handler.
+
+2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	BackPort:
+		2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
+
+		PR debug/11231
+		* dbxout.c (dbxout_type_fields): Return if any item is error_mark_node or the
+		type is error_mark_node.
+
+2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR middle-end/14470
+	* expr.c (mark_queue): New function.
+	(emit_insns_enqueued_after_mark): New function replacing
+	emit_queue.  Clear the body of emitted queued insns.
+	(emit_queue): Call emit_insns_enqueued_after_mark.
+	(store_expr): Mark the increment queue on entry.  Emit
+	only the incrementations queued when expanding the source.
+
+2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+	PR target/14260
+	* config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
+
+2004-03-21  Roger Sayle  <roger@eyesopen.com>
+
+	* fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
+	"foo++ == const" into "++foo == const+incr".
+
+2004-03-21  Roger Sayle  <roger@eyesopen.com>
+
+	PR target/13889
+	* cse.c (fold_rtx): Avoid substituting constants into unary
+	conversion operations.
+
+2004-03-17  Ian Lance Taylor  <ian@wasabisystems.com>
+
+	Backport:
+	2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+	* c-typeck.c (pedantic_lvalue_warning): Deprecate compound
+	expressions as lvalues.
+	* doc/extend.texi: Document that all extended lvalues are now
+	deprecated.
+
+	2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+	* c-typeck.c (pedantic_lvalue_warning): Deprecate use of
+	conditional expressions as lvalues.
+
+	2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+	* c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
+	deprecation of casts as lvalues.
+	* fixinc/inclhack.def (obstack_lvalue_cast): New fix.
+	* fixinc/fixincl.x: Regenerate.
+
+2004-03-15  Richard Henderson  <rth@redhat.com>
+
+	PR middle-end/14535
+	* except.c (collect_one_action_chain): Record action for cleanup
+	outer of exception spec.
+
+2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
+
+	* doc/install.texi: Note status of -fnew-ra.
+
+2004-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/14533
+	* config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
+	other than 100.
+
+2004-03-13  Alan Modra  <amodra@bigpond.net.au>
+
+	PR debug/11983
+	* dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
+	dw_val_class_vec.  Replace use throughout file.
+	(dw_float_const): Delete.
+	(dw_vec_const): New.
+	(dw_val_struct_union): Rename val_float to val_vec.  Replace use
+	throughout file.
+	(add_AT_vec): Rename from add_AT_float.  Add elt_size param.
+	(same_dw_val_p): Adjust vec comparison.  Use memcmp.
+	(size_of_die): Adjust dw_val_class_vec sizing.
+	(output_die): Output dw_val_class_vec.
+	(insert_int, extract_int, insert_float): New functions.
+	(add_const_value_attribute): Use insert_float for CONST_DOUBLE.
+	Handle CONST_VECTOR.
+	(add_location_or_const_value_attribute): Handle CONST_VECTOR.
+
+2004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Backport:
+	2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
+	PR middle-end/14470
+	* expr.c (store_expr): Call emit_queue before generating the move
+	from the temporary to the original target.  Protect the temporary
+	from emit_queue.
+
+2004-03-10  James E Wilson  <wilson@specifixinc.com>
+
+	PR target/13877
+	* unroll.c (unroll_loop): If precondition loop, clear the initial_value
+	field in loop_info.
+
+2004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Backport:
+	2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
+	PR driver/13577
+	* gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
+	options.
+
+2004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Endorse:
+	2004-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
+	PR optimization/13472
+	* reload1.c (reload): Don't record unchanging memory locations.
+
+2004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Backport
+	2004-02-27  Mark Mitchell  <mark@codesourcery.com>
+	PR middle-end/13448
+	* c-tree.h (readonly_warning): Rename to ...
+	(readonly_error): ... this.
+	* c-typeck.c (build_unary_op): Adjust accordingly.
+	(readonly_warning): Rename to ...
+	(readonly_error): ... this and issue errors, not warnings.
+	(build_modify_expr): Call readonly_error, not readonly_warning.
+	(c_expand_asm_operands): Likewise.
+	* tree-inline.c (optimize_inline_calls): Do not inline
+	functions after errors have occurred.
+
+2004-03-12  Philip Blundell  <philb@gnu.org>
+
+	PR target/10730
+	Backport from trunk:
+	2003-05-15  Philip Blundell  <philb@gnu.org>
+	* config/arm/arm.c (adjacent_mem_locations): Reject offsets
+	involving invalid constants.
+
+2004-03-12  Philip Blundell  <philb@gnu.org>
+
+	PR target/14558
+	Backport from trunk:
+	2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
+	* arm.h (ARM_GO_IF_LEGITIMATE_INDEX): For QImode the range of
+	an offset is -4095...+4095 inclusive.
+
+2004-03-11  Richard Henderson  <rth@redhat.com>
+
+	PR target/14539
+	* config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
+
+2004-03-10  Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/14289
+	* c-typeck.c (c_mark_addressable): A register variable should
+	be considered global if its not automatic, i.e. TREE_PUBLIC,
+	TREE_STATIC or DECL_EXTERNAL.
+	* function.c (put_var_into_stack): Call abort when placing a
+	hard register into the stack, if x_parm_reg_stack_loc is NULL.
+
+2004-03-10  Andrew Haley  <aph@redhat.com>
+
+	PR optimization/14381
+	* function.c (expand_function_end): Emit a blockage insn before
+	the epilogue when -fnon-call-exceptions is used.
+
+2004-03-10  Joel Sherrill  <joel@oarcorp.com>
+
+	PR target/14480
+	* config.gcc (powerpc*-*-rtems*): Use rs6000/t-rtems.
+
+2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
+	for little endian.
+	("ashrdi3_no_power"): Disable for little endian.
+	(ashrdi3): Same.
+
+2004-03-07  Richard Henderson  <rth@redhat.com>
+
+	* config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
+	(TARGET_LONG_DOUBLE_128): New.
+	(TARGET_SWITCHES): Add long-double-{128,64}.
+	(TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
+	(LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
+	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
+	(WIDEST_HARDWARE_FP_SIZE): New.
+	(TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
+	* config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
+	if TARGET_VAX_FLOAT.
+	* config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
+	(TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
+
+2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR target/14471
+	* doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
+	and -mno-mul-bug-workaround.
+	* config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
+	("mulsidi3", "umulsidi3"): Prefix output template with "%!".
+	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
+	Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
+	* config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
+	sure mulu.d is not last on cache-line.
+	* config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
+	into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
+	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
+	(TARGET_SWITCHES): New options -mmul-bug-workaround and
+	-mno-mul-bug-workaround.
+	(TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
+	(PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
+	* config/cris/cris.c (cris_operand_extend_operator): Clarify
+	relation to MULT in head comment.
+	(cris_op_str): Abort for MULT.
+	(cris_print_operand) <case '!'>: New case.
+
+2004-03-06  Richard Henderson  <rth@redhat.com>
+
+	* config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
+
+2004-03-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* config/s390/s390.md ("load_multiple", "*load_multiple_di",
+	"*load_multiple_si"): Allow only if reload_completed.
+	("store_multiple", "*store_multiple_di", "*store_multiple_si"):
+	Likewise.
+
+2004-03-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* config/s390/s390.c (s390_expand_movstr): Clobber double-word
+	register before initializing high and low parts separately.
+	(s390_expand_clrstr): Likewise.
+	(s390_expand_cmpstr): Likewise.
+
+2004-03-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	PR optimization/12147
+	* reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
+	RELOAD_FOR_OPADDR_ADDR.
+	(reload_reg_reaches_end_p): A RELOAD_FOR_OTHER_ADDRESS register
+	might be reused as RELOAD_FOR_OPADDR_ADDR register.
+
+2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
+
+	PR target/1532
+	Backport from mainline:
+
+	2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* cse.c (cse_change_cc_mode_insns): Stop at any instruction
+	which modifies NEWREG.
+	(cse_condition_code_reg): Update the mode of CC_REG in
+	CC_SRC_INSN on our own.
+
+	2004-02-11  Richard Henderson  <rth@redhat.com>
+
+	* flow.c (insn_dead_p): A clobber of a dead hard register is a
+	dead insn after reload.
+
+	2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
+
+	* cse.c (cse_cc_succs): Change the mode of the source expression
+	as soon as decide we need a new mode.  Don't permit changing modes
+	if we found a match in a successor block.
+	(cse_condition_code_reg): Save original mode of source expression
+	so that we know whether we have to change the mode in other
+	insns.
+
+	2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
+
+	* cse.c: (cse_cc_succs) Fix comparison warning.
+
+	2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
+
+	* cse.c: Include "target.h".
+	(cse_change_cc_mode): New static function.
+	(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
+	(cse_condition_code_reg): New function.
+	(default_cc_modes_compatible): New function.
+	* rtl.h (cse_condition_code_reg): Declare.
+	(default_cc_modes_compatible): Declare.
+	* toplev.c (rest_of_compilation): Call cse_condition_code_reg.
+	* target.h (struct gcc_target): Add fixed_condition_code_regs and
+	cc_modes_compatible.
+	* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
+	(TARGET_CC_MODES_COMPATIBLE): Define.
+	(TARGET_INITIALIZER): Add new initializers.
+	* targhooks.c (default_cc_modes_compatible): Declare.
+	* hooks.c (hook_bool_intp_intp_false): New function.
+	* hooks.h (hook_bool_intp_intp_false): Declare.
+	* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
+	(TARGET_CC_MODES_COMPATIBLE): Define.
+	(ix86_fixed_condition_code_regs): New static function.
+	(ix86_cc_modes_compatible): Likewise.
+	* doc/gccint.texi: Add copyright 2004.
+	* doc/tm.texi (Condition Code): Document new hooks.
+	* Makefile.in (cse.o): Depend upon $(TARGET_H).
+
+	PR inline-asm/6162
+	* reload.c (find_reloads): Only support one pair of commutative
+	operands.
+
+2004-03-02  Richard Henderson  <rth@redhat.com>
+
+	PR middle-end/11767
+	* optabs.c (prepare_cmp_insn): Force trapping memories to registers
+	before the compare, if flag_non_call_exceptions.
+
+2004-03-02  Richard Henderson  <rth@redhat.com>
+
+	PR middle-end/14327
+	* stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
+	emitting the label, not after.
+
+2004-03-02  Danny Smith  <dannysmith@users.sourceforge.net>
+
+	* cppinit.c (init_standard_includes): Check that sysroot
+	string is not empty.
+
+2004-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Backport from 3.4.0:
+	2004-02-29  Mark Mitchell  <mark@codesourcery.com>
+	PR debug/14328
+	* dwarf2out.c (gen_enumeration_type_die): Output all enumeration
+	constants as signed values.
+
+	2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
+	PR optimization/11864
+	* reload1.c (reload_cse_simplify_operands): Don't remove
+	implicit extension from LOAD_EXTEND_OP.
+
+2004-02-29  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR target/14346
+	* config/cris/cris.c (cris_asm_output_mi_thunk): For PIC, prepend
+	TAB to jumping "add.d" insn.  Avoid PLT indirection by equating a
+	local symbol and jumping through it.
+
+2004-02-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	Backport from mainline:
+	2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
+	PR target/10904
+	PR target/13058
+	* config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
+	Forbid mode changes from SImode for lower FP regs if ARCH64.
+
+2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, TRAMPOLINE_CODE_SIZE,
+	MIN_CACHELINE_SIZE, INITIALIZE_TRAMPOLINE): Backport fixes from 3.5.
+	* pa.md (anddi3, dcacheflush, icacheflush): Likewise.
+
+	* pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
+
+2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
+
+	PR optimization/7871
+	* flow.c (mark_set_1): Don't add LOG_LINKS for global registers
+	from or to call insns.
+
+2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR optimization/7871
+	* flow.c (propagate_one_insn): Interpret calls as setting global
+	registers, not merely clobbering them.
+
+2004-02-26  Richard Earnshaw  <rearnsha@arm.com>
+	Daniel Jacobowitz  <drow@mvista.com>
+
+	PR target/14302
+	* arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS): Don't check the mode
+	size for minipool references.
+
+2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
+
+	PR target/14166
+	* arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Only allow constant pool
+	references from SImode.
+	* arm.md (thumb_movhi_insn): Don't allow minipool references.
+
+2004-02-24  Bob Wilson  <bob.wilson@acm.org>
+
+	Backport from mainline (changes to xtensa_expand_prologue go into
+	xtensa_reorg instead; remove irrelevant portions of the patch)
+
+	2004-02-09  Bob Wilson  <bob.wilson@acm.org>:
+
+	* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
+	(init_cumulative_args): Likewise.
+	(a7_overlap_mentioned_p): Delete prototype.
+	* config/xtensa/xtensa.c (struct machine_function): Replace
+	incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
+	Add set_frame_ptr_insn field.
+	(xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
+	(xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
+	if the operand is an argument in a7.  If so, copy a7 to a new pseudo
+	at the function entry and replace the operand with the pseudo.
+	(init_cumulative_args): Remove unused arguments.  Add new "incoming"
+	argument and record this flag in CUMULATIVE_ARGS.
+	(function_arg): Remove result_mode and special-case code to handle
+	arguments in a7.  Instead, set need_a7_copy flag when there is an
+	incoming argument in a7.
+	(xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
+	and use the value recorded in cfun->machine->set_frame_ptr_insn.
+	(xtensa_builtin_saveregs): Check for negative gp_left value.  Set
+	need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
+	special-case code.
+	(a7_overlap_mentioned_p): Delete.
+	* config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
+	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
+	arguments to init_cumulative_args and pass "incoming" flag instead.
+	(BLOCK_REG_PADDING): Delete.
+	* config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
+	checks for reload_in_progress and reload_completed.  Update calls to
+	xtensa_copy_incoming_a7.
+	(ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
+	to call xtensa_copy_incoming_a7.
+
+2004-02-22  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
+	by default.
+
+2004-02-22  James E Wilson  <wilson@specifixinc.com>
+
+	PR target/13918
+	* sched-ebb.c (ebb_sched_info): Disable use of cselib.
+
+2004-02-22  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR target/14209
+	* config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
+	constraints to not match postincrement.  Adjust the predicate to
+	exclude a volatile memory reference.
+	("*andsi_clear"): Tweak constraints to not match postincrement.
+	Adjust the predicate to exclude a volatile memory reference.
+	("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
+	("*andhi_clear_unsigned"): Remove, non-matching pattern.
+
 2004-02-14  Release Manager
 
@@ -23,5 +819,5 @@
 	* config/i386/i386.c: Rename pni to sse3.
 	* config/i386/i386.h: Likewise.
-        * config/i386/i386.md: Likewise.
+	* config/i386/i386.md: Likewise.
 	* config/i386/pmmintrin.h: Likewise.
 	* doc/extend.texi: Likewise.
@@ -59,5 +855,5 @@
 
 	Backport from mainline
-	
+
 	2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
 
@@ -73,8 +869,8 @@
 2004-01-23  Richard Henderson  <rth@redhat.com>
 
-        PR opt/12941
-        * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
-        (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
-        if SHIFT_COUNT_TRUNCATED is set.
+	PR opt/12941
+	* combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
+	(simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
+	if SHIFT_COUNT_TRUNCATED is set.
 
 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
@@ -96,16 +892,16 @@
 
 	PR target/13073
-        * config/h8300/t-rtems (h8300-*-rtems*): New.
-        * config.gcc: Use config/h8300/t-rtems.
-	
+	* config/h8300/t-rtems (h8300-*-rtems*): New.
+	* config.gcc: Use config/h8300/t-rtems.
+
 2004-01-20  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
-        Backport from mainline
-
-        2004-01-10  Jan Hubicka  <jh@suse.cz>
-        PR opt/12826
-        * loop.c (insert_loop_mem): Prefer VOLATILE memory references to be
-        stored. 
-        
+	Backport from mainline
+
+	2004-01-10  Jan Hubicka  <jh@suse.cz>
+	PR opt/12826
+	* loop.c (insert_loop_mem): Prefer VOLATILE memory references to be
+	stored.
+
 2004-01-16  Jan Hubicka  <jh@suse.cz>
 
@@ -115,14 +911,14 @@
 2004-01-16  Segher Boessenkool  <boessen@de.ibm.com>
 
-        PR target/11793
+	PR target/11793
 	* config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Handle
 	vectors.
-	
+
 2004-01-16  Jan Hubicka  <jh@suse.cz>
 
-        PR opt/11350
-        * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
+	PR opt/11350
+	* cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
 	after reload.
-        * cfgrtl.c (try_redirect_by_replacing_branch): Likewise.
+	* cfgrtl.c (try_redirect_by_replacing_branch): Likewise.
 
 2004-01-15  J"orn Rennecke <joern.rennecke@superh.com>
@@ -146,14 +942,14 @@
 	only if TARGET_ALTIVEC_VRSAVE.
 	(rs6000_emit_epilogue): Likewise.
- 
+
 2003-01-14  Nicola Pero  <n.pero@mi.flashnet.it>
 
 	PR objc/7993
-        * objc-act.c (is_private): Do not emit the 'instance variable %s
-        is declared private' error.
-        (is_public): Emit the error after calling is_private.
-        (lookup_objc_ivar): If the instance variable is private, return 0
-        - the instance variable is invisible here.
-       
+	* objc-act.c (is_private): Do not emit the 'instance variable %s
+	is declared private' error.
+	(is_public): Emit the error after calling is_private.
+	(lookup_objc_ivar): If the instance variable is private, return 0
+	- the instance variable is invisible here.
+
 2004-01-12  Marc Espie <espie@openbsd.org>
 
@@ -162,8 +958,8 @@
 2004-01-12  Matthias Klose  <doko@debian.org>
 
-        Backport from mainline
-
-        2003-12-08 Stuart Hastings <stuart@apple.com>
-        * config/i386/i386.md: Typo in split of fp-valued if_then_else.
+	Backport from mainline
+
+	2003-12-08 Stuart Hastings <stuart@apple.com>
+	* config/i386/i386.md: Typo in split of fp-valued if_then_else.
 
 2004-01-12  Roger Sayle  <roger@eyesopen.com>
@@ -217,11 +1013,11 @@
 
 	PR target/13069
-	Backport the following from mainline: 
+	Backport the following from mainline:
 
 	2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
-        * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
-        CPP_PREDEFINES.
-        * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
-        CPP_PREDEFINES.
+	* config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
+	CPP_PREDEFINES.
+	* config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
+	CPP_PREDEFINES.
 
 	2003-09-27  Kelley Cook  <kcook@gcc.gnu.org>
@@ -18748,2 +19544,3 @@
 
 See ChangeLog.7 for earlier changes.
+
Index: trunk/src/gcc/gcc/ada/5rtpopsp.adb
===================================================================
--- trunk/src/gcc/gcc/ada/5rtpopsp.adb	(revision 1462)
+++ trunk/src/gcc/gcc/ada/5rtpopsp.adb	(revision 1465)
@@ -8,5 +8,5 @@
 --                                  B o d y                                 --
 --                                                                          --
---                             $Revision: 1.1.4.1 $
+--                             $Revision: 1.7 $
 --                                                                          --
 --            Copyright (C) 1991-1999, Florida State University             --
Index: trunk/src/gcc/gcc/ada/ChangeLog
===================================================================
--- trunk/src/gcc/gcc/ada/ChangeLog	(revision 1462)
+++ trunk/src/gcc/gcc/ada/ChangeLog	(revision 1465)
@@ -1,2 +1,6 @@
+2004-05-31  Release Manager
+
+	* GCC 3.3.4 Released.
+
 2004-02-14  Release Manager
 
Index: trunk/src/gcc/gcc/alias.c
===================================================================
--- trunk/src/gcc/gcc/alias.c	(revision 1462)
+++ trunk/src/gcc/gcc/alias.c	(revision 1465)
@@ -111,4 +111,6 @@
 static int nonoverlapping_memrefs_p	PARAMS ((rtx, rtx));
 static int write_dependence_p           PARAMS ((rtx, rtx, int));
+static void set_reg_known_value		PARAMS ((unsigned int, rtx));
+static void set_reg_known_equiv_p	PARAMS ((unsigned int, int));
 
 static int nonlocal_mentioned_p_1       PARAMS ((rtx *, void *));
@@ -174,14 +176,14 @@
    Because this array contains only pseudo registers it has no effect
    after reload.  */
-static rtx *alias_invariant;
+static GTY((length("alias_invariant_size"))) rtx *alias_invariant;
+unsigned GTY(()) int alias_invariant_size;
 
 /* Vector indexed by N giving the initial (unchanging) value known for
-   pseudo-register N.  This array is initialized in
-   init_alias_analysis, and does not change until end_alias_analysis
-   is called.  */
-rtx *reg_known_value;
+   pseudo-register N.  This array is initialized in init_alias_analysis,
+   and does not change until end_alias_analysis is called.  */
+static GTY((length("reg_known_value_size"))) rtx *reg_known_value;
 
 /* Indicates number of valid entries in reg_known_value.  */
-static unsigned int reg_known_value_size;
+static GTY(()) unsigned int reg_known_value_size;
 
 /* Vector recording for each reg_known_value whether it is due to a
@@ -197,5 +199,5 @@
    wrong, but solving the problem in the scheduler will likely give
    better code, so we do it here.  */
-char *reg_known_equiv_p;
+static bool *reg_known_equiv_p;
 
 /* True when scanning insns from the start of the rtl to the
@@ -1034,5 +1036,5 @@
     return;
 
-  if (invariant && alias_invariant)
+  if (invariant && alias_invariant && regno < alias_invariant_size)
     alias_invariant[regno] = val;
 
@@ -1059,7 +1061,73 @@
   unsigned int regno = REGNO (reg);
 
-  if (regno < reg_known_value_size && regno >= FIRST_PSEUDO_REGISTER)
-    reg_known_value[regno] = reg;
-}
+  if (regno >= FIRST_PSEUDO_REGISTER)
+    {
+      regno -= FIRST_PSEUDO_REGISTER;
+      if (regno < reg_known_value_size)
+	{
+	  reg_known_value[regno] = reg;
+	  reg_known_equiv_p[regno] = false;
+	}
+    }
+}
+
+/* If a value is known for REGNO, return it.  */
+
+rtx 
+get_reg_known_value (regno)
+     unsigned int regno;
+{
+  if (regno >= FIRST_PSEUDO_REGISTER)
+    {
+      regno -= FIRST_PSEUDO_REGISTER;
+      if (regno < reg_known_value_size)
+	return reg_known_value[regno];
+    }
+  return NULL;
+}
+
+/* Set it.  */
+
+static void
+set_reg_known_value (regno, val)
+     unsigned int regno;
+     rtx val;
+{
+  if (regno >= FIRST_PSEUDO_REGISTER)
+    {
+      regno -= FIRST_PSEUDO_REGISTER;
+      if (regno < reg_known_value_size)
+	reg_known_value[regno] = val;
+    }
+}
+
+/* Similarly for reg_known_equiv_p.  */
+
+bool
+get_reg_known_equiv_p (regno)
+     unsigned int regno;
+{
+  if (regno >= FIRST_PSEUDO_REGISTER)
+    {
+      regno -= FIRST_PSEUDO_REGISTER;
+      if (regno < reg_known_value_size)
+	return reg_known_equiv_p[regno];
+    }
+  return false;
+}
+
+static void
+set_reg_known_equiv_p (regno, val)
+     unsigned int regno;
+     int val;
+{
+  if (regno >= FIRST_PSEUDO_REGISTER)
+    {
+      regno -= FIRST_PSEUDO_REGISTER;
+      if (regno < reg_known_value_size)
+	reg_known_equiv_p[regno] = val;
+    }
+}
+
 
 /* Returns a canonical version of X, from the point of view alias
@@ -1073,9 +1141,14 @@
 {
   /* Recursively look for equivalences.  */
-  if (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER
-      && REGNO (x) < reg_known_value_size)
-    return reg_known_value[REGNO (x)] == x
-      ? x : canon_rtx (reg_known_value[REGNO (x)]);
-  else if (GET_CODE (x) == PLUS)
+  if (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER)
+    {
+      rtx t = get_reg_known_value (REGNO (x));
+      if (t == x)
+	return x;
+      if (t)
+	return canon_rtx (t);
+    }
+
+  if (GET_CODE (x) == PLUS)
     {
       rtx x0 = canon_rtx (XEXP (x, 0));
@@ -2705,12 +2778,7 @@
   rtx insn;
 
-  reg_known_value_size = maxreg;
-
-  reg_known_value
-    = (rtx *) xcalloc ((maxreg - FIRST_PSEUDO_REGISTER), sizeof (rtx))
-    - FIRST_PSEUDO_REGISTER;
-  reg_known_equiv_p
-    = (char*) xcalloc ((maxreg - FIRST_PSEUDO_REGISTER), sizeof (char))
-    - FIRST_PSEUDO_REGISTER;
+  reg_known_value_size = maxreg - FIRST_PSEUDO_REGISTER;
+  reg_known_value = ggc_calloc (reg_known_value_size, sizeof (rtx));
+  reg_known_equiv_p = xcalloc (reg_known_value_size, sizeof (bool));
 
   /* Overallocate reg_base_value to allow some growth during loop
@@ -2725,8 +2793,7 @@
   if (! reload_completed && flag_unroll_loops)
     {
-      /* ??? Why are we realloc'ing if we're just going to zero it?  */
-      alias_invariant = (rtx *)xrealloc (alias_invariant,
-					 reg_base_value_size * sizeof (rtx));
-      memset ((char *)alias_invariant, 0, reg_base_value_size * sizeof (rtx));
+      alias_invariant = (rtx *) ggc_alloc_cleared (reg_base_value_size
+						   * sizeof (rtx));
+      alias_invariant_size = reg_base_value_size;
     }
 
@@ -2817,4 +2884,5 @@
 		  unsigned int regno = REGNO (SET_DEST (set));
 		  rtx src = SET_SRC (set);
+		  rtx t;
 
 		  if (REG_NOTES (insn) != 0
@@ -2824,27 +2892,26 @@
 		      && GET_CODE (XEXP (note, 0)) != EXPR_LIST
 		      && ! rtx_varies_p (XEXP (note, 0), 1)
-		      && ! reg_overlap_mentioned_p (SET_DEST (set), XEXP (note, 0)))
+		      && ! reg_overlap_mentioned_p (SET_DEST (set),
+						    XEXP (note, 0)))
 		    {
-		      reg_known_value[regno] = XEXP (note, 0);
-		      reg_known_equiv_p[regno] = REG_NOTE_KIND (note) == REG_EQUIV;
+		      set_reg_known_value (regno, XEXP (note, 0));
+		      set_reg_known_equiv_p (regno,
+			REG_NOTE_KIND (note) == REG_EQUIV);
 		    }
 		  else if (REG_N_SETS (regno) == 1
 			   && GET_CODE (src) == PLUS
 			   && GET_CODE (XEXP (src, 0)) == REG
-			   && REGNO (XEXP (src, 0)) >= FIRST_PSEUDO_REGISTER
-			   && (reg_known_value[REGNO (XEXP (src, 0))])
+			   && (t = get_reg_known_value (REGNO (XEXP (src, 0))))
 			   && GET_CODE (XEXP (src, 1)) == CONST_INT)
 		    {
-		      rtx op0 = XEXP (src, 0);
-		      op0 = reg_known_value[REGNO (op0)];
-		      reg_known_value[regno]
-			= plus_constant (op0, INTVAL (XEXP (src, 1)));
-		      reg_known_equiv_p[regno] = 0;
+		      t = plus_constant (t, INTVAL (XEXP (src, 1)));
+		      set_reg_known_value (regno, t);
+		      set_reg_known_equiv_p (regno, 0);
 		    }
 		  else if (REG_N_SETS (regno) == 1
 			   && ! rtx_varies_p (src, 1))
 		    {
-		      reg_known_value[regno] = src;
-		      reg_known_equiv_p[regno] = 0;
+		      set_reg_known_value (regno, src);
+		      set_reg_known_equiv_p (regno, 0);
 		    }
 		}
@@ -2870,7 +2937,7 @@
 
   /* Fill in the remaining entries.  */
-  for (i = FIRST_PSEUDO_REGISTER; i < maxreg; i++)
+  for (i = 0; i < (int)reg_known_value_size; i++)
     if (reg_known_value[i] == 0)
-      reg_known_value[i] = regno_reg_rtx[i];
+      reg_known_value[i] = regno_reg_rtx[i + FIRST_PSEUDO_REGISTER];
 
   /* Simplify the reg_base_value array so that no register refers to
@@ -2915,8 +2982,7 @@
 end_alias_analysis ()
 {
-  free (reg_known_value + FIRST_PSEUDO_REGISTER);
   reg_known_value = 0;
   reg_known_value_size = 0;
-  free (reg_known_equiv_p + FIRST_PSEUDO_REGISTER);
+  free (reg_known_equiv_p);
   reg_known_equiv_p = 0;
   reg_base_value = 0;
@@ -2924,6 +2990,6 @@
   if (alias_invariant)
     {
-      free (alias_invariant);
       alias_invariant = 0;
+      alias_invariant_size = 0;
     }
 }
Index: trunk/src/gcc/gcc/c-decl.c
===================================================================
--- trunk/src/gcc/gcc/c-decl.c	(revision 1462)
+++ trunk/src/gcc/gcc/c-decl.c	(revision 1465)
@@ -5347,10 +5347,19 @@
 	{
 	  if (TREE_CODE (t) == UNION_TYPE)
-	    error_with_decl (x, "flexible array member in union");
+	    {
+	      error_with_decl (x, "flexible array member in union");
+	      TREE_TYPE (x) = error_mark_node;
+	    }
 	  else if (TREE_CHAIN (x) != NULL_TREE)
-	    error_with_decl (x, "flexible array member not at end of struct");
+	    {
+	      error_with_decl (x, "flexible array member not at end of struct");
+	      TREE_TYPE (x) = error_mark_node;
+	    }
 	  else if (! saw_named_field)
-	    error_with_decl (x, "flexible array member in otherwise empty struct");
-	}
+	    {
+	      error_with_decl (x, "flexible array member in otherwise empty struct");
+	      TREE_TYPE (x) = error_mark_node;
+	    }
+  	}
 
       if (pedantic && TREE_CODE (t) == RECORD_TYPE
Index: trunk/src/gcc/gcc/c-tree.h
===================================================================
--- trunk/src/gcc/gcc/c-tree.h	(revision 1462)
+++ trunk/src/gcc/gcc/c-tree.h	(revision 1465)
@@ -273,5 +273,5 @@
 							 tree, tree));
 extern int c_tree_expr_nonnegative_p          	PARAMS ((tree));
-extern void readonly_warning			PARAMS ((tree, const char *));
+extern void readonly_error			PARAMS ((tree, const char *));
 extern tree build_conditional_expr              PARAMS ((tree, tree, tree));
 extern tree build_compound_expr                 PARAMS ((tree));
Index: trunk/src/gcc/gcc/c-typeck.c
===================================================================
--- trunk/src/gcc/gcc/c-typeck.c	(revision 1462)
+++ trunk/src/gcc/gcc/c-typeck.c	(revision 1465)
@@ -2166,9 +2166,7 @@
       build_type = integer_type_node;
       if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
-	   || code0 == COMPLEX_TYPE
-	   || code0 == VECTOR_TYPE)
+	   || code0 == COMPLEX_TYPE)
 	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
-	      || code1 == COMPLEX_TYPE
-	      || code1 == VECTOR_TYPE))
+	      || code1 == COMPLEX_TYPE))
 	short_compare = 1;
       else if (code0 == POINTER_TYPE && code1 == POINTER_TYPE)
@@ -2982,8 +2980,8 @@
 	/* Report a read-only lvalue.  */
 	if (TREE_READONLY (arg))
-	  readonly_warning (arg, 
-			    ((code == PREINCREMENT_EXPR
-			      || code == POSTINCREMENT_EXPR)
-			     ? "increment" : "decrement"));
+	  readonly_error (arg, 
+                          ((code == PREINCREMENT_EXPR
+                            || code == POSTINCREMENT_EXPR)
+                           ? "increment" : "decrement"));
 
 	if (TREE_CODE (TREE_TYPE (arg)) == BOOLEAN_TYPE)
@@ -3248,17 +3246,16 @@
      enum tree_code code;
 {
-  if (pedantic)
-    switch (code)
-      {
-      case COND_EXPR:
-	pedwarn ("ISO C forbids use of conditional expressions as lvalues");
-	break;
-      case COMPOUND_EXPR:
-	pedwarn ("ISO C forbids use of compound expressions as lvalues");
-	break;
-      default:
-	pedwarn ("ISO C forbids use of cast expressions as lvalues");
-	break;
-      }
+  switch (code)
+    {
+    case COND_EXPR:
+      pedwarn ("use of conditional expressions as lvalues is deprecated");
+      break;
+    case COMPOUND_EXPR:
+      pedwarn ("use of compound expressions as lvalues is deprecated");
+      break;
+    default:
+      pedwarn ("use of cast expressions as lvalues is deprecated");
+      break;
+    }
 }
 
@@ -3267,5 +3264,5 @@
 
 void
-readonly_warning (arg, msgid)
+readonly_error (arg, msgid)
      tree arg;
      const char *msgid;
@@ -3274,14 +3271,14 @@
     {
       if (TYPE_READONLY (TREE_TYPE (TREE_OPERAND (arg, 0))))
-	readonly_warning (TREE_OPERAND (arg, 0), msgid);
+	readonly_error (TREE_OPERAND (arg, 0), msgid);
       else
-	pedwarn ("%s of read-only member `%s'", _(msgid),
-		 IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (arg, 1))));
+	error ("%s of read-only member `%s'", _(msgid),
+               IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (arg, 1))));
     }
   else if (TREE_CODE (arg) == VAR_DECL)
-    pedwarn ("%s of read-only variable `%s'", _(msgid),
-	     IDENTIFIER_POINTER (DECL_NAME (arg)));
+    error ("%s of read-only variable `%s'", _(msgid),
+           IDENTIFIER_POINTER (DECL_NAME (arg)));
   else
-    pedwarn ("%s of read-only location", _(msgid));
+    error ("%s of read-only location", _(msgid));
 }
 
@@ -3329,5 +3326,5 @@
 	    && DECL_NONLOCAL (x))
 	  {
-	    if (TREE_PUBLIC (x))
+	    if (TREE_PUBLIC (x) || TREE_STATIC (x) || DECL_EXTERNAL (x))
 	      {
 		error ("global register variable `%s' used in nested function",
@@ -3340,5 +3337,5 @@
 	else if (DECL_REGISTER (x) && !TREE_ADDRESSABLE (x))
 	  {
-	    if (TREE_PUBLIC (x))
+	    if (TREE_PUBLIC (x) || TREE_STATIC (x) || DECL_EXTERNAL (x))
 	      {
 		error ("address of global register variable `%s' requested",
@@ -3974,5 +3971,5 @@
 	   || TREE_CODE (lhstype) == UNION_TYPE)
 	  && C_TYPE_FIELDS_READONLY (lhstype)))
-    readonly_warning (lhs, "assignment");
+    readonly_error (lhs, "assignment");
 
   /* If storing into a structure or union member,
@@ -5529,4 +5526,8 @@
     }
 
+  /* Now output all pending elements.  */
+  constructor_incremental = 1;
+  output_pending_init_elements (1);
+
   p = constructor_stack;
 
@@ -5582,8 +5583,4 @@
 	  }
     }
-
-  /* Now output all pending elements.  */
-  constructor_incremental = 1;
-  output_pending_init_elements (1);
 
   /* Pad out the end of the structure.  */
@@ -6274,4 +6271,9 @@
      int pending;
 {
+  if (type == error_mark_node)
+    {
+      constructor_erroneous = 1;
+      return;
+    }
   if (TREE_CODE (TREE_TYPE (value)) == FUNCTION_TYPE
       || (TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE
@@ -7069,5 +7071,5 @@
 		   || TREE_CODE (type) == UNION_TYPE)
 		  && C_TYPE_FIELDS_READONLY (type)))
-	    readonly_warning (o[i], "modification by `asm'");
+	    readonly_error (o[i], "modification by `asm'");
 	}
     }
Index: trunk/src/gcc/gcc/config.in
===================================================================
--- trunk/src/gcc/gcc/config.in	(revision 1462)
+++ trunk/src/gcc/gcc/config.in	(revision 1465)
@@ -618,4 +618,7 @@
 #undef HAVE_LD_EH_FRAME_HDR
 
+/* Define if your linker supports --as-needed and --no-as-needed options. */
+#undef HAVE_LD_AS_NEEDED
+
 /* Define if your MIPS libgloss linker scripts consistently include STARTUP directives. */
 #undef HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES
Index: trunk/src/gcc/gcc/cpplib.c
===================================================================
--- trunk/src/gcc/gcc/cpplib.c	(revision 1462)
+++ trunk/src/gcc/gcc/cpplib.c	(revision 1465)
@@ -1123,7 +1123,4 @@
 	(*pfile->cb.line_change) (pfile, pragma_token, false);
       (*p->u.handler) (pfile);
-      if (pfile->cb.line_change)
-	(*pfile->cb.line_change) (pfile, pfile->cur_token, false);
-      
     }
   else if (pfile->cb.def_pragma)
Index: trunk/src/gcc/gcc/cse.c
===================================================================
--- trunk/src/gcc/gcc/cse.c	(revision 1462)
+++ trunk/src/gcc/gcc/cse.c	(revision 1465)
@@ -1,5 +1,5 @@
 /* Common subexpression elimination for GNU compiler.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998
-   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -39,4 +39,5 @@
 #include "ggc.h"
 #include "timevar.h"
+#include "target.h"
 
 /* The basic idea of common subexpression elimination is to go
@@ -702,4 +703,7 @@
 static bool set_live_p		PARAMS ((rtx, rtx, int *));
 static bool dead_libcall_p	PARAMS ((rtx, int *));
+static int cse_change_cc_mode	PARAMS ((rtx *, void *));
+static void cse_change_cc_mode_insns PARAMS ((rtx, rtx, rtx));
+static enum machine_mode cse_cc_succs PARAMS ((basic_block, rtx, rtx, int));
 
 
@@ -3870,4 +3874,21 @@
 	      break;
 
+	    /* It's not safe to substitute the operand of a conversion
+	       operator with a constant, as the conversion's identity
+	       depends upon the mode of it's operand.  This optimization
+	       is handled by the call to simplify_unary_operation.  */
+	    if (GET_RTX_CLASS (code) == '1'
+		&& GET_MODE (replacements[j]) != mode_arg0
+		&& (code == ZERO_EXTEND
+		    || code == SIGN_EXTEND
+		    || code == TRUNCATE
+		    || code == FLOAT_TRUNCATE
+		    || code == FLOAT_EXTEND
+		    || code == FLOAT
+		    || code == FIX
+		    || code == UNSIGNED_FLOAT
+		    || code == UNSIGNED_FIX))
+	      continue;
+
 	    if (validate_change (insn, &XEXP (x, i), replacements[j], 0))
 	      break;
@@ -7808,2 +7829,368 @@
   return ndead;
 }
+
+/* This function is called via for_each_rtx.  The argument, NEWREG, is
+   a condition code register with the desired mode.  If we are looking
+   at the same register in a different mode, replace it with
+   NEWREG.  */
+
+static int
+cse_change_cc_mode (loc, data)
+     rtx *loc;
+     void *data;
+{
+  rtx newreg = (rtx) data;
+
+  if (*loc
+      && GET_CODE (*loc) == REG
+      && REGNO (*loc) == REGNO (newreg)
+      && GET_MODE (*loc) != GET_MODE (newreg))
+    {
+      *loc = newreg;
+      return -1;
+    }
+  return 0;
+}
+
+/* Change the mode of any reference to the register REGNO (NEWREG) to
+   GET_MODE (NEWREG), starting at START.  Stop before END.  Stop at
+   any instruction which modifies NEWREG.  */
+
+static void
+cse_change_cc_mode_insns (start, end, newreg)
+     rtx start;
+     rtx end;
+     rtx newreg;
+{
+  rtx insn;
+
+  for (insn = start; insn != end; insn = NEXT_INSN (insn))
+    {
+      if (! INSN_P (insn))
+	continue;
+
+      if (reg_set_p (newreg, insn))
+	return;
+
+      for_each_rtx (&PATTERN (insn), cse_change_cc_mode, newreg);
+      for_each_rtx (&REG_NOTES (insn), cse_change_cc_mode, newreg);
+    }
+}
+
+/* BB is a basic block which finishes with CC_REG as a condition code
+   register which is set to CC_SRC.  Look through the successors of BB
+   to find blocks which have a single predecessor (i.e., this one),
+   and look through those blocks for an assignment to CC_REG which is
+   equivalent to CC_SRC.  CAN_CHANGE_MODE indicates whether we are
+   permitted to change the mode of CC_SRC to a compatible mode.  This
+   returns VOIDmode if no equivalent assignments were found.
+   Otherwise it returns the mode which CC_SRC should wind up with.
+
+   The main complexity in this function is handling the mode issues.
+   We may have more than one duplicate which we can eliminate, and we
+   try to find a mode which will work for multiple duplicates.  */
+
+static enum machine_mode
+cse_cc_succs (bb, cc_reg, cc_src, can_change_mode)
+     basic_block bb;
+     rtx cc_reg;
+     rtx cc_src;
+     int can_change_mode;
+{
+  bool found_equiv;
+  enum machine_mode mode;
+  unsigned int insn_count;
+  edge e;
+  rtx insns[2];
+  enum machine_mode modes[2];
+  rtx last_insns[2];
+  unsigned int i;
+  rtx newreg;
+
+  /* We expect to have two successors.  Look at both before picking
+     the final mode for the comparison.  If we have more successors
+     (i.e., some sort of table jump, although that seems unlikely),
+     then we require all beyond the first two to use the same
+     mode.  */
+
+  found_equiv = false;
+  mode = GET_MODE (cc_src);
+  insn_count = 0;
+  for (e = bb->succ; e; e = e->succ_next)
+    {
+      rtx insn;
+      rtx end;
+
+      if (e->flags & EDGE_COMPLEX)
+	continue;
+
+      if (! e->dest->pred
+	  || e->dest->pred->pred_next
+	  || e->dest == EXIT_BLOCK_PTR)
+	continue;
+
+      end = NEXT_INSN (e->dest->end);
+      for (insn = e->dest->head; insn != end; insn = NEXT_INSN (insn))
+	{
+	  rtx set;
+
+	  if (! INSN_P (insn))
+	    continue;
+
+	  /* If CC_SRC is modified, we have to stop looking for
+	     something which uses it.  */
+	  if (modified_in_p (cc_src, insn))
+	    break;
+
+	  /* Check whether INSN sets CC_REG to CC_SRC.  */
+	  set = single_set (insn);
+	  if (set
+	      && GET_CODE (SET_DEST (set)) == REG
+	      && REGNO (SET_DEST (set)) == REGNO (cc_reg))
+	    {
+	      bool found;
+	      enum machine_mode set_mode;
+	      enum machine_mode comp_mode;
+
+	      found = false;
+	      set_mode = GET_MODE (SET_SRC (set));
+	      comp_mode = set_mode;
+	      if (rtx_equal_p (cc_src, SET_SRC (set)))
+		found = true;
+	      else if (GET_CODE (cc_src) == COMPARE
+		       && GET_CODE (SET_SRC (set)) == COMPARE
+		       && mode != set_mode
+		       && rtx_equal_p (XEXP (cc_src, 0),
+				       XEXP (SET_SRC (set), 0))
+		       && rtx_equal_p (XEXP (cc_src, 1),
+				       XEXP (SET_SRC (set), 1)))
+			   
+		{
+		  comp_mode = (*targetm.cc_modes_compatible) (mode, set_mode);
+		  if (comp_mode != VOIDmode
+		      && (can_change_mode || comp_mode == mode))
+		    found = true;
+		}
+
+	      if (found)
+		{
+		  found_equiv = true;
+		  if (insn_count < ARRAY_SIZE (insns))
+		    {
+		      insns[insn_count] = insn;
+		      modes[insn_count] = set_mode;
+		      last_insns[insn_count] = end;
+		      ++insn_count;
+
+		      if (mode != comp_mode)
+			{
+			  if (! can_change_mode)
+			    abort ();
+			  mode = comp_mode;
+			  PUT_MODE (cc_src, mode);
+			}
+		    }
+		  else
+		    {
+		      if (set_mode != mode)
+			{
+			  /* We found a matching expression in the
+			     wrong mode, but we don't have room to
+			     store it in the array.  Punt.  This case
+			     should be rare.  */
+			  break;
+			}
+		      /* INSN sets CC_REG to a value equal to CC_SRC
+			 with the right mode.  We can simply delete
+			 it.  */
+		      delete_insn (insn);
+		    }
+
+		  /* We found an instruction to delete.  Keep looking,
+		     in the hopes of finding a three-way jump.  */
+		  continue;
+		}
+
+	      /* We found an instruction which sets the condition
+		 code, so don't look any farther.  */
+	      break;
+	    }
+
+	  /* If INSN sets CC_REG in some other way, don't look any
+	     farther.  */
+	  if (reg_set_p (cc_reg, insn))
+	    break;
+	}
+
+      /* If we fell off the bottom of the block, we can keep looking
+	 through successors.  We pass CAN_CHANGE_MODE as false because
+	 we aren't prepared to handle compatibility between the
+	 further blocks and this block.  */
+      if (insn == end)
+	{
+	  enum machine_mode submode;
+
+	  submode = cse_cc_succs (e->dest, cc_reg, cc_src, false);
+	  if (submode != VOIDmode)
+	    {
+	      if (submode != mode)
+		abort ();
+	      found_equiv = true;
+	      can_change_mode = false;
+	    }
+	}
+    }
+
+  if (! found_equiv)
+    return VOIDmode;
+
+  /* Now INSN_COUNT is the number of instructions we found which set
+     CC_REG to a value equivalent to CC_SRC.  The instructions are in
+     INSNS.  The modes used by those instructions are in MODES.  */
+
+  newreg = NULL_RTX;
+  for (i = 0; i < insn_count; ++i)
+    {
+      if (modes[i] != mode)
+	{
+	  /* We need to change the mode of CC_REG in INSNS[i] and
+	     subsequent instructions.  */
+	  if (! newreg)
+	    {
+	      if (GET_MODE (cc_reg) == mode)
+		newreg = cc_reg;
+	      else
+		newreg = gen_rtx_REG (mode, REGNO (cc_reg));
+	    }
+	  cse_change_cc_mode_insns (NEXT_INSN (insns[i]), last_insns[i],
+				    newreg);
+	}
+
+      delete_insn (insns[i]);
+    }
+
+  return mode;
+}
+
+/* If we have a fixed condition code register (or two), walk through
+   the instructions and try to eliminate duplicate assignments.  */
+
+void
+cse_condition_code_reg ()
+{
+  unsigned int cc_regno_1;
+  unsigned int cc_regno_2;
+  rtx cc_reg_1;
+  rtx cc_reg_2;
+  basic_block bb;
+
+  if (! (*targetm.fixed_condition_code_regs) (&cc_regno_1, &cc_regno_2))
+    return;
+
+  cc_reg_1 = gen_rtx_REG (CCmode, cc_regno_1);
+  if (cc_regno_2 != INVALID_REGNUM)
+    cc_reg_2 = gen_rtx_REG (CCmode, cc_regno_2);
+  else
+    cc_reg_2 = NULL_RTX;
+
+  FOR_EACH_BB (bb)
+    {
+      rtx last_insn;
+      rtx cc_reg;
+      rtx insn;
+      rtx cc_src_insn;
+      rtx cc_src;
+      enum machine_mode mode;
+      enum machine_mode orig_mode;
+
+      /* Look for blocks which end with a conditional jump based on a
+	 condition code register.  Then look for the instruction which
+	 sets the condition code register.  Then look through the
+	 successor blocks for instructions which set the condition
+	 code register to the same value.  There are other possible
+	 uses of the condition code register, but these are by far the
+	 most common and the ones which we are most likely to be able
+	 to optimize.  */
+
+      last_insn = bb->end;
+      if (GET_CODE (last_insn) != JUMP_INSN)
+	continue;
+
+      if (reg_referenced_p (cc_reg_1, PATTERN (last_insn)))
+	cc_reg = cc_reg_1;
+      else if (cc_reg_2 && reg_referenced_p (cc_reg_2, PATTERN (last_insn)))
+	cc_reg = cc_reg_2;
+      else
+	continue;
+
+      cc_src_insn = NULL_RTX;
+      cc_src = NULL_RTX;
+      for (insn = PREV_INSN (last_insn);
+	   insn && insn != PREV_INSN (bb->head);
+	   insn = PREV_INSN (insn))
+	{
+	  rtx set;
+
+	  if (! INSN_P (insn))
+	    continue;
+	  set = single_set (insn);
+	  if (set
+	      && GET_CODE (SET_DEST (set)) == REG
+	      && REGNO (SET_DEST (set)) == REGNO (cc_reg))
+	    {
+	      cc_src_insn = insn;
+	      cc_src = SET_SRC (set);
+	      break;
+	    }
+	  else if (reg_set_p (cc_reg, insn))
+	    break;
+	}
+
+      if (! cc_src_insn)
+	continue;
+
+      if (modified_between_p (cc_src, cc_src_insn, NEXT_INSN (last_insn)))
+	continue;
+
+      /* Now CC_REG is a condition code register used for a
+	 conditional jump at the end of the block, and CC_SRC, in
+	 CC_SRC_INSN, is the value to which that condition code
+	 register is set, and CC_SRC is still meaningful at the end of
+	 the basic block.  */
+
+      orig_mode = GET_MODE (cc_src);
+      mode = cse_cc_succs (bb, cc_reg, cc_src, true);
+      if (mode != VOIDmode)
+	{
+	  if (mode != GET_MODE (cc_src))
+	    abort ();
+	  if (mode != orig_mode)
+	    {
+	      rtx newreg = gen_rtx_REG (mode, REGNO (cc_reg));
+
+	      /* Change the mode of CC_REG in CC_SRC_INSN to
+		 GET_MODE (NEWREG).  */
+	      for_each_rtx (&PATTERN (cc_src_insn), cse_change_cc_mode,
+			    newreg);
+	      for_each_rtx (&REG_NOTES (cc_src_insn), cse_change_cc_mode,
+			    newreg);
+
+	      /* Do the same in the following insns that use the
+		 current value of CC_REG within BB.  */
+	      cse_change_cc_mode_insns (NEXT_INSN (cc_src_insn),
+					NEXT_INSN (last_insn),
+					newreg);
+	    }
+	}
+    }
+}
+
+enum machine_mode
+default_cc_modes_compatible (m1, m2)
+     enum machine_mode m1;
+     enum machine_mode m2;
+{
+  if (m1 == m2)
+    return m1;
+  return VOIDmode;
+}
Index: trunk/src/gcc/gcc/except.c
===================================================================
--- trunk/src/gcc/gcc/except.c	(revision 1462)
+++ trunk/src/gcc/gcc/except.c	(revision 1465)
@@ -3308,6 +3308,16 @@
 	 beginning of the chain.  */
       next = collect_one_action_chain (ar_hash, region->outer);
-      return add_action_record (ar_hash, region->u.allowed.filter,
-				next < 0 ? 0 : next);
+
+      /* If there is no next action, terminate the chain.  */
+      if (next == -1)
+	next = 0;
+      /* If all outer actions are cleanups or must_not_throw,
+	 we'll have no action record for it, since we had wanted
+	 to encode these states in the call-site record directly.
+	 Add a cleanup action to the chain to catch these.  */
+      else if (next <= 0)
+	next = add_action_record (ar_hash, 0, 0);
+      
+      return add_action_record (ar_hash, region->u.allowed.filter, next);
 
     case ERT_MUST_NOT_THROW:
Index: trunk/src/gcc/gcc/flow.c
===================================================================
--- trunk/src/gcc/gcc/flow.c	(revision 1462)
+++ trunk/src/gcc/gcc/flow.c	(revision 1465)
@@ -1,5 +1,5 @@
 /* Data flow analysis for GNU compiler.
    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -1806,6 +1806,7 @@
 					      (rtx *) 0)))
 	      {
+		enum rtx_code code = global_regs[i] ? SET : CLOBBER;
 		/* We do not want REG_UNUSED notes for these registers.  */
-		mark_set_1 (pbi, CLOBBER, regno_reg_rtx[i], cond, insn,
+		mark_set_1 (pbi, code, regno_reg_rtx[i], cond, insn,
 			    pbi->flags & ~(PROP_DEATH_NOTES | PROP_REG_INFO));
 	      }
@@ -2300,12 +2301,20 @@
 
   /* A CLOBBER of a pseudo-register that is dead serves no purpose.  That
-     is not necessarily true for hard registers.  */
-  else if (code == CLOBBER && GET_CODE (XEXP (x, 0)) == REG
-	   && REGNO (XEXP (x, 0)) >= FIRST_PSEUDO_REGISTER
-	   && ! REGNO_REG_SET_P (pbi->reg_live, REGNO (XEXP (x, 0))))
-    return 1;
-
-  /* We do not check other CLOBBER or USE here.  An insn consisting of just
-     a CLOBBER or just a USE should not be deleted.  */
+     is not necessarily true for hard registers until after reload.  */
+  else if (code == CLOBBER)
+    {
+      if (GET_CODE (XEXP (x, 0)) == REG
+	  && (REGNO (XEXP (x, 0)) >= FIRST_PSEUDO_REGISTER
+	      || reload_completed)
+	  && ! REGNO_REG_SET_P (pbi->reg_live, REGNO (XEXP (x, 0))))
+	return 1;
+    }
+
+  /* ??? A base USE is a historical relic.  It ought not be needed anymore.
+     Instances where it is still used are either (1) temporary and the USE
+     escaped the pass, (2) cruft and the USE need not be emitted anymore,
+     or (3) hiding bugs elsewhere that are not properly representing data
+     flow.  */
+
   return 0;
 }
@@ -2822,8 +2831,16 @@
 		     we might wind up changing the semantics of the insn,
 		     even if reload can make what appear to be valid
-		     assignments later.  */
+		     assignments later.
+
+		     We don't build a LOG_LINK for global registers to
+		     or from a function call.  We don't want to let
+		     combine think that it knows what is going on with
+		     global registers.  */
 		  if (y && (BLOCK_NUM (y) == blocknum)
 		      && (regno_first >= FIRST_PSEUDO_REGISTER
-			  || asm_noperands (PATTERN (y)) < 0))
+			  || (asm_noperands (PATTERN (y)) < 0
+			      && ! ((GET_CODE (insn) == CALL_INSN
+				     || GET_CODE (y) == CALL_INSN)
+				    && global_regs[regno_first]))))
 		    LOG_LINKS (y) = alloc_INSN_LIST (insn, LOG_LINKS (y));
 		}
Index: trunk/src/gcc/gcc/fold-const.c
===================================================================
--- trunk/src/gcc/gcc/fold-const.c	(revision 1462)
+++ trunk/src/gcc/gcc/fold-const.c	(revision 1465)
@@ -6048,148 +6048,66 @@
 	}
 
-      /* Convert foo++ == CONST into ++foo == CONST + INCR.
-	 First, see if one arg is constant; find the constant arg
-	 and the other one.  */
-      {
-	tree constop = 0, varop = NULL_TREE;
-	int constopnum = -1;
-
-	if (TREE_CONSTANT (arg1))
-	  constopnum = 1, constop = arg1, varop = arg0;
-	if (TREE_CONSTANT (arg0))
-	  constopnum = 0, constop = arg0, varop = arg1;
-
-	if (constop && TREE_CODE (varop) == POSTINCREMENT_EXPR)
-	  {
-	    /* This optimization is invalid for ordered comparisons
-	       if CONST+INCR overflows or if foo+incr might overflow.
-	       This optimization is invalid for floating point due to rounding.
-	       For pointer types we assume overflow doesn't happen.  */
-	    if (POINTER_TYPE_P (TREE_TYPE (varop))
-		|| (! FLOAT_TYPE_P (TREE_TYPE (varop))
-		    && (code == EQ_EXPR || code == NE_EXPR)))
-	      {
-		tree newconst
-		  = fold (build (PLUS_EXPR, TREE_TYPE (varop),
-				 constop, TREE_OPERAND (varop, 1)));
-
-		/* Do not overwrite the current varop to be a preincrement,
-		   create a new node so that we won't confuse our caller who
-		   might create trees and throw them away, reusing the
-		   arguments that they passed to build.  This shows up in
-		   the THEN or ELSE parts of ?: being postincrements.  */
-		varop = build (PREINCREMENT_EXPR, TREE_TYPE (varop),
-			       TREE_OPERAND (varop, 0),
-			       TREE_OPERAND (varop, 1));
-
-		/* If VAROP is a reference to a bitfield, we must mask
-		   the constant by the width of the field.  */
-		if (TREE_CODE (TREE_OPERAND (varop, 0)) == COMPONENT_REF
-		    && DECL_BIT_FIELD(TREE_OPERAND
-				      (TREE_OPERAND (varop, 0), 1)))
-		  {
-		    int size
-		      = TREE_INT_CST_LOW (DECL_SIZE
-					  (TREE_OPERAND
-					   (TREE_OPERAND (varop, 0), 1)));
-		    tree mask, unsigned_type;
-		    unsigned int precision;
-		    tree folded_compare;
-
-		    /* First check whether the comparison would come out
-		       always the same.  If we don't do that we would
-		       change the meaning with the masking.  */
-		    if (constopnum == 0)
-		      folded_compare = fold (build (code, type, constop,
-						    TREE_OPERAND (varop, 0)));
-		    else
-		      folded_compare = fold (build (code, type,
-						    TREE_OPERAND (varop, 0),
-						    constop));
-		    if (integer_zerop (folded_compare)
-			|| integer_onep (folded_compare))
-		      return omit_one_operand (type, folded_compare, varop);
-
-		    unsigned_type = (*lang_hooks.types.type_for_size)(size, 1);
-		    precision = TYPE_PRECISION (unsigned_type);
-		    mask = build_int_2 (~0, ~0);
-		    TREE_TYPE (mask) = unsigned_type;
-		    force_fit_type (mask, 0);
-		    mask = const_binop (RSHIFT_EXPR, mask,
-					size_int (precision - size), 0);
-		    newconst = fold (build (BIT_AND_EXPR,
-					    TREE_TYPE (varop), newconst,
-					    convert (TREE_TYPE (varop),
-						     mask)));
-		  }
-
-		t = build (code, type,
-			   (constopnum == 0) ? newconst : varop,
-			   (constopnum == 1) ? newconst : varop);
-		return t;
-	      }
-	  }
-	else if (constop && TREE_CODE (varop) == POSTDECREMENT_EXPR)
-	  {
-	    if (POINTER_TYPE_P (TREE_TYPE (varop))
-		|| (! FLOAT_TYPE_P (TREE_TYPE (varop))
-		    && (code == EQ_EXPR || code == NE_EXPR)))
-	      {
-		tree newconst
-		  = fold (build (MINUS_EXPR, TREE_TYPE (varop),
-				 constop, TREE_OPERAND (varop, 1)));
-
-		/* Do not overwrite the current varop to be a predecrement,
-		   create a new node so that we won't confuse our caller who
-		   might create trees and throw them away, reusing the
-		   arguments that they passed to build.  This shows up in
-		   the THEN or ELSE parts of ?: being postdecrements.  */
-		varop = build (PREDECREMENT_EXPR, TREE_TYPE (varop),
-			       TREE_OPERAND (varop, 0),
-			       TREE_OPERAND (varop, 1));
-
-		if (TREE_CODE (TREE_OPERAND (varop, 0)) == COMPONENT_REF
-		    && DECL_BIT_FIELD(TREE_OPERAND
-				      (TREE_OPERAND (varop, 0), 1)))
-		  {
-		    int size
-		      = TREE_INT_CST_LOW (DECL_SIZE
-					  (TREE_OPERAND
-					   (TREE_OPERAND (varop, 0), 1)));
-		    tree mask, unsigned_type;
-		    unsigned int precision;
-		    tree folded_compare;
-
-		    if (constopnum == 0)
-		      folded_compare = fold (build (code, type, constop,
-						    TREE_OPERAND (varop, 0)));
-		    else
-		      folded_compare = fold (build (code, type,
-						    TREE_OPERAND (varop, 0),
-						    constop));
-		    if (integer_zerop (folded_compare)
-			|| integer_onep (folded_compare))
-		      return omit_one_operand (type, folded_compare, varop);
-
-		    unsigned_type = (*lang_hooks.types.type_for_size)(size, 1);
-		    precision = TYPE_PRECISION (unsigned_type);
-		    mask = build_int_2 (~0, ~0);
-		    TREE_TYPE (mask) = TREE_TYPE (varop);
-		    force_fit_type (mask, 0);
-		    mask = const_binop (RSHIFT_EXPR, mask,
-					size_int (precision - size), 0);
-		    newconst = fold (build (BIT_AND_EXPR,
-					    TREE_TYPE (varop), newconst,
-					    convert (TREE_TYPE (varop),
-						     mask)));
-		  }
-
-		t = build (code, type,
-			   (constopnum == 0) ? newconst : varop,
-			   (constopnum == 1) ? newconst : varop);
-		return t;
-	      }
-	  }
-      }
+
+      /* Convert foo++ == CONST into ++foo == CONST + INCR.  */
+      if (TREE_CONSTANT (arg1)
+	  && (TREE_CODE (arg0) == POSTINCREMENT_EXPR
+	      || TREE_CODE (arg0) == POSTDECREMENT_EXPR)
+	  /* This optimization is invalid for ordered comparisons
+	     if CONST+INCR overflows or if foo+incr might overflow.
+	     This optimization is invalid for floating point due to rounding.
+	     For pointer types we assume overflow doesn't happen.  */
+	  && (POINTER_TYPE_P (TREE_TYPE (arg0))
+	      || (INTEGRAL_TYPE_P (TREE_TYPE (arg0))
+		  && (code == EQ_EXPR || code == NE_EXPR))))
+	{
+	  tree varop, newconst;
+
+	  if (TREE_CODE (arg0) == POSTINCREMENT_EXPR)
+	    {
+	      newconst = fold (build (PLUS_EXPR, TREE_TYPE (arg0),
+				      arg1, TREE_OPERAND (arg0, 1)));
+	      varop = build (PREINCREMENT_EXPR, TREE_TYPE (arg0),
+			     TREE_OPERAND (arg0, 0),
+			     TREE_OPERAND (arg0, 1));
+	    }
+	  else
+	    {
+	      newconst = fold (build (MINUS_EXPR, TREE_TYPE (arg0),
+				      arg1, TREE_OPERAND (arg0, 1)));
+	      varop = build (PREDECREMENT_EXPR, TREE_TYPE (arg0),
+			     TREE_OPERAND (arg0, 0),
+			     TREE_OPERAND (arg0, 1));
+	    }
+
+
+	  /* If VAROP is a reference to a bitfield, we must mask
+	     the constant by the width of the field.  */
+	  if (TREE_CODE (TREE_OPERAND (varop, 0)) == COMPONENT_REF
+	      && DECL_BIT_FIELD (TREE_OPERAND (TREE_OPERAND (varop, 0), 1)))
+	    {
+	      tree fielddecl = TREE_OPERAND (TREE_OPERAND (varop, 0), 1);
+	      int size = TREE_INT_CST_LOW (DECL_SIZE (fielddecl));
+	      tree folded_compare, shift;
+
+	      /* First check whether the comparison would come out
+		 always the same.  If we don't do that we would
+		 change the meaning with the masking.  */
+	      folded_compare = fold (build (code, type,
+					    TREE_OPERAND (varop, 0),
+					    arg1));
+	      if (integer_zerop (folded_compare)
+		  || integer_onep (folded_compare))
+		return omit_one_operand (type, folded_compare, varop);
+
+	      shift = build_int_2 (TYPE_PRECISION (TREE_TYPE (varop)) - size,
+				   0);
+	      newconst = fold (build (LSHIFT_EXPR, TREE_TYPE (varop),
+				      newconst, shift));
+	      newconst = fold (build (RSHIFT_EXPR, TREE_TYPE (varop),
+				      newconst, shift));
+	    }
+
+	  return fold (build (code, type, varop, newconst));
+	}
 
       /* Change X >= C to X > (C - 1) and X < C to X <= (C - 1) if C > 0.
Index: trunk/src/gcc/gcc/hooks.c
===================================================================
--- trunk/src/gcc/gcc/hooks.c	(revision 1462)
+++ trunk/src/gcc/gcc/hooks.c	(revision 1465)
@@ -1,4 +1,4 @@
 /* General-purpose hooks.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify it
@@ -122,2 +122,10 @@
   return false;
 }
+
+bool
+hook_bool_uintp_uintp_false (a, b)
+     unsigned int *a ATTRIBUTE_UNUSED;
+     unsigned int *b ATTRIBUTE_UNUSED;
+{
+  return false;
+}
Index: trunk/src/gcc/gcc/hooks.h
===================================================================
--- trunk/src/gcc/gcc/hooks.h	(revision 1462)
+++ trunk/src/gcc/gcc/hooks.h	(revision 1465)
@@ -1,4 +1,4 @@
 /* General-purpose hooks.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify it
@@ -30,4 +30,5 @@
   PARAMS ((tree, HOST_WIDE_INT, HOST_WIDE_INT, tree));
 bool hook_bool_rtx_false PARAMS ((rtx));
+bool hook_bool_uintp_uintp_false PARAMS ((unsigned int *, unsigned int *));
 
 void hook_void_tree_int PARAMS ((tree, int));
Index: trunk/src/gcc/gcc/loop.c
===================================================================
--- trunk/src/gcc/gcc/loop.c	(revision 1462)
+++ trunk/src/gcc/gcc/loop.c	(revision 1465)
@@ -4955,4 +4955,7 @@
 							 v->new_reg));
 
+	  /* We must do this now because we just emitted a new set.  */
+	  RTX_UNCHANGING_P (v->dest_reg) = 0;
+
  	  /* The original insn may have a REG_EQUAL note.  This note is
  	     now incorrect and may result in invalid substitutions later.
Index: trunk/src/gcc/gcc/loop.h
===================================================================
--- trunk/src/gcc/gcc/loop.h	(revision 1462)
+++ trunk/src/gcc/gcc/loop.h	(revision 1465)
@@ -52,4 +52,5 @@
 #define REGNO_FIRST_LUID(REGNO) uid_luid[REGNO_FIRST_UID (REGNO)]
 #define REGNO_LAST_LUID(REGNO) uid_luid[REGNO_LAST_UID (REGNO)]
+#define REGNO_LAST_NOTE_LUID(REGNO) uid_luid[REGNO_LAST_NOTE_UID (REGNO)]
 
 
Index: trunk/src/gcc/gcc/optabs.c
===================================================================
--- trunk/src/gcc/gcc/optabs.c	(revision 1462)
+++ trunk/src/gcc/gcc/optabs.c	(revision 1465)
@@ -3491,4 +3491,14 @@
     }
 
+  /* Don't allow operands to the compare to trap, as that can put the
+     compare and branch in different basic blocks.  */
+  if (flag_non_call_exceptions)
+    {
+      if (may_trap_p (x))
+	x = force_reg (mode, x);
+      if (may_trap_p (y))
+	y = force_reg (mode, y);
+    }
+
   *px = x;
   *py = y;
Index: trunk/src/gcc/gcc/reload.c
===================================================================
--- trunk/src/gcc/gcc/reload.c	(revision 1462)
+++ trunk/src/gcc/gcc/reload.c	(revision 1465)
@@ -1,5 +1,5 @@
 /* Search an insn for pseudo regs that must be in hard regs and are not.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -2675,5 +2675,13 @@
 		abort ();
 
-	      commutative = i;
+	      /* We currently only support one commutative pair of
+		 operands.  Some existing asm code currently uses more
+		 than one pair.  Previously, that would usually work,
+		 but sometimes it would crash the compiler.  We
+		 continue supporting that case as well as we can by
+		 silently ignoring all but the first pair.  In the
+		 future we may handle it correctly.  */
+	      if (commutative < 0)
+		commutative = i;
 	    }
 	  else if (ISDIGIT (c))
@@ -3039,7 +3047,6 @@
 
 	      case '%':
-		/* The last operand should not be marked commutative.  */
-		if (i != noperands - 1)
-		  commutative = i;
+		/* We only support one commutative marker, the first
+		   one.  We already set commutative above.  */
 		break;
 
Index: trunk/src/gcc/gcc/reload1.c
===================================================================
--- trunk/src/gcc/gcc/reload1.c	(revision 1462)
+++ trunk/src/gcc/gcc/reload1.c	(revision 1465)
@@ -795,6 +795,16 @@
 		     stages of reload assume that all addresses found
 		     in the reg_equiv_* arrays were originally legitimate,
-		     we ignore such REG_EQUIV notes.  */
-		  if (memory_operand (x, VOIDmode))
+		     we ignore such REG_EQUIV notes.
+
+		     It also can happen that a REG_EQUIV note contains a MEM
+		     that carries the /u flag, for example when GCSE turns
+		     the load of a constant into a move from a pseudo that
+		     already contains the constant and attaches a REG_EQUAL
+		     note to the insn, which is later promoted to REQ_EQUIV
+		     by local-alloc.  If the destination pseudo happens not
+		     to be assigned to a hard reg, it will be replaced by
+		     the MEM as the destination of the move, thus generating
+		     a store to a possibly read-only memory location.  */
+		  if (memory_operand (x, VOIDmode) && ! RTX_UNCHANGING_P (x))
 		    {
 		      /* Always unshare the equivalence, so we can
@@ -4417,4 +4427,5 @@
       if (TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno)
 	  || TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
+	  || TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)
 	  || TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno))
 	return 0;
@@ -4598,4 +4609,5 @@
 
       return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
+	      && ! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)
 	      && ! TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)
 	      && ! TEST_HARD_REG_BIT (reload_reg_used, regno));
@@ -8393,4 +8405,6 @@
       cselib_val *v;
       struct elt_loc_list *l;
+      rtx op;
+      enum machine_mode mode;
 
       CLEAR_HARD_REG_SET (equiv_regs[i]);
@@ -8404,5 +8418,50 @@
 	continue;
 
-      v = cselib_lookup (recog_data.operand[i], recog_data.operand_mode[i], 0);
+      op = recog_data.operand[i];
+      mode = GET_MODE (op);
+#ifdef LOAD_EXTEND_OP
+      if (GET_CODE (op) == MEM
+	  && GET_MODE_BITSIZE (mode) < BITS_PER_WORD
+	  && LOAD_EXTEND_OP (mode) != NIL)
+	{
+	  rtx set = single_set (insn);
+
+	  /* We might have multiple sets, some of which do implict
+	     extension.  Punt on this for now.  */
+	  if (! set)
+	    continue;
+	  /* If the destination is a also MEM or a STRICT_LOW_PART, no
+	     extension applies.
+	     Also, if there is an explicit extension, we don't have to
+	     worry about an implicit one.  */
+	  else if (GET_CODE (SET_DEST (set)) == MEM
+		   || GET_CODE (SET_DEST (set)) == STRICT_LOW_PART
+		   || GET_CODE (SET_SRC (set)) == ZERO_EXTEND
+		   || GET_CODE (SET_SRC (set)) == SIGN_EXTEND)
+	    ; /* Continue ordinary processing.  */
+	  /* If this is a straight load, make the extension explicit.  */
+	  else if (GET_CODE (SET_DEST (set)) == REG
+		   && recog_data.n_operands == 2
+		   && SET_SRC (set) == op
+		   && SET_DEST (set) == recog_data.operand[1-i])
+	    {
+	      validate_change (insn, recog_data.operand_loc[i],
+			       gen_rtx_fmt_e (LOAD_EXTEND_OP (mode),
+					      word_mode, op),
+			       1);
+	      validate_change (insn, recog_data.operand_loc[1-i],
+			       gen_rtx_REG (word_mode, REGNO (SET_DEST (set))),
+			       1);
+	      if (!apply_change_group ())
+		return 0;
+	      return reload_cse_simplify_operands (insn, testreg);
+	    }
+	  else
+	    /* ??? There might be arithmetic operations with memory that are
+	       safe to optimize, but is it worth the trouble?  */
+	    continue;
+	}
+#endif /* LOAD_EXTEND_OP */
+      v = cselib_lookup (op, recog_data.operand_mode[i], 0);
       if (! v)
 	continue;
Index: trunk/src/gcc/gcc/reorg.c
===================================================================
--- trunk/src/gcc/gcc/reorg.c	(revision 1462)
+++ trunk/src/gcc/gcc/reorg.c	(revision 1465)
@@ -2420,5 +2420,7 @@
 	      && ! can_throw_internal (trial))
 	    {
-	      rtx new_label = next_active_insn (next_trial);
+	      /* See comment in relax_delay_slots about necessity of using
+		 next_real_insn here.  */
+	      rtx new_label = next_real_insn (next_trial);
 
 	      if (new_label != 0)
@@ -3156,5 +3158,7 @@
 	{
 	  target_label = follow_jumps (target_label);
-	  target_label = prev_label (next_active_insn (target_label));
+	  /* See comment further down why we must use next_real_insn here,
+	     instead of next_active_insn.  */
+	  target_label = prev_label (next_real_insn (target_label));
 
 	  if (target_label == 0)
Index: trunk/src/gcc/gcc/rtl.h
===================================================================
--- trunk/src/gcc/gcc/rtl.h	(revision 1462)
+++ trunk/src/gcc/gcc/rtl.h	(revision 1465)
@@ -1,5 +1,5 @@
 /* Register Transfer Language (RTL) definitions for GNU C-Compiler
    Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -1937,4 +1937,7 @@
 						struct cse_basic_block_data *,
 						int, int, int));
+extern void cse_condition_code_reg	PARAMS ((void));
+extern enum machine_mode default_cc_modes_compatible PARAMS ((enum machine_mode,
+							      enum machine_mode));
 
 /* In jump.c */
@@ -2260,4 +2263,6 @@
 extern void end_alias_analysis		PARAMS ((void));
 extern rtx addr_side_effect_eval	PARAMS ((rtx, int, int));
+extern rtx get_reg_known_value		PARAMS ((unsigned int));
+extern bool get_reg_known_equiv_p	PARAMS ((unsigned int));
 
 /* In sibcall.c */
Index: trunk/src/gcc/gcc/sched-deps.c
===================================================================
--- trunk/src/gcc/gcc/sched-deps.c	(revision 1462)
+++ trunk/src/gcc/gcc/sched-deps.c	(revision 1465)
@@ -43,6 +43,4 @@
 #include "cselib.h"
 
-extern char *reg_known_equiv_p;
-extern rtx *reg_known_value;
 
 static regset_head reg_pending_sets_head;
@@ -104,8 +102,10 @@
   rtx addr = XEXP (mem, 0);
 
-  if (REG_P (addr)
-      && REGNO (addr) >= FIRST_PSEUDO_REGISTER
-      && reg_known_value[REGNO (addr)])
-    addr = reg_known_value[REGNO (addr)];
+  if (REG_P (addr) && REGNO (addr) >= FIRST_PSEUDO_REGISTER)
+    {
+      rtx t = get_reg_known_value (REGNO (addr));
+      if (t)
+	addr = t;
+    }
   return rtx_addr_can_trap_p (addr);
 }
@@ -636,8 +636,10 @@
 	     by that during reloading.  We need only add dependencies for
 	     the address in the REG_EQUIV note.  */
-	  if (!reload_completed
-	      && reg_known_equiv_p[regno]
-	      && GET_CODE (reg_known_value[regno]) == MEM)
-	    sched_analyze_2 (deps, XEXP (reg_known_value[regno], 0), insn);
+	  if (!reload_completed && get_reg_known_equiv_p (regno))
+	    {
+	      rtx t = get_reg_known_value (regno);
+	      if (GET_CODE (t) == MEM)
+	        sched_analyze_2 (deps, XEXP (t, 0), insn);
+	    }
 
 	  /* Don't let it cross a call after scheduling if it doesn't
@@ -771,8 +773,10 @@
 	       by that during reloading.  We need only add dependencies for
 	       the address in the REG_EQUIV note.  */
-	    if (!reload_completed
-		&& reg_known_equiv_p[regno]
-		&& GET_CODE (reg_known_value[regno]) == MEM)
-	      sched_analyze_2 (deps, XEXP (reg_known_value[regno], 0), insn);
+	    if (!reload_completed && get_reg_known_equiv_p (regno))
+	      {
+		rtx t = get_reg_known_value (regno);
+		if (GET_CODE (t) == MEM)
+		  sched_analyze_2 (deps, XEXP (t, 0), insn);
+	      }
 
 	    /* If the register does not already cross any calls, then add this
Index: trunk/src/gcc/gcc/sched-ebb.c
===================================================================
--- trunk/src/gcc/gcc/sched-ebb.c	(revision 1462)
+++ trunk/src/gcc/gcc/sched-ebb.c	(revision 1465)
@@ -1,5 +1,5 @@
 /* Instruction scheduling pass.
    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
    Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by,
    and currently maintained by, Jim Wilson (wilson@cygnus.com)
@@ -206,5 +206,5 @@
   NULL, NULL,
   NULL, NULL,
-  0, 1
+  0, 0
 };
 
Index: trunk/src/gcc/gcc/stmt.c
===================================================================
--- trunk/src/gcc/gcc/stmt.c	(revision 1462)
+++ trunk/src/gcc/gcc/stmt.c	(revision 1465)
@@ -553,7 +553,7 @@
       cfun->computed_goto_common_reg = copy_to_mode_reg (Pmode, x);
       cfun->computed_goto_common_label = gen_label_rtx ();
-      emit_label (cfun->computed_goto_common_label);
   
       do_pending_stack_adjust ();
+      emit_label (cfun->computed_goto_common_label);
       emit_indirect_jump (cfun->computed_goto_common_reg);
 
Index: trunk/src/gcc/gcc/target.h
===================================================================
--- trunk/src/gcc/gcc/target.h	(revision 1462)
+++ trunk/src/gcc/gcc/target.h	(revision 1465)
@@ -1,4 +1,4 @@
 /* Data structure definitions for a generic GCC target.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify it
@@ -280,4 +280,21 @@
   const char * (* strip_name_encoding) PARAMS ((const char *));
 
+  /* Fetch the fixed register(s) which hold condition codes, for
+     targets where it makes sense to look for duplicate assignments to
+     the condition codes.  This should return true if there is such a
+     register, false otherwise.  The arguments should be set to the
+     fixed register numbers.  Up to two condition code registers are
+     supported.  If there is only one for this target, the int pointed
+     at by the second argument should be set to -1.  */
+  bool (* fixed_condition_code_regs) PARAMS ((unsigned int *, unsigned int *));
+
+  /* If two condition code modes are compatible, return a condition
+     code mode which is compatible with both, such that a comparison
+     done in the returned mode will work for both of the original
+     modes.  If the condition code modes are not compatible, return
+     VOIDmode.  */
+  enum machine_mode (* cc_modes_compatible) PARAMS ((enum machine_mode,
+						     enum machine_mode));
+
   /* Leave the boolean fields at the end.  */
 
Index: trunk/src/gcc/gcc/tree-inline.c
===================================================================
--- trunk/src/gcc/gcc/tree-inline.c	(revision 1462)
+++ trunk/src/gcc/gcc/tree-inline.c	(revision 1465)
@@ -36,4 +36,5 @@
 #include "splay-tree.h"
 #include "langhooks.h"
+#include "diagnostic.h"
 
 /* This should be eventually be generalized to other languages, but
@@ -1443,4 +1444,11 @@
   tree prev_fn;
 
+
+  /* There is no point in performing inlining if errors have already
+     occurred -- and we might crash if we try to inline invalid
+     code.  */
+  if (errorcount || sorrycount)
+    return;
+        
   /* Clear out ID.  */
   memset (&id, 0, sizeof (id));
Index: trunk/src/gcc/gcc/unroll.c
===================================================================
--- trunk/src/gcc/gcc/unroll.c	(revision 1462)
+++ trunk/src/gcc/gcc/unroll.c	(revision 1465)
@@ -795,6 +795,6 @@
 	if (REGNO_FIRST_UID (r) > 0 && REGNO_FIRST_UID (r) < max_uid_for_loop
 	    && REGNO_FIRST_LUID (r) >= copy_start_luid
-	    && REGNO_LAST_UID (r) > 0 && REGNO_LAST_UID (r) < max_uid_for_loop
-	    && REGNO_LAST_LUID (r) <= copy_end_luid)
+	    && REGNO_LAST_NOTE_UID (r) > 0 && REGNO_LAST_NOTE_UID (r) < max_uid_for_loop
+	    && REGNO_LAST_NOTE_LUID (r) <= copy_end_luid)
 	  {
 	    /* However, we must also check for loop-carried dependencies.
@@ -1119,4 +1119,9 @@
 	  unroll_type = UNROLL_MODULO;
 	  loop_preconditioned = 1;
+
+	  /* Preconditioning changes the loop's initial value.  We set
+	     it to an unknown value so that doloop_optimize won't get
+	     confused.  */
+	  loop_info->initial_value = 0;
 
 	  /* Clean up.  */
Index: trunk/src/gcc/gcc/unwind-c.c
===================================================================
--- trunk/src/gcc/gcc/unwind-c.c	(revision 1462)
+++ trunk/src/gcc/gcc/unwind-c.c	(revision 1465)
@@ -24,4 +24,5 @@
 #include "tsystem.h"
 #include "unwind.h"
+#define NO_SIZE_OF_ENCODED_VALUE
 #include "unwind-pe.h"
 
Index: trunk/src/gcc/gcc/unwind-dw2.c
===================================================================
--- trunk/src/gcc/gcc/unwind-dw2.c	(revision 1462)
+++ trunk/src/gcc/gcc/unwind-dw2.c	(revision 1465)
@@ -24,4 +24,7 @@
 #include "dwarf2.h"
 #include "unwind.h"
+#ifdef __USING_SJLJ_EXCEPTIONS__
+# define NO_SIZE_OF_ENCODED_VALUE
+#endif
 #include "unwind-pe.h"
 #include "unwind-dw2-fde.h"
@@ -175,5 +178,5 @@
 _Unwind_GetCFA (struct _Unwind_Context *context)
 {
-  return (_Unwind_Word) context->cfa;
+  return (_Unwind_Ptr) context->cfa;
 }
 
Index: trunk/src/gcc/gcc/unwind-pe.h
===================================================================
--- trunk/src/gcc/gcc/unwind-pe.h	(revision 1462)
+++ trunk/src/gcc/gcc/unwind-pe.h	(revision 1465)
@@ -54,4 +54,6 @@
 
 
+#ifndef NO_SIZE_OF_ENCODED_VALUE
+
 /* Given an encoding, return the number of bytes the format occupies.
    This is only defined for fixed-size encodings, and so does not
@@ -78,4 +80,6 @@
 }
 
+#endif
+
 #ifndef NO_BASE_OF_ENCODED_VALUE
 
Index: trunk/src/gcc/gcc/version.c
===================================================================
--- trunk/src/gcc/gcc/version.c	(revision 1462)
+++ trunk/src/gcc/gcc/version.c	(revision 1465)
@@ -7,5 +7,5 @@
    organization's name in parentheses at the end of the string.  */
 
-const char version_string[] = "3.3.3";
+const char version_string[] = "3.3.4";
 
 /* This is the location of the online document giving instructions for
