diff -Nrc3pad gcc-3.1/.brik gcc-3.1.1/.brik *** gcc-3.1/.brik Wed May 15 03:48:23 2002 --- gcc-3.1.1/.brik Fri Jul 26 01:01:33 2002 *************** *** 14,20 **** 2411687152b ./boehm-gc/BCC_MAKEFILE 394605993b ./boehm-gc/blacklst.c 971406525b ./boehm-gc/callprocs ! 359751564b ./boehm-gc/ChangeLog 2542310219b ./boehm-gc/checksums.c 1272640704b ./boehm-gc/config.guess 4182969326b ./boehm-gc/config.sub --- 14,20 ---- 2411687152b ./boehm-gc/BCC_MAKEFILE 394605993b ./boehm-gc/blacklst.c 971406525b ./boehm-gc/callprocs ! 3966536781b ./boehm-gc/ChangeLog 2542310219b ./boehm-gc/checksums.c 1272640704b ./boehm-gc/config.guess 4182969326b ./boehm-gc/config.sub *************** *** 161,174 **** 2467355438b ./boehm-gc/typd_mlc.c 332085760b ./boehm-gc/version.h 205379550b ./boehm-gc/WCC_MAKEFILE ! 120565013b ./boehm-gc/win32_threads.c ! 1964211173b ./BUGS ! 2119217968b ./bugs.html ! 3924613041b ./ChangeLog 3004978457b ./config/acinclude.m4 ! 1671654896b ./config/ChangeLog 1242784498b ./config.guess ! 3430029098b ./config.if 3007349820b ./config/mh-a68bsd 1442196770b ./config/mh-aix386 3054121875b ./config/mh-apollo68 --- 161,174 ---- 2467355438b ./boehm-gc/typd_mlc.c 332085760b ./boehm-gc/version.h 205379550b ./boehm-gc/WCC_MAKEFILE ! 3644911074b ./boehm-gc/win32_threads.c ! 3068867888b ./BUGS ! 483004181b ./bugs.html ! 1549481081b ./ChangeLog 3004978457b ./config/acinclude.m4 ! 4121344600b ./config/ChangeLog 1242784498b ./config.guess ! 1864899138b ./config.if 3007349820b ./config/mh-a68bsd 1442196770b ./config/mh-aix386 3054121875b ./config/mh-apollo68 *************** *** 211,217 **** 456622165b ./config/mh-vaxult2 3265825290b ./config/mh-x86pic 3139906847b ./config-ml.in ! 238075985b ./config/mpw/ChangeLog 4005879853b ./config/mpw/forward-include 439409833b ./config/mpw/g-mpw-make.sed 198559626b ./config/mpw-mh-mpw --- 211,217 ---- 456622165b ./config/mh-vaxult2 3265825290b ./config/mh-x86pic 3139906847b ./config-ml.in ! 127681738b ./config/mpw/ChangeLog 4005879853b ./config/mpw/forward-include 439409833b ./config/mpw/g-mpw-make.sed 198559626b ./config/mpw-mh-mpw *************** *** 241,250 **** 2659154290b ./config/mt-wince 771382916b ./config/mt-x86pic 3897683520b ./config.sub ! 2288319900b ./configure ! 1597777924b ./configure.in 1948950130b ./contrib/analyze_brprob ! 3901943201b ./contrib/ChangeLog 550196746b ./contrib/compare_tests 2828387446b ./contrib/convert_to_f2c 2929939770b ./contrib/convert_to_g2c --- 241,250 ---- 2659154290b ./config/mt-wince 771382916b ./config/mt-x86pic 3897683520b ./config.sub ! 2416042097b ./configure ! 3230279174b ./configure.in 1948950130b ./contrib/analyze_brprob ! 59561128b ./contrib/ChangeLog 550196746b ./contrib/compare_tests 2828387446b ./contrib/convert_to_f2c 2929939770b ./contrib/convert_to_g2c *************** *** 252,262 **** 1336632236b ./contrib/gccbug.el 2292355102b ./contrib/gcc_build 2687391969b ./contrib/gcc_update ! 1569920421b ./contrib/gennews 4256039795b ./contrib/index-prop 3683285493b ./contrib/newcvsroot 1596938872b ./contrib/regression/btest-gcc.sh ! 3102929781b ./contrib/regression/ChangeLog 4208566980b ./contrib/regression/objs-gcc.sh 1757898889b ./contrib/regression/README 1865505596b ./contrib/regression/site.exp --- 252,262 ---- 1336632236b ./contrib/gccbug.el 2292355102b ./contrib/gcc_build 2687391969b ./contrib/gcc_update ! 2965806783b ./contrib/gennews 4256039795b ./contrib/index-prop 3683285493b ./contrib/newcvsroot 1596938872b ./contrib/regression/btest-gcc.sh ! 2159845229b ./contrib/regression/ChangeLog 4208566980b ./contrib/regression/objs-gcc.sh 1757898889b ./contrib/regression/README 1865505596b ./contrib/regression/site.exp *************** *** 266,277 **** 4228623080b ./contrib/warn_summary 2171125041b ./COPYING 508743035b ./COPYING.LIB ! 2864072627b ./.cvsignore 947637265b ./FAQ 272137294b ./faq.html 3513702948b ./fastjar/aclocal.m4 1005262133b ./fastjar/AUTHORS ! 4075963299b ./fastjar/ChangeLog 1745615150b ./fastjar/CHANGES 3743222129b ./fastjar/compress.c 1169302702b ./fastjar/compress.h --- 266,277 ---- 4228623080b ./contrib/warn_summary 2171125041b ./COPYING 508743035b ./COPYING.LIB ! 3205162104b ./.cvsignore 947637265b ./FAQ 272137294b ./faq.html 3513702948b ./fastjar/aclocal.m4 1005262133b ./fastjar/AUTHORS ! 3183086189b ./fastjar/ChangeLog 1745615150b ./fastjar/CHANGES 3743222129b ./fastjar/compress.c 1169302702b ./fastjar/compress.h *************** *** 738,744 **** 3825818772b ./gcc/ada/casing.adb 2190810584b ./gcc/ada/casing.ads 3750437973b ./gcc/ada/ceinfo.adb ! 552265150b ./gcc/ada/ChangeLog 869185536b ./gcc/ada/checks.adb 440073759b ./gcc/ada/checks.ads 401488734b ./gcc/ada/cio.c --- 738,744 ---- 3825818772b ./gcc/ada/casing.adb 2190810584b ./gcc/ada/casing.ads 3750437973b ./gcc/ada/ceinfo.adb ! 844755465b ./gcc/ada/ChangeLog 869185536b ./gcc/ada/checks.adb 440073759b ./gcc/ada/checks.ads 401488734b ./gcc/ada/cio.c *************** *** 933,939 **** 2787179765b ./gcc/ada/gnat_rm.texi 1099903949b ./gcc/ada/gnat-style.texi 3866519797b ./gcc/ada/gnat_ug.texi ! 2790230500b ./gcc/ada/gnatvsn.ads 2692053620b ./gcc/ada/gnatxref.adb 1804647254b ./gcc/ada/g-os_lib.adb 3221085683b ./gcc/ada/g-os_lib.ads --- 933,939 ---- 2787179765b ./gcc/ada/gnat_rm.texi 1099903949b ./gcc/ada/gnat-style.texi 3866519797b ./gcc/ada/gnat_ug.texi ! 3113903007b ./gcc/ada/gnatvsn.ads 2692053620b ./gcc/ada/gnatxref.adb 1804647254b ./gcc/ada/g-os_lib.adb 3221085683b ./gcc/ada/g-os_lib.ads *************** *** 1652,1662 **** 1408035530b ./gcc/ada/xsinfo.adb 1441973181b ./gcc/ada/xsnames.adb 579454790b ./gcc/ada/xtreeprs.adb ! 2770972828b ./gcc/alias.c ! 2321578096b ./gcc/attribs.c 2742514573b ./gcc/basic-block.h ! 2091758289b ./gcc/bb-reorder.c ! 770293842b ./gcc/bitmap.c 477755928b ./gcc/bitmap.h 540939972b ./gcc/builtin-attrs.def 2448248820b ./gcc/builtins.c --- 1652,1662 ---- 1408035530b ./gcc/ada/xsinfo.adb 1441973181b ./gcc/ada/xsnames.adb 579454790b ./gcc/ada/xtreeprs.adb ! 3742376932b ./gcc/alias.c ! 1031959714b ./gcc/attribs.c 2742514573b ./gcc/basic-block.h ! 534677057b ./gcc/bb-reorder.c ! 518972076b ./gcc/bitmap.c 477755928b ./gcc/bitmap.h 540939972b ./gcc/builtin-attrs.def 2448248820b ./gcc/builtins.c *************** *** 1665,1686 **** 4196427447b ./gcc/caller-save.c 2566522078b ./gcc/calls.c 420541423b ./gcc/c-aux-info.c ! 3751821271b ./gcc/c-common.c 2096270511b ./gcc/c-common.def 3951106812b ./gcc/c-common.h 1317742909b ./gcc/c-convert.c ! 1710902902b ./gcc/c-decl.c 487899684b ./gcc/c-errors.c 181278358b ./gcc/cfganal.c 1964748151b ./gcc/cfgbuild.c 2908854975b ./gcc/cfg.c ! 1773279654b ./gcc/cfgcleanup.c 1219429812b ./gcc/cfglayout.c 1858346793b ./gcc/cfglayout.h 3236894730b ./gcc/cfgloop.c ! 217788288b ./gcc/cfgrtl.c 2243757094b ./gcc/c-format.c ! 1767627081b ./gcc/ChangeLog 1398127668b ./gcc/ChangeLog.0 2827765101b ./gcc/ChangeLog.1 1199055802b ./gcc/ChangeLog.2 --- 1665,1686 ---- 4196427447b ./gcc/caller-save.c 2566522078b ./gcc/calls.c 420541423b ./gcc/c-aux-info.c ! 2734296831b ./gcc/c-common.c 2096270511b ./gcc/c-common.def 3951106812b ./gcc/c-common.h 1317742909b ./gcc/c-convert.c ! 609234453b ./gcc/c-decl.c 487899684b ./gcc/c-errors.c 181278358b ./gcc/cfganal.c 1964748151b ./gcc/cfgbuild.c 2908854975b ./gcc/cfg.c ! 4109178465b ./gcc/cfgcleanup.c 1219429812b ./gcc/cfglayout.c 1858346793b ./gcc/cfglayout.h 3236894730b ./gcc/cfgloop.c ! 2076106567b ./gcc/cfgrtl.c 2243757094b ./gcc/c-format.c ! 811561661b ./gcc/ChangeLog 1398127668b ./gcc/ChangeLog.0 2827765101b ./gcc/ChangeLog.1 1199055802b ./gcc/ChangeLog.2 *************** *** 1689,1704 **** 1481898300b ./gcc/ChangeLog.5 2613464808b ./gcc/ChangeLog.6 3235050590b ./gcc/ChangeLog.lib ! 3226058006b ./gcc/c-lang.c ! 863126810b ./gcc/c-lex.c 835686435b ./gcc/c-lex.h 2161943665b ./gcc/c-objc-common.c 2900417621b ./gcc/collect2.c 653998699b ./gcc/collect2.h ! 3252208879b ./gcc/combine.c 4122382037b ./gcc/conditions.h 525821919b ./gcc/config/1750a/1750a.c ! 3294042887b ./gcc/config/1750a/1750a.h 3089740443b ./gcc/config/1750a/1750a.md 3356933371b ./gcc/config/1750a/1750a-protos.h 2477730384b ./gcc/config/1750a/ms1750.inc --- 1689,1704 ---- 1481898300b ./gcc/ChangeLog.5 2613464808b ./gcc/ChangeLog.6 3235050590b ./gcc/ChangeLog.lib ! 1985388077b ./gcc/c-lang.c ! 382517507b ./gcc/c-lex.c 835686435b ./gcc/c-lex.h 2161943665b ./gcc/c-objc-common.c 2900417621b ./gcc/collect2.c 653998699b ./gcc/collect2.h ! 2586036597b ./gcc/combine.c 4122382037b ./gcc/conditions.h 525821919b ./gcc/config/1750a/1750a.c ! 2195664858b ./gcc/config/1750a/1750a.h 3089740443b ./gcc/config/1750a/1750a.md 3356933371b ./gcc/config/1750a/1750a-protos.h 2477730384b ./gcc/config/1750a/ms1750.inc *************** *** 1712,1730 **** 1544651385b ./gcc/config/a29k/unix.h 3167234709b ./gcc/config/a29k/vx29k.h 3915788506b ./gcc/config/alpha/alpha32.h ! 1431837126b ./gcc/config/alpha/alpha.c ! 3757921164b ./gcc/config/alpha/alpha.h 1076515812b ./gcc/config/alpha/alpha-interix.h 2405259347b ./gcc/config/alpha/alpha.md 4085134134b ./gcc/config/alpha/alpha-protos.h 1407988137b ./gcc/config/alpha/crtfastmath.c ! 1226305108b ./gcc/config/alpha/elf.h 611485563b ./gcc/config/alpha/freebsd.h 2998860143b ./gcc/config/alpha/lib1funcs.asm 1763018017b ./gcc/config/alpha/linux-ecoff.h 37916839b ./gcc/config/alpha/linux-elf.h 3901756355b ./gcc/config/alpha/linux.h ! 255541272b ./gcc/config/alpha/netbsd.h 156117508b ./gcc/config/alpha/openbsd.h 1792826440b ./gcc/config/alpha/osf12.h 3744703656b ./gcc/config/alpha/osf2or3.h --- 1712,1730 ---- 1544651385b ./gcc/config/a29k/unix.h 3167234709b ./gcc/config/a29k/vx29k.h 3915788506b ./gcc/config/alpha/alpha32.h ! 830149807b ./gcc/config/alpha/alpha.c ! 2486755494b ./gcc/config/alpha/alpha.h 1076515812b ./gcc/config/alpha/alpha-interix.h 2405259347b ./gcc/config/alpha/alpha.md 4085134134b ./gcc/config/alpha/alpha-protos.h 1407988137b ./gcc/config/alpha/crtfastmath.c ! 221364934b ./gcc/config/alpha/elf.h 611485563b ./gcc/config/alpha/freebsd.h 2998860143b ./gcc/config/alpha/lib1funcs.asm 1763018017b ./gcc/config/alpha/linux-ecoff.h 37916839b ./gcc/config/alpha/linux-elf.h 3901756355b ./gcc/config/alpha/linux.h ! 1830150315b ./gcc/config/alpha/netbsd.h 156117508b ./gcc/config/alpha/openbsd.h 1792826440b ./gcc/config/alpha/osf12.h 3744703656b ./gcc/config/alpha/osf2or3.h *************** *** 1739,1745 **** 1191509594b ./gcc/config/alpha/t-unicosmk 1694999122b ./gcc/config/alpha/t-vms 3342100479b ./gcc/config/alpha/t-vms64 ! 742053938b ./gcc/config/alpha/unicosmk.h 2817356982b ./gcc/config/alpha/va_list.h 2920918174b ./gcc/config/alpha/vms64.h 3118436884b ./gcc/config/alpha/vms-cc.c --- 1739,1745 ---- 1191509594b ./gcc/config/alpha/t-unicosmk 1694999122b ./gcc/config/alpha/t-vms 3342100479b ./gcc/config/alpha/t-vms64 ! 3395550504b ./gcc/config/alpha/unicosmk.h 2817356982b ./gcc/config/alpha/va_list.h 2920918174b ./gcc/config/alpha/vms64.h 3118436884b ./gcc/config/alpha/vms-cc.c *************** *** 1767,1775 **** 2135297695b ./gcc/config/arc/t-arc 2672724137b ./gcc/config/arm/aof.h 754089758b ./gcc/config/arm/aout.h ! 1254732439b ./gcc/config/arm/arm.c 2476043642b ./gcc/config/arm/arm.h ! 1691247413b ./gcc/config/arm/arm.md 2355527864b ./gcc/config/arm/arm-protos.h 478450204b ./gcc/config/arm/arm-wince-pe.h 531784060b ./gcc/config/arm/coff.h --- 1767,1775 ---- 2135297695b ./gcc/config/arc/t-arc 2672724137b ./gcc/config/arm/aof.h 754089758b ./gcc/config/arm/aout.h ! 3275521552b ./gcc/config/arm/arm.c 2476043642b ./gcc/config/arm/arm.h ! 2992914365b ./gcc/config/arm/arm.md 2355527864b ./gcc/config/arm/arm-protos.h 478450204b ./gcc/config/arm/arm-wince-pe.h 531784060b ./gcc/config/arm/coff.h *************** *** 1814,1820 **** 4086326841b ./gcc/config/arm/vxarm.h 2632983487b ./gcc/config/arm/xscale-coff.h 2366951282b ./gcc/config/arm/xscale-elf.h ! 2098839590b ./gcc/config/avr/avr.c 3254145940b ./gcc/config/avr/avr.h 3802932744b ./gcc/config/avr/avr.md 567694740b ./gcc/config/avr/avr-protos.h --- 1814,1820 ---- 4086326841b ./gcc/config/arm/vxarm.h 2632983487b ./gcc/config/arm/xscale-coff.h 2366951282b ./gcc/config/arm/xscale-elf.h ! 2474041656b ./gcc/config/avr/avr.c 3254145940b ./gcc/config/avr/avr.h 3802932744b ./gcc/config/avr/avr.md 567694740b ./gcc/config/avr/avr-protos.h *************** *** 1830,1836 **** 1848402932b ./gcc/config/c4x/t-c4x 2216814105b ./gcc/config/chorus.h 2064231953b ./gcc/config/clipper/clipper.c ! 402683259b ./gcc/config/clipper/clipper.h 28615455b ./gcc/config/clipper/clipper.md 3381447812b ./gcc/config/clipper/clipper-protos.h 319322158b ./gcc/config/clipper/clix.h --- 1830,1836 ---- 1848402932b ./gcc/config/c4x/t-c4x 2216814105b ./gcc/config/chorus.h 2064231953b ./gcc/config/clipper/clipper.c ! 4145616021b ./gcc/config/clipper/clipper.h 28615455b ./gcc/config/clipper/clipper.md 3381447812b ./gcc/config/clipper/clipper-protos.h 319322158b ./gcc/config/clipper/clix.h *************** *** 1843,1853 **** 2561716856b ./gcc/config/cris/aout.h 2531765543b ./gcc/config/cris/arit.c 4228128527b ./gcc/config/cris/cris_abi_symbol.c ! 646584466b ./gcc/config/cris/cris.c ! 2454901271b ./gcc/config/cris/cris.h ! 1485586916b ./gcc/config/cris/cris.md 2623962717b ./gcc/config/cris/cris-protos.h ! 431791288b ./gcc/config/cris/linux.h 907689569b ./gcc/config/cris/mulsi3.asm 45521295b ./gcc/config/cris/t-aout 874481385b ./gcc/config/cris/t-cris --- 1843,1853 ---- 2561716856b ./gcc/config/cris/aout.h 2531765543b ./gcc/config/cris/arit.c 4228128527b ./gcc/config/cris/cris_abi_symbol.c ! 937590356b ./gcc/config/cris/cris.c ! 1846933412b ./gcc/config/cris/cris.h ! 3975834409b ./gcc/config/cris/cris.md 2623962717b ./gcc/config/cris/cris-protos.h ! 2550031006b ./gcc/config/cris/linux.h 907689569b ./gcc/config/cris/mulsi3.asm 45521295b ./gcc/config/cris/t-aout 874481385b ./gcc/config/cris/t-cris *************** *** 1869,1875 **** 186717254b ./gcc/config/dbx.h 4083711028b ./gcc/config/divmod.c 1337751109b ./gcc/config/dsp16xx/dsp16xx.c ! 2267196660b ./gcc/config/dsp16xx/dsp16xx.h 273715633b ./gcc/config/dsp16xx/dsp16xx.md 3807169411b ./gcc/config/dsp16xx/dsp16xx-protos.h 1123139357b ./gcc/config/elfos.h --- 1869,1875 ---- 186717254b ./gcc/config/dbx.h 4083711028b ./gcc/config/divmod.c 1337751109b ./gcc/config/dsp16xx/dsp16xx.c ! 508710765b ./gcc/config/dsp16xx/dsp16xx.h 273715633b ./gcc/config/dsp16xx/dsp16xx.md 3807169411b ./gcc/config/dsp16xx/dsp16xx-protos.h 1123139357b ./gcc/config/elfos.h *************** *** 1903,1909 **** 22917470b ./gcc/config/freebsd.h 3532526787b ./gcc/config/freebsd-nthr.h 3508760161b ./gcc/config/freebsd-spec.h ! 3982478526b ./gcc/config.gcc 3236013445b ./gcc/config/gnu.h 269492728b ./gcc/config/gofast.h 1315260558b ./gcc/config.guess --- 1903,1909 ---- 22917470b ./gcc/config/freebsd.h 3532526787b ./gcc/config/freebsd-nthr.h 3508760161b ./gcc/config/freebsd-spec.h ! 4221339100b ./gcc/config.gcc 3236013445b ./gcc/config/gnu.h 269492728b ./gcc/config/gofast.h 1315260558b ./gcc/config.guess *************** *** 1912,1918 **** 3512988181b ./gcc/config/h8300/elf.h 3407042493b ./gcc/config/h8300/fixunssfsi.c 3423866381b ./gcc/config/h8300/h8300.c ! 36086897b ./gcc/config/h8300/h8300.h 311961515b ./gcc/config/h8300/h8300.md 1292256972b ./gcc/config/h8300/h8300-protos.h 2991149153b ./gcc/config/h8300/lib1funcs.asm --- 1912,1918 ---- 3512988181b ./gcc/config/h8300/elf.h 3407042493b ./gcc/config/h8300/fixunssfsi.c 3423866381b ./gcc/config/h8300/h8300.c ! 1422146659b ./gcc/config/h8300/h8300.h 311961515b ./gcc/config/h8300/h8300.md 1292256972b ./gcc/config/h8300/h8300-protos.h 2991149153b ./gcc/config/h8300/lib1funcs.asm *************** *** 1952,1971 **** 915598536b ./gcc/config/i386/gnu.h 166489147b ./gcc/config/i386/gstabs.h 1725036574b ./gcc/config/i386/i386-aout.h ! 2220354271b ./gcc/config/i386/i386.c 4168545992b ./gcc/config/i386/i386-coff.h 2017248418b ./gcc/config/i386/i386elf.h ! 4265596819b ./gcc/config/i386/i386.h 721929446b ./gcc/config/i386/i386-interix3.h 1321445318b ./gcc/config/i386/i386-interix.h ! 1299174871b ./gcc/config/i386/i386.md ! 2931096540b ./gcc/config/i386/i386-protos.h 1164740130b ./gcc/config/i386/interix.c 1996803131b ./gcc/config/i386/isccoff.h 1692083111b ./gcc/config/i386/iscdbx.h 3908393755b ./gcc/config/i386/isc.h 877642037b ./gcc/config/i386/libgcc-x86_64-glibc.ver ! 1764509521b ./gcc/config/i386/linux64.h 2999558891b ./gcc/config/i386/linux-aout.h 2801664794b ./gcc/config/i386/linux.h 2799520524b ./gcc/config/i386/linux-oldld.h --- 1952,1971 ---- 915598536b ./gcc/config/i386/gnu.h 166489147b ./gcc/config/i386/gstabs.h 1725036574b ./gcc/config/i386/i386-aout.h ! 2401251257b ./gcc/config/i386/i386.c 4168545992b ./gcc/config/i386/i386-coff.h 2017248418b ./gcc/config/i386/i386elf.h ! 817460708b ./gcc/config/i386/i386.h 721929446b ./gcc/config/i386/i386-interix3.h 1321445318b ./gcc/config/i386/i386-interix.h ! 332230525b ./gcc/config/i386/i386.md ! 2589129574b ./gcc/config/i386/i386-protos.h 1164740130b ./gcc/config/i386/interix.c 1996803131b ./gcc/config/i386/isccoff.h 1692083111b ./gcc/config/i386/iscdbx.h 3908393755b ./gcc/config/i386/isc.h 877642037b ./gcc/config/i386/libgcc-x86_64-glibc.ver ! 4048130721b ./gcc/config/i386/linux64.h 2999558891b ./gcc/config/i386/linux-aout.h 2801664794b ./gcc/config/i386/linux.h 2799520524b ./gcc/config/i386/linux-oldld.h *************** *** 1975,1986 **** 3763689293b ./gcc/config/i386/mingw32.h 2271894911b ./gcc/config/i386/mmintrin.h 3361545892b ./gcc/config/i386/moss.h ! 4043203226b ./gcc/config/i386/netbsd64.h 527360119b ./gcc/config/i386/netbsd-elf.h 4276805615b ./gcc/config/i386/netbsd.h 2351965586b ./gcc/config/i386/netware.h 3059925901b ./gcc/config/i386/next.h ! 1097827022b ./gcc/config/i386/openbsd.h 2999570618b ./gcc/config/i386/osf1-ci.asm 2303041887b ./gcc/config/i386/osf1-cn.asm 3979872455b ./gcc/config/i386/osf1elfgdb.h --- 1975,1986 ---- 3763689293b ./gcc/config/i386/mingw32.h 2271894911b ./gcc/config/i386/mmintrin.h 3361545892b ./gcc/config/i386/moss.h ! 2015644945b ./gcc/config/i386/netbsd64.h 527360119b ./gcc/config/i386/netbsd-elf.h 4276805615b ./gcc/config/i386/netbsd.h 2351965586b ./gcc/config/i386/netware.h 3059925901b ./gcc/config/i386/next.h ! 903611773b ./gcc/config/i386/openbsd.h 2999570618b ./gcc/config/i386/osf1-ci.asm 2303041887b ./gcc/config/i386/osf1-cn.asm 3979872455b ./gcc/config/i386/osf1elfgdb.h *************** *** 2033,2039 **** 2977164768b ./gcc/config/i386/t-udk 1023926647b ./gcc/config/i386/t-uwin 1775100101b ./gcc/config/i386/udk.h ! 2818591693b ./gcc/config/i386/unix.h 2798938994b ./gcc/config/i386/uwin.asm 4142598938b ./gcc/config/i386/uwin.h 1148022895b ./gcc/config/i386/v3gas.h --- 2033,2039 ---- 2977164768b ./gcc/config/i386/t-udk 1023926647b ./gcc/config/i386/t-uwin 1775100101b ./gcc/config/i386/udk.h ! 3838506178b ./gcc/config/i386/unix.h 2798938994b ./gcc/config/i386/uwin.asm 4142598938b ./gcc/config/i386/uwin.h 1148022895b ./gcc/config/i386/v3gas.h *************** *** 2064,2070 **** 736082089b ./gcc/config/i960/i960.c 648677105b ./gcc/config/i960/i960-c.c 3384279950b ./gcc/config/i960/i960-coff.h ! 2499300591b ./gcc/config/i960/i960.h 2800981685b ./gcc/config/i960/i960.md 3598295769b ./gcc/config/i960/i960-protos.h 1281966645b ./gcc/config/i960/rtems.h --- 2064,2070 ---- 736082089b ./gcc/config/i960/i960.c 648677105b ./gcc/config/i960/i960-c.c 3384279950b ./gcc/config/i960/i960-coff.h ! 3931238913b ./gcc/config/i960/i960.h 2800981685b ./gcc/config/i960/i960.md 3598295769b ./gcc/config/i960/i960-protos.h 1281966645b ./gcc/config/i960/rtems.h *************** *** 2090,2098 **** 2354458740b ./gcc/config/ia64/ia64-protos.h 3488320870b ./gcc/config/ia64/lib1funcs.asm 2361471520b ./gcc/config/ia64/libgcc-ia64.ver ! 1673403325b ./gcc/config/ia64/linux.h 1337642433b ./gcc/config/ia64/quadlib.c ! 948246891b ./gcc/config/ia64/sysv4.h 2374494786b ./gcc/config/ia64/t-aix 2148782144b ./gcc/config/ia64/t-glibc 3471209231b ./gcc/config/ia64/t-hpux --- 2090,2098 ---- 2354458740b ./gcc/config/ia64/ia64-protos.h 3488320870b ./gcc/config/ia64/lib1funcs.asm 2361471520b ./gcc/config/ia64/libgcc-ia64.ver ! 2435218299b ./gcc/config/ia64/linux.h 1337642433b ./gcc/config/ia64/quadlib.c ! 1454530158b ./gcc/config/ia64/sysv4.h 2374494786b ./gcc/config/ia64/t-aix 2148782144b ./gcc/config/ia64/t-glibc 3471209231b ./gcc/config/ia64/t-hpux *************** *** 2100,2106 **** 2759923269b ./gcc/config/ia64/unwind-aix.c 1364155779b ./gcc/config/ia64/unwind-ia64.c 2355075302b ./gcc/config/ia64/unwind-ia64.h ! 1924641967b ./gcc/config.in 3221870490b ./gcc/config/interix3.h 1139973568b ./gcc/config/interix.h 3774321010b ./gcc/config/libgcc-glibc.ver --- 2100,2106 ---- 2759923269b ./gcc/config/ia64/unwind-aix.c 1364155779b ./gcc/config/ia64/unwind-ia64.c 2355075302b ./gcc/config/ia64/unwind-ia64.h ! 1761565476b ./gcc/config.in 3221870490b ./gcc/config/interix3.h 1139973568b ./gcc/config/interix.h 3774321010b ./gcc/config/libgcc-glibc.ver *************** *** 2116,2126 **** 67938598b ./gcc/config/m32r/m32r-protos.h 3043182144b ./gcc/config/m32r/t-m32r 35339373b ./gcc/config/m68hc11/larith.asm ! 3307677762b ./gcc/config/m68hc11/m68hc11.c 3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S ! 1396676368b ./gcc/config/m68hc11/m68hc11.h ! 2604222265b ./gcc/config/m68hc11/m68hc11.md ! 2207634479b ./gcc/config/m68hc11/m68hc11-protos.h 452436463b ./gcc/config/m68hc11/m68hc12.h 1483227044b ./gcc/config/m68hc11/t-m68hc11-gas 3032963201b ./gcc/config/m68k/3b1g.h --- 2116,2126 ---- 67938598b ./gcc/config/m32r/m32r-protos.h 3043182144b ./gcc/config/m32r/t-m32r 35339373b ./gcc/config/m68hc11/larith.asm ! 1272963761b ./gcc/config/m68hc11/m68hc11.c 3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S ! 1280294916b ./gcc/config/m68hc11/m68hc11.h ! 4149782803b ./gcc/config/m68hc11/m68hc11.md ! 1796033124b ./gcc/config/m68hc11/m68hc11-protos.h 452436463b ./gcc/config/m68hc11/m68hc12.h 1483227044b ./gcc/config/m68hc11/t-m68hc11-gas 3032963201b ./gcc/config/m68k/3b1g.h *************** *** 2172,2178 **** 3882947461b ./gcc/config/m68k/m68k-coff.h 2573430517b ./gcc/config/m68k/m68kelf.h 1120822994b ./gcc/config/m68k/m68kemb.h ! 424059070b ./gcc/config/m68k/m68k.h 3281000245b ./gcc/config/m68k/m68k.md 3855098247b ./gcc/config/m68k/m68k-none.h 3954442786b ./gcc/config/m68k/m68k-protos.h --- 2172,2178 ---- 3882947461b ./gcc/config/m68k/m68k-coff.h 2573430517b ./gcc/config/m68k/m68kelf.h 1120822994b ./gcc/config/m68k/m68kemb.h ! 3756685982b ./gcc/config/m68k/m68k.h 3281000245b ./gcc/config/m68k/m68k.md 3855098247b ./gcc/config/m68k/m68k-none.h 3954442786b ./gcc/config/m68k/m68k-protos.h *************** *** 2183,2189 **** 1902334218b ./gcc/config/m68k/mot3300-crt0.S 2216988570b ./gcc/config/m68k/mot3300.h 4250921257b ./gcc/config/m68k/mot3300Mcrt0.S ! 4238930488b ./gcc/config/m68k/netbsd-elf.h 306540848b ./gcc/config/m68k/netbsd.h 2598124463b ./gcc/config/m68k/news3gas.h 895337217b ./gcc/config/m68k/news3.h --- 2183,2189 ---- 1902334218b ./gcc/config/m68k/mot3300-crt0.S 2216988570b ./gcc/config/m68k/mot3300.h 4250921257b ./gcc/config/m68k/mot3300Mcrt0.S ! 1653993281b ./gcc/config/m68k/netbsd-elf.h 306540848b ./gcc/config/m68k/netbsd.h 2598124463b ./gcc/config/m68k/news3gas.h 895337217b ./gcc/config/m68k/news3.h *************** *** 2199,2205 **** 2246845695b ./gcc/config/m68k/sgs.h 844744081b ./gcc/config/m68k/sun2.h 3991060631b ./gcc/config/m68k/sun2o4.h ! 842360161b ./gcc/config/m68k/sun3.h 3724598161b ./gcc/config/m68k/sun3mach.h 864417723b ./gcc/config/m68k/sun3n3.h 120628064b ./gcc/config/m68k/sun3n.h --- 2199,2205 ---- 2246845695b ./gcc/config/m68k/sgs.h 844744081b ./gcc/config/m68k/sun2.h 3991060631b ./gcc/config/m68k/sun2o4.h ! 3239560263b ./gcc/config/m68k/sun3.h 3724598161b ./gcc/config/m68k/sun3mach.h 864417723b ./gcc/config/m68k/sun3n3.h 120628064b ./gcc/config/m68k/sun3n.h *************** *** 2218,2224 **** 2294965883b ./gcc/config/m68k/t-mot3300-gld 1947397845b ./gcc/config/m68k/t-next 3937644742b ./gcc/config/m68k/t-openbsd ! 1079952514b ./gcc/config/m68k/tower-as.h 2265492461b ./gcc/config/m68k/tower.h 2710264317b ./gcc/config/m68k/t-vxworks68 2466779056b ./gcc/config/m68k/vxm68k.h --- 2218,2224 ---- 2294965883b ./gcc/config/m68k/t-mot3300-gld 1947397845b ./gcc/config/m68k/t-next 3937644742b ./gcc/config/m68k/t-openbsd ! 2078063242b ./gcc/config/m68k/tower-as.h 2265492461b ./gcc/config/m68k/tower.h 2710264317b ./gcc/config/m68k/t-vxworks68 2466779056b ./gcc/config/m68k/vxm68k.h *************** *** 2231,2242 **** 1558967450b ./gcc/config/m88k/dolphin.ld 27544745b ./gcc/config/m88k/luna.h 1097971558b ./gcc/config/m88k/m88k-aout.h ! 1383766601b ./gcc/config/m88k/m88k.c 929158884b ./gcc/config/m88k/m88k-coff.h ! 3165616393b ./gcc/config/m88k/m88k.h 249987577b ./gcc/config/m88k/m88k.md 2372325319b ./gcc/config/m88k/m88k-move.sh ! 3958641691b ./gcc/config/m88k/m88k-protos.h 3182883703b ./gcc/config/m88k/openbsd.h 2062420508b ./gcc/config/m88k/sysv3.h 2064243939b ./gcc/config/m88k/sysv4.h --- 2231,2242 ---- 1558967450b ./gcc/config/m88k/dolphin.ld 27544745b ./gcc/config/m88k/luna.h 1097971558b ./gcc/config/m88k/m88k-aout.h ! 382352310b ./gcc/config/m88k/m88k.c 929158884b ./gcc/config/m88k/m88k-coff.h ! 2252790221b ./gcc/config/m88k/m88k.h 249987577b ./gcc/config/m88k/m88k.md 2372325319b ./gcc/config/m88k/m88k-move.sh ! 192457426b ./gcc/config/m88k/m88k-protos.h 3182883703b ./gcc/config/m88k/openbsd.h 2062420508b ./gcc/config/m88k/sysv3.h 2064243939b ./gcc/config/m88k/sysv4.h *************** *** 2276,2282 **** 1910637049b ./gcc/config/mips/ecoff.h 3551974985b ./gcc/config/mips/ecoffl.h 1974114900b ./gcc/config/mips/elf64.h ! 715994964b ./gcc/config/mips/elf.h 1175169006b ./gcc/config/mips/elfl64.h 4118432176b ./gcc/config/mips/elfl.h 452497001b ./gcc/config/mips/elflorion.h --- 2276,2282 ---- 1910637049b ./gcc/config/mips/ecoff.h 3551974985b ./gcc/config/mips/ecoffl.h 1974114900b ./gcc/config/mips/elf64.h ! 1297779950b ./gcc/config/mips/elf.h 1175169006b ./gcc/config/mips/elfl64.h 4118432176b ./gcc/config/mips/elfl.h 452497001b ./gcc/config/mips/elflorion.h *************** *** 2287,2293 **** 1342606731b ./gcc/config/mips/iris5gas.h 4137712676b ./gcc/config/mips/iris5.h 2290690324b ./gcc/config/mips/iris6gld.h ! 3234294689b ./gcc/config/mips/iris6.h 3658812670b ./gcc/config/mips/irix6-libc-compat.c 3639703657b ./gcc/config/mips/isa3264.h 3645898751b ./gcc/config/mips/isa32-linux.h --- 2287,2293 ---- 1342606731b ./gcc/config/mips/iris5gas.h 4137712676b ./gcc/config/mips/iris5.h 2290690324b ./gcc/config/mips/iris6gld.h ! 2714897906b ./gcc/config/mips/iris6.h 3658812670b ./gcc/config/mips/irix6-libc-compat.c 3639703657b ./gcc/config/mips/isa3264.h 3645898751b ./gcc/config/mips/isa32-linux.h *************** *** 2295,2305 **** 2202363688b ./gcc/config/mips/little.h 2024693888b ./gcc/config/mips/mips16.S 3112223626b ./gcc/config/mips/mips-5.h ! 242585385b ./gcc/config/mips/mips.c 1450296441b ./gcc/config/mips/mips.h 27312380b ./gcc/config/mips/mips.md 4191298187b ./gcc/config/mips/mips-protos.h ! 396210794b ./gcc/config/mips/netbsd.h 1685635385b ./gcc/config/mips/news4.h 3776131275b ./gcc/config/mips/news5.h 807792414b ./gcc/config/mips/nws3250v4.h --- 2295,2305 ---- 2202363688b ./gcc/config/mips/little.h 2024693888b ./gcc/config/mips/mips16.S 3112223626b ./gcc/config/mips/mips-5.h ! 1092413508b ./gcc/config/mips/mips.c 1450296441b ./gcc/config/mips/mips.h 27312380b ./gcc/config/mips/mips.md 4191298187b ./gcc/config/mips/mips-protos.h ! 3451330990b ./gcc/config/mips/netbsd.h 1685635385b ./gcc/config/mips/news4.h 3776131275b ./gcc/config/mips/news5.h 807792414b ./gcc/config/mips/nws3250v4.h *************** *** 2325,2330 **** --- 2325,2331 ---- 926858795b ./gcc/config/mips/t-iris6 2995723142b ./gcc/config/mips/t-isa3264 3174612276b ./gcc/config/mips/t-linux + 3174612276b ./gcc/config/mips/t-netbsd 1879935135b ./gcc/config/mips/t-r3900 1413700483b ./gcc/config/mips/t-svr3 3653081423b ./gcc/config/mips/t-svr3-gas *************** *** 2388,2407 **** 4127689659b ./gcc/config/pa/pa64-linux.h 106717215b ./gcc/config/pa/pa64-regs.h 3813586304b ./gcc/config/pa/pa64-start.h ! 2999551426b ./gcc/config/pa/pa.c ! 3792562292b ./gcc/config/pa/pa.h 2070570431b ./gcc/config/pa/pa-hiux.h 722967032b ./gcc/config/pa/pa-hpux10.h 3160109858b ./gcc/config/pa/pa-hpux11.h 3949639215b ./gcc/config/pa/pa-hpux7.h 3124002443b ./gcc/config/pa/pa-hpux9.h 2419055394b ./gcc/config/pa/pa-hpux.h ! 334238140b ./gcc/config/pa/pa-linux.h ! 715986632b ./gcc/config/pa/pa.md 3618123809b ./gcc/config/pa/pa-oldas.h 3108768032b ./gcc/config/pa/pa-osf.h 2360373262b ./gcc/config/pa/pa-pro-end.h ! 2208816980b ./gcc/config/pa/pa-protos.h 1224647575b ./gcc/config/pa/quadlib.c 17931766b ./gcc/config/pa/rtems.h 971757202b ./gcc/config/pa/som.h --- 2389,2408 ---- 4127689659b ./gcc/config/pa/pa64-linux.h 106717215b ./gcc/config/pa/pa64-regs.h 3813586304b ./gcc/config/pa/pa64-start.h ! 2253880751b ./gcc/config/pa/pa.c ! 4124147372b ./gcc/config/pa/pa.h 2070570431b ./gcc/config/pa/pa-hiux.h 722967032b ./gcc/config/pa/pa-hpux10.h 3160109858b ./gcc/config/pa/pa-hpux11.h 3949639215b ./gcc/config/pa/pa-hpux7.h 3124002443b ./gcc/config/pa/pa-hpux9.h 2419055394b ./gcc/config/pa/pa-hpux.h ! 2614885764b ./gcc/config/pa/pa-linux.h ! 2396760795b ./gcc/config/pa/pa.md 3618123809b ./gcc/config/pa/pa-oldas.h 3108768032b ./gcc/config/pa/pa-osf.h 2360373262b ./gcc/config/pa/pa-pro-end.h ! 1408239843b ./gcc/config/pa/pa-protos.h 1224647575b ./gcc/config/pa/quadlib.c 17931766b ./gcc/config/pa/rtems.h 971757202b ./gcc/config/pa/som.h *************** *** 2440,2450 **** 3731158896b ./gcc/config/rs6000/aix31.h 2741987967b ./gcc/config/rs6000/aix3newas.h 1702283472b ./gcc/config/rs6000/aix41.h ! 3809319566b ./gcc/config/rs6000/aix43.h ! 1082269428b ./gcc/config/rs6000/aix51.h 676923459b ./gcc/config/rs6000/aix.h 1953946692b ./gcc/config/rs6000/altivec-defs.h ! 3168500243b ./gcc/config/rs6000/altivec.h 510508394b ./gcc/config/rs6000/beos.h 511519789b ./gcc/config/rs6000/crtsavres.asm 362681124b ./gcc/config/rs6000/darwin.h --- 2441,2451 ---- 3731158896b ./gcc/config/rs6000/aix31.h 2741987967b ./gcc/config/rs6000/aix3newas.h 1702283472b ./gcc/config/rs6000/aix41.h ! 1402586921b ./gcc/config/rs6000/aix43.h ! 1428773917b ./gcc/config/rs6000/aix51.h 676923459b ./gcc/config/rs6000/aix.h 1953946692b ./gcc/config/rs6000/altivec-defs.h ! 3231976674b ./gcc/config/rs6000/altivec.h 510508394b ./gcc/config/rs6000/beos.h 511519789b ./gcc/config/rs6000/crtsavres.asm 362681124b ./gcc/config/rs6000/darwin.h *************** *** 2458,2474 **** 1258445797b ./gcc/config/rs6000/eabisim.h 3017082484b ./gcc/config/rs6000/freebsd.h 4293496085b ./gcc/config/rs6000/gnu.h ! 4277033356b ./gcc/config/rs6000/linux64.h 1351560312b ./gcc/config/rs6000/linuxaltivec.h 3642990693b ./gcc/config/rs6000/linux.h 1286374006b ./gcc/config/rs6000/lynx.h 4204979131b ./gcc/config/rs6000/mach.h 1820610909b ./gcc/config/rs6000/milli.exp ! 693602701b ./gcc/config/rs6000/netbsd.h 4127185084b ./gcc/config/rs6000/ppc-asm.h ! 3898393602b ./gcc/config/rs6000/rs6000.c ! 2973919280b ./gcc/config/rs6000/rs6000.h ! 1691659242b ./gcc/config/rs6000/rs6000.md 4107218804b ./gcc/config/rs6000/rs6000-protos.h 1817513646b ./gcc/config/rs6000/rtems.h 2439652147b ./gcc/config/rs6000/softfloat.h --- 2459,2475 ---- 1258445797b ./gcc/config/rs6000/eabisim.h 3017082484b ./gcc/config/rs6000/freebsd.h 4293496085b ./gcc/config/rs6000/gnu.h ! 1853325160b ./gcc/config/rs6000/linux64.h 1351560312b ./gcc/config/rs6000/linuxaltivec.h 3642990693b ./gcc/config/rs6000/linux.h 1286374006b ./gcc/config/rs6000/lynx.h 4204979131b ./gcc/config/rs6000/mach.h 1820610909b ./gcc/config/rs6000/milli.exp ! 926081320b ./gcc/config/rs6000/netbsd.h 4127185084b ./gcc/config/rs6000/ppc-asm.h ! 2556177832b ./gcc/config/rs6000/rs6000.c ! 1882734550b ./gcc/config/rs6000/rs6000.h ! 2550315868b ./gcc/config/rs6000/rs6000.md 4107218804b ./gcc/config/rs6000/rs6000-protos.h 1817513646b ./gcc/config/rs6000/rtems.h 2439652147b ./gcc/config/rs6000/softfloat.h *************** *** 2487,2501 **** 85679922b ./gcc/config/rs6000/tramp.asm 946774617b ./gcc/config/rs6000/t-rs6000 301220496b ./gcc/config/rs6000/vxppc.h ! 3024887630b ./gcc/config/rs6000/xcoff.h 1142085470b ./gcc/config/rtems.h 3390348482b ./gcc/config/s390/fixdfdi.h 1234245155b ./gcc/config/s390/libgcc-glibc.ver 661638700b ./gcc/config/s390/linux.h ! 952324584b ./gcc/config/s390/s390.c ! 1762771167b ./gcc/config/s390/s390.h ! 2635324496b ./gcc/config/s390/s390.md ! 2764225003b ./gcc/config/s390/s390-protos.h 3998835120b ./gcc/config/s390/s390x.h 1051100452b ./gcc/config/s390/t-linux 2020003531b ./gcc/config/s390/t-linux64 --- 2488,2502 ---- 85679922b ./gcc/config/rs6000/tramp.asm 946774617b ./gcc/config/rs6000/t-rs6000 301220496b ./gcc/config/rs6000/vxppc.h ! 950192882b ./gcc/config/rs6000/xcoff.h 1142085470b ./gcc/config/rtems.h 3390348482b ./gcc/config/s390/fixdfdi.h 1234245155b ./gcc/config/s390/libgcc-glibc.ver 661638700b ./gcc/config/s390/linux.h ! 3979416840b ./gcc/config/s390/s390.c ! 2354192299b ./gcc/config/s390/s390.h ! 2043805243b ./gcc/config/s390/s390.md ! 1407420306b ./gcc/config/s390/s390-protos.h 3998835120b ./gcc/config/s390/s390x.h 1051100452b ./gcc/config/s390/t-linux 2020003531b ./gcc/config/s390/t-linux64 *************** *** 2538,2545 **** 2424336991b ./gcc/config/sparc/lite.h 2399395336b ./gcc/config/sparc/lynx.h 2334021382b ./gcc/config/sparc/lynx-ng.h ! 1146469998b ./gcc/config/sparc/netbsd-elf.h 365271853b ./gcc/config/sparc/netbsd.h 349992599b ./gcc/config/sparc/openbsd.h 3728184707b ./gcc/config/sparc/pbd.h 2243601282b ./gcc/config/sparc/rtemself.h --- 2539,2548 ---- 2424336991b ./gcc/config/sparc/lite.h 2399395336b ./gcc/config/sparc/lynx.h 2334021382b ./gcc/config/sparc/lynx-ng.h ! 3811927118b ./gcc/config/sparc/netbsd-elf.h 365271853b ./gcc/config/sparc/netbsd.h + 1122827784b ./gcc/config/sparc/openbsd1-64.h + 1977030271b ./gcc/config/sparc/openbsd64.h 349992599b ./gcc/config/sparc/openbsd.h 3728184707b ./gcc/config/sparc/pbd.h 2243601282b ./gcc/config/sparc/rtemself.h *************** *** 2554,2582 **** 878755050b ./gcc/config/sparc/sol2-gas-bi.h 3173831404b ./gcc/config/sparc/sol2-gld-bi.h 4206582763b ./gcc/config/sparc/sol2-gld.h ! 4099517211b ./gcc/config/sparc/sol2.h 3918002150b ./gcc/config/sparc/sp64-aout.h 2870886299b ./gcc/config/sparc/sp64-elf.h 3128199560b ./gcc/config/sparc/sp86x-aout.h 1221714757b ./gcc/config/sparc/sp86x-elf.h ! 1440912782b ./gcc/config/sparc/sparc.c ! 201504811b ./gcc/config/sparc/sparc.h 3779592443b ./gcc/config/sparc/sparc.md ! 4181984480b ./gcc/config/sparc/sparc-protos.h 842964351b ./gcc/config/sparc/splet.h 952337645b ./gcc/config/sparc/sun4gas.h 1795303911b ./gcc/config/sparc/sun4o3.h 721602587b ./gcc/config/sparc/sunos4.h 14508846b ./gcc/config/sparc/sysv4.h 2782836992b ./gcc/config/sparc/t-chorus-elf ! 3789889905b ./gcc/config/sparc/t-crtfm 3744055768b ./gcc/config/sparc/t-elf 1582758741b ./gcc/config/sparc/t-halos ! 3231155557b ./gcc/config/sparc/t-linux64 695285893b ./gcc/config/sparc/t-netbsd64 1190032917b ./gcc/config/sparc/t-openbsd 851768603b ./gcc/config/sparc/t-sol2 ! 253776311b ./gcc/config/sparc/t-sol2-64 4194854877b ./gcc/config/sparc/t-sp86x 2727045329b ./gcc/config/sparc/t-sparcbare 1324996929b ./gcc/config/sparc/t-sparclite --- 2557,2585 ---- 878755050b ./gcc/config/sparc/sol2-gas-bi.h 3173831404b ./gcc/config/sparc/sol2-gld-bi.h 4206582763b ./gcc/config/sparc/sol2-gld.h ! 2455246824b ./gcc/config/sparc/sol2.h 3918002150b ./gcc/config/sparc/sp64-aout.h 2870886299b ./gcc/config/sparc/sp64-elf.h 3128199560b ./gcc/config/sparc/sp86x-aout.h 1221714757b ./gcc/config/sparc/sp86x-elf.h ! 2208851995b ./gcc/config/sparc/sparc.c ! 3432806460b ./gcc/config/sparc/sparc.h 3779592443b ./gcc/config/sparc/sparc.md ! 4023359087b ./gcc/config/sparc/sparc-protos.h 842964351b ./gcc/config/sparc/splet.h 952337645b ./gcc/config/sparc/sun4gas.h 1795303911b ./gcc/config/sparc/sun4o3.h 721602587b ./gcc/config/sparc/sunos4.h 14508846b ./gcc/config/sparc/sysv4.h 2782836992b ./gcc/config/sparc/t-chorus-elf ! 2056024669b ./gcc/config/sparc/t-crtfm 3744055768b ./gcc/config/sparc/t-elf 1582758741b ./gcc/config/sparc/t-halos ! 1439446046b ./gcc/config/sparc/t-linux64 695285893b ./gcc/config/sparc/t-netbsd64 1190032917b ./gcc/config/sparc/t-openbsd 851768603b ./gcc/config/sparc/t-sol2 ! 1145811925b ./gcc/config/sparc/t-sol2-64 4194854877b ./gcc/config/sparc/t-sp86x 2727045329b ./gcc/config/sparc/t-sparcbare 1324996929b ./gcc/config/sparc/t-sparclite *************** *** 2617,2625 **** 321200235b ./gcc/config/t-svr4 937080303b ./gcc/config/udivmod.c 2590328114b ./gcc/config/udivmodsi4.c ! 2756132761b ./gcc/configure 2239237249b ./gcc/configure.frag ! 3861102285b ./gcc/configure.in 1401546799b ./gcc/config/usegas.h 1330961877b ./gcc/config/v850/lib1funcs.asm 3345272584b ./gcc/config/v850/rtems.h --- 2620,2628 ---- 321200235b ./gcc/config/t-svr4 937080303b ./gcc/config/udivmod.c 2590328114b ./gcc/config/udivmodsi4.c ! 1016693269b ./gcc/configure 2239237249b ./gcc/configure.frag ! 3096119353b ./gcc/configure.in 1401546799b ./gcc/config/usegas.h 1330961877b ./gcc/config/v850/lib1funcs.asm 3345272584b ./gcc/config/v850/rtems.h *************** *** 2634,2647 **** 2993271330b ./gcc/config/vax/openbsd.h 1070068995b ./gcc/config/vax/ultrix.h 3091217209b ./gcc/config/vax/vax.c ! 1003009211b ./gcc/config/vax/vax.h ! 3688695163b ./gcc/config/vax/vax.md 3894216269b ./gcc/config/vax/vax-protos.h 3118052779b ./gcc/config/vax/vaxv.h 1265968606b ./gcc/config/vax/vms.h 1260653442b ./gcc/config/vax/xm-vms.h 560039799b ./gcc/config/we32k/we32k.c ! 1100296089b ./gcc/config/we32k/we32k.h 3169968881b ./gcc/config/we32k/we32k.md 2514844092b ./gcc/config/we32k/we32k-protos.h 2711497169b ./gcc/config/x-interix --- 2637,2650 ---- 2993271330b ./gcc/config/vax/openbsd.h 1070068995b ./gcc/config/vax/ultrix.h 3091217209b ./gcc/config/vax/vax.c ! 3909127338b ./gcc/config/vax/vax.h ! 657520682b ./gcc/config/vax/vax.md 3894216269b ./gcc/config/vax/vax-protos.h 3118052779b ./gcc/config/vax/vaxv.h 1265968606b ./gcc/config/vax/vms.h 1260653442b ./gcc/config/vax/xm-vms.h 560039799b ./gcc/config/we32k/we32k.c ! 423633273b ./gcc/config/we32k/we32k.h 3169968881b ./gcc/config/we32k/we32k.md 2514844092b ./gcc/config/we32k/we32k-protos.h 2711497169b ./gcc/config/x-interix *************** *** 2650,2662 **** 3621223618b ./gcc/config/xtensa/lib2funcs.S 2321639494b ./gcc/config/xtensa/linux.h 3617796239b ./gcc/config/xtensa/t-xtensa ! 2730302225b ./gcc/config/xtensa/xtensa.c 2796950173b ./gcc/config/xtensa/xtensa-config.h ! 1828949757b ./gcc/config/xtensa/xtensa.h ! 2624040412b ./gcc/config/xtensa/xtensa.md ! 1806400723b ./gcc/config/xtensa/xtensa-protos.h 3382606314b ./gcc/conflict.c ! 879729133b ./gcc/convert.c 2020855935b ./gcc/convert.h 2171125041b ./gcc/COPYING 508743035b ./gcc/COPYING.LIB --- 2653,2665 ---- 3621223618b ./gcc/config/xtensa/lib2funcs.S 2321639494b ./gcc/config/xtensa/linux.h 3617796239b ./gcc/config/xtensa/t-xtensa ! 4293691443b ./gcc/config/xtensa/xtensa.c 2796950173b ./gcc/config/xtensa/xtensa-config.h ! 1720519523b ./gcc/config/xtensa/xtensa.h ! 1183159023b ./gcc/config/xtensa/xtensa.md ! 2854754468b ./gcc/config/xtensa/xtensa-protos.h 3382606314b ./gcc/conflict.c ! 2854418854b ./gcc/convert.c 2020855935b ./gcc/convert.h 2171125041b ./gcc/COPYING 508743035b ./gcc/COPYING.LIB *************** *** 2666,2704 **** 1606645276b ./gcc/cp/call.c 4115552602b ./gcc/cp/cfns.gperf 1705070232b ./gcc/cp/cfns.h ! 4179439137b ./gcc/cp/ChangeLog 2221404065b ./gcc/cp/ChangeLog.1 2127340768b ./gcc/cp/ChangeLog.2 2546444747b ./gcc/cp/ChangeLog.egcs ! 3183049197b ./gcc/cp/class.c 1309293181b ./gcc/cp/config-lang.in ! 4181461399b ./gcc/cp/cp-lang.c 2928114977b ./gcc/cp/cp-tree.def ! 691274132b ./gcc/cp/cp-tree.h 1230086821b ./gcc/cp/.cvsignore ! 2009587140b ./gcc/cp/cvt.c ! 123177b ./gcc/cp/decl2.c ! 3651127911b ./gcc/cp/decl.c 3040950596b ./gcc/cp/decl.h 1503739344b ./gcc/cp/dump.c ! 3528935033b ./gcc/cp/error.c 1298672024b ./gcc/cp/except.c 2612079645b ./gcc/cp/expr.c 728682437b ./gcc/cp/friend.c 1574667259b ./gcc/cp/g++.1 3180385434b ./gcc/cp/g++spec.c ! 1092390451b ./gcc/cp/init.c 3812650249b ./gcc/cp/lang-options.h 1834287749b ./gcc/cp/lang-specs.h ! 635563648b ./gcc/cp/lex.c 2280147967b ./gcc/cp/lex.h ! 2020293663b ./gcc/cp/Make-lang.in ! 110717073b ./gcc/cp/mangle.c 3566373635b ./gcc/cp/method.c 701335209b ./gcc/cp/mpw-config.in 4041177245b ./gcc/cp/mpw-make.sed 3379488726b ./gcc/cp/NEWS ! 3247354675b ./gcc/cp/operators.def 622478745b ./gcc/cp/optimize.c 2913547076b ./gcc/cp/parse.c 170370885b ./gcc/cp/parse.h --- 2669,2707 ---- 1606645276b ./gcc/cp/call.c 4115552602b ./gcc/cp/cfns.gperf 1705070232b ./gcc/cp/cfns.h ! 3616583944b ./gcc/cp/ChangeLog 2221404065b ./gcc/cp/ChangeLog.1 2127340768b ./gcc/cp/ChangeLog.2 2546444747b ./gcc/cp/ChangeLog.egcs ! 3398162221b ./gcc/cp/class.c 1309293181b ./gcc/cp/config-lang.in ! 2814007338b ./gcc/cp/cp-lang.c 2928114977b ./gcc/cp/cp-tree.def ! 2743335402b ./gcc/cp/cp-tree.h 1230086821b ./gcc/cp/.cvsignore ! 1810620203b ./gcc/cp/cvt.c ! 2489640491b ./gcc/cp/decl2.c ! 2328300155b ./gcc/cp/decl.c 3040950596b ./gcc/cp/decl.h 1503739344b ./gcc/cp/dump.c ! 1402846352b ./gcc/cp/error.c 1298672024b ./gcc/cp/except.c 2612079645b ./gcc/cp/expr.c 728682437b ./gcc/cp/friend.c 1574667259b ./gcc/cp/g++.1 3180385434b ./gcc/cp/g++spec.c ! 6213340b ./gcc/cp/init.c 3812650249b ./gcc/cp/lang-options.h 1834287749b ./gcc/cp/lang-specs.h ! 1021773846b ./gcc/cp/lex.c 2280147967b ./gcc/cp/lex.h ! 2683095257b ./gcc/cp/Make-lang.in ! 3621780452b ./gcc/cp/mangle.c 3566373635b ./gcc/cp/method.c 701335209b ./gcc/cp/mpw-config.in 4041177245b ./gcc/cp/mpw-make.sed 3379488726b ./gcc/cp/NEWS ! 3146548402b ./gcc/cp/operators.def 622478745b ./gcc/cp/optimize.c 2913547076b ./gcc/cp/parse.c 170370885b ./gcc/cp/parse.h *************** *** 2710,2737 **** 1744773234b ./gcc/cppfiles.c 2283152717b ./gcc/cpphash.c 3545195852b ./gcc/cpphash.h ! 1683789867b ./gcc/cppinit.c 201524367b ./gcc/cpplex.c 696100766b ./gcc/cpplib.c 2677210260b ./gcc/cpplib.h ! 956403033b ./gcc/cppmacro.c 2363485754b ./gcc/cppmain.c 3972345626b ./gcc/cppspec.c ! 869544284b ./gcc/cp/pt.c 1408553642b ./gcc/cp/ptree.c ! 951685116b ./gcc/c-pragma.c 1212765089b ./gcc/c-pragma.h 3993964584b ./gcc/cp/repo.c 373887640b ./gcc/cp/rtti.c 4073173263b ./gcc/cp/search.c 1391383527b ./gcc/cp/semantics.c 435715887b ./gcc/cp/spew.c ! 1223112841b ./gcc/cp/tree.c ! 1104404539b ./gcc/cp/typeck2.c ! 216625426b ./gcc/cp/typeck.c 2032357073b ./gcc/crtstuff.c ! 4072060626b ./gcc/cse.c ! 1601788710b ./gcc/cselib.c 3914093915b ./gcc/cselib.h 2383555787b ./gcc/c-semantics.c 216805921b ./gcc/cstamp-h.in --- 2713,2740 ---- 1744773234b ./gcc/cppfiles.c 2283152717b ./gcc/cpphash.c 3545195852b ./gcc/cpphash.h ! 3019939107b ./gcc/cppinit.c 201524367b ./gcc/cpplex.c 696100766b ./gcc/cpplib.c 2677210260b ./gcc/cpplib.h ! 2425864251b ./gcc/cppmacro.c 2363485754b ./gcc/cppmain.c 3972345626b ./gcc/cppspec.c ! 877619125b ./gcc/cp/pt.c 1408553642b ./gcc/cp/ptree.c ! 73956308b ./gcc/c-pragma.c 1212765089b ./gcc/c-pragma.h 3993964584b ./gcc/cp/repo.c 373887640b ./gcc/cp/rtti.c 4073173263b ./gcc/cp/search.c 1391383527b ./gcc/cp/semantics.c 435715887b ./gcc/cp/spew.c ! 1157806438b ./gcc/cp/tree.c ! 319815603b ./gcc/cp/typeck2.c ! 3802862631b ./gcc/cp/typeck.c 2032357073b ./gcc/crtstuff.c ! 3365219033b ./gcc/cse.c ! 1706957017b ./gcc/cselib.c 3914093915b ./gcc/cselib.h 2383555787b ./gcc/c-semantics.c 216805921b ./gcc/cstamp-h.in *************** *** 2743,2749 **** 1104788844b ./gcc/dbxstclass.h 2470087149b ./gcc/debug.c 178689220b ./gcc/debug.h ! 3203273376b ./gcc/defaults.h 2369804086b ./gcc/dependence.c 2491556822b ./gcc/df.c 3792421516b ./gcc/df.h --- 2746,2752 ---- 1104788844b ./gcc/dbxstclass.h 2470087149b ./gcc/debug.c 178689220b ./gcc/debug.h ! 852153964b ./gcc/defaults.h 2369804086b ./gcc/dependence.c 2491556822b ./gcc/df.c 3792421516b ./gcc/df.h *************** *** 2754,2762 **** 2815010075b ./gcc/doc/collect2.texi 2785243168b ./gcc/doc/configfiles.texi 3399730921b ./gcc/doc/configterms.texi ! 178835589b ./gcc/doc/contrib.texi 2272556046b ./gcc/doc/contribute.texi ! 3532032039b ./gcc/doc/cpp.1 728474004b ./gcc/doc/cppenv.texi 614113989b ./gcc/doc/cpp.info 3684701703b ./gcc/doc/cpp.info-1 --- 2757,2765 ---- 2815010075b ./gcc/doc/collect2.texi 2785243168b ./gcc/doc/configfiles.texi 3399730921b ./gcc/doc/configterms.texi ! 423742597b ./gcc/doc/contrib.texi 2272556046b ./gcc/doc/contribute.texi ! 162855646b ./gcc/doc/cpp.1 728474004b ./gcc/doc/cppenv.texi 614113989b ./gcc/doc/cpp.info 3684701703b ./gcc/doc/cpp.info-1 *************** *** 2772,2786 **** 3767903981b ./gcc/doc/extend.texi 2634996326b ./gcc/doc/fragments.texi 600815516b ./gcc/doc/frontends.texi ! 785810521b ./gcc/doc/fsf-funding.7 ! 1219439851b ./gcc/doc/gcc.1 ! 1818627276b ./gcc/doc/gcc.info 1319117426b ./gcc/doc/gcc.info-1 2210088709b ./gcc/doc/gcc.info-10 3588585377b ./gcc/doc/gcc.info-11 2472794790b ./gcc/doc/gcc.info-12 3020319333b ./gcc/doc/gcc.info-13 ! 1555589246b ./gcc/doc/gcc.info-14 2100335389b ./gcc/doc/gcc.info-15 1973326326b ./gcc/doc/gcc.info-16 983912118b ./gcc/doc/gcc.info-17 --- 2775,2789 ---- 3767903981b ./gcc/doc/extend.texi 2634996326b ./gcc/doc/fragments.texi 600815516b ./gcc/doc/frontends.texi ! 3832608901b ./gcc/doc/fsf-funding.7 ! 2431342595b ./gcc/doc/gcc.1 ! 1322329267b ./gcc/doc/gcc.info 1319117426b ./gcc/doc/gcc.info-1 2210088709b ./gcc/doc/gcc.info-10 3588585377b ./gcc/doc/gcc.info-11 2472794790b ./gcc/doc/gcc.info-12 3020319333b ./gcc/doc/gcc.info-13 ! 3100556077b ./gcc/doc/gcc.info-14 2100335389b ./gcc/doc/gcc.info-15 1973326326b ./gcc/doc/gcc.info-16 983912118b ./gcc/doc/gcc.info-17 *************** *** 2788,2794 **** 2774448157b ./gcc/doc/gcc.info-19 4041736365b ./gcc/doc/gcc.info-2 273873526b ./gcc/doc/gcc.info-20 ! 373096534b ./gcc/doc/gcc.info-21 1105239440b ./gcc/doc/gcc.info-22 3748204607b ./gcc/doc/gcc.info-23 177802939b ./gcc/doc/gcc.info-3 --- 2791,2797 ---- 2774448157b ./gcc/doc/gcc.info-19 4041736365b ./gcc/doc/gcc.info-2 273873526b ./gcc/doc/gcc.info-20 ! 913770364b ./gcc/doc/gcc.info-21 1105239440b ./gcc/doc/gcc.info-22 3748204607b ./gcc/doc/gcc.info-23 177802939b ./gcc/doc/gcc.info-3 *************** *** 2796,2810 **** 4164754347b ./gcc/doc/gcc.info-5 523405852b ./gcc/doc/gcc.info-6 4075929926b ./gcc/doc/gcc.info-7 ! 1276947272b ./gcc/doc/gcc.info-8 701416922b ./gcc/doc/gcc.info-9 ! 2259220057b ./gcc/doc/gccint.info 1545378372b ./gcc/doc/gccint.info-1 1504619998b ./gcc/doc/gccint.info-10 3473339140b ./gcc/doc/gccint.info-11 121842836b ./gcc/doc/gccint.info-12 1382416683b ./gcc/doc/gccint.info-13 ! 17271233b ./gcc/doc/gccint.info-14 3485597023b ./gcc/doc/gccint.info-15 1782892412b ./gcc/doc/gccint.info-16 2959978575b ./gcc/doc/gccint.info-17 --- 2799,2813 ---- 4164754347b ./gcc/doc/gcc.info-5 523405852b ./gcc/doc/gcc.info-6 4075929926b ./gcc/doc/gcc.info-7 ! 399228416b ./gcc/doc/gcc.info-8 701416922b ./gcc/doc/gcc.info-9 ! 920050816b ./gcc/doc/gccint.info 1545378372b ./gcc/doc/gccint.info-1 1504619998b ./gcc/doc/gccint.info-10 3473339140b ./gcc/doc/gccint.info-11 121842836b ./gcc/doc/gccint.info-12 1382416683b ./gcc/doc/gccint.info-13 ! 3366735740b ./gcc/doc/gccint.info-14 3485597023b ./gcc/doc/gccint.info-15 1782892412b ./gcc/doc/gccint.info-16 2959978575b ./gcc/doc/gccint.info-17 *************** *** 2813,2834 **** 807234232b ./gcc/doc/gccint.info-2 202943203b ./gcc/doc/gccint.info-20 3389515766b ./gcc/doc/gccint.info-21 ! 1609190242b ./gcc/doc/gccint.info-22 2398443189b ./gcc/doc/gccint.info-23 1907881660b ./gcc/doc/gccint.info-3 1456140435b ./gcc/doc/gccint.info-4 645003639b ./gcc/doc/gccint.info-5 2130774212b ./gcc/doc/gccint.info-6 ! 393035355b ./gcc/doc/gccint.info-7 422138694b ./gcc/doc/gccint.info-8 ! 1381894043b ./gcc/doc/gccint.info-9 926520134b ./gcc/doc/gccint.texi 1397603823b ./gcc/doc/gcc.texi ! 609698978b ./gcc/doc/gcov.1 3165676809b ./gcc/doc/gcov.texi ! 3249981369b ./gcc/doc/gfdl.7 4217859569b ./gcc/doc/gnu.texi ! 4103668381b ./gcc/doc/gpl.7 2632697239b ./gcc/doc/headerdirs.texi 1425599017b ./gcc/doc/hostconfig.texi 1232987106b ./gcc/doc/include/fdl.texi --- 2816,2837 ---- 807234232b ./gcc/doc/gccint.info-2 202943203b ./gcc/doc/gccint.info-20 3389515766b ./gcc/doc/gccint.info-21 ! 934370110b ./gcc/doc/gccint.info-22 2398443189b ./gcc/doc/gccint.info-23 1907881660b ./gcc/doc/gccint.info-3 1456140435b ./gcc/doc/gccint.info-4 645003639b ./gcc/doc/gccint.info-5 2130774212b ./gcc/doc/gccint.info-6 ! 2788607605b ./gcc/doc/gccint.info-7 422138694b ./gcc/doc/gccint.info-8 ! 3245006523b ./gcc/doc/gccint.info-9 926520134b ./gcc/doc/gccint.texi 1397603823b ./gcc/doc/gcc.texi ! 1297297798b ./gcc/doc/gcov.1 3165676809b ./gcc/doc/gcov.texi ! 1252187512b ./gcc/doc/gfdl.7 4217859569b ./gcc/doc/gnu.texi ! 1326334145b ./gcc/doc/gpl.7 2632697239b ./gcc/doc/headerdirs.texi 1425599017b ./gcc/doc/hostconfig.texi 1232987106b ./gcc/doc/include/fdl.texi *************** *** 2837,2849 **** 1416455933b ./gcc/doc/include/gpl.texi 3627483023b ./gcc/doc/include/texinfo.tex 4219640220b ./gcc/doc/install-old.texi ! 3408748664b ./gcc/doc/install.texi 1451529977b ./gcc/doc/install.texi2html 1103982611b ./gcc/doc/interface.texi ! 1238510282b ./gcc/doc/invoke.texi 1327866291b ./gcc/doc/languages.texi 1442569774b ./gcc/doc/makefile.texi ! 351459532b ./gcc/doc/md.texi 2014418726b ./gcc/doc/objc.texi 285120363b ./gcc/doc/passes.texi 2247614285b ./gcc/doc/portability.texi --- 2840,2852 ---- 1416455933b ./gcc/doc/include/gpl.texi 3627483023b ./gcc/doc/include/texinfo.tex 4219640220b ./gcc/doc/install-old.texi ! 834520840b ./gcc/doc/install.texi 1451529977b ./gcc/doc/install.texi2html 1103982611b ./gcc/doc/interface.texi ! 3201795382b ./gcc/doc/invoke.texi 1327866291b ./gcc/doc/languages.texi 1442569774b ./gcc/doc/makefile.texi ! 647485435b ./gcc/doc/md.texi 2014418726b ./gcc/doc/objc.texi 285120363b ./gcc/doc/passes.texi 2247614285b ./gcc/doc/portability.texi *************** *** 2851,2857 **** 3603168219b ./gcc/doc/service.texi 1541018360b ./gcc/doc/sourcebuild.texi 4060536618b ./gcc/doc/standards.texi ! 1062799302b ./gcc/doc/tm.texi 3680484655b ./gcc/doc/trouble.texi 3478556786b ./gcc/doc/vms.texi 1216009797b ./gcc/doloop.c --- 2854,2860 ---- 3603168219b ./gcc/doc/service.texi 1541018360b ./gcc/doc/sourcebuild.texi 4060536618b ./gcc/doc/standards.texi ! 122960714b ./gcc/doc/tm.texi 3680484655b ./gcc/doc/trouble.texi 3478556786b ./gcc/doc/vms.texi 1216009797b ./gcc/doloop.c *************** *** 2860,2877 **** 31829346b ./gcc/dwarf2asm.c 2077057275b ./gcc/dwarf2asm.h 2184520814b ./gcc/dwarf2.h ! 2702810335b ./gcc/dwarf2out.c 1010158138b ./gcc/dwarf2out.h 109276966b ./gcc/dwarf.h ! 3538556678b ./gcc/dwarfout.c ! 620021703b ./gcc/emit-rtl.c 626897841b ./gcc/enquire.c 2953931641b ./gcc/errors.c 3972701730b ./gcc/errors.h 1431652736b ./gcc/except.c 2826708782b ./gcc/except.h 3043936594b ./gcc/explow.c ! 2204988582b ./gcc/expmed.c 2453007041b ./gcc/expr.c 2884660603b ./gcc/expr.h 1934744031b ./gcc/f/ansify.c --- 2863,2880 ---- 31829346b ./gcc/dwarf2asm.c 2077057275b ./gcc/dwarf2asm.h 2184520814b ./gcc/dwarf2.h ! 3548213262b ./gcc/dwarf2out.c 1010158138b ./gcc/dwarf2out.h 109276966b ./gcc/dwarf.h ! 3359840971b ./gcc/dwarfout.c ! 751950639b ./gcc/emit-rtl.c 626897841b ./gcc/enquire.c 2953931641b ./gcc/errors.c 3972701730b ./gcc/errors.h 1431652736b ./gcc/except.c 2826708782b ./gcc/except.h 3043936594b ./gcc/explow.c ! 2506147319b ./gcc/expmed.c 2453007041b ./gcc/expr.c 2884660603b ./gcc/expr.h 1934744031b ./gcc/f/ansify.c *************** *** 2886,2892 **** 276048984b ./gcc/f/BUGS 235013049b ./gcc/f/bugs0.texi 2193415872b ./gcc/f/bugs.texi ! 3034148871b ./gcc/f/ChangeLog 4225493150b ./gcc/f/ChangeLog.0 3761650327b ./gcc/f/com.c 87369815b ./gcc/f/com.h --- 2889,2895 ---- 276048984b ./gcc/f/BUGS 235013049b ./gcc/f/bugs0.texi 2193415872b ./gcc/f/bugs.texi ! 1301848914b ./gcc/f/ChangeLog 4225493150b ./gcc/f/ChangeLog.0 3761650327b ./gcc/f/com.c 87369815b ./gcc/f/com.h *************** *** 2901,2908 **** 417834755b ./gcc/f/expr.h 2351117682b ./gcc/f/ffe.texi 782070966b ./gcc/f/fini.c ! 2773163133b ./gcc/f/g77.1 ! 1037226619b ./gcc/f/g77.info 2529060485b ./gcc/f/g77.info-1 2392806453b ./gcc/f/g77.info-10 84907233b ./gcc/f/g77.info-11 --- 2904,2911 ---- 417834755b ./gcc/f/expr.h 2351117682b ./gcc/f/ffe.texi 782070966b ./gcc/f/fini.c ! 2159437746b ./gcc/f/g77.1 ! 3307458858b ./gcc/f/g77.info 2529060485b ./gcc/f/g77.info-1 2392806453b ./gcc/f/g77.info-10 84907233b ./gcc/f/g77.info-11 *************** *** 2918,2925 **** 2326247988b ./gcc/f/g77.info-20 532929806b ./gcc/f/g77.info-21 2297740209b ./gcc/f/g77.info-3 ! 1472416982b ./gcc/f/g77.info-4 ! 3726797101b ./gcc/f/g77.info-5 239170095b ./gcc/f/g77.info-6 2638465735b ./gcc/f/g77.info-7 563283124b ./gcc/f/g77.info-8 --- 2921,2928 ---- 2326247988b ./gcc/f/g77.info-20 532929806b ./gcc/f/g77.info-21 2297740209b ./gcc/f/g77.info-3 ! 1643032002b ./gcc/f/g77.info-4 ! 532413546b ./gcc/f/g77.info-5 239170095b ./gcc/f/g77.info-6 2638465735b ./gcc/f/g77.info-7 563283124b ./gcc/f/g77.info-8 *************** *** 2930,2936 **** 3559352394b ./gcc/f/global.h 1392305407b ./gcc/f/implic.c 3939649511b ./gcc/f/implic.h ! 3457648447b ./gcc/final.c 2287601317b ./gcc/f/info-b.def 2342702754b ./gcc/f/info.c 1115234844b ./gcc/f/info.h --- 2933,2939 ---- 3559352394b ./gcc/f/global.h 1392305407b ./gcc/f/implic.c 3939649511b ./gcc/f/implic.h ! 1237323857b ./gcc/final.c 2287601317b ./gcc/f/info-b.def 2342702754b ./gcc/f/info.c 1115234844b ./gcc/f/info.h *************** *** 2966,2972 **** 3390155447b ./gcc/fixinc/Makefile.in 3327140809b ./gcc/fixinc/mkfixinc.sh 1834585069b ./gcc/fixinc/procopen.c ! 2351321356b ./gcc/fixinc/README 1750379031b ./gcc/fixinc/server.c 3490851801b ./gcc/fixinc/server.h 1165473466b ./gcc/fixinc/tests/base/ansi/math.h --- 2969,2975 ---- 3390155447b ./gcc/fixinc/Makefile.in 3327140809b ./gcc/fixinc/mkfixinc.sh 1834585069b ./gcc/fixinc/procopen.c ! 2750464368b ./gcc/fixinc/README 1750379031b ./gcc/fixinc/server.c 3490851801b ./gcc/fixinc/server.h 1165473466b ./gcc/fixinc/tests/base/ansi/math.h *************** *** 3050,3059 **** 1633854048b ./gcc/f/malloc.h 2687881356b ./gcc/f/name.c 558328466b ./gcc/f/name.h ! 813263502b ./gcc/f/NEWS 3453379674b ./gcc/f/news0.texi ! 1060861326b ./gcc/f/news.texi ! 2491083781b ./gcc/fold-const.c 2696377463b ./gcc/f/parse.c 1067232252b ./gcc/f/proj.h 3820449811b ./gcc/fp-test.c --- 3053,3062 ---- 1633854048b ./gcc/f/malloc.h 2687881356b ./gcc/f/name.c 558328466b ./gcc/f/name.h ! 3310265656b ./gcc/f/NEWS 3453379674b ./gcc/f/news0.texi ! 3449702959b ./gcc/f/news.texi ! 1024706751b ./gcc/fold-const.c 2696377463b ./gcc/f/parse.c 1067232252b ./gcc/f/proj.h 3820449811b ./gcc/fp-test.c *************** *** 3109,3118 **** 2232338664b ./gcc/f/top.h 3443401298b ./gcc/f/type.c 2499934202b ./gcc/f/type.h ! 3730312212b ./gcc/function.c 316231375b ./gcc/function.h 3058774034b ./gcc/future.options ! 182594673b ./gcc/f/version.c 1781447679b ./gcc/f/version.h 3584291506b ./gcc/f/where.c 819940437b ./gcc/f/where.h --- 3112,3121 ---- 2232338664b ./gcc/f/top.h 3443401298b ./gcc/f/type.c 2499934202b ./gcc/f/type.h ! 3501935943b ./gcc/function.c 316231375b ./gcc/function.h 3058774034b ./gcc/future.options ! 916017738b ./gcc/f/version.c 1781447679b ./gcc/f/version.h 3584291506b ./gcc/f/where.c 819940437b ./gcc/f/where.h *************** *** 3181,3197 **** 2987787285b ./gcc/hash.h 466224151b ./gcc/hashtable.c 126902747b ./gcc/hashtable.h ! 2723232457b ./gcc/hooks.c ! 3941225424b ./gcc/hooks.h 519586985b ./gcc/hwint.h ! 1355524844b ./gcc/ifcvt.c 3686080794b ./gcc/input.h 2324132584b ./gcc/insn-addr.h 3004940478b ./gcc/integrate.c 1320722832b ./gcc/integrate.h 3847321727b ./gcc/intl/bindtextdom.c 3277280645b ./gcc/intl.c ! 1128940412b ./gcc/intl/ChangeLog 3698301396b ./gcc/intl/config.charset 3683549278b ./gcc/intl/dcgettext.c 1537282354b ./gcc/intl/dcigettext.c --- 3184,3200 ---- 2987787285b ./gcc/hash.h 466224151b ./gcc/hashtable.c 126902747b ./gcc/hashtable.h ! 3612003626b ./gcc/hooks.c ! 1290543146b ./gcc/hooks.h 519586985b ./gcc/hwint.h ! 3563549730b ./gcc/ifcvt.c 3686080794b ./gcc/input.h 2324132584b ./gcc/insn-addr.h 3004940478b ./gcc/integrate.c 1320722832b ./gcc/integrate.h 3847321727b ./gcc/intl/bindtextdom.c 3277280645b ./gcc/intl.c ! 1631683497b ./gcc/intl/ChangeLog 3698301396b ./gcc/intl/config.charset 3683549278b ./gcc/intl/dcgettext.c 1537282354b ./gcc/intl/dcigettext.c *************** *** 3202,3208 **** 745873491b ./gcc/intl/finddomain.c 3807651580b ./gcc/intl/gettext.c 864082220b ./gcc/intl/gettext.h ! 959917220b ./gcc/intl/gettextP.h 2379664116b ./gcc/intl.h 3470048606b ./gcc/intl/hash-string.h 3803759614b ./gcc/intl/intl-compat.c --- 3205,3211 ---- 745873491b ./gcc/intl/finddomain.c 3807651580b ./gcc/intl/gettext.c 864082220b ./gcc/intl/gettext.h ! 3298993106b ./gcc/intl/gettextP.h 2379664116b ./gcc/intl.h 3470048606b ./gcc/intl/hash-string.h 3803759614b ./gcc/intl/intl-compat.c *************** *** 3226,3232 **** 3814965188b ./gcc/java/buffer.c 1535113190b ./gcc/java/buffer.h 637702143b ./gcc/java/builtins.c ! 1744468759b ./gcc/java/ChangeLog 2409493226b ./gcc/java/chartables.h 1544711683b ./gcc/java/check-init.c 3161785437b ./gcc/java/class.c --- 3229,3235 ---- 3814965188b ./gcc/java/buffer.c 1535113190b ./gcc/java/buffer.h 637702143b ./gcc/java/builtins.c ! 3570780099b ./gcc/java/ChangeLog 2409493226b ./gcc/java/chartables.h 1544711683b ./gcc/java/check-init.c 3161785437b ./gcc/java/class.c *************** *** 3236,3274 **** 503022028b ./gcc/java/.cvsignore 698834578b ./gcc/java/decl.c 1301173842b ./gcc/java/except.c ! 571765061b ./gcc/java/expr.c ! 993757941b ./gcc/java/gcj.1 ! 3116633542b ./gcc/java/gcjh.1 4005049153b ./gcc/java/gcj.info 3864487285b ./gcc/java/gcj.info-1 4154067378b ./gcc/java/gcj.info-2 2722885402b ./gcc/java/gcj.texi 533046670b ./gcc/java/gen-table.pl ! 4288959057b ./gcc/java/gij.1 2862690686b ./gcc/java/gjavah.c 1545050516b ./gcc/java/java-except.h 1953641142b ./gcc/java/java-opcodes.h 2538410445b ./gcc/java/javaop.def 872575611b ./gcc/java/javaop.h 2113802419b ./gcc/java/java-tree.def ! 3438770006b ./gcc/java/java-tree.h 1618392854b ./gcc/java/jcf-depend.c ! 3695596248b ./gcc/java/jcf-dump.1 1347786459b ./gcc/java/jcf-dump.c ! 1959768790b ./gcc/java/jcf.h ! 1121076730b ./gcc/java/jcf-io.c 981094631b ./gcc/java/jcf-parse.c ! 3535720077b ./gcc/java/jcf-path.c 3070824570b ./gcc/java/jcf-reader.c ! 203601536b ./gcc/java/jcf-write.c ! 832738066b ./gcc/java/jv-convert.1 3805988298b ./gcc/java/jvgenmain.c ! 1596066572b ./gcc/java/jv-scan.1 3491242747b ./gcc/java/jv-scan.c 686969605b ./gcc/java/jvspec.c 3733396854b ./gcc/java/keyword.gperf 3748734913b ./gcc/java/keyword.h ! 3104736611b ./gcc/java/lang.c 366330104b ./gcc/java/lang-options.h 3731853870b ./gcc/java/lang-specs.h 930602719b ./gcc/java/lex.c --- 3239,3277 ---- 503022028b ./gcc/java/.cvsignore 698834578b ./gcc/java/decl.c 1301173842b ./gcc/java/except.c ! 1888306202b ./gcc/java/expr.c ! 407192555b ./gcc/java/gcj.1 ! 187310216b ./gcc/java/gcjh.1 4005049153b ./gcc/java/gcj.info 3864487285b ./gcc/java/gcj.info-1 4154067378b ./gcc/java/gcj.info-2 2722885402b ./gcc/java/gcj.texi 533046670b ./gcc/java/gen-table.pl ! 3365935613b ./gcc/java/gij.1 2862690686b ./gcc/java/gjavah.c 1545050516b ./gcc/java/java-except.h 1953641142b ./gcc/java/java-opcodes.h 2538410445b ./gcc/java/javaop.def 872575611b ./gcc/java/javaop.h 2113802419b ./gcc/java/java-tree.def ! 3036080891b ./gcc/java/java-tree.h 1618392854b ./gcc/java/jcf-depend.c ! 2044838079b ./gcc/java/jcf-dump.1 1347786459b ./gcc/java/jcf-dump.c ! 921328820b ./gcc/java/jcf.h ! 370700983b ./gcc/java/jcf-io.c 981094631b ./gcc/java/jcf-parse.c ! 189754917b ./gcc/java/jcf-path.c 3070824570b ./gcc/java/jcf-reader.c ! 3086938723b ./gcc/java/jcf-write.c ! 1759296173b ./gcc/java/jv-convert.1 3805988298b ./gcc/java/jvgenmain.c ! 4040674839b ./gcc/java/jv-scan.1 3491242747b ./gcc/java/jv-scan.c 686969605b ./gcc/java/jvspec.c 3733396854b ./gcc/java/keyword.gperf 3748734913b ./gcc/java/keyword.h ! 3656655116b ./gcc/java/lang.c 366330104b ./gcc/java/lang-options.h 3731853870b ./gcc/java/lang-specs.h 930602719b ./gcc/java/lex.c *************** *** 3276,3288 **** 497222224b ./gcc/java/Make-lang.in 1290236487b ./gcc/java/mangle.c 624686086b ./gcc/java/mangle_name.c ! 262407679b ./gcc/java/parse.c 924019294b ./gcc/java/parse.h ! 1747279160b ./gcc/java/parse-scan.c 578153036b ./gcc/java/parse-scan.y ! 2403790794b ./gcc/java/parse.y ! 3494194353b ./gcc/java/rmic.1 ! 297385148b ./gcc/java/rmiregistry.1 2066605666b ./gcc/java/typeck.c 173829162b ./gcc/java/verify.c 3207437983b ./gcc/java/xref.c --- 3279,3291 ---- 497222224b ./gcc/java/Make-lang.in 1290236487b ./gcc/java/mangle.c 624686086b ./gcc/java/mangle_name.c ! 2946242374b ./gcc/java/parse.c 924019294b ./gcc/java/parse.h ! 1282615930b ./gcc/java/parse-scan.c 578153036b ./gcc/java/parse-scan.y ! 2520755256b ./gcc/java/parse.y ! 2987112959b ./gcc/java/rmic.1 ! 3769528021b ./gcc/java/rmiregistry.1 2066605666b ./gcc/java/typeck.c 173829162b ./gcc/java/verify.c 3207437983b ./gcc/java/xref.c *************** *** 3291,3302 **** 1459175152b ./gcc/java/zipfile.h 2231553098b ./gcc/jump.c 1661628068b ./gcc/langhooks.c ! 4260985447b ./gcc/langhooks-def.h ! 1614772535b ./gcc/langhooks.h 4134111346b ./gcc/LANGUAGES 2367190261b ./gcc/lcm.c 2318627229b ./gcc/libfuncs.h ! 668464634b ./gcc/libgcc2.c 3671718625b ./gcc/libgcc2.h 1452643639b ./gcc/libgcc-std.ver 2497915666b ./gcc/limitx.h --- 3294,3305 ---- 1459175152b ./gcc/java/zipfile.h 2231553098b ./gcc/jump.c 1661628068b ./gcc/langhooks.c ! 159385744b ./gcc/langhooks-def.h ! 4012039513b ./gcc/langhooks.h 4134111346b ./gcc/LANGUAGES 2367190261b ./gcc/lcm.c 2318627229b ./gcc/libfuncs.h ! 3947654856b ./gcc/libgcc2.c 3671718625b ./gcc/libgcc2.h 1452643639b ./gcc/libgcc-std.ver 2497915666b ./gcc/limitx.h *************** *** 3304,3317 **** 1060915850b ./gcc/line-map.c 3486158933b ./gcc/line-map.h 2698117766b ./gcc/lists.c ! 4192676218b ./gcc/local-alloc.c 830917499b ./gcc/longlong.h ! 1461498478b ./gcc/loop.c 1864476849b ./gcc/loop.h 2150704349b ./gcc/machmode.def 3928982379b ./gcc/machmode.h 189930733b ./gcc/main.c ! 451556994b ./gcc/Makefile.in 501600506b ./gcc/mbchar.c 1508701785b ./gcc/mbchar.h 886384654b ./gcc/mips-tdump.c --- 3307,3320 ---- 1060915850b ./gcc/line-map.c 3486158933b ./gcc/line-map.h 2698117766b ./gcc/lists.c ! 1174355773b ./gcc/local-alloc.c 830917499b ./gcc/longlong.h ! 2909380196b ./gcc/loop.c 1864476849b ./gcc/loop.h 2150704349b ./gcc/machmode.def 3928982379b ./gcc/machmode.h 189930733b ./gcc/main.c ! 1388062738b ./gcc/Makefile.in 501600506b ./gcc/mbchar.c 1508701785b ./gcc/mbchar.h 886384654b ./gcc/mips-tdump.c *************** *** 3324,3338 **** 4201050746b ./gcc/mkmap-flat.awk 2827346461b ./gcc/mkmap-symver.awk 1597314052b ./gcc/move-if-change ! 1276076168b ./gcc/NEWS 4010954163b ./gcc/objc/config-lang.in 1966957144b ./gcc/objc/.cvsignore 588115418b ./gcc/objc/lang-options.h 852310047b ./gcc/objc/lang-specs.h ! 3983694173b ./gcc/objc/Make-lang.in 3712044081b ./gcc/objc/objc-act.c 2554922770b ./gcc/objc/objc-act.h ! 2553643590b ./gcc/objc/objc-lang.c 1948940216b ./gcc/objc/objc-parse.c 2631161308b ./gcc/objc/objc-parse.y 688475759b ./gcc/objc/objc-tree.def --- 3327,3341 ---- 4201050746b ./gcc/mkmap-flat.awk 2827346461b ./gcc/mkmap-symver.awk 1597314052b ./gcc/move-if-change ! 3016761273b ./gcc/NEWS 4010954163b ./gcc/objc/config-lang.in 1966957144b ./gcc/objc/.cvsignore 588115418b ./gcc/objc/lang-options.h 852310047b ./gcc/objc/lang-specs.h ! 566554613b ./gcc/objc/Make-lang.in 3712044081b ./gcc/objc/objc-act.c 2554922770b ./gcc/objc/objc-act.h ! 2534517289b ./gcc/objc/objc-lang.c 1948940216b ./gcc/objc/objc-parse.c 2631161308b ./gcc/objc/objc-parse.y 688475759b ./gcc/objc/objc-tree.def *************** *** 3344,3350 **** 1911824904b ./gcc/params.c 2474575794b ./gcc/params.def 840880994b ./gcc/params.h ! 258167758b ./gcc/po/ChangeLog 275286308b ./gcc/po/da.gmo 276047898b ./gcc/po/da.po 4175362661b ./gcc/po/el.gmo --- 3347,3353 ---- 1911824904b ./gcc/params.c 2474575794b ./gcc/params.def 840880994b ./gcc/params.h ! 1756012034b ./gcc/po/ChangeLog 275286308b ./gcc/po/da.gmo 276047898b ./gcc/po/da.po 4175362661b ./gcc/po/el.gmo *************** *** 3369,3375 **** 204342296b ./gcc/predict.h 542352850b ./gcc/prefix.c 3203071066b ./gcc/prefix.h ! 2033099595b ./gcc/print-rtl.c 417163997b ./gcc/print-tree.c 2666623009b ./gcc/profile.c 1610870410b ./gcc/protoize.c --- 3372,3378 ---- 204342296b ./gcc/predict.h 542352850b ./gcc/prefix.c 3203071066b ./gcc/prefix.h ! 3447032665b ./gcc/print-rtl.c 417163997b ./gcc/print-tree.c 2666623009b ./gcc/profile.c 1610870410b ./gcc/protoize.c *************** *** 3378,3392 **** 2723074973b ./gcc/read-rtl.c 2962281463b ./gcc/real.c 2885483337b ./gcc/real.h ! 3525476493b ./gcc/recog.c 2056680576b ./gcc/recog.h ! 1439133939b ./gcc/regclass.c ! 3658385705b ./gcc/regmove.c 113125100b ./gcc/regrename.c 3100477763b ./gcc/regs.h ! 3483199254b ./gcc/reg-stack.c ! 2251681177b ./gcc/reload1.c ! 1426129688b ./gcc/reload.c 834085082b ./gcc/reload.h 4167441145b ./gcc/reorg.c 2715704724b ./gcc/resource.c --- 3381,3395 ---- 2723074973b ./gcc/read-rtl.c 2962281463b ./gcc/real.c 2885483337b ./gcc/real.h ! 2524966106b ./gcc/recog.c 2056680576b ./gcc/recog.h ! 57810796b ./gcc/regclass.c ! 3586182830b ./gcc/regmove.c 113125100b ./gcc/regrename.c 3100477763b ./gcc/regs.h ! 3611458427b ./gcc/reg-stack.c ! 4045449062b ./gcc/reload1.c ! 1469188466b ./gcc/reload.c 834085082b ./gcc/reload.h 4167441145b ./gcc/reorg.c 2715704724b ./gcc/resource.c *************** *** 3395,3401 **** 2800367218b ./gcc/rtl.c 3964111654b ./gcc/rtl.def 3490774286b ./gcc/rtl-error.c ! 591657889b ./gcc/rtl.h 1989258075b ./gcc/sbitmap.c 3201428436b ./gcc/sbitmap.h 324348149b ./gcc/scan.c --- 3398,3404 ---- 2800367218b ./gcc/rtl.c 3964111654b ./gcc/rtl.def 3490774286b ./gcc/rtl-error.c ! 79528154b ./gcc/rtl.h 1989258075b ./gcc/sbitmap.c 3201428436b ./gcc/sbitmap.h 324348149b ./gcc/scan.c *************** *** 3423,3433 **** 2004713279b ./gcc/stor-layout.c 3515875777b ./gcc/stringpool.c 567176141b ./gcc/sys-protos.h ! 3262209488b ./gcc/system.h 482558466b ./gcc/sys-types.h 293723253b ./gcc/target-def.h 4078089769b ./gcc/target.h ! 3370929021b ./gcc/testsuite/ChangeLog 1101480727b ./gcc/testsuite/config/default.exp 3657217366b ./gcc/testsuite/consistency.vlad/layout/a-char.c 2814769741b ./gcc/testsuite/consistency.vlad/layout/a-double.c --- 3426,3436 ---- 2004713279b ./gcc/stor-layout.c 3515875777b ./gcc/stringpool.c 567176141b ./gcc/sys-protos.h ! 1242992540b ./gcc/system.h 482558466b ./gcc/sys-types.h 293723253b ./gcc/target-def.h 4078089769b ./gcc/target.h ! 2713801816b ./gcc/testsuite/ChangeLog 1101480727b ./gcc/testsuite/config/default.exp 3657217366b ./gcc/testsuite/consistency.vlad/layout/a-char.c 2814769741b ./gcc/testsuite/consistency.vlad/layout/a-double.c *************** *** 5405,5410 **** --- 5408,5418 ---- 392286369b ./gcc/testsuite/gcc.c-torture/compile/20020330-1.c 4289507025b ./gcc/testsuite/gcc.c-torture/compile/20020409-1.c 3246888365b ./gcc/testsuite/gcc.c-torture/compile/20020418-1.c + 1318297601b ./gcc/testsuite/gcc.c-torture/compile/20020530-1.c + 909926902b ./gcc/testsuite/gcc.c-torture/compile/20020605-1.c + 168620187b ./gcc/testsuite/gcc.c-torture/compile/20020701-1.c + 1564612166b ./gcc/testsuite/gcc.c-torture/compile/20020710-1.c + 737897185b ./gcc/testsuite/gcc.c-torture/compile/20020715-1.c 375311401b ./gcc/testsuite/gcc.c-torture/compile/900116-1.c 4181931788b ./gcc/testsuite/gcc.c-torture/compile/900216-1.c 426860692b ./gcc/testsuite/gcc.c-torture/compile/900313-1.c *************** *** 5871,5876 **** --- 5879,5890 ---- 2439380096b ./gcc/testsuite/gcc.c-torture/execute/20020418-1.c 49470659b ./gcc/testsuite/gcc.c-torture/execute/20020423-1.c 484359727b ./gcc/testsuite/gcc.c-torture/execute/20020503-1.c + 1286592631b ./gcc/testsuite/gcc.c-torture/execute/20020529-1.c + 2563139669b ./gcc/testsuite/gcc.c-torture/execute/20020611-1.c + 2588225457b ./gcc/testsuite/gcc.c-torture/execute/20020614-1.c + 2304661446b ./gcc/testsuite/gcc.c-torture/execute/20020615-1.c + 1625459055b ./gcc/testsuite/gcc.c-torture/execute/20020619-1.c + 2876236122b ./gcc/testsuite/gcc.c-torture/execute/20020716-1.c 37158978b ./gcc/testsuite/gcc.c-torture/execute/900409-1.c 1241514475b ./gcc/testsuite/gcc.c-torture/execute/920202-1.c 651529975b ./gcc/testsuite/gcc.c-torture/execute/920302-1.c *************** *** 6174,6179 **** --- 6188,6194 ---- 3688640862b ./gcc/testsuite/gcc.c-torture/execute/991228-1.c 3793831392b ./gcc/testsuite/gcc.c-torture/execute/align-1.c 4120792597b ./gcc/testsuite/gcc.c-torture/execute/align-2.c + 1274835551b ./gcc/testsuite/gcc.c-torture/execute/alloca-1.c 3292072248b ./gcc/testsuite/gcc.c-torture/execute/anon-1.c 1605923399b ./gcc/testsuite/gcc.c-torture/execute/arith-1.c 343449147b ./gcc/testsuite/gcc.c-torture/execute/arith-rand.c *************** *** 6211,6216 **** --- 6226,6232 ---- 478689052b ./gcc/testsuite/gcc.c-torture/execute/complex-3.c 662396237b ./gcc/testsuite/gcc.c-torture/execute/complex-4.c 1022468052b ./gcc/testsuite/gcc.c-torture/execute/complex-5.c + 3814081986b ./gcc/testsuite/gcc.c-torture/execute/complex-6.c 1079537985b ./gcc/testsuite/gcc.c-torture/execute/compndlit-1.c 4213843385b ./gcc/testsuite/gcc.c-torture/execute/conversion.c 1362123497b ./gcc/testsuite/gcc.c-torture/execute/cvt-1.c *************** *** 6262,6270 **** 3443893179b ./gcc/testsuite/gcc.c-torture/execute/loop-2b.c 869002341b ./gcc/testsuite/gcc.c-torture/execute/loop-2.c 153943550b ./gcc/testsuite/gcc.c-torture/execute/loop-2c.c - 2249811917b ./gcc/testsuite/gcc.c-torture/execute/loop-2c.x 720145550b ./gcc/testsuite/gcc.c-torture/execute/loop-2d.c - 2249811917b ./gcc/testsuite/gcc.c-torture/execute/loop-2d.x 2058046897b ./gcc/testsuite/gcc.c-torture/execute/loop-2e.c 2718531033b ./gcc/testsuite/gcc.c-torture/execute/loop-2e.x 1291794748b ./gcc/testsuite/gcc.c-torture/execute/loop-2f.c --- 6278,6284 ---- *************** *** 6729,6734 **** --- 6743,6753 ---- 4234050901b ./gcc/testsuite/gcc.dg/20020426-2.c 464722125b ./gcc/testsuite/gcc.dg/20020430-1.c 1745642748b ./gcc/testsuite/gcc.dg/20020503-1.c + 3667555097b ./gcc/testsuite/gcc.dg/20020517-1.c + 536325431b ./gcc/testsuite/gcc.dg/20020523-1.c + 1463174796b ./gcc/testsuite/gcc.dg/20020527-1.c + 2086765142b ./gcc/testsuite/gcc.dg/20020530-1.c + 1518490714b ./gcc/testsuite/gcc.dg/20020616-1.c 1577979025b ./gcc/testsuite/gcc.dg/920413-1.c 2176221389b ./gcc/testsuite/gcc.dg/940409-1.c 1567764883b ./gcc/testsuite/gcc.dg/940510-1.c *************** *** 7019,7024 **** --- 7038,7044 ---- 68499164b ./gcc/testsuite/gcc.dg/cpp/multiline.c 2266859121b ./gcc/testsuite/gcc.dg/cpp/paste10.c 4285709590b ./gcc/testsuite/gcc.dg/cpp/paste11.c + 3149837578b ./gcc/testsuite/gcc.dg/cpp/paste12.c 3165908728b ./gcc/testsuite/gcc.dg/cpp/paste1.c 1864172813b ./gcc/testsuite/gcc.dg/cpp/paste2.c 3026273649b ./gcc/testsuite/gcc.dg/cpp/paste3.c *************** *** 7283,7298 **** 3484455791b ./gcc/testsuite/gcc.dg/unused-2.c 865910481b ./gcc/testsuite/gcc.dg/unused-3.c 3706472995b ./gcc/testsuite/gcc.dg/va-arg-1.c 2427295047b ./gcc/testsuite/gcc.dg/vla-init-1.c 3993664995b ./gcc/testsuite/gcc.dg/wchar_t-1.c 943771070b ./gcc/testsuite/gcc.dg/Wconversion.c 2603701000b ./gcc/testsuite/gcc.dg/weak-1.c ! 845503470b ./gcc/testsuite/gcc.dg/weak-2.c ! 2706085588b ./gcc/testsuite/gcc.dg/weak-3.c ! 366214213b ./gcc/testsuite/gcc.dg/weak-4.c ! 2249990781b ./gcc/testsuite/gcc.dg/weak-5.c ! 3288640728b ./gcc/testsuite/gcc.dg/weak-6.c ! 448806115b ./gcc/testsuite/gcc.dg/weak-7.c 4149249905b ./gcc/testsuite/gcc.dg/wint_t-1.c 3364645726b ./gcc/testsuite/gcc.dg/Wlarger-than.c 3791055151b ./gcc/testsuite/gcc.dg/Wparentheses-1.c --- 7303,7320 ---- 3484455791b ./gcc/testsuite/gcc.dg/unused-2.c 865910481b ./gcc/testsuite/gcc.dg/unused-3.c 3706472995b ./gcc/testsuite/gcc.dg/va-arg-1.c + 2932877249b ./gcc/testsuite/gcc.dg/verbose-asm.c 2427295047b ./gcc/testsuite/gcc.dg/vla-init-1.c 3993664995b ./gcc/testsuite/gcc.dg/wchar_t-1.c 943771070b ./gcc/testsuite/gcc.dg/Wconversion.c 2603701000b ./gcc/testsuite/gcc.dg/weak-1.c ! 2107795305b ./gcc/testsuite/gcc.dg/weak-2.c ! 2916280352b ./gcc/testsuite/gcc.dg/weak-3.c ! 190723555b ./gcc/testsuite/gcc.dg/weak-4.c ! 176100891b ./gcc/testsuite/gcc.dg/weak-5.c ! 1022686552b ./gcc/testsuite/gcc.dg/weak-6.c ! 789089149b ./gcc/testsuite/gcc.dg/weak-7.c ! 2849791540b ./gcc/testsuite/gcc.dg/weak-9.c 4149249905b ./gcc/testsuite/gcc.dg/wint_t-1.c 3364645726b ./gcc/testsuite/gcc.dg/Wlarger-than.c 3791055151b ./gcc/testsuite/gcc.dg/Wparentheses-1.c *************** *** 7314,7319 **** --- 7336,7342 ---- 1007453610b ./gcc/testsuite/gcc.dg/wtr-union-init-1.c 1817815277b ./gcc/testsuite/gcc.dg/wtr-union-init-2.c 3147738885b ./gcc/testsuite/gcc.dg/wtr-union-init-3.c + 2078992029b ./gcc/testsuite/gcc.dg/Wunknownprag.c 1674197654b ./gcc/testsuite/gcc.dg/Wunreachable-1.c 3581949676b ./gcc/testsuite/gcc.dg/Wunreachable-2.c 1769759078b ./gcc/testsuite/gcc.misc-tests/acker1.c *************** *** 7392,7397 **** --- 7415,7422 ---- 4057306503b ./gcc/testsuite/g++.dg/debug/debug3.C 4063448821b ./gcc/testsuite/g++.dg/debug/debug4.C 2101587412b ./gcc/testsuite/g++.dg/debug/debug5.C + 2910185760b ./gcc/testsuite/g++.dg/debug/debug6.C + 2476891002b ./gcc/testsuite/g++.dg/debug/debug7.C 1949293295b ./gcc/testsuite/g++.dg/debug/debug.exp 1865154101b ./gcc/testsuite/g++.dg/debug/trivial.C 2006018373b ./gcc/testsuite/g++.dg/dg.exp *************** *** 7431,7436 **** --- 7456,7463 ---- 3799679971b ./gcc/testsuite/g++.dg/inherit/using1.C 3967911027b ./gcc/testsuite/g++.dg/init/array1.C 3157994593b ./gcc/testsuite/g++.dg/init/array2.C + 2628461993b ./gcc/testsuite/g++.dg/init/array4.C + 267149531b ./gcc/testsuite/g++.dg/init/array5.C 486682064b ./gcc/testsuite/g++.dg/init/copy1.C 1741245578b ./gcc/testsuite/g++.dg/init/dtor1.C 486760656b ./gcc/testsuite/g++.dg/init/elide1.C *************** *** 7439,7457 **** --- 7466,7489 ---- 3275947242b ./gcc/testsuite/g++.dg/init/init-ref2.C 1678560039b ./gcc/testsuite/g++.dg/init/new1.C 4033502091b ./gcc/testsuite/g++.dg/init/new2.C + 1015198831b ./gcc/testsuite/g++.dg/init/pm1.C 684033142b ./gcc/testsuite/g++.dg/lookup/struct1.C 3358174935b ./gcc/testsuite/g++.dg/lookup/using2.C 3384907788b ./gcc/testsuite/g++.dg/lookup/using.C 421486798b ./gcc/testsuite/g++.dg/opt/alias1.C 3198583204b ./gcc/testsuite/g++.dg/opt/alias2.C 1878509122b ./gcc/testsuite/g++.dg/opt/anonunion1.C + 845836056b ./gcc/testsuite/g++.dg/opt/asm1.C 1484527337b ./gcc/testsuite/g++.dg/opt/cleanup1.C 3120356664b ./gcc/testsuite/g++.dg/opt/conj1.C 4054451892b ./gcc/testsuite/g++.dg/opt/conj2.C 2033783153b ./gcc/testsuite/g++.dg/opt/const1.C + 2113737922b ./gcc/testsuite/g++.dg/opt/cse1.C + 1501006084b ./gcc/testsuite/g++.dg/opt/cse2.C 1685294627b ./gcc/testsuite/g++.dg/opt/dtor1.C 3770486737b ./gcc/testsuite/g++.dg/opt/inline1.C 2869206713b ./gcc/testsuite/g++.dg/opt/inline2.C + 3194356521b ./gcc/testsuite/g++.dg/opt/inline3.C 3146403914b ./gcc/testsuite/g++.dg/opt/longbranch1.C 2026702440b ./gcc/testsuite/g++.dg/opt/mmx1.C 2857034604b ./gcc/testsuite/g++.dg/opt/nrv1.C *************** *** 7461,7466 **** --- 7493,7500 ---- 571185401b ./gcc/testsuite/g++.dg/opt/reg-stack.C 1124740865b ./gcc/testsuite/g++.dg/opt/static1.C 684782459b ./gcc/testsuite/g++.dg/opt/static2.C + 4154721541b ./gcc/testsuite/g++.dg/opt/thunk1.C + 4029726050b ./gcc/testsuite/g++.dg/opt/vt1.C 135165742b ./gcc/testsuite/g++.dg/opt/vtgc1.C 686527483b ./gcc/testsuite/g++.dg/other/access1.C 3285252373b ./gcc/testsuite/g++.dg/other/anon2.C *************** *** 7494,7502 **** --- 7528,7538 ---- 873911472b ./gcc/testsuite/g++.dg/other/stdbool-if.C 492684594b ./gcc/testsuite/g++.dg/overload/builtin1.C 3775778165b ./gcc/testsuite/g++.dg/overload/cond1.C + 1110519878b ./gcc/testsuite/g++.dg/overload/error1.C 3588815363b ./gcc/testsuite/g++.dg/overload/pmf1.C 2166944080b ./gcc/testsuite/g++.dg/parse/angle-bracket.C 3621016079b ./gcc/testsuite/g++.dg/parse/attr1.C + 1601717576b ./gcc/testsuite/g++.dg/parse/named_ops.C 4289007099b ./gcc/testsuite/g++.dg/parse/saved1.C 1402579554b ./gcc/testsuite/g++.dg/parse/stmtexpr1.C 2804352074b ./gcc/testsuite/g++.dg/parse/stmtexpr2.C *************** *** 7521,7529 **** --- 7557,7567 ---- 587931705b ./gcc/testsuite/g++.dg/template/friend4.C 3560434139b ./gcc/testsuite/g++.dg/template/friend5.C 590954347b ./gcc/testsuite/g++.dg/template/friend6.C + 3646815886b ./gcc/testsuite/g++.dg/template/friend7.C 3595433718b ./gcc/testsuite/g++.dg/template/friend.C 438837461b ./gcc/testsuite/g++.dg/template/inherit.C 2872339928b ./gcc/testsuite/g++.dg/template/init-list.C + 2182099475b ./gcc/testsuite/g++.dg/template/instantiate1.C 416617778b ./gcc/testsuite/g++.dg/template/local1.C 1449269044b ./gcc/testsuite/g++.dg/template/member.C 2073430043b ./gcc/testsuite/g++.dg/template/ntp1.C *************** *** 7552,7566 **** 1704860378b ./gcc/testsuite/g++.dg/template/qualttp8.C 700938418b ./gcc/testsuite/g++.dg/template/qualttp9.C 4163290563b ./gcc/testsuite/g++.dg/template/recurse.C 2914549620b ./gcc/testsuite/g++.dg/template/spec1.C 2378483146b ./gcc/testsuite/g++.dg/template/spec2.C 4241261648b ./gcc/testsuite/g++.dg/template/ttp1.C 2877667245b ./gcc/testsuite/g++.dg/template/ttp2.C 764874225b ./gcc/testsuite/g++.dg/template/ttp3.C 4098822025b ./gcc/testsuite/g++.dg/template/type1.C 1430073082b ./gcc/testsuite/g++.dg/template/typedef1.C 3583659165b ./gcc/testsuite/g++.dg/template/typename1.C ! 1057553535b ./gcc/testsuite/g++.dg/template/typename2.C 3595370582b ./gcc/testsuite/g++.dg/template/unify1.C 3639225580b ./gcc/testsuite/g++.dg/template/unify2.C 4266445185b ./gcc/testsuite/g++.dg/template/unify3.C --- 7590,7606 ---- 1704860378b ./gcc/testsuite/g++.dg/template/qualttp8.C 700938418b ./gcc/testsuite/g++.dg/template/qualttp9.C 4163290563b ./gcc/testsuite/g++.dg/template/recurse.C + 1028564434b ./gcc/testsuite/g++.dg/template/sizeof1.C 2914549620b ./gcc/testsuite/g++.dg/template/spec1.C 2378483146b ./gcc/testsuite/g++.dg/template/spec2.C 4241261648b ./gcc/testsuite/g++.dg/template/ttp1.C 2877667245b ./gcc/testsuite/g++.dg/template/ttp2.C 764874225b ./gcc/testsuite/g++.dg/template/ttp3.C + 212083769b ./gcc/testsuite/g++.dg/template/ttp4.C 4098822025b ./gcc/testsuite/g++.dg/template/type1.C 1430073082b ./gcc/testsuite/g++.dg/template/typedef1.C 3583659165b ./gcc/testsuite/g++.dg/template/typename1.C ! 566916814b ./gcc/testsuite/g++.dg/template/typename2.C 3595370582b ./gcc/testsuite/g++.dg/template/unify1.C 3639225580b ./gcc/testsuite/g++.dg/template/unify2.C 4266445185b ./gcc/testsuite/g++.dg/template/unify3.C *************** *** 9385,9391 **** 3099602163b ./gcc/testsuite/g++.old-deja/g++.ns/using7.C 396388537b ./gcc/testsuite/g++.old-deja/g++.ns/using8.C 536814910b ./gcc/testsuite/g++.old-deja/g++.ns/using9.C ! 396945284b ./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 3639944207b ./gcc/testsuite/g++.old-deja/g++.oliva/delete2.C --- 9425,9431 ---- 3099602163b ./gcc/testsuite/g++.old-deja/g++.ns/using7.C 396388537b ./gcc/testsuite/g++.old-deja/g++.ns/using8.C 536814910b ./gcc/testsuite/g++.old-deja/g++.ns/using9.C ! 854562589b ./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 3639944207b ./gcc/testsuite/g++.old-deja/g++.oliva/delete2.C *************** *** 10153,10159 **** 2468743553b ./gcc/testsuite/g++.old-deja/g++.pt/explicit68.C 232590105b ./gcc/testsuite/g++.old-deja/g++.pt/explicit69.C 1140210865b ./gcc/testsuite/g++.old-deja/g++.pt/explicit6.C ! 161377969b ./gcc/testsuite/g++.old-deja/g++.pt/explicit70.C 734055097b ./gcc/testsuite/g++.old-deja/g++.pt/explicit71.C 3681260211b ./gcc/testsuite/g++.old-deja/g++.pt/explicit72.C 2315525758b ./gcc/testsuite/g++.old-deja/g++.pt/explicit73.C --- 10193,10199 ---- 2468743553b ./gcc/testsuite/g++.old-deja/g++.pt/explicit68.C 232590105b ./gcc/testsuite/g++.old-deja/g++.pt/explicit69.C 1140210865b ./gcc/testsuite/g++.old-deja/g++.pt/explicit6.C ! 598155740b ./gcc/testsuite/g++.old-deja/g++.pt/explicit70.C 734055097b ./gcc/testsuite/g++.old-deja/g++.pt/explicit71.C 3681260211b ./gcc/testsuite/g++.old-deja/g++.pt/explicit72.C 2315525758b ./gcc/testsuite/g++.old-deja/g++.pt/explicit73.C *************** *** 10476,10482 **** 299326321b ./gcc/testsuite/g++.old-deja/g++.pt/spec16.C 411261988b ./gcc/testsuite/g++.old-deja/g++.pt/spec17.C 4048825100b ./gcc/testsuite/g++.old-deja/g++.pt/spec18.C ! 3877582914b ./gcc/testsuite/g++.old-deja/g++.pt/spec19.C 991382684b ./gcc/testsuite/g++.old-deja/g++.pt/spec1.C 2791297069b ./gcc/testsuite/g++.old-deja/g++.pt/spec20.C 3113620134b ./gcc/testsuite/g++.old-deja/g++.pt/spec21.C --- 10516,10522 ---- 299326321b ./gcc/testsuite/g++.old-deja/g++.pt/spec16.C 411261988b ./gcc/testsuite/g++.old-deja/g++.pt/spec17.C 4048825100b ./gcc/testsuite/g++.old-deja/g++.pt/spec18.C ! 3497658316b ./gcc/testsuite/g++.old-deja/g++.pt/spec19.C 991382684b ./gcc/testsuite/g++.old-deja/g++.pt/spec1.C 2791297069b ./gcc/testsuite/g++.old-deja/g++.pt/spec20.C 3113620134b ./gcc/testsuite/g++.old-deja/g++.pt/spec21.C *************** *** 10871,10877 **** 3316559321b ./gcc/testsuite/objc.dg/class-1.m 3678679752b ./gcc/testsuite/objc.dg/class-2.m 1411503086b ./gcc/testsuite/objc.dg/const-str-1.m ! 1342714795b ./gcc/testsuite/objc.dg/const-str-2.m 1541394849b ./gcc/testsuite/objc.dg/dg.exp 1505392257b ./gcc/testsuite/objc.dg/fwd-proto-1.m 2449513844b ./gcc/testsuite/objc.dg/id-1.m --- 10911,10917 ---- 3316559321b ./gcc/testsuite/objc.dg/class-1.m 3678679752b ./gcc/testsuite/objc.dg/class-2.m 1411503086b ./gcc/testsuite/objc.dg/const-str-1.m ! 3977573176b ./gcc/testsuite/objc.dg/const-str-2.m 1541394849b ./gcc/testsuite/objc.dg/dg.exp 1505392257b ./gcc/testsuite/objc.dg/fwd-proto-1.m 2449513844b ./gcc/testsuite/objc.dg/id-1.m *************** *** 10979,10989 **** 2559007517b ./gcc/timevar.def 2115869626b ./gcc/timevar.h 2335446483b ./gcc/tlink.c ! 175975850b ./gcc/toplev.c 1100253771b ./gcc/toplev.h 2851581967b ./gcc/tradcif.c 840149782b ./gcc/tradcif.y ! 1783803443b ./gcc/tradcpp.c 133942480b ./gcc/tradcpp.h 816276340b ./gcc/tree.c 1914541060b ./gcc/tree.def --- 11019,11029 ---- 2559007517b ./gcc/timevar.def 2115869626b ./gcc/timevar.h 2335446483b ./gcc/tlink.c ! 4150917512b ./gcc/toplev.c 1100253771b ./gcc/toplev.h 2851581967b ./gcc/tradcif.c 840149782b ./gcc/tradcif.y ! 2891356052b ./gcc/tradcpp.c 133942480b ./gcc/tradcpp.h 816276340b ./gcc/tree.c 1914541060b ./gcc/tree.def *************** *** 10994,11000 **** 2000795530b ./gcc/tree-inline.h 2106315745b ./gcc/tsystem.h 4139263293b ./gcc/typeclass.h ! 3460417697b ./gcc/unroll.c 3994883910b ./gcc/unwind-dw2.c 939184029b ./gcc/unwind-dw2-fde.c 2451297709b ./gcc/unwind-dw2-fde-glibc.c --- 11034,11040 ---- 2000795530b ./gcc/tree-inline.h 2106315745b ./gcc/tsystem.h 4139263293b ./gcc/typeclass.h ! 539416829b ./gcc/unroll.c 3994883910b ./gcc/unwind-dw2.c 939184029b ./gcc/unwind-dw2-fde.c 2451297709b ./gcc/unwind-dw2-fde-glibc.c *************** *** 11003,11012 **** 1788741054b ./gcc/unwind.inc 1733200042b ./gcc/unwind-pe.h 3015631845b ./gcc/unwind-sjlj.c ! 1633260393b ./gcc/varasm.c 1377429075b ./gcc/varray.c 251576980b ./gcc/varray.h ! 1240332072b ./gcc/version.c 835289284b ./gcc/version.h 1602668013b ./gcc/vmsdbg.h 4159431942b ./gcc/vmsdbgout.c --- 11043,11052 ---- 1788741054b ./gcc/unwind.inc 1733200042b ./gcc/unwind-pe.h 3015631845b ./gcc/unwind-sjlj.c ! 3691961273b ./gcc/varasm.c 1377429075b ./gcc/varray.c 251576980b ./gcc/varray.h ! 1055956195b ./gcc/version.c 835289284b ./gcc/version.h 1602668013b ./gcc/vmsdbg.h 4159431942b ./gcc/vmsdbgout.c *************** *** 11015,11021 **** 156832288b ./GNATS 2219513221b ./gnats.html 218913669b ./include/ansidecl.h ! 501501100b ./include/ChangeLog 2171125041b ./include/COPYING 3472518673b ./include/demangle.h 524172850b ./include/dyn-string.h --- 11055,11061 ---- 156832288b ./GNATS 2219513221b ./gnats.html 218913669b ./include/ansidecl.h ! 771537889b ./include/ChangeLog 2171125041b ./include/COPYING 3472518673b ./include/demangle.h 524172850b ./include/dyn-string.h *************** *** 11036,11058 **** 1386762946b ./include/ternary.h 1261882580b ./include/xregex2.h 1151436348b ./include/xregex.h ! 3141216929b ./INSTALL/binaries.html ! 977917286b ./INSTALL/build.html ! 1105563578b ./INSTALL/configure.html ! 478604867b ./INSTALL/download.html ! 2210419938b ./INSTALL/finalinstall.html 2173681035b ./INSTALL/gfdl.html ! 2452615433b ./INSTALL/index.html 353693005b ./INSTALL/old.html 2229468985b ./INSTALL/README 656627656b ./install-sh ! 1163581470b ./INSTALL/specific.html ! 3807738351b ./INSTALL/test.html ! 2475843866b ./libf2c/aclocal.m4 ! 1600761915b ./libf2c/ChangeLog 1973941211b ./libf2c/changes.netlib ! 1856804015b ./libf2c/configure ! 444707888b ./libf2c/configure.in 2487502900b ./libf2c/disclaimer.netlib 332556269b ./libf2c/f2cext.c 259100451b ./libf2c/f2c.h --- 11076,11098 ---- 1386762946b ./include/ternary.h 1261882580b ./include/xregex2.h 1151436348b ./include/xregex.h ! 819645392b ./INSTALL/binaries.html ! 755060523b ./INSTALL/build.html ! 3316367722b ./INSTALL/configure.html ! 1715600552b ./INSTALL/download.html ! 1421457932b ./INSTALL/finalinstall.html 2173681035b ./INSTALL/gfdl.html ! 4098993455b ./INSTALL/index.html 353693005b ./INSTALL/old.html 2229468985b ./INSTALL/README 656627656b ./install-sh ! 3928060040b ./INSTALL/specific.html ! 1066097400b ./INSTALL/test.html ! 1714952917b ./libf2c/aclocal.m4 ! 3073982993b ./libf2c/ChangeLog 1973941211b ./libf2c/changes.netlib ! 3975721411b ./libf2c/configure ! 1477197116b ./libf2c/configure.in 2487502900b ./libf2c/disclaimer.netlib 332556269b ./libf2c/f2cext.c 259100451b ./libf2c/f2c.h *************** *** 11182,11188 **** 2593705873b ./libf2c/libF77/s_rnge.c 3862265148b ./libf2c/libF77/s_stop.c 113341864b ./libf2c/libF77/system_.c ! 3524728642b ./libf2c/libF77/Version.c 1937893648b ./libf2c/libF77/z_abs.c 2431309812b ./libf2c/libF77/z_cos.c 4069203393b ./libf2c/libF77/z_div.c --- 11222,11228 ---- 2593705873b ./libf2c/libF77/s_rnge.c 3862265148b ./libf2c/libF77/s_stop.c 113341864b ./libf2c/libF77/system_.c ! 310586301b ./libf2c/libF77/Version.c 1937893648b ./libf2c/libF77/z_abs.c 2431309812b ./libf2c/libF77/z_cos.c 4069203393b ./libf2c/libF77/z_div.c *************** *** 11229,11235 **** 4028809578b ./libf2c/libI77/typesize.c 2487538082b ./libf2c/libI77/uio.c 1670879675b ./libf2c/libI77/util.c ! 3831398902b ./libf2c/libI77/Version.c 3746777128b ./libf2c/libI77/wref.c 1966568786b ./libf2c/libI77/wrtfmt.c 3540661106b ./libf2c/libI77/wsfe.c --- 11269,11275 ---- 4028809578b ./libf2c/libI77/typesize.c 2487538082b ./libf2c/libI77/uio.c 1670879675b ./libf2c/libI77/util.c ! 2535921511b ./libf2c/libI77/Version.c 3746777128b ./libf2c/libI77/wref.c 1966568786b ./libf2c/libI77/wrtfmt.c 3540661106b ./libf2c/libI77/wsfe.c *************** *** 11297,11303 **** 791266987b ./libf2c/libU77/u77-test.f 387772730b ./libf2c/libU77/umask_.c 1230596654b ./libf2c/libU77/unlink_.c ! 2261923763b ./libf2c/libU77/Version.c 2702299573b ./libf2c/libU77/vxtidate_.c 3987376609b ./libf2c/libU77/vxttime_.c 2003108059b ./libf2c/Makefile.in --- 11337,11343 ---- 791266987b ./libf2c/libU77/u77-test.f 387772730b ./libf2c/libU77/umask_.c 1230596654b ./libf2c/libU77/unlink_.c ! 652107390b ./libf2c/libU77/Version.c 2702299573b ./libf2c/libU77/vxtidate_.c 3987376609b ./libf2c/libU77/vxttime_.c 2003108059b ./libf2c/Makefile.in *************** *** 11308,11314 **** 1812706554b ./libffi/acconfig.h 2067133813b ./libffi/acinclude.m4 724319761b ./libffi/aclocal.m4 ! 586046036b ./libffi/ChangeLog 2412263940b ./libffi/ChangeLog.libgcj 1481682558b ./libffi/ChangeLog.v1 3495452477b ./libffi/configure --- 11348,11354 ---- 1812706554b ./libffi/acconfig.h 2067133813b ./libffi/acinclude.m4 724319761b ./libffi/aclocal.m4 ! 1159962026b ./libffi/ChangeLog 2412263940b ./libffi/ChangeLog.libgcj 1481682558b ./libffi/ChangeLog.v1 3495452477b ./libffi/configure *************** *** 11353,11359 **** 1526185028b ./libffi/src/sparc/v8.S 2310583994b ./libffi/src/sparc/v9.S 518804215b ./libffi/src/types.c ! 3516634738b ./libffi/src/x86/ffi.c 760488121b ./libffi/src/x86/sysv.S 478025840b ./libffi/src/x86/win32.S 216805921b ./libffi/stamp-h.in --- 11393,11399 ---- 1526185028b ./libffi/src/sparc/v8.S 2310583994b ./libffi/src/sparc/v9.S 518804215b ./libffi/src/types.c ! 788399349b ./libffi/src/x86/ffi.c 760488121b ./libffi/src/x86/sysv.S 478025840b ./libffi/src/x86/win32.S 216805921b ./libffi/stamp-h.in *************** *** 11368,11374 **** 1033916047b ./libiberty/bsearch.c 2389959529b ./libiberty/bzero.c 1591293922b ./libiberty/calloc.c ! 1976404269b ./libiberty/ChangeLog 2264262326b ./libiberty/choose-temp.c 2557767520b ./libiberty/clock.c 3170582338b ./libiberty/concat.c --- 11408,11414 ---- 1033916047b ./libiberty/bsearch.c 2389959529b ./libiberty/bzero.c 1591293922b ./libiberty/calloc.c ! 947243594b ./libiberty/ChangeLog 2264262326b ./libiberty/choose-temp.c 2557767520b ./libiberty/clock.c 3170582338b ./libiberty/concat.c *************** *** 11380,11391 **** 2904567379b ./libiberty/config/mh-openedition 2131807358b ./libiberty/config/mh-windows 4294237366b ./libiberty/config.table ! 3216189239b ./libiberty/configure ! 3470508651b ./libiberty/configure.in 508743035b ./libiberty/COPYING.LIB 2478885430b ./libiberty/copying-lib.texi 3329761531b ./libiberty/copysign.c ! 2003155661b ./libiberty/cp-demangle.c 2109007668b ./libiberty/cplus-dem.c 602306638b ./libiberty/_doprnt.c 3785501494b ./libiberty/dyn-string.c --- 11420,11431 ---- 2904567379b ./libiberty/config/mh-openedition 2131807358b ./libiberty/config/mh-windows 4294237366b ./libiberty/config.table ! 4091270154b ./libiberty/configure ! 1024440091b ./libiberty/configure.in 508743035b ./libiberty/COPYING.LIB 2478885430b ./libiberty/copying-lib.texi 3329761531b ./libiberty/copysign.c ! 2979121734b ./libiberty/cp-demangle.c 2109007668b ./libiberty/cplus-dem.c 602306638b ./libiberty/_doprnt.c 3785501494b ./libiberty/dyn-string.c *************** *** 11476,11486 **** 3506621156b ./libjava/aclocal.m4 3784840223b ./libjava/addr2name.awk 2317653915b ./libjava/boehm.cc ! 1039659153b ./libjava/ChangeLog 3473562392b ./libjava/ChangeLog-1999 2385951174b ./libjava/ChangeLog-2001 2118024035b ./libjava/configure ! 1635457542b ./libjava/configure.host 3463448501b ./libjava/configure.in 2171125041b ./libjava/COPYING 3097747965b ./libjava/defineclass.cc --- 11516,11526 ---- 3506621156b ./libjava/aclocal.m4 3784840223b ./libjava/addr2name.awk 2317653915b ./libjava/boehm.cc ! 1723467643b ./libjava/ChangeLog 3473562392b ./libjava/ChangeLog-1999 2385951174b ./libjava/ChangeLog-2001 2118024035b ./libjava/configure ! 2328290871b ./libjava/configure.host 3463448501b ./libjava/configure.in 2171125041b ./libjava/COPYING 3097747965b ./libjava/defineclass.cc *************** *** 12132,12138 **** 1977393201b ./libjava/java/io/LineNumberReader.java 1763600901b ./libjava/java/io/natFileDescriptorEcos.cc 50298342b ./libjava/java/io/natFileDescriptorPosix.cc ! 553363467b ./libjava/java/io/natFileDescriptorWin32.cc 438765382b ./libjava/java/io/natFilePosix.cc 4215574494b ./libjava/java/io/natFileWin32.cc 2701462559b ./libjava/java/io/natObjectInputStream.cc --- 12172,12178 ---- 1977393201b ./libjava/java/io/LineNumberReader.java 1763600901b ./libjava/java/io/natFileDescriptorEcos.cc 50298342b ./libjava/java/io/natFileDescriptorPosix.cc ! 645547190b ./libjava/java/io/natFileDescriptorWin32.cc 438765382b ./libjava/java/io/natFilePosix.cc 4215574494b ./libjava/java/io/natFileWin32.cc 2701462559b ./libjava/java/io/natObjectInputStream.cc *************** *** 12180,12186 **** 1373410447b ./libjava/java/lang/ArrayStoreException.java 2983258460b ./libjava/java/lang/Boolean.java 4251066809b ./libjava/java/lang/Byte.java ! 3669872961b ./libjava/java/lang/Character.java 3632753519b ./libjava/java/lang/CharSequence.java 3914593902b ./libjava/java/lang/ClassCastException.java 2018649547b ./libjava/java/lang/ClassCircularityError.java --- 12220,12226 ---- 1373410447b ./libjava/java/lang/ArrayStoreException.java 2983258460b ./libjava/java/lang/Boolean.java 4251066809b ./libjava/java/lang/Byte.java ! 3322445246b ./libjava/java/lang/Character.java 3632753519b ./libjava/java/lang/CharSequence.java 3914593902b ./libjava/java/lang/ClassCastException.java 2018649547b ./libjava/java/lang/ClassCircularityError.java *************** *** 12802,12808 **** 464053222b ./libjava/libltdl/acconfig.h 1486261890b ./libjava/libltdl/acinclude.m4 2748542911b ./libjava/libltdl/aclocal.m4 ! 260538191b ./libjava/libltdl/ChangeLog 3229611250b ./libjava/libltdl/config.h.in 3663840013b ./libjava/libltdl/configure 586017012b ./libjava/libltdl/configure.in --- 12842,12848 ---- 464053222b ./libjava/libltdl/acconfig.h 1486261890b ./libjava/libltdl/acinclude.m4 2748542911b ./libjava/libltdl/aclocal.m4 ! 1902996807b ./libjava/libltdl/ChangeLog 3229611250b ./libjava/libltdl/config.h.in 3663840013b ./libjava/libltdl/configure 586017012b ./libjava/libltdl/configure.in *************** *** 12815,12822 **** 1322928877b ./libjava/libltdl/README 216805921b ./libjava/libltdl/stamp-h.in 4225681790b ./libjava/libtool-version ! 1255585512b ./libjava/Makefile.am ! 1553105382b ./libjava/Makefile.in 1775785992b ./libjava/mauve-libgcj 3598737829b ./libjava/name-finder.cc 4049677327b ./libjava/NEWS --- 12855,12862 ---- 1322928877b ./libjava/libltdl/README 216805921b ./libjava/libltdl/stamp-h.in 4225681790b ./libjava/libtool-version ! 83234188b ./libjava/Makefile.am ! 2966653638b ./libjava/Makefile.in 1775785992b ./libjava/mauve-libgcj 3598737829b ./libjava/name-finder.cc 4049677327b ./libjava/NEWS *************** *** 12899,12905 **** 2487590179b ./libjava/sysdep/ia64/locks.h 3446737173b ./libjava/sysdep/powerpc/locks.h 2903495760b ./libjava/sysdep/sparc/locks.h ! 1976031315b ./libjava/testsuite/ChangeLog 1230501773b ./libjava/testsuite/config/default.exp 3718926011b ./libjava/testsuite/libjava.compile/abstr.java 2888415448b ./libjava/testsuite/libjava.compile/abstr.xfail --- 12939,12945 ---- 2487590179b ./libjava/sysdep/ia64/locks.h 3446737173b ./libjava/sysdep/powerpc/locks.h 2903495760b ./libjava/sysdep/sparc/locks.h ! 3675364415b ./libjava/testsuite/ChangeLog 1230501773b ./libjava/testsuite/config/default.exp 3718926011b ./libjava/testsuite/libjava.compile/abstr.java 2888415448b ./libjava/testsuite/libjava.compile/abstr.xfail *************** *** 13314,13333 **** 4013205125b ./libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java 1740456441b ./libjava/testsuite/libjava.mauve/mauve.exp 2293687712b ./libjava/testsuite/libjava.mauve/xfails ! 3826628758b ./libjava/testsuite/lib/libjava.exp 3806425466b ./libjava/testsuite/Makefile.am 1096421437b ./libjava/testsuite/Makefile.in 3410290178b ./libjava/THANKS 3417667916b ./libjava/verify.cc 916359044b ./libjava/win32.cc 3459150705b ./libjava/win32-threads.cc ! 423229196b ./libobjc/aclocal.m4 605856870b ./libobjc/archive.c ! 1541143020b ./libobjc/ChangeLog 3477231866b ./libobjc/class.c 1748737547b ./libobjc/config.h.in ! 3567730840b ./libobjc/configure ! 420004746b ./libobjc/configure.in 506544385b ./libobjc/encoding.c 726164266b ./libobjc/gc.c 1761713542b ./libobjc/hash.c --- 13354,13373 ---- 4013205125b ./libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java 1740456441b ./libjava/testsuite/libjava.mauve/mauve.exp 2293687712b ./libjava/testsuite/libjava.mauve/xfails ! 4234714160b ./libjava/testsuite/lib/libjava.exp 3806425466b ./libjava/testsuite/Makefile.am 1096421437b ./libjava/testsuite/Makefile.in 3410290178b ./libjava/THANKS 3417667916b ./libjava/verify.cc 916359044b ./libjava/win32.cc 3459150705b ./libjava/win32-threads.cc ! 202134358b ./libobjc/aclocal.m4 605856870b ./libobjc/archive.c ! 4217965236b ./libobjc/ChangeLog 3477231866b ./libobjc/class.c 1748737547b ./libobjc/config.h.in ! 3049756062b ./libobjc/configure ! 3168606688b ./libobjc/configure.in 506544385b ./libobjc/encoding.c 726164266b ./libobjc/gc.c 1761713542b ./libobjc/hash.c *************** *** 13377,13385 **** 2005277748b ./libobjc/thr-vxworks.c 2963027857b ./libobjc/thr-win32.c 1220048278b ./libstdc++-v3/acconfig.h ! 1666857394b ./libstdc++-v3/acinclude.m4 ! 3334413456b ./libstdc++-v3/aclocal.m4 ! 3023832819b ./libstdc++-v3/ChangeLog 1996982572b ./libstdc++-v3/ChangeLog-2000 3665233589b ./libstdc++-v3/ChangeLog-2001 3799164404b ./libstdc++-v3/config/cpu/alpha/bits/atomicity.h --- 13417,13425 ---- 2005277748b ./libobjc/thr-vxworks.c 2963027857b ./libobjc/thr-win32.c 1220048278b ./libstdc++-v3/acconfig.h ! 3510479713b ./libstdc++-v3/acinclude.m4 ! 1802923025b ./libstdc++-v3/aclocal.m4 ! 3217100378b ./libstdc++-v3/ChangeLog 1996982572b ./libstdc++-v3/ChangeLog-2000 3665233589b ./libstdc++-v3/ChangeLog-2001 3799164404b ./libstdc++-v3/config/cpu/alpha/bits/atomicity.h *************** *** 13395,13401 **** 623210587b ./libstdc++-v3/config/cpu/i486/bits/atomicity.h 193432505b ./libstdc++-v3/config/cpu/ia64/bits/atomicity.h 1770651251b ./libstdc++-v3/config/cpu/ia64/bits/cpu_limits.h ! 3423219675b ./libstdc++-v3/config/cpu/m68k/bits/atomicity.h 3967527574b ./libstdc++-v3/config/cpu/m68k/bits/cpu_limits.h 1806424498b ./libstdc++-v3/config/cpu/mips/bits/atomicity.h 736712600b ./libstdc++-v3/config/cpu/mmix/bits/cpu_limits.h --- 13435,13441 ---- 623210587b ./libstdc++-v3/config/cpu/i486/bits/atomicity.h 193432505b ./libstdc++-v3/config/cpu/ia64/bits/atomicity.h 1770651251b ./libstdc++-v3/config/cpu/ia64/bits/cpu_limits.h ! 1265572143b ./libstdc++-v3/config/cpu/m68k/bits/atomicity.h 3967527574b ./libstdc++-v3/config/cpu/m68k/bits/cpu_limits.h 1806424498b ./libstdc++-v3/config/cpu/mips/bits/atomicity.h 736712600b ./libstdc++-v3/config/cpu/mmix/bits/cpu_limits.h *************** *** 13407,13413 **** 1609193065b ./libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h 785222978b ./libstdc++-v3/config/cpu/x86-64/bits/atomicity.h 4180289496b ./libstdc++-v3/config/cpu/x86-64/bits/cpu_limits.h ! 4083508390b ./libstdc++-v3/config.h.in 1453199454b ./libstdc++-v3/config/io/basic_file_libio.cc 3157152478b ./libstdc++-v3/config/io/basic_file_libio.h 3725479456b ./libstdc++-v3/config/io/basic_file_stdio.cc --- 13447,13453 ---- 1609193065b ./libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h 785222978b ./libstdc++-v3/config/cpu/x86-64/bits/atomicity.h 4180289496b ./libstdc++-v3/config/cpu/x86-64/bits/cpu_limits.h ! 3694036271b ./libstdc++-v3/config.h.in 1453199454b ./libstdc++-v3/config/io/basic_file_libio.cc 3157152478b ./libstdc++-v3/config/io/basic_file_libio.h 3725479456b ./libstdc++-v3/config/io/basic_file_stdio.cc *************** *** 13417,13450 **** 3948747720b ./libstdc++-v3/config/io/c_io_stdio.h 1615839786b ./libstdc++-v3/config/linker-map.dummy 1079592523b ./libstdc++-v3/config/linker-map.gnu ! 1976229158b ./libstdc++-v3/config/locale/generic/c_locale.cc 785097262b ./libstdc++-v3/config/locale/generic/c_locale.h 2005861251b ./libstdc++-v3/config/locale/generic/codecvt_specializations.h 4228611347b ./libstdc++-v3/config/locale/generic/collate_members.cc ! 2230383066b ./libstdc++-v3/config/locale/generic/ctype_members.cc 3466940416b ./libstdc++-v3/config/locale/generic/messages_members.cc 2682213266b ./libstdc++-v3/config/locale/generic/messages_members.h 1672865747b ./libstdc++-v3/config/locale/generic/monetary_members.cc 650933917b ./libstdc++-v3/config/locale/generic/numeric_members.cc ! 2207293776b ./libstdc++-v3/config/locale/generic/time_members.cc 781005318b ./libstdc++-v3/config/locale/gnu/c_locale.cc 2998667708b ./libstdc++-v3/config/locale/gnu/c_locale.h 3774435712b ./libstdc++-v3/config/locale/gnu/collate_members.cc ! 3199191340b ./libstdc++-v3/config/locale/gnu/ctype_members.cc ! 1116649335b ./libstdc++-v3/config/locale/gnu/messages_members.cc ! 1560788565b ./libstdc++-v3/config/locale/gnu/messages_members.h 3506365458b ./libstdc++-v3/config/locale/gnu/monetary_members.cc 4180020740b ./libstdc++-v3/config/locale/gnu/numeric_members.cc ! 4055399754b ./libstdc++-v3/config/locale/gnu/time_members.cc 3232379868b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc 3136594064b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h ! 379849651b ./libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 3490831019b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc 488667815b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h 4256387970b ./libstdc++-v3/config/os/aix/bits/atomicity.h 2669974896b ./libstdc++-v3/config/os/aix/bits/ctype_base.h 3165823414b ./libstdc++-v3/config/os/aix/bits/ctype_inline.h ! 812293069b ./libstdc++-v3/config/os/aix/bits/ctype_noninline.h 1501649315b ./libstdc++-v3/config/os/aix/bits/os_defines.h 537966674b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_base.h 2331573625b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_inline.h --- 13457,13490 ---- 3948747720b ./libstdc++-v3/config/io/c_io_stdio.h 1615839786b ./libstdc++-v3/config/linker-map.dummy 1079592523b ./libstdc++-v3/config/linker-map.gnu ! 773330578b ./libstdc++-v3/config/locale/generic/c_locale.cc 785097262b ./libstdc++-v3/config/locale/generic/c_locale.h 2005861251b ./libstdc++-v3/config/locale/generic/codecvt_specializations.h 4228611347b ./libstdc++-v3/config/locale/generic/collate_members.cc ! 1221593163b ./libstdc++-v3/config/locale/generic/ctype_members.cc 3466940416b ./libstdc++-v3/config/locale/generic/messages_members.cc 2682213266b ./libstdc++-v3/config/locale/generic/messages_members.h 1672865747b ./libstdc++-v3/config/locale/generic/monetary_members.cc 650933917b ./libstdc++-v3/config/locale/generic/numeric_members.cc ! 1199479240b ./libstdc++-v3/config/locale/generic/time_members.cc 781005318b ./libstdc++-v3/config/locale/gnu/c_locale.cc 2998667708b ./libstdc++-v3/config/locale/gnu/c_locale.h 3774435712b ./libstdc++-v3/config/locale/gnu/collate_members.cc ! 3212021663b ./libstdc++-v3/config/locale/gnu/ctype_members.cc ! 2575517154b ./libstdc++-v3/config/locale/gnu/messages_members.cc ! 3686696267b ./libstdc++-v3/config/locale/gnu/messages_members.h 3506365458b ./libstdc++-v3/config/locale/gnu/monetary_members.cc 4180020740b ./libstdc++-v3/config/locale/gnu/numeric_members.cc ! 1982441854b ./libstdc++-v3/config/locale/gnu/time_members.cc 3232379868b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc 3136594064b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h ! 3256263647b ./libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 3490831019b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc 488667815b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h 4256387970b ./libstdc++-v3/config/os/aix/bits/atomicity.h 2669974896b ./libstdc++-v3/config/os/aix/bits/ctype_base.h 3165823414b ./libstdc++-v3/config/os/aix/bits/ctype_inline.h ! 3499623117b ./libstdc++-v3/config/os/aix/bits/ctype_noninline.h 1501649315b ./libstdc++-v3/config/os/aix/bits/os_defines.h 537966674b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_base.h 2331573625b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_inline.h *************** *** 13460,13471 **** 1128798661b ./libstdc++-v3/config/os/djgpp/bits/os_defines.h 1770894154b ./libstdc++-v3/config/os/generic/bits/ctype_base.h 913781161b ./libstdc++-v3/config/os/generic/bits/ctype_inline.h ! 3462804290b ./libstdc++-v3/config/os/generic/bits/ctype_noninline.h 2662031339b ./libstdc++-v3/config/os/generic/bits/os_defines.h 1728709835b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h 577770049b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_inline.h 2657263605b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h ! 1840948493b ./libstdc++-v3/config/os/gnu-linux/bits/os_defines.h 1503897878b ./libstdc++-v3/config/os/hpux/bits/cpu_limits.h 2727448261b ./libstdc++-v3/config/os/hpux/bits/ctype_base.h 521899911b ./libstdc++-v3/config/os/hpux/bits/ctype_inline.h --- 13500,13511 ---- 1128798661b ./libstdc++-v3/config/os/djgpp/bits/os_defines.h 1770894154b ./libstdc++-v3/config/os/generic/bits/ctype_base.h 913781161b ./libstdc++-v3/config/os/generic/bits/ctype_inline.h ! 2814302307b ./libstdc++-v3/config/os/generic/bits/ctype_noninline.h 2662031339b ./libstdc++-v3/config/os/generic/bits/os_defines.h 1728709835b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h 577770049b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_inline.h 2657263605b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h ! 1115301117b ./libstdc++-v3/config/os/gnu-linux/bits/os_defines.h 1503897878b ./libstdc++-v3/config/os/hpux/bits/cpu_limits.h 2727448261b ./libstdc++-v3/config/os/hpux/bits/ctype_base.h 521899911b ./libstdc++-v3/config/os/hpux/bits/ctype_inline.h *************** *** 13473,13484 **** 4256303940b ./libstdc++-v3/config/os/hpux/bits/os_defines.h 805235121b ./libstdc++-v3/config/os/irix/irix5.2/bits/atomicity.h 734403019b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_base.h ! 3968534641b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h ! 4099896350b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h ! 756859930b ./libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h 1437354439b ./libstdc++-v3/config/os/irix/irix6.5/bits/atomicity.h 1682275129b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_base.h ! 1430479845b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h 1925322031b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_noninline.h 4040974915b ./libstdc++-v3/config/os/irix/irix6.5/bits/os_defines.h 2513027003b ./libstdc++-v3/config/os/mingw32/bits/ctype_base.h --- 13513,13524 ---- 4256303940b ./libstdc++-v3/config/os/hpux/bits/os_defines.h 805235121b ./libstdc++-v3/config/os/irix/irix5.2/bits/atomicity.h 734403019b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_base.h ! 2703839638b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h ! 3142167642b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h ! 3024037761b ./libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h 1437354439b ./libstdc++-v3/config/os/irix/irix6.5/bits/atomicity.h 1682275129b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_base.h ! 4093669771b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h 1925322031b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_noninline.h 4040974915b ./libstdc++-v3/config/os/irix/irix6.5/bits/os_defines.h 2513027003b ./libstdc++-v3/config/os/mingw32/bits/ctype_base.h *************** *** 13490,13520 **** 780060341b ./libstdc++-v3/config/os/newlib/bits/ctype_noninline.h 1247228618b ./libstdc++-v3/config/os/newlib/bits/os_defines.h 269230749b ./libstdc++-v3/config/os/osf/osf5.0/bits/cpu_limits.h ! 922066072b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h 967249986b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_inline.h ! 3091024214b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h ! 3371220486b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h 1305011444b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_base.h 404061893b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_inline.h ! 519682606b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h ! 2818399007b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h 2023078243b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_base.h 577770049b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h 399834321b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h ! 2955649134b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h ! 3684429838b ./libstdc++-v3/configure 3116040814b ./libstdc++-v3/configure.host ! 3512024163b ./libstdc++-v3/configure.in ! 1278773789b ./libstdc++-v3/configure.target 1779001880b ./libstdc++-v3/docs/doxygen/doxygroups.cc 1637481960b ./libstdc++-v3/docs/doxygen/Intro.3 748681152b ./libstdc++-v3/docs/doxygen/mainpage.html ! 2057897016b ./libstdc++-v3/docs/doxygen/run_doxygen 668865588b ./libstdc++-v3/docs/doxygen/stdheader.cc 2931788874b ./libstdc++-v3/docs/doxygen/style.css ! 2236727365b ./libstdc++-v3/docs/doxygen/tables.html ! 2456116652b ./libstdc++-v3/docs/doxygen/TODO ! 3036638466b ./libstdc++-v3/docs/doxygen/user.cfg.in 4001239912b ./libstdc++-v3/docs/html/17_intro/BADNAMES 985890621b ./libstdc++-v3/docs/html/17_intro/BUGS 2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST --- 13530,13564 ---- 780060341b ./libstdc++-v3/config/os/newlib/bits/ctype_noninline.h 1247228618b ./libstdc++-v3/config/os/newlib/bits/os_defines.h 269230749b ./libstdc++-v3/config/os/osf/osf5.0/bits/cpu_limits.h ! 1980991936b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h ! 418495046b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h ! 545913221b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h ! 263975258b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h ! 4257366577b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h 967249986b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_inline.h ! 2955367373b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h ! 167493702b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h 1305011444b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_base.h 404061893b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_inline.h ! 3814698223b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h ! 1062247100b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h 2023078243b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_base.h 577770049b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h 399834321b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h ! 157883947b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h ! 2013648240b ./libstdc++-v3/configure 3116040814b ./libstdc++-v3/configure.host ! 1798426364b ./libstdc++-v3/configure.in ! 3392026093b ./libstdc++-v3/configure.target 1779001880b ./libstdc++-v3/docs/doxygen/doxygroups.cc 1637481960b ./libstdc++-v3/docs/doxygen/Intro.3 748681152b ./libstdc++-v3/docs/doxygen/mainpage.html ! 2699837250b ./libstdc++-v3/docs/doxygen/run_doxygen 668865588b ./libstdc++-v3/docs/doxygen/stdheader.cc 2931788874b ./libstdc++-v3/docs/doxygen/style.css ! 2943242387b ./libstdc++-v3/docs/doxygen/tables.html ! 4021129076b ./libstdc++-v3/docs/doxygen/TODO ! 1481189007b ./libstdc++-v3/docs/doxygen/user.cfg.in 4001239912b ./libstdc++-v3/docs/html/17_intro/BADNAMES 985890621b ./libstdc++-v3/docs/html/17_intro/BUGS 2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST *************** *** 13532,13541 **** 982764901b ./libstdc++-v3/docs/html/17_intro/organization 1322295551b ./libstdc++-v3/docs/html/17_intro/porting-howto.html 405521978b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml ! 2455364651b ./libstdc++-v3/docs/html/17_intro/porting.html ! 127841094b ./libstdc++-v3/docs/html/17_intro/porting.texi 12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS ! 487221562b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES 1553498574b ./libstdc++-v3/docs/html/17_intro/TODO 2234420344b ./libstdc++-v3/docs/html/18_support/howto.html 1891872084b ./libstdc++-v3/docs/html/19_diagnostics/howto.html --- 13576,13585 ---- 982764901b ./libstdc++-v3/docs/html/17_intro/organization 1322295551b ./libstdc++-v3/docs/html/17_intro/porting-howto.html 405521978b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml ! 2381176791b ./libstdc++-v3/docs/html/17_intro/porting.html ! 2408767440b ./libstdc++-v3/docs/html/17_intro/porting.texi 12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS ! 2042979184b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES 1553498574b ./libstdc++-v3/docs/html/17_intro/TODO 2234420344b ./libstdc++-v3/docs/html/18_support/howto.html 1891872084b ./libstdc++-v3/docs/html/19_diagnostics/howto.html *************** *** 13549,13555 **** 1554570816b ./libstdc++-v3/docs/html/22_locale/howto.html 60951948b ./libstdc++-v3/docs/html/22_locale/locale.html 2041856691b ./libstdc++-v3/docs/html/22_locale/messages.html ! 2700180314b ./libstdc++-v3/docs/html/23_containers/howto.html 3458392326b ./libstdc++-v3/docs/html/23_containers/wrappers_h.txt 403270116b ./libstdc++-v3/docs/html/24_iterators/howto.html 2968708740b ./libstdc++-v3/docs/html/25_algorithms/howto.html --- 13593,13599 ---- 1554570816b ./libstdc++-v3/docs/html/22_locale/howto.html 60951948b ./libstdc++-v3/docs/html/22_locale/locale.html 2041856691b ./libstdc++-v3/docs/html/22_locale/messages.html ! 461815841b ./libstdc++-v3/docs/html/23_containers/howto.html 3458392326b ./libstdc++-v3/docs/html/23_containers/wrappers_h.txt 403270116b ./libstdc++-v3/docs/html/24_iterators/howto.html 2968708740b ./libstdc++-v3/docs/html/25_algorithms/howto.html *************** *** 13557,13574 **** 2452165260b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kanze.txt 3249620502b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kuehl.txt 20954860b ./libstdc++-v3/docs/html/27_io/howto.html ! 1576753364b ./libstdc++-v3/docs/html/configopts.html ! 2733529750b ./libstdc++-v3/docs/html/documentation.html 3529196048b ./libstdc++-v3/docs/html/explanations.html ! 3397106848b ./libstdc++-v3/docs/html/ext/howto.html ! 3141721309b ./libstdc++-v3/docs/html/ext/lwg-active.html ! 3531115263b ./libstdc++-v3/docs/html/ext/lwg-defects.html 1724723596b ./libstdc++-v3/docs/html/ext/sgiexts.html ! 278050506b ./libstdc++-v3/docs/html/faq/index.html ! 724611588b ./libstdc++-v3/docs/html/faq/index.txt ! 631230724b ./libstdc++-v3/docs/html/install.html 2049389478b ./libstdc++-v3/docs/html/lib3styles.css ! 1112274180b ./libstdc++-v3/docs/html/Makefile 2473605692b ./libstdc++-v3/include/backward/algobase.h 2730818532b ./libstdc++-v3/include/backward/algo.h 1509057550b ./libstdc++-v3/include/backward/alloc.h --- 13601,13618 ---- 2452165260b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kanze.txt 3249620502b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kuehl.txt 20954860b ./libstdc++-v3/docs/html/27_io/howto.html ! 3668951243b ./libstdc++-v3/docs/html/configopts.html ! 1719318488b ./libstdc++-v3/docs/html/documentation.html 3529196048b ./libstdc++-v3/docs/html/explanations.html ! 3104075238b ./libstdc++-v3/docs/html/ext/howto.html ! 1604238359b ./libstdc++-v3/docs/html/ext/lwg-active.html ! 323640830b ./libstdc++-v3/docs/html/ext/lwg-defects.html 1724723596b ./libstdc++-v3/docs/html/ext/sgiexts.html ! 3616482744b ./libstdc++-v3/docs/html/faq/index.html ! 1633498853b ./libstdc++-v3/docs/html/faq/index.txt ! 1237174426b ./libstdc++-v3/docs/html/install.html 2049389478b ./libstdc++-v3/docs/html/lib3styles.css ! 3712956921b ./libstdc++-v3/docs/html/Makefile 2473605692b ./libstdc++-v3/include/backward/algobase.h 2730818532b ./libstdc++-v3/include/backward/algo.h 1509057550b ./libstdc++-v3/include/backward/alloc.h *************** *** 13601,13635 **** 374939843b ./libstdc++-v3/include/backward/stack.h 3825989730b ./libstdc++-v3/include/backward/streambuf.h 2367779603b ./libstdc++-v3/include/backward/stream.h ! 3433849844b ./libstdc++-v3/include/backward/strstream 3139222786b ./libstdc++-v3/include/backward/strstream.h 2999216474b ./libstdc++-v3/include/backward/tempbuf.h 1420771511b ./libstdc++-v3/include/backward/tree.h 3803139445b ./libstdc++-v3/include/backward/vector.h 4104762506b ./libstdc++-v3/include/bits/basic_ios.h 2714685470b ./libstdc++-v3/include/bits/basic_ios.tcc ! 1062547003b ./libstdc++-v3/include/bits/basic_string.h ! 1189657332b ./libstdc++-v3/include/bits/basic_string.tcc 179433314b ./libstdc++-v3/include/bits/boost_concept_check.h ! 2729986281b ./libstdc++-v3/include/bits/c++config 4257211256b ./libstdc++-v3/include/bits/char_traits.h 229999844b ./libstdc++-v3/include/bits/codecvt.h 2442194789b ./libstdc++-v3/include/bits/concept_check.h 329719722b ./libstdc++-v3/include/bits/cpp_type_traits.h 521120516b ./libstdc++-v3/include/bits/fpos.h ! 2395419606b ./libstdc++-v3/include/bits/fstream.tcc 3886600201b ./libstdc++-v3/include/bits/functexcept.h 3055891139b ./libstdc++-v3/include/bits/generic_shadow.h 3512731163b ./libstdc++-v3/include/bits/gslice_array.h 1117238130b ./libstdc++-v3/include/bits/gslice.h 3450716320b ./libstdc++-v3/include/bits/indirect_array.h 1556465309b ./libstdc++-v3/include/bits/ios_base.h ! 1253084334b ./libstdc++-v3/include/bits/istream.tcc 2682709655b ./libstdc++-v3/include/bits/locale_facets.h ! 2915167815b ./libstdc++-v3/include/bits/locale_facets.tcc 2301356812b ./libstdc++-v3/include/bits/localefwd.h 1519677165b ./libstdc++-v3/include/bits/mask_array.h ! 912698033b ./libstdc++-v3/include/bits/ostream.tcc 3592433582b ./libstdc++-v3/include/bits/pthread_allocimpl.h 2670647629b ./libstdc++-v3/include/bits/slice_array.h 3194205835b ./libstdc++-v3/include/bits/slice.h --- 13645,13679 ---- 374939843b ./libstdc++-v3/include/backward/stack.h 3825989730b ./libstdc++-v3/include/backward/streambuf.h 2367779603b ./libstdc++-v3/include/backward/stream.h ! 4047744617b ./libstdc++-v3/include/backward/strstream 3139222786b ./libstdc++-v3/include/backward/strstream.h 2999216474b ./libstdc++-v3/include/backward/tempbuf.h 1420771511b ./libstdc++-v3/include/backward/tree.h 3803139445b ./libstdc++-v3/include/backward/vector.h 4104762506b ./libstdc++-v3/include/bits/basic_ios.h 2714685470b ./libstdc++-v3/include/bits/basic_ios.tcc ! 1196444434b ./libstdc++-v3/include/bits/basic_string.h ! 2433152311b ./libstdc++-v3/include/bits/basic_string.tcc 179433314b ./libstdc++-v3/include/bits/boost_concept_check.h ! 2646732940b ./libstdc++-v3/include/bits/c++config 4257211256b ./libstdc++-v3/include/bits/char_traits.h 229999844b ./libstdc++-v3/include/bits/codecvt.h 2442194789b ./libstdc++-v3/include/bits/concept_check.h 329719722b ./libstdc++-v3/include/bits/cpp_type_traits.h 521120516b ./libstdc++-v3/include/bits/fpos.h ! 807430941b ./libstdc++-v3/include/bits/fstream.tcc 3886600201b ./libstdc++-v3/include/bits/functexcept.h 3055891139b ./libstdc++-v3/include/bits/generic_shadow.h 3512731163b ./libstdc++-v3/include/bits/gslice_array.h 1117238130b ./libstdc++-v3/include/bits/gslice.h 3450716320b ./libstdc++-v3/include/bits/indirect_array.h 1556465309b ./libstdc++-v3/include/bits/ios_base.h ! 1726388044b ./libstdc++-v3/include/bits/istream.tcc 2682709655b ./libstdc++-v3/include/bits/locale_facets.h ! 2987219790b ./libstdc++-v3/include/bits/locale_facets.tcc 2301356812b ./libstdc++-v3/include/bits/localefwd.h 1519677165b ./libstdc++-v3/include/bits/mask_array.h ! 4002781721b ./libstdc++-v3/include/bits/ostream.tcc 3592433582b ./libstdc++-v3/include/bits/pthread_allocimpl.h 2670647629b ./libstdc++-v3/include/bits/slice_array.h 3194205835b ./libstdc++-v3/include/bits/slice.h *************** *** 13637,13643 **** 3316800061b ./libstdc++-v3/include/bits/stl_algobase.h 1569010907b ./libstdc++-v3/include/bits/stl_algo.h 2270226903b ./libstdc++-v3/include/bits/stl_alloc.h ! 1958644445b ./libstdc++-v3/include/bits/stl_bvector.h 3302543196b ./libstdc++-v3/include/bits/stl_construct.h 1350022756b ./libstdc++-v3/include/bits/stl_deque.h 297399515b ./libstdc++-v3/include/bits/stl_function.h --- 13681,13687 ---- 3316800061b ./libstdc++-v3/include/bits/stl_algobase.h 1569010907b ./libstdc++-v3/include/bits/stl_algo.h 2270226903b ./libstdc++-v3/include/bits/stl_alloc.h ! 2801261805b ./libstdc++-v3/include/bits/stl_bvector.h 3302543196b ./libstdc++-v3/include/bits/stl_construct.h 1350022756b ./libstdc++-v3/include/bits/stl_deque.h 297399515b ./libstdc++-v3/include/bits/stl_function.h *************** *** 13650,13656 **** 567466793b ./libstdc++-v3/include/bits/stl_multimap.h 2343171452b ./libstdc++-v3/include/bits/stl_multiset.h 1738941440b ./libstdc++-v3/include/bits/stl_numeric.h ! 1426524054b ./libstdc++-v3/include/bits/stl_pair.h 369962606b ./libstdc++-v3/include/bits/stl_pthread_alloc.h 2900628572b ./libstdc++-v3/include/bits/stl_queue.h 2150554874b ./libstdc++-v3/include/bits/stl_raw_storage_iter.h --- 13694,13700 ---- 567466793b ./libstdc++-v3/include/bits/stl_multimap.h 2343171452b ./libstdc++-v3/include/bits/stl_multiset.h 1738941440b ./libstdc++-v3/include/bits/stl_numeric.h ! 4071317909b ./libstdc++-v3/include/bits/stl_pair.h 369962606b ./libstdc++-v3/include/bits/stl_pthread_alloc.h 2900628572b ./libstdc++-v3/include/bits/stl_queue.h 2150554874b ./libstdc++-v3/include/bits/stl_raw_storage_iter.h *************** *** 13670,13675 **** --- 13714,13737 ---- 3358963606b ./libstdc++-v3/include/bits/valarray_array.h 780098702b ./libstdc++-v3/include/bits/valarray_array.tcc 63020838b ./libstdc++-v3/include/bits/valarray_meta.h + 174717104b ./libstdc++-v3/include/c_compatibility/assert.h + 157601073b ./libstdc++-v3/include/c_compatibility/ctype.h + 1205462529b ./libstdc++-v3/include/c_compatibility/errno.h + 3028482587b ./libstdc++-v3/include/c_compatibility/float.h + 15792131b ./libstdc++-v3/include/c_compatibility/iso646.h + 3045744301b ./libstdc++-v3/include/c_compatibility/limits.h + 649450224b ./libstdc++-v3/include/c_compatibility/locale.h + 3825039242b ./libstdc++-v3/include/c_compatibility/math.h + 864531648b ./libstdc++-v3/include/c_compatibility/setjmp.h + 149073637b ./libstdc++-v3/include/c_compatibility/signal.h + 394111825b ./libstdc++-v3/include/c_compatibility/stdarg.h + 784117356b ./libstdc++-v3/include/c_compatibility/stddef.h + 236080617b ./libstdc++-v3/include/c_compatibility/stdio.h + 4053629341b ./libstdc++-v3/include/c_compatibility/stdlib.h + 603589083b ./libstdc++-v3/include/c_compatibility/string.h + 1640882917b ./libstdc++-v3/include/c_compatibility/time.h + 242317554b ./libstdc++-v3/include/c_compatibility/wchar.h + 264438164b ./libstdc++-v3/include/c_compatibility/wctype.h 54766345b ./libstdc++-v3/include/c_shadow/assert.h 408320858b ./libstdc++-v3/include/c_shadow/bits/std_cassert.h 560228963b ./libstdc++-v3/include/c_shadow/bits/std_cctype.h *************** *** 13725,13747 **** 887325795b ./libstdc++-v3/include/c_shadow/wctype.h 4098574322b ./libstdc++-v3/include/c/std_cassert.h 1243273805b ./libstdc++-v3/include/c/std_cctype.h ! 4209078569b ./libstdc++-v3/include/c/std_cerrno.h 4090686127b ./libstdc++-v3/include/c/std_cfloat.h 1108468159b ./libstdc++-v3/include/c/std_ciso646.h 1957729161b ./libstdc++-v3/include/c/std_climits.h 2616677270b ./libstdc++-v3/include/c/std_clocale.h ! 3953982446b ./libstdc++-v3/include/c/std_cmath.h 4087026299b ./libstdc++-v3/include/c_std/cmath.tcc ! 3287404971b ./libstdc++-v3/include/c/std_csetjmp.h 3312976087b ./libstdc++-v3/include/c/std_csignal.h ! 2338420256b ./libstdc++-v3/include/c/std_cstdarg.h ! 329222331b ./libstdc++-v3/include/c/std_cstddef.h ! 1836877162b ./libstdc++-v3/include/c/std_cstdio.h 2143638095b ./libstdc++-v3/include/c/std_cstdlib.h 948151623b ./libstdc++-v3/include/c/std_cstring.h 641399722b ./libstdc++-v3/include/c/std_ctime.h ! 1705937636b ./libstdc++-v3/include/c/std_cwchar.h ! 3511412634b ./libstdc++-v3/include/c/std_cwctype.h 1055988818b ./libstdc++-v3/include/c_std/std_cassert.h 513093939b ./libstdc++-v3/include/c_std/std_cctype.h 2752122999b ./libstdc++-v3/include/c_std/std_cerrno.h --- 13787,13809 ---- 887325795b ./libstdc++-v3/include/c_shadow/wctype.h 4098574322b ./libstdc++-v3/include/c/std_cassert.h 1243273805b ./libstdc++-v3/include/c/std_cctype.h ! 4253759613b ./libstdc++-v3/include/c/std_cerrno.h 4090686127b ./libstdc++-v3/include/c/std_cfloat.h 1108468159b ./libstdc++-v3/include/c/std_ciso646.h 1957729161b ./libstdc++-v3/include/c/std_climits.h 2616677270b ./libstdc++-v3/include/c/std_clocale.h ! 3373490872b ./libstdc++-v3/include/c/std_cmath.h 4087026299b ./libstdc++-v3/include/c_std/cmath.tcc ! 2198093326b ./libstdc++-v3/include/c/std_csetjmp.h 3312976087b ./libstdc++-v3/include/c/std_csignal.h ! 1491351151b ./libstdc++-v3/include/c/std_cstdarg.h ! 969673189b ./libstdc++-v3/include/c/std_cstddef.h ! 3498882442b ./libstdc++-v3/include/c/std_cstdio.h 2143638095b ./libstdc++-v3/include/c/std_cstdlib.h 948151623b ./libstdc++-v3/include/c/std_cstring.h 641399722b ./libstdc++-v3/include/c/std_ctime.h ! 1161763336b ./libstdc++-v3/include/c/std_cwchar.h ! 446614233b ./libstdc++-v3/include/c/std_cwctype.h 1055988818b ./libstdc++-v3/include/c_std/std_cassert.h 513093939b ./libstdc++-v3/include/c_std/std_cctype.h 2752122999b ./libstdc++-v3/include/c_std/std_cerrno.h *************** *** 13749,13755 **** 1108468159b ./libstdc++-v3/include/c_std/std_ciso646.h 3552340376b ./libstdc++-v3/include/c_std/std_climits.h 3610469005b ./libstdc++-v3/include/c_std/std_clocale.h ! 3603077307b ./libstdc++-v3/include/c_std/std_cmath.h 664446368b ./libstdc++-v3/include/c_std/std_csetjmp.h 1548436805b ./libstdc++-v3/include/c_std/std_csignal.h 2409940084b ./libstdc++-v3/include/c_std/std_cstdarg.h --- 13811,13817 ---- 1108468159b ./libstdc++-v3/include/c_std/std_ciso646.h 3552340376b ./libstdc++-v3/include/c_std/std_climits.h 3610469005b ./libstdc++-v3/include/c_std/std_clocale.h ! 298849884b ./libstdc++-v3/include/c_std/std_cmath.h 664446368b ./libstdc++-v3/include/c_std/std_csetjmp.h 1548436805b ./libstdc++-v3/include/c_std/std_csignal.h 2409940084b ./libstdc++-v3/include/c_std/std_cstdarg.h *************** *** 13760,13785 **** 1833374328b ./libstdc++-v3/include/c_std/std_ctime.h 855540198b ./libstdc++-v3/include/c_std/std_cwchar.h 3941323151b ./libstdc++-v3/include/c_std/std_cwctype.h ! 2344189166b ./libstdc++-v3/include/ext/algorithm 1641495854b ./libstdc++-v3/include/ext/enc_filebuf.h 3444585981b ./libstdc++-v3/include/ext/functional ! 177412747b ./libstdc++-v3/include/ext/hash_map ! 597741368b ./libstdc++-v3/include/ext/hash_set ! 2824729150b ./libstdc++-v3/include/ext/iterator 1166159156b ./libstdc++-v3/include/ext/memory ! 4117060565b ./libstdc++-v3/include/ext/numeric ! 4079668166b ./libstdc++-v3/include/ext/rb_tree 177834210b ./libstdc++-v3/include/ext/rope 836293130b ./libstdc++-v3/include/ext/ropeimpl.h ! 797110709b ./libstdc++-v3/include/ext/slist ! 1189451505b ./libstdc++-v3/include/ext/stdio_filebuf.h 2805137138b ./libstdc++-v3/include/ext/stl_hash_fun.h ! 3764616622b ./libstdc++-v3/include/ext/stl_hashtable.h ! 1930025858b ./libstdc++-v3/include/ext/stl_rope.h ! 4201466100b ./libstdc++-v3/include/Makefile.am ! 513846786b ./libstdc++-v3/include/Makefile.in 4064711400b ./libstdc++-v3/include/std/std_algorithm.h ! 709624692b ./libstdc++-v3/include/std/std_bitset.h 3412647990b ./libstdc++-v3/include/std/std_complex.h 1730455182b ./libstdc++-v3/include/std/std_deque.h 2069118484b ./libstdc++-v3/include/std/std_fstream.h --- 13822,13847 ---- 1833374328b ./libstdc++-v3/include/c_std/std_ctime.h 855540198b ./libstdc++-v3/include/c_std/std_cwchar.h 3941323151b ./libstdc++-v3/include/c_std/std_cwctype.h ! 3317328074b ./libstdc++-v3/include/ext/algorithm 1641495854b ./libstdc++-v3/include/ext/enc_filebuf.h 3444585981b ./libstdc++-v3/include/ext/functional ! 1263241564b ./libstdc++-v3/include/ext/hash_map ! 1556994010b ./libstdc++-v3/include/ext/hash_set ! 1006064723b ./libstdc++-v3/include/ext/iterator 1166159156b ./libstdc++-v3/include/ext/memory ! 2161063846b ./libstdc++-v3/include/ext/numeric ! 2970646087b ./libstdc++-v3/include/ext/rb_tree 177834210b ./libstdc++-v3/include/ext/rope 836293130b ./libstdc++-v3/include/ext/ropeimpl.h ! 4160164241b ./libstdc++-v3/include/ext/slist ! 2985626209b ./libstdc++-v3/include/ext/stdio_filebuf.h 2805137138b ./libstdc++-v3/include/ext/stl_hash_fun.h ! 1833363198b ./libstdc++-v3/include/ext/stl_hashtable.h ! 3615598422b ./libstdc++-v3/include/ext/stl_rope.h ! 3797873942b ./libstdc++-v3/include/Makefile.am ! 3100033549b ./libstdc++-v3/include/Makefile.in 4064711400b ./libstdc++-v3/include/std/std_algorithm.h ! 1636885247b ./libstdc++-v3/include/std/std_bitset.h 3412647990b ./libstdc++-v3/include/std/std_complex.h 1730455182b ./libstdc++-v3/include/std/std_deque.h 2069118484b ./libstdc++-v3/include/std/std_fstream.h *************** *** 13794,13800 **** 1509281666b ./libstdc++-v3/include/std/std_list.h 918488326b ./libstdc++-v3/include/std/std_locale.h 2375471353b ./libstdc++-v3/include/std/std_map.h ! 2661430438b ./libstdc++-v3/include/std/std_memory.h 2200880623b ./libstdc++-v3/include/std/std_numeric.h 3467401292b ./libstdc++-v3/include/std/std_ostream.h 1570707417b ./libstdc++-v3/include/std/std_queue.h --- 13856,13862 ---- 1509281666b ./libstdc++-v3/include/std/std_list.h 918488326b ./libstdc++-v3/include/std/std_locale.h 2375471353b ./libstdc++-v3/include/std/std_map.h ! 458060559b ./libstdc++-v3/include/std/std_memory.h 2200880623b ./libstdc++-v3/include/std/std_numeric.h 3467401292b ./libstdc++-v3/include/std/std_ostream.h 1570707417b ./libstdc++-v3/include/std/std_queue.h *************** *** 13807,13813 **** 4158492065b ./libstdc++-v3/include/std/std_utility.h 362016596b ./libstdc++-v3/include/std/std_valarray.h 125145631b ./libstdc++-v3/include/std/std_vector.h ! 3029670399b ./libstdc++-v3/libio/ChangeLog 2122576197b ./libstdc++-v3/libio/filedoalloc.c 3590060213b ./libstdc++-v3/libio/fileops.c 314955067b ./libstdc++-v3/libio/_G_config.h --- 13869,13875 ---- 4158492065b ./libstdc++-v3/include/std/std_utility.h 362016596b ./libstdc++-v3/include/std/std_valarray.h 125145631b ./libstdc++-v3/include/std/std_vector.h ! 1471791953b ./libstdc++-v3/libio/ChangeLog 2122576197b ./libstdc++-v3/libio/filedoalloc.c 3590060213b ./libstdc++-v3/libio/fileops.c 314955067b ./libstdc++-v3/libio/_G_config.h *************** *** 13819,13825 **** 4269898080b ./libstdc++-v3/libio/libio.h 276542374b ./libstdc++-v3/libio/libioP.h 226381804b ./libstdc++-v3/libio/Makefile.am ! 1355938524b ./libstdc++-v3/libio/Makefile.in 13280908b ./libstdc++-v3/libio/stdfiles.c 2344987226b ./libstdc++-v3/libio/stdio.c 688559115b ./libstdc++-v3/libio/wfiledoalloc.c --- 13881,13887 ---- 4269898080b ./libstdc++-v3/libio/libio.h 276542374b ./libstdc++-v3/libio/libioP.h 226381804b ./libstdc++-v3/libio/Makefile.am ! 3829396828b ./libstdc++-v3/libio/Makefile.in 13280908b ./libstdc++-v3/libio/stdfiles.c 2344987226b ./libstdc++-v3/libio/stdio.c 688559115b ./libstdc++-v3/libio/wfiledoalloc.c *************** *** 13827,13833 **** 2568419733b ./libstdc++-v3/libio/wgenops.c 4088285812b ./libstdc++-v3/libmath/copysignf.c 1192225650b ./libstdc++-v3/libmath/Makefile.am ! 872348035b ./libstdc++-v3/libmath/Makefile.in 346371220b ./libstdc++-v3/libmath/mathconf.h 1759197966b ./libstdc++-v3/libmath/nan.c 1774241233b ./libstdc++-v3/libmath/signbit.c --- 13889,13895 ---- 2568419733b ./libstdc++-v3/libio/wgenops.c 4088285812b ./libstdc++-v3/libmath/copysignf.c 1192225650b ./libstdc++-v3/libmath/Makefile.am ! 108374429b ./libstdc++-v3/libmath/Makefile.in 346371220b ./libstdc++-v3/libmath/mathconf.h 1759197966b ./libstdc++-v3/libmath/nan.c 1774241233b ./libstdc++-v3/libmath/signbit.c *************** *** 13839,13845 **** 2108254126b ./libstdc++-v3/libsupc++/del_opnt.cc 998297127b ./libstdc++-v3/libsupc++/del_opv.cc 958055369b ./libstdc++-v3/libsupc++/del_opvnt.cc ! 3181598228b ./libstdc++-v3/libsupc++/eh_alloc.cc 1594858350b ./libstdc++-v3/libsupc++/eh_aux_runtime.cc 152242761b ./libstdc++-v3/libsupc++/eh_catch.cc 4215496070b ./libstdc++-v3/libsupc++/eh_exception.cc --- 13901,13907 ---- 2108254126b ./libstdc++-v3/libsupc++/del_opnt.cc 998297127b ./libstdc++-v3/libsupc++/del_opv.cc 958055369b ./libstdc++-v3/libsupc++/del_opvnt.cc ! 256210637b ./libstdc++-v3/libsupc++/eh_alloc.cc 1594858350b ./libstdc++-v3/libsupc++/eh_aux_runtime.cc 152242761b ./libstdc++-v3/libsupc++/eh_catch.cc 4215496070b ./libstdc++-v3/libsupc++/eh_exception.cc *************** *** 13850,13864 **** 3381460574b ./libstdc++-v3/libsupc++/eh_type.cc 1338501219b ./libstdc++-v3/libsupc++/exception 3453419455b ./libstdc++-v3/libsupc++/exception_defines.h ! 2095786657b ./libstdc++-v3/libsupc++/Makefile.am ! 614217958b ./libstdc++-v3/libsupc++/Makefile.in ! 3874429611b ./libstdc++-v3/libsupc++/new ! 1062654239b ./libstdc++-v3/libsupc++/new_handler.cc ! 3610294139b ./libstdc++-v3/libsupc++/new_op.cc 1924050083b ./libstdc++-v3/libsupc++/new_opnt.cc 4286163592b ./libstdc++-v3/libsupc++/new_opv.cc 1153125428b ./libstdc++-v3/libsupc++/new_opvnt.cc ! 4183571000b ./libstdc++-v3/libsupc++/pure.cc 2446382575b ./libstdc++-v3/libsupc++/tinfo2.cc 3153916157b ./libstdc++-v3/libsupc++/tinfo.cc 1192700122b ./libstdc++-v3/libsupc++/tinfo.h --- 13912,13926 ---- 3381460574b ./libstdc++-v3/libsupc++/eh_type.cc 1338501219b ./libstdc++-v3/libsupc++/exception 3453419455b ./libstdc++-v3/libsupc++/exception_defines.h ! 2343038402b ./libstdc++-v3/libsupc++/Makefile.am ! 800459218b ./libstdc++-v3/libsupc++/Makefile.in ! 2096600636b ./libstdc++-v3/libsupc++/new ! 2545598190b ./libstdc++-v3/libsupc++/new_handler.cc ! 2558289852b ./libstdc++-v3/libsupc++/new_op.cc 1924050083b ./libstdc++-v3/libsupc++/new_opnt.cc 4286163592b ./libstdc++-v3/libsupc++/new_opv.cc 1153125428b ./libstdc++-v3/libsupc++/new_opvnt.cc ! 2851101423b ./libstdc++-v3/libsupc++/pure.cc 2446382575b ./libstdc++-v3/libsupc++/tinfo2.cc 3153916157b ./libstdc++-v3/libsupc++/tinfo.cc 1192700122b ./libstdc++-v3/libsupc++/tinfo.h *************** *** 13866,13872 **** 875479559b ./libstdc++-v3/libsupc++/unwind-cxx.h 712738859b ./libstdc++-v3/libsupc++/vec.cc 514484816b ./libstdc++-v3/Makefile.am ! 703545588b ./libstdc++-v3/Makefile.in 2396933860b ./libstdc++-v3/mkcheck.in 3790569303b ./libstdc++-v3/mkcshadow 805804711b ./libstdc++-v3/mkinclosure --- 13928,13934 ---- 875479559b ./libstdc++-v3/libsupc++/unwind-cxx.h 712738859b ./libstdc++-v3/libsupc++/vec.cc 514484816b ./libstdc++-v3/Makefile.am ! 2853760935b ./libstdc++-v3/Makefile.in 2396933860b ./libstdc++-v3/mkcheck.in 3790569303b ./libstdc++-v3/mkcshadow 805804711b ./libstdc++-v3/mkinclosure *************** *** 13874,13903 **** 4161545945b ./libstdc++-v3/po/fr.po 571561184b ./libstdc++-v3/po/libstdc++.pot 2710223631b ./libstdc++-v3/po/Makefile.am ! 2351120206b ./libstdc++-v3/po/Makefile.in 2014452913b ./libstdc++-v3/po/POTFILES.in 1352447199b ./libstdc++-v3/po/string_literals.cc 201474883b ./libstdc++-v3/README 33119601b ./libstdc++-v3/src/bitset.cc - 2516358454b ./libstdc++-v3/src/cmath.cc 3432581077b ./libstdc++-v3/src/codecvt.cc 252828227b ./libstdc++-v3/src/complex_io.cc 3518329104b ./libstdc++-v3/src/concept-inst.cc ! 4220514680b ./libstdc++-v3/src/ext-inst.cc 3677721072b ./libstdc++-v3/src/functexcept.cc 650049293b ./libstdc++-v3/src/globals.cc 4223583336b ./libstdc++-v3/src/ios.cc 2798828124b ./libstdc++-v3/src/limits.cc 3427590836b ./libstdc++-v3/src/locale.cc ! 3050770571b ./libstdc++-v3/src/locale-inst.cc ! 1002874783b ./libstdc++-v3/src/localename.cc ! 2484337607b ./libstdc++-v3/src/Makefile.am ! 460631784b ./libstdc++-v3/src/Makefile.in ! 2846642539b ./libstdc++-v3/src/misc-inst.cc 3634270088b ./libstdc++-v3/src/stdexcept.cc 1621643001b ./libstdc++-v3/src/stl-inst.cc 693942221b ./libstdc++-v3/src/string-inst.cc ! 3829054154b ./libstdc++-v3/src/strstream.cc 3557593608b ./libstdc++-v3/src/valarray-inst.cc 2281175186b ./libstdc++-v3/src/vterminate.cc 1651008667b ./libstdc++-v3/src/wstring-inst.cc --- 13936,13970 ---- 4161545945b ./libstdc++-v3/po/fr.po 571561184b ./libstdc++-v3/po/libstdc++.pot 2710223631b ./libstdc++-v3/po/Makefile.am ! 2742214156b ./libstdc++-v3/po/Makefile.in 2014452913b ./libstdc++-v3/po/POTFILES.in 1352447199b ./libstdc++-v3/po/string_literals.cc 201474883b ./libstdc++-v3/README 33119601b ./libstdc++-v3/src/bitset.cc 3432581077b ./libstdc++-v3/src/codecvt.cc 252828227b ./libstdc++-v3/src/complex_io.cc 3518329104b ./libstdc++-v3/src/concept-inst.cc ! 78911046b ./libstdc++-v3/src/ext-inst.cc ! 3501232323b ./libstdc++-v3/src/fstream-inst.cc 3677721072b ./libstdc++-v3/src/functexcept.cc 650049293b ./libstdc++-v3/src/globals.cc + 62109486b ./libstdc++-v3/src/io-inst.cc 4223583336b ./libstdc++-v3/src/ios.cc + 3318878382b ./libstdc++-v3/src/istream-inst.cc 2798828124b ./libstdc++-v3/src/limits.cc 3427590836b ./libstdc++-v3/src/locale.cc ! 1802894186b ./libstdc++-v3/src/locale-inst.cc ! 4054805700b ./libstdc++-v3/src/localename.cc ! 4218817408b ./libstdc++-v3/src/Makefile.am ! 3119203711b ./libstdc++-v3/src/Makefile.in ! 796578536b ./libstdc++-v3/src/misc-inst.cc ! 1456313812b ./libstdc++-v3/src/ostream-inst.cc ! 1968902758b ./libstdc++-v3/src/sstream-inst.cc 3634270088b ./libstdc++-v3/src/stdexcept.cc 1621643001b ./libstdc++-v3/src/stl-inst.cc + 294577884b ./libstdc++-v3/src/streambuf-inst.cc 693942221b ./libstdc++-v3/src/string-inst.cc ! 2174542651b ./libstdc++-v3/src/strstream.cc 3557593608b ./libstdc++-v3/src/valarray-inst.cc 2281175186b ./libstdc++-v3/src/vterminate.cc 1651008667b ./libstdc++-v3/src/wstring-inst.cc *************** *** 13908,13917 **** 4187004662b ./libstdc++-v3/testsuite/17_intro/header_cstdarg.cc 1187341165b ./libstdc++-v3/testsuite/17_intro/header_cstddef.cc 3112061327b ./libstdc++-v3/testsuite/17_intro/header_cstdio.cc ! 2612537129b ./libstdc++-v3/testsuite/17_intro/header_cstdlib.cc 4184074218b ./libstdc++-v3/testsuite/17_intro/header_cstring.cc 446409895b ./libstdc++-v3/testsuite/17_intro/header_ctime.cc ! 545735980b ./libstdc++-v3/testsuite/17_intro/header_cwchar.cc 234720762b ./libstdc++-v3/testsuite/17_intro/header_cwctype.cc 4050243083b ./libstdc++-v3/testsuite/17_intro/header_fstream.cc 31531867b ./libstdc++-v3/testsuite/17_intro/header_iomanip.cc --- 13975,13984 ---- 4187004662b ./libstdc++-v3/testsuite/17_intro/header_cstdarg.cc 1187341165b ./libstdc++-v3/testsuite/17_intro/header_cstddef.cc 3112061327b ./libstdc++-v3/testsuite/17_intro/header_cstdio.cc ! 433436146b ./libstdc++-v3/testsuite/17_intro/header_cstdlib.cc 4184074218b ./libstdc++-v3/testsuite/17_intro/header_cstring.cc 446409895b ./libstdc++-v3/testsuite/17_intro/header_ctime.cc ! 2460401861b ./libstdc++-v3/testsuite/17_intro/header_cwchar.cc 234720762b ./libstdc++-v3/testsuite/17_intro/header_cwctype.cc 4050243083b ./libstdc++-v3/testsuite/17_intro/header_fstream.cc 31531867b ./libstdc++-v3/testsuite/17_intro/header_iomanip.cc *************** *** 13928,13934 **** 2714224389b ./libstdc++-v3/testsuite/18_support/numeric_limits.cc 1268854968b ./libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc 1972393936b ./libstdc++-v3/testsuite/20_util/allocator_members.cc ! 3136764659b ./libstdc++-v3/testsuite/20_util/auto_ptr.cc 4006660250b ./libstdc++-v3/testsuite/20_util/binders.cc 1043517205b ./libstdc++-v3/testsuite/20_util/comparisons.cc 1073181186b ./libstdc++-v3/testsuite/20_util/pairs.cc --- 13995,14001 ---- 2714224389b ./libstdc++-v3/testsuite/18_support/numeric_limits.cc 1268854968b ./libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc 1972393936b ./libstdc++-v3/testsuite/20_util/allocator_members.cc ! 4062528466b ./libstdc++-v3/testsuite/20_util/auto_ptr.cc 4006660250b ./libstdc++-v3/testsuite/20_util/binders.cc 1043517205b ./libstdc++-v3/testsuite/20_util/comparisons.cc 1073181186b ./libstdc++-v3/testsuite/20_util/pairs.cc *************** *** 13941,13947 **** 4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc 2742086522b ./libstdc++-v3/testsuite/21_strings/compare.cc 1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc ! 2782349661b ./libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc 2926478704b ./libstdc++-v3/testsuite/21_strings/element_access.cc 2204151867b ./libstdc++-v3/testsuite/21_strings/find.cc 1722926940b ./libstdc++-v3/testsuite/21_strings/insert.cc --- 14008,14014 ---- 4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc 2742086522b ./libstdc++-v3/testsuite/21_strings/compare.cc 1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc ! 1038697695b ./libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc 2926478704b ./libstdc++-v3/testsuite/21_strings/element_access.cc 2204151867b ./libstdc++-v3/testsuite/21_strings/find.cc 1722926940b ./libstdc++-v3/testsuite/21_strings/insert.cc *************** *** 13949,14005 **** 2168000074b ./libstdc++-v3/testsuite/21_strings/invariants.cc 593155147b ./libstdc++-v3/testsuite/21_strings/nonmember.cc 1709617082b ./libstdc++-v3/testsuite/21_strings/operations.cc ! 1457621082b ./libstdc++-v3/testsuite/21_strings/replace.cc 2718476092b ./libstdc++-v3/testsuite/21_strings/rfind.cc 1483165749b ./libstdc++-v3/testsuite/21_strings/substr.cc 387593609b ./libstdc++-v3/testsuite/22_locale/codecvt.cc ! 872933211b ./libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc 1648636673b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_char.cc 3529033557b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_wchar_t.cc ! 1516251301b ./libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc 378719965b ./libstdc++-v3/testsuite/22_locale/collate_byname.cc 4219192012b ./libstdc++-v3/testsuite/22_locale/collate.cc ! 3467761763b ./libstdc++-v3/testsuite/22_locale/collate_members_char.cc ! 2672821922b ./libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc 6122968b ./libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc 2708515186b ./libstdc++-v3/testsuite/22_locale/ctype.cc ! 2680074281b ./libstdc++-v3/testsuite/22_locale/ctype_members_char.cc ! 3571485613b ./libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc 3268934912b ./libstdc++-v3/testsuite/22_locale/facet.cc 3496730433b ./libstdc++-v3/testsuite/22_locale/global_templates.cc 1723684426b ./libstdc++-v3/testsuite/22_locale/members.cc 1401094326b ./libstdc++-v3/testsuite/22_locale/messages_byname.cc 3196187062b ./libstdc++-v3/testsuite/22_locale/messages.cc ! 1374375401b ./libstdc++-v3/testsuite/22_locale/messages_members_char.cc 2495817416b ./libstdc++-v3/testsuite/22_locale/money_get.cc ! 678451152b ./libstdc++-v3/testsuite/22_locale/money_get_members_char.cc ! 2482281541b ./libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc 396525641b ./libstdc++-v3/testsuite/22_locale/moneypunct_byname.cc 1298769732b ./libstdc++-v3/testsuite/22_locale/moneypunct.cc ! 1317059496b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc ! 1655518997b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc 2714963439b ./libstdc++-v3/testsuite/22_locale/money_put.cc ! 2817344662b ./libstdc++-v3/testsuite/22_locale/money_put_members_char.cc ! 48437909b ./libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc 3806757668b ./libstdc++-v3/testsuite/22_locale/num_get.cc ! 3952866174b ./libstdc++-v3/testsuite/22_locale/num_get_members_char.cc ! 499896641b ./libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc 3109277057b ./libstdc++-v3/testsuite/22_locale/numpunct_byname.cc 481449220b ./libstdc++-v3/testsuite/22_locale/numpunct.cc ! 2198705734b ./libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc ! 1887115970b ./libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc 2013396522b ./libstdc++-v3/testsuite/22_locale/num_put.cc ! 3741350549b ./libstdc++-v3/testsuite/22_locale/num_put_members_char.cc ! 243311744b ./libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc 2592583186b ./libstdc++-v3/testsuite/22_locale/operators.cc 2943563602b ./libstdc++-v3/testsuite/22_locale/static_members.cc 3529549306b ./libstdc++-v3/testsuite/22_locale/time_get.cc ! 808845239b ./libstdc++-v3/testsuite/22_locale/time_get_members_char.cc ! 2876140131b ./libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc 4249879313b ./libstdc++-v3/testsuite/22_locale/time_put.cc ! 635176586b ./libstdc++-v3/testsuite/22_locale/time_put_members_char.cc ! 3548679787b ./libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc ! 2738492066b ./libstdc++-v3/testsuite/23_containers/bitset_ctor.cc 4248533082b ./libstdc++-v3/testsuite/23_containers/bitset_members.cc 897013241b ./libstdc++-v3/testsuite/23_containers/bitset_shift.cc 298271417b ./libstdc++-v3/testsuite/23_containers/deque_ctor.cc --- 14016,14082 ---- 2168000074b ./libstdc++-v3/testsuite/21_strings/invariants.cc 593155147b ./libstdc++-v3/testsuite/21_strings/nonmember.cc 1709617082b ./libstdc++-v3/testsuite/21_strings/operations.cc ! 3864027067b ./libstdc++-v3/testsuite/21_strings/replace.cc 2718476092b ./libstdc++-v3/testsuite/21_strings/rfind.cc 1483165749b ./libstdc++-v3/testsuite/21_strings/substr.cc 387593609b ./libstdc++-v3/testsuite/22_locale/codecvt.cc ! 512064027b ./libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc 1648636673b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_char.cc 3529033557b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_wchar_t.cc ! 4100654250b ./libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc 378719965b ./libstdc++-v3/testsuite/22_locale/collate_byname.cc 4219192012b ./libstdc++-v3/testsuite/22_locale/collate.cc ! 1671297459b ./libstdc++-v3/testsuite/22_locale/collate_members_char.cc ! 2271354246b ./libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc 6122968b ./libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc 2708515186b ./libstdc++-v3/testsuite/22_locale/ctype.cc ! 249444744b ./libstdc++-v3/testsuite/22_locale/ctype_is_char.cc ! 547279960b ./libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc ! 3696162713b ./libstdc++-v3/testsuite/22_locale/ctype_members_char.cc ! 3964508813b ./libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc ! 2753261538b ./libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc ! 1501677695b ./libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc ! 3197301377b ./libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc ! 4211906035b ./libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc ! 2527015272b ./libstdc++-v3/testsuite/22_locale/ctype_to_char.cc ! 4182256884b ./libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc ! 3510804403b ./libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc ! 93317595b ./libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc 3268934912b ./libstdc++-v3/testsuite/22_locale/facet.cc 3496730433b ./libstdc++-v3/testsuite/22_locale/global_templates.cc 1723684426b ./libstdc++-v3/testsuite/22_locale/members.cc 1401094326b ./libstdc++-v3/testsuite/22_locale/messages_byname.cc 3196187062b ./libstdc++-v3/testsuite/22_locale/messages.cc ! 1970700053b ./libstdc++-v3/testsuite/22_locale/messages_members_char.cc 2495817416b ./libstdc++-v3/testsuite/22_locale/money_get.cc ! 1766255762b ./libstdc++-v3/testsuite/22_locale/money_get_members_char.cc ! 138738715b ./libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc 396525641b ./libstdc++-v3/testsuite/22_locale/moneypunct_byname.cc 1298769732b ./libstdc++-v3/testsuite/22_locale/moneypunct.cc ! 1486946696b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc ! 2302401224b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc 2714963439b ./libstdc++-v3/testsuite/22_locale/money_put.cc ! 545615219b ./libstdc++-v3/testsuite/22_locale/money_put_members_char.cc ! 299189870b ./libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc 3806757668b ./libstdc++-v3/testsuite/22_locale/num_get.cc ! 942400636b ./libstdc++-v3/testsuite/22_locale/num_get_members_char.cc ! 3952754596b ./libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc 3109277057b ./libstdc++-v3/testsuite/22_locale/numpunct_byname.cc 481449220b ./libstdc++-v3/testsuite/22_locale/numpunct.cc ! 1180876674b ./libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc ! 3139380707b ./libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc 2013396522b ./libstdc++-v3/testsuite/22_locale/num_put.cc ! 296571445b ./libstdc++-v3/testsuite/22_locale/num_put_members_char.cc ! 263265882b ./libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc 2592583186b ./libstdc++-v3/testsuite/22_locale/operators.cc 2943563602b ./libstdc++-v3/testsuite/22_locale/static_members.cc 3529549306b ./libstdc++-v3/testsuite/22_locale/time_get.cc ! 3923101724b ./libstdc++-v3/testsuite/22_locale/time_get_members_char.cc ! 2180594183b ./libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc 4249879313b ./libstdc++-v3/testsuite/22_locale/time_put.cc ! 2625268284b ./libstdc++-v3/testsuite/22_locale/time_put_members_char.cc ! 1365876592b ./libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc ! 1594601537b ./libstdc++-v3/testsuite/23_containers/bitset_ctor.cc 4248533082b ./libstdc++-v3/testsuite/23_containers/bitset_members.cc 897013241b ./libstdc++-v3/testsuite/23_containers/bitset_shift.cc 298271417b ./libstdc++-v3/testsuite/23_containers/deque_ctor.cc *************** *** 14011,14017 **** 1772243688b ./libstdc++-v3/testsuite/23_containers/map_operators.cc 3789154851b ./libstdc++-v3/testsuite/23_containers/multiset.cc 4102929314b ./libstdc++-v3/testsuite/23_containers/set_operators.cc ! 1719624688b ./libstdc++-v3/testsuite/23_containers/vector_bool.cc 2845787844b ./libstdc++-v3/testsuite/23_containers/vector_capacity.cc 2149604858b ./libstdc++-v3/testsuite/23_containers/vector_ctor.cc 3683155594b ./libstdc++-v3/testsuite/23_containers/vector_element_access.cc --- 14088,14094 ---- 1772243688b ./libstdc++-v3/testsuite/23_containers/map_operators.cc 3789154851b ./libstdc++-v3/testsuite/23_containers/multiset.cc 4102929314b ./libstdc++-v3/testsuite/23_containers/set_operators.cc ! 3617128880b ./libstdc++-v3/testsuite/23_containers/vector_bool.cc 2845787844b ./libstdc++-v3/testsuite/23_containers/vector_capacity.cc 2149604858b ./libstdc++-v3/testsuite/23_containers/vector_ctor.cc 3683155594b ./libstdc++-v3/testsuite/23_containers/vector_element_access.cc *************** *** 14043,14049 **** 162388279b ./libstdc++-v3/testsuite/26_numerics/c_math.cc 3345793307b ./libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc 4028172023b ./libstdc++-v3/testsuite/26_numerics/complex_value.cc ! 2560606731b ./libstdc++-v3/testsuite/26_numerics/fabs_inline.cc 2007868264b ./libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc 2493789332b ./libstdc++-v3/testsuite/26_numerics/sum_diff.cc 2203801309b ./libstdc++-v3/testsuite/26_numerics/valarray.cc --- 14120,14126 ---- 162388279b ./libstdc++-v3/testsuite/26_numerics/c_math.cc 3345793307b ./libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc 4028172023b ./libstdc++-v3/testsuite/26_numerics/complex_value.cc ! 1538489744b ./libstdc++-v3/testsuite/26_numerics/fabs_inline.cc 2007868264b ./libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc 2493789332b ./libstdc++-v3/testsuite/26_numerics/sum_diff.cc 2203801309b ./libstdc++-v3/testsuite/26_numerics/valarray.cc *************** *** 14075,14081 **** 1406172954b ./libstdc++-v3/testsuite/27_io/iostream.cc 2441613414b ./libstdc++-v3/testsuite/27_io/iostream_members.cc 3532934373b ./libstdc++-v3/testsuite/27_io/istream.cc ! 982148445b ./libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc 262004209b ./libstdc++-v3/testsuite/27_io/istream_extractor_char.cc 1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.tst 1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.txt --- 14152,14158 ---- 1406172954b ./libstdc++-v3/testsuite/27_io/iostream.cc 2441613414b ./libstdc++-v3/testsuite/27_io/iostream_members.cc 3532934373b ./libstdc++-v3/testsuite/27_io/istream.cc ! 1371858986b ./libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc 262004209b ./libstdc++-v3/testsuite/27_io/istream_extractor_char.cc 1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.tst 1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.txt *************** *** 14086,14108 **** 3951789237b ./libstdc++-v3/testsuite/27_io/istream_seeks-1.txt 4294967295b ./libstdc++-v3/testsuite/27_io/istream_seeks-2.tst 2129191219b ./libstdc++-v3/testsuite/27_io/istream_seeks-3.tst ! 1606780265b ./libstdc++-v3/testsuite/27_io/istream_seeks.cc ! 3260211703b ./libstdc++-v3/testsuite/27_io/istream_sentry.cc 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.tst 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.txt 2702886872b ./libstdc++-v3/testsuite/27_io/istream_unformatted.cc 2607021483b ./libstdc++-v3/testsuite/27_io/istringstream_members.cc ! 611146282b ./libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ofstream_members-1.tst 2333857258b ./libstdc++-v3/testsuite/27_io/ofstream_members.cc 2500839812b ./libstdc++-v3/testsuite/27_io/ostream.cc 4258844886b ./libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc 1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.tst 1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.txt ! 1233804706b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-1.tst 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-2.tst ! 457585208b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc 1438625590b ./libstdc++-v3/testsuite/27_io/ostream_manip.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ostream_seeks-1.tst 169443827b ./libstdc++-v3/testsuite/27_io/ostream_seeks.cc --- 14163,14185 ---- 3951789237b ./libstdc++-v3/testsuite/27_io/istream_seeks-1.txt 4294967295b ./libstdc++-v3/testsuite/27_io/istream_seeks-2.tst 2129191219b ./libstdc++-v3/testsuite/27_io/istream_seeks-3.tst ! 1771504798b ./libstdc++-v3/testsuite/27_io/istream_seeks.cc ! 466639813b ./libstdc++-v3/testsuite/27_io/istream_sentry.cc 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.tst 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.txt 2702886872b ./libstdc++-v3/testsuite/27_io/istream_unformatted.cc 2607021483b ./libstdc++-v3/testsuite/27_io/istringstream_members.cc ! 2588015379b ./libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ofstream_members-1.tst 2333857258b ./libstdc++-v3/testsuite/27_io/ofstream_members.cc 2500839812b ./libstdc++-v3/testsuite/27_io/ostream.cc 4258844886b ./libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc 1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.tst 1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.txt ! 4127328437b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-1.tst 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-2.tst ! 4111323148b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc 1438625590b ./libstdc++-v3/testsuite/27_io/ostream_manip.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ostream_seeks-1.tst 169443827b ./libstdc++-v3/testsuite/27_io/ostream_seeks.cc *************** *** 14123,14143 **** 1470125519b ./libstdc++-v3/testsuite/backward/header_rope_h.cc 4158324753b ./libstdc++-v3/testsuite/backward/header_slist_h.cc 4284948430b ./libstdc++-v3/testsuite/backward/header_tempbuf_h.cc 872857903b ./libstdc++-v3/testsuite/config/default.exp 3323103327b ./libstdc++-v3/testsuite/ext/allocators.cc 1828531587b ./libstdc++-v3/testsuite/ext/concept_checks.cc 2382325141b ./libstdc++-v3/testsuite/ext/hash_set.cc 2849413443b ./libstdc++-v3/testsuite/ext/headers.cc 2661012354b ./libstdc++-v3/testsuite/ext/rope.cc 1165386526b ./libstdc++-v3/testsuite_flags.in ! 4278875690b ./libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp 3712176129b ./libstdc++-v3/testsuite/lib/prune.exp 2361428628b ./libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp 2294107082b ./libstdc++-v3/testsuite/Makefile.am ! 2918951225b ./libstdc++-v3/testsuite/Makefile.in 1352817621b ./libstdc++-v3/testsuite/printnow.c 443433597b ./libstdc++-v3/testsuite/README ! 1830362882b ./libstdc++-v3/testsuite/testsuite_hooks.h 156463796b ./libstdc++-v3/testsuite/thread/pthread1.cc 1550931445b ./libstdc++-v3/testsuite/thread/pthread2.cc 1829037829b ./libstdc++-v3/testsuite/thread/pthread3.cc --- 14200,14222 ---- 1470125519b ./libstdc++-v3/testsuite/backward/header_rope_h.cc 4158324753b ./libstdc++-v3/testsuite/backward/header_slist_h.cc 4284948430b ./libstdc++-v3/testsuite/backward/header_tempbuf_h.cc + 1238398428b ./libstdc++-v3/testsuite/backward/strstream_members.cc 872857903b ./libstdc++-v3/testsuite/config/default.exp 3323103327b ./libstdc++-v3/testsuite/ext/allocators.cc 1828531587b ./libstdc++-v3/testsuite/ext/concept_checks.cc + 1683071968b ./libstdc++-v3/testsuite/ext/hash_map.cc 2382325141b ./libstdc++-v3/testsuite/ext/hash_set.cc 2849413443b ./libstdc++-v3/testsuite/ext/headers.cc 2661012354b ./libstdc++-v3/testsuite/ext/rope.cc 1165386526b ./libstdc++-v3/testsuite_flags.in ! 2466180569b ./libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp 3712176129b ./libstdc++-v3/testsuite/lib/prune.exp 2361428628b ./libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp 2294107082b ./libstdc++-v3/testsuite/Makefile.am ! 328430332b ./libstdc++-v3/testsuite/Makefile.in 1352817621b ./libstdc++-v3/testsuite/printnow.c 443433597b ./libstdc++-v3/testsuite/README ! 2513680175b ./libstdc++-v3/testsuite/testsuite_hooks.h 156463796b ./libstdc++-v3/testsuite/thread/pthread1.cc 1550931445b ./libstdc++-v3/testsuite/thread/pthread2.cc 1829037829b ./libstdc++-v3/testsuite/thread/pthread3.cc *************** *** 14149,14160 **** 534669854b ./ltcf-cxx.sh 3594421631b ./ltcf-gcj.sh 30175378b ./ltconfig ! 509321472b ./ltmain.sh 1311810028b ./MAINTAINERS ! 1506582330b ./maintainer-scripts/ChangeLog 1905552954b ./maintainer-scripts/crontab 4171969357b ./maintainer-scripts/doc_exclude ! 2507647076b ./maintainer-scripts/gcc_release 3126840705b ./maintainer-scripts/README 4169093075b ./maintainer-scripts/snapshot-index.html 1797615493b ./maintainer-scripts/snapshot-README --- 14228,14239 ---- 534669854b ./ltcf-cxx.sh 3594421631b ./ltcf-gcj.sh 30175378b ./ltconfig ! 2369122487b ./ltmain.sh 1311810028b ./MAINTAINERS ! 3762511765b ./maintainer-scripts/ChangeLog 1905552954b ./maintainer-scripts/crontab 4171969357b ./maintainer-scripts/doc_exclude ! 3945756456b ./maintainer-scripts/gcc_release 3126840705b ./maintainer-scripts/README 4169093075b ./maintainer-scripts/snapshot-index.html 1797615493b ./maintainer-scripts/snapshot-README *************** *** 14176,14182 **** 2360440520b ./zlib/algorithm.txt 1537725969b ./zlib/amiga/Makefile.pup 3919607569b ./zlib/amiga/Makefile.sas ! 2136479423b ./zlib/ChangeLog 3062272324b ./zlib/ChangeLog.gcj 720988996b ./zlib/compress.c 1404772722b ./zlib/configure --- 14255,14261 ---- 2360440520b ./zlib/algorithm.txt 1537725969b ./zlib/amiga/Makefile.pup 3919607569b ./zlib/amiga/Makefile.sas ! 715185138b ./zlib/ChangeLog 3062272324b ./zlib/ChangeLog.gcj 720988996b ./zlib/compress.c 1404772722b ./zlib/configure diff -Nrc3pad gcc-3.1/.cvsignore gcc-3.1.1/.cvsignore *** gcc-3.1/.cvsignore Fri Jul 27 06:00:45 2001 --- gcc-3.1.1/.cvsignore Mon Jun 24 16:14:28 2002 *************** configure.tp *** 25,32 **** configure.tps configure.vr configure.vrs - dir.info Makefile lost+found update.out LAST_UPDATED --- 25,32 ---- configure.tps configure.vr configure.vrs Makefile + dir.info lost+found update.out LAST_UPDATED diff -Nrc3pad gcc-3.1/BUGS gcc-3.1.1/BUGS *** gcc-3.1/BUGS Wed May 15 02:40:23 2002 --- gcc-3.1.1/BUGS Thu Jul 25 23:50:44 2002 *************** Table of Contents *** 14,20 **** + [6]Detailed bug reporting instructions + [7]Detailed bug reporting instructions for GNAT * [8]Managing Bugs (GNATS and the test-suite) ! * [9]Frequently Reported Bugs in GCC 3.0 + [10]General + [11]Fortran + [12]C --- 14,20 ---- + [6]Detailed bug reporting instructions + [7]Detailed bug reporting instructions for GNAT * [8]Managing Bugs (GNATS and the test-suite) ! * [9]Frequently Reported Bugs in GCC + [10]General + [11]Fortran + [12]C *************** Table of Contents *** 33,39 **** Before you report a bug, please check the [20]list of well-known bugs and, if possible in any way, try a current development snapshot. If ! you want to report a bug with versions of GCC before 3.0 we strongly recommend upgrading to the current release first. Before reporting that GCC compiles your code incorrectly, please --- 33,39 ---- Before you report a bug, please check the [20]list of well-known bugs and, if possible in any way, try a current development snapshot. If ! you want to report a bug with versions of GCC before 3.1 we strongly recommend upgrading to the current release first. Before reporting that GCC compiles your code incorrectly, please *************** Detailed bug reporting instructions for *** 220,235 **** 3. Check in your fixes. _________________________________________________________________ ! Frequently Reported Bugs in GCC 3.0 ! ! General ! ! The following bugs are very frequently reported. ! * GCC 2.95.2 does not build on GNU/Linux systems using glibc 2.2, ! such as Red Hat 7.0. This is fixed in GCC 2.95.3 and GCC 3.0. ! * GCC 2.95.2 crashes when compiling mbx.c from the PINE 4.30 or ! IMAP2000 distribution on Sparc systems running Solaris. ! _________________________________________________________________ Fortran --- 220,226 ---- 3. Check in your fixes. _________________________________________________________________ ! Frequently Reported Bugs in GCC Fortran *************** C++ *** 343,350 **** You should update your code to be C++. You should try to use the latest stable release of the GNU C++ ! compiler. This is currently 3.0. Many commonly reported bugs in ! earlier releases are fixed in that version. Common problems updating from G++ 2.95 to G++ 3.0 --- 334,340 ---- You should update your code to be C++. You should try to use the latest stable release of the GNU C++ ! compiler. Common problems updating from G++ 2.95 to G++ 3.0 *************** C++ *** 386,419 **** ABI bugs ! 3.0 has a new ABI, which affects class layout, function mangling and calling conventions. We had intended it to be complete, unfortunately ! some issues have come to light, too late to fix in the 3.0 series. ! Rather than fix them in subsequent 3.0 dot releases we have decided to ! fix these in the 3.1 development series. History has shown that it was ! a mistake to make ABI changes in dot releases. Also, the standard ! library will also change in the 3.1 series, which is effective as ! changing the ABI. ! ! Complicated virtual inheritance segfaults ! Some instances of complicated virtual inheritance crash when ! executing the constructor. We believe some cases to be already ! existing in g++ 2.95, bug that generated incorrect code that ! didn't happen to crash. Other cases concern polymophic virtual ! base classes with no data members (so called nearly empty ! bases). You might be able to work around the problem by adding ! a dummy data member. GNATS PRs 3598, 3290, 3145 & 2811 track ! these issues. ! ! Base classes with operator delete [] (void *, size_t) sometimes did ! not get the correct size passed when deleting a derived object ! This is a long standing G++ bug, that should have been fixed by ! the new ABI. Unfortunately it did not, and requires an ABI ! change to fix. Also, a related, but more obscure case is when ! both that and an operator delete[] (void *) is provided. ! Although the produced code functions, it is incompatible with ! the ABI. GNATS PR 113 tracked this, which is now fixed in the ! 3.1 tree with [34]this patch. Covariant return types We do not implement non-trivial covariant returns. We also --- 376,386 ---- ABI bugs ! 3.0 had a new ABI, which affected class layout, function mangling and calling conventions. We had intended it to be complete, unfortunately ! some issues came to light, too late to fix in the 3.0 series. The ABI ! should not change in dot releases, so we addressed most issues in GCC ! 3.1. Covariant return types We do not implement non-trivial covariant returns. We also *************** C++ *** 485,493 **** the nearest representable number. This is not a bug in the compiler, but an inherent limitation ! of the float and double types. Please study [35]this paper for more information. Missing features We know some things are missing from G++. --- 452,476 ---- the nearest representable number. This is not a bug in the compiler, but an inherent limitation ! of the float and double types. Please study [34]this paper for more information. + Templates, scoping, and digraphs. + If you have a class in global namespace, say named X, and want + to give it as a template argument to some other class, say + std::vector, then this here fails with a parser error: + std::vector<::X>. + + The reason is that the standard mandates that the sequence <: + is treated as if it were the token [, and the parser then + reports a parse error before the character : (by which it means + the second colon). There are several such combinations of + characters, and they are called digraphs. + + The simplest way to avoid this is to write std::vector< ::X>, + i.e. place a space between the opening angle bracket and the + scope operator. + Missing features We know some things are missing from G++. *************** References *** 608,612 **** 31. http://www.ncits.org/cplusplus.htm 32. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html 33. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html ! 34. http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01302.html ! 35. http://www.validlab.com/goldberg/paper.ps --- 591,594 ---- 31. http://www.ncits.org/cplusplus.htm 32. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html 33. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html ! 34. http://www.validlab.com/goldberg/paper.ps diff -Nrc3pad gcc-3.1/ChangeLog gcc-3.1.1/ChangeLog *** gcc-3.1/ChangeLog Wed May 15 02:14:53 2002 --- gcc-3.1.1/ChangeLog Thu Jul 25 23:34:06 2002 *************** *** 1,3 **** --- 1,38 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-07-08 Phil Edwards + + * configure.in (gxx_include_dir): Change to match versioned + C++ headers if --enable-version-specific-runtime-libs is used. + + 2002-06-27 Benjamin Kosnik + + * config.if (libstdcxx_incdir): Version C++ headers. + (cxx_incdir): Remove. + + 2002-06-24 Phil Edwards + + * configure: Revert in-srcdir redirect upon request. + * .cvsignore: Add Makefile. + * Makefile: Removed. + + 2002-06-18 Phil Edwards + + * configure: Remove garbage from previous commit. + + 2002-06-18 Phil Edwards + + * configure: For in-source builds, make a subdir and re-exec there. + * Makefile: New file. Pass targets through to build directory. + * .cvsignore: No longer ignore "Makefile". + + 2002-06-05 Loren J. Rittle + + * ltmain.sh: Detect and handle object name conflicts while + piecewise linking a static library. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/INSTALL/binaries.html gcc-3.1.1/INSTALL/binaries.html *** gcc-3.1/INSTALL/binaries.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/binaries.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

Installing GCC: Binaries

!

Installing GCC: Binaries

! !

We are often asked about pre-compiled versions of GCC. While we cannot provide these for all platforms, below you'll find links to binaries for various platforms where creating them by yourself is not easy due to various reasons. --- 8,14 ----

Installing GCC: Binaries

! We are often asked about pre-compiled versions of GCC. While we cannot provide these for all platforms, below you'll find links to binaries for various platforms where creating them by yourself is not easy due to various reasons. *************** contact their makers. *** 24,33 **** !
  • DOS--DJGPP;
  • HP-UX:

    In addition to those specific offerings, you can get a binary --- 36,58 ----

  • Binaries for HP-UX 11.00 at Aachen University of Technology. !
  • SCO OpenServer/Unixware. !
  • Sinix/Reliant Unix--Siemens. !
  • Solaris 2 (SPARC, Intel)--Sunfreeware. ! !
  • SGI--SGI Freeware.
  • Windows 95, 98, and NT:
  • The Written Word offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel, IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.

    In addition to those specific offerings, you can get a binary diff -Nrc3pad gcc-3.1/INSTALL/build.html gcc-3.1.1/INSTALL/build.html *** gcc-3.1/INSTALL/build.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/build.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

    Installing GCC: Building

    !

    Installing GCC: Building

    ! !

    Now that GCC is configured, you are ready to build the compiler and runtime libraries.

    We highly recommend that GCC be built using GNU make; --- 8,14 ----

    Installing GCC: Building

    ! Now that GCC is configured, you are ready to build the compiler and runtime libraries.

    We highly recommend that GCC be built using GNU make; diff -Nrc3pad gcc-3.1/INSTALL/configure.html gcc-3.1.1/INSTALL/configure.html *** gcc-3.1/INSTALL/configure.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/configure.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

    Installing GCC: Configuration

    !

    Installing GCC: Configuration

    ! !

    Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure for both native and cross targets. --- 8,14 ----

    Installing GCC: Configuration

    ! Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure for both native and cross targets. diff -Nrc3pad gcc-3.1/INSTALL/download.html gcc-3.1.1/INSTALL/download.html *** gcc-3.1/INSTALL/download.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/download.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

    Downloading GCC

    !

    Downloading GCC

    ! !

    GCC is distributed via CVS and FTP tarballs compressed with gzip or bzip2. It is possible to download a full distribution or specific components. --- 8,14 ----

    Downloading GCC

    ! GCC is distributed via CVS and FTP tarballs compressed with gzip or bzip2. It is possible to download a full distribution or specific components. diff -Nrc3pad gcc-3.1/INSTALL/finalinstall.html gcc-3.1.1/INSTALL/finalinstall.html *** gcc-3.1/INSTALL/finalinstall.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/finalinstall.html Thu Jul 25 23:50:44 2002 *************** *** 8,19 ****

    Installing GCC: Final installation

    !

    Installing GCC: Final installation

    ! !

    Now that GCC has been built (and optionally tested), you can install it with

    cd objdir; make install
      

    That step completes the installation of GCC; user level binaries can be found in prefix/bin where prefix is the value you specified with the --prefix to configure (or /usr/local --- 8,20 ----

    Installing GCC: Final installation

    ! Now that GCC has been built (and optionally tested), you can install it with
    cd objdir; make install
      
    +

    We strongly recommend to install into a target directory where there is + no previous version of GCC present. +

    That step completes the installation of GCC; user level binaries can be found in prefix/bin where prefix is the value you specified with the --prefix to configure (or /usr/local diff -Nrc3pad gcc-3.1/INSTALL/index.html gcc-3.1.1/INSTALL/index.html *** gcc-3.1/INSTALL/index.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/index.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

    Installing GCC

    !

    Installing GCC

    ! !

    The latest version of this document is always available at http://gcc.gnu.org/install/.

    This document describes the generic installation procedure for GCC as well --- 8,14 ----

    Installing GCC

    ! The latest version of this document is always available at http://gcc.gnu.org/install/.

    This document describes the generic installation procedure for GCC as well diff -Nrc3pad gcc-3.1/INSTALL/specific.html gcc-3.1.1/INSTALL/specific.html *** gcc-3.1/INSTALL/specific.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/specific.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

    Host/Target specific installation notes for GCC

    !

    Host/target specific installation notes for GCC

    ! !

    Please read this document carefully before installing the GNU Compiler Collection on your machine.

      --- 8,14 ----

      Host/Target specific installation notes for GCC

      ! Please read this document carefully before installing the GNU Compiler Collection on your machine.
        *************** resulting object file. The output shoul *** 1531,1536 **** --- 1529,1553 ---- should set the environment variable CC to cc -n32 before configuring GCC. +

        If you want the resulting gcc to run on old 32-bit systems + with the MIPS R4400 CPU, you need to ensure that only code for the mips3 + instruction set architecture (ISA) is generated. While GCC 3.x does + this correctly, both GCC 2.95 and SGI's MIPSpro cc may change + the ISA depending on the machine where GCC is built. Using one of them + as the bootstrap compiler may result in mips4 code, which won't run at + all on mips3-only systems. For the test program above, you should see: + +

        test.o: ELF N32 MSB mips-3 ...
        + 
        + +

        If you get: + +

        test.o: ELF N32 MSB mips-4 ...
        + 
        + +

        instead, you should set the environment variable CC to cc + -n32 -mips3 or gcc -mips3 respectively before configuring GCC. +

        GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If you build GCC on a system that doesn't have the N64 libraries installed, you need to configure with --disable-multilib so GCC doesn't *************** its maximum of 262144 bytes. If you hav *** 1562,1568 ****

        GCC does not correctly pass/return structures which are smaller than 16 bytes and which are not 8 bytes. The problem is very involved and difficult to fix. It affects a number of other targets also, ! but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte structures are common. The exact problem is that structures are being padded at the wrong end, e.g. a 4 byte structure is loaded into the lower 4 bytes of the register when it should be loaded into the upper 4 bytes of the --- 1579,1585 ----

        GCC does not correctly pass/return structures which are smaller than 16 bytes and which are not 8 bytes. The problem is very involved and difficult to fix. It affects a number of other targets also, ! but IRIX 6 is affected the most, because it is a 64-bit target, and 4 byte structures are common. The exact problem is that structures are being padded at the wrong end, e.g. a 4 byte structure is loaded into the lower 4 bytes of the register when it should be loaded into the upper 4 bytes of the *************** is correct. *** 1775,1781 ****

        s390x-*-linux*

        !

        zSeries system (64 Bit) running Linux for zSeries.


        --- 1792,1798 ----

        s390x-*-linux*

        !

        zSeries system (64-bit) running Linux for zSeries.


        *************** GCC you first have to install a pre-buil *** 1789,1797 ****

        The Solaris 2 /bin/sh will often fail to configure libstdc++-v3, boehm-gc or libjava. If you encounter this problem, set CONFIG_SHELL to ! /bin/ksh in your environment and run make bootstrap again. ! Another possibility that sometimes helps is to remove ! *-*-solaris2*/config.cache.

        Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely SUNWarc, --- 1806,1812 ----

        The Solaris 2 /bin/sh will often fail to configure libstdc++-v3, boehm-gc or libjava. If you encounter this problem, set CONFIG_SHELL to ! /bin/ksh in your environment before running configure.

        Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely SUNWarc, *************** respects, this target is the same as the *** 2070,2076 ****


        !

        Microsoft Windows (32 bit)

        A port of GCC 2.95.x is included with the Cygwin environment. --- 2085,2091 ----


        !

        Microsoft Windows (32-bit)

        A port of GCC 2.95.x is included with the Cygwin environment. diff -Nrc3pad gcc-3.1/INSTALL/test.html gcc-3.1.1/INSTALL/test.html *** gcc-3.1/INSTALL/test.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/test.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

        Installing GCC: Testing

        !

        Installing GCC: Testing

        ! !

        Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have been submitted to the gcc-testresults mailing list. --- 8,14 ----

        Installing GCC: Testing

        ! Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have been submitted to the gcc-testresults mailing list. *************** environment variables. *** 58,63 **** --- 56,66 ---- distribution as possible, including the C, C++, Objective-C and Fortran compilers as well as the C++ and Java runtime libraries. +

        While running the testsuite, DejaGnu might emit messages resembling + WARNING: Couldn't find the global config file. or + WARNING: Couldn't find tool init file. + These messages are harmless and do not affect the validity of the tests. +

        How can I run the test suite on selected tests?

        As a first possibility to cut down the number of tests that are run it is diff -Nrc3pad gcc-3.1/boehm-gc/ChangeLog gcc-3.1.1/boehm-gc/ChangeLog *** gcc-3.1/boehm-gc/ChangeLog Wed May 15 02:14:58 2002 --- gcc-3.1.1/boehm-gc/ChangeLog Thu Jul 25 23:34:09 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-06-28 Hans Boehm + Jonathan Clark + + * win32_threads.c (GC_push_all_stacks): Tolerate bad sp. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/boehm-gc/win32_threads.c gcc-3.1.1/boehm-gc/win32_threads.c *** gcc-3.1/boehm-gc/win32_threads.c Tue Mar 12 18:31:12 2002 --- gcc-3.1.1/boehm-gc/win32_threads.c Sat Jun 29 17:29:51 2002 *************** void GC_push_all_stacks() *** 144,151 **** GC_push_one ((word) thread_table[i].context.Edx); GC_push_one ((word) thread_table[i].context.Ecx); GC_push_one ((word) thread_table[i].context.Eax); ! GC_push_all_stack((char *) thread_table[i].context.Esp, ! thread_table[i].stack); # else # ifdef ARM32 if (thread_table[i].context.Sp >= (DWORD)thread_table[i].stack --- 144,158 ---- GC_push_one ((word) thread_table[i].context.Edx); GC_push_one ((word) thread_table[i].context.Ecx); GC_push_one ((word) thread_table[i].context.Eax); ! if (thread_table[i].context.Esp >= (DWORD)thread_table[i].stack ! || thread_table[i].context.Esp < (DWORD)bottom) { ! WARN("Thread stack pointer 0x%lx out of range, pushing everything", ! thread_table[i].context.Esp); ! GC_push_all_stack((char *) bottom, thread_table[i].stack); ! } else { ! GC_push_all_stack((char *) thread_table[i].context.Esp, ! thread_table[i].stack); ! } # else # ifdef ARM32 if (thread_table[i].context.Sp >= (DWORD)thread_table[i].stack diff -Nrc3pad gcc-3.1/bugs.html gcc-3.1.1/bugs.html *** gcc-3.1/bugs.html Wed May 15 02:40:21 2002 --- gcc-3.1.1/bugs.html Thu Jul 25 23:50:41 2002 *************** *** 24,30 ****

    • Managing Bugs (GNATS and the test-suite)
    • !
    • Frequently Reported Bugs in GCC 3.0
    • Managing Bugs (GNATS and the test-suite)
    • !
    • Frequently Reported Bugs in GCC
      • General
      • Fortran
      • *************** *** 54,60 ****

        Before you report a bug, please check the list of well-known bugs and, if possible in any way, try a current development snapshot. ! If you want to report a bug with versions of GCC before 3.0 we strongly recommend upgrading to the current release first.

        Before reporting that GCC compiles your code incorrectly, please --- 54,60 ----

        Before you report a bug, please check the list of well-known bugs and, if possible in any way, try a current development snapshot. ! If you want to report a bug with versions of GCC before 3.1 we strongly recommend upgrading to the current release first.

        Before reporting that GCC compiles your code incorrectly, please *************** the bug is a regression. *** 277,299 ****


        !

        Frequently Reported Bugs in GCC 3.0

        ! !

        General

        ! !

        The following bugs are very frequently reported.

        ! !
          ! !
        • GCC 2.95.2 does not build on GNU/Linux systems using glibc 2.2, ! such as Red Hat 7.0. This is fixed in GCC 2.95.3 and GCC 3.0.
        • ! !
        • GCC 2.95.2 crashes when compiling mbx.c from the PINE ! 4.30 or IMAP2000 distribution on Sparc systems running Solaris.
        • ! !
        ! !

        Fortran

        --- 277,283 ----
        !

        Frequently Reported Bugs in GCC

        Fortran

        *************** Trouble with GNU Fortran in the G77 *** 310,317 **** often enough to warrant a mention here.

        !
        Cannot initialize a static variable with ! stdin.

        This has nothing to do with GCC, but people ask us about it a lot. Code like this:

        --- 294,300 ---- often enough to warrant a mention here.

        !
        Cannot initialize a static variable with stdin.

        This has nothing to do with GCC, but people ask us about it a lot. Code like this:

        *************** projects; please check the *** 340,346 **** for details.

        !
        Cannot use preprocessor directive in macro arguments.

        Let me guess... you wrote code that looks something like this:

            memcpy(dest, src,
        --- 323,329 ----
          for details.
          

        !
        Cannot use preprocessor directive in macro arguments.

        Let me guess... you wrote code that looks something like this:

            memcpy(dest, src,
        *************** C++. This means that code which might ha
        *** 419,426 ****
          version, is now rejected. You should update your code to be C++.

        You should try to use the latest stable release of the GNU C++ ! compiler. This is currently 3.0. Many commonly reported bugs in ! earlier releases are fixed in that version.

        Common problems updating from G++ 2.95 to G++ 3.0

        --- 402,408 ---- version, is now rejected. You should update your code to be C++.

        You should try to use the latest stable release of the GNU C++ ! compiler.

        Common problems updating from G++ 2.95 to G++ 3.0

        *************** same. *** 491,531 ****

        ABI bugs

        !

        3.0 has a new ABI, which affects class layout, function mangling and calling conventions. We had intended it to be complete, unfortunately ! some issues have come to light, too late to fix in the 3.0 series. ! Rather than fix them in subsequent 3.0 dot releases we have decided ! to fix these in the 3.1 development series. History has shown that it ! was a mistake to make ABI changes in dot releases. Also, the standard ! library will also change in the 3.1 series, which is effective as ! changing the ABI.

        !
        Complicated virtual inheritance segfaults
        ! !
        Some instances of complicated virtual inheritance crash when ! executing the constructor. We believe some cases to be already existing ! in g++ 2.95, bug that generated incorrect code that didn't happen to ! crash. Other cases concern polymophic virtual base classes with no ! data members (so called nearly empty bases). You might be able to work ! around the problem by adding a dummy data member. GNATS PRs 3598, 3290, ! 3145 & 2811 track these issues.
        ! !
        Base classes with operator delete [] (void *, size_t) ! sometimes did not get the correct size passed when deleting a derived ! object
        ! !
        This is a long standing G++ bug, that should have been fixed by the ! new ABI. Unfortunately it did not, and requires an ABI change to fix. ! Also, a related, but more obscure case is when both that and an operator ! delete[] (void *) is provided. Although the produced code ! functions, it is incompatible with the ABI. GNATS PR 113 tracked this, ! which is now fixed in the 3.1 tree with ! ! this patch.
        ! !
        Covariant return types
        We do not implement non-trivial covariant returns. We also generate incorrect virtual function tables for trivial covariance. Although --- 473,488 ----

        ABI bugs

        !

        3.0 had a new ABI, which affected class layout, function mangling and calling conventions. We had intended it to be complete, unfortunately ! some issues came to light, too late to fix in the 3.0 series. ! The ABI should not change in dot releases, so we addressed most issues ! in GCC 3.1. !

        !
        Covariant return types
        We do not implement non-trivial covariant returns. We also generate incorrect virtual function tables for trivial covariance. Although *************** not.

        *** 541,560 ****
        !
        Nested classes can access private types of the containing ! class.

        G++ now implements type access control on member types. Defect report 45 clarifies that nested classes are members of the class they are nested in, and so are granted access to private members of that class.

        !
        Classes in exception specifiers must be complete ! types.

        [15.4]/1 tells you that you cannot have an incomplete type, or pointer to incomplete (other than cv void *) in an exception specification.

        !
        G++ emits two copies of constructors and destructors.

        In general there are three types of constructors (and destructors).

        --- 498,516 ----
        !
        Nested classes can access private types of the containing ! class.

        G++ now implements type access control on member types. Defect report 45 clarifies that nested classes are members of the class they are nested in, and so are granted access to private members of that class.

        !
        Classes in exception specifiers must be complete types.

        [15.4]/1 tells you that you cannot have an incomplete type, or pointer to incomplete (other than cv void *) in an exception specification.

        !
        G++ emits two copies of constructors and destructors.

        In general there are three types of constructors (and destructors).

        *************** destructors).

        *** 566,572 ****

        The first two are different, when virtual base classes are involved. In some cases we can do better, and this is logged in GNATS.

        !
        Exceptions don't work in multithreaded applications.

        You need to rebuild g++ and libstdc++ with --enable-threads. Remember, c++ exceptions are not like --- 522,528 ----

        The first two are different, when virtual base classes are involved. In some cases we can do better, and this is logged in GNATS.

        !
        Exceptions don't work in multithreaded applications.

        You need to rebuild g++ and libstdc++ with --enable-threads. Remember, c++ exceptions are not like *************** hardware interrupts. You cannot throw an *** 574,580 **** catch it in another. You cannot throw an exception from a signal handler, and catch it in the main thread.

        !
        Global destructors are not run in the correct order.

        Global destructors should be run in the reverse order of their constructors completing. In most cases this is the same as --- 530,536 ---- catch it in another. You cannot throw an exception from a signal handler, and catch it in the main thread.

        !
        Global destructors are not run in the correct order.

        Global destructors should be run in the reverse order of their constructors completing. In most cases this is the same as *************** switch on by default, as it requires a < *** 585,591 **** library (libc, glibc, or equivalent).

        !
        Problems with floating point computations.

        In a number of cases, GCC appears to perform floating point computations incorrectly. For example, the program

        --- 541,547 ---- library (libc, glibc, or equivalent).

        !
        Problems with floating point computations.

        In a number of cases, GCC appears to perform floating point computations incorrectly. For example, the program

        *************** the float and double types. Please study *** 614,619 **** --- 570,599 ---- this paper for more information.

        +
        Templates, scoping, and digraphs.
        + +

        If you have a class in global namespace, say named + X, and want to give it as a template argument to some + other class, say std::vector, then this here fails with a + parser error: std::vector<::X>. +

        + +

        + The reason is that the standard mandates that the sequence + <: is treated as if it were the token + [, and the parser then reports a parse error before the + character : (by which it means the second + colon). There are several such combinations of characters, and + they are called digraphs. +

        + +

        + The simplest way to avoid this is to write std::vector< + ::X>, i.e. place a space between the opening angle bracket + and the scope operator. +

        + +

        Missing features

        *************** for more information.

        *** 621,627 ****
        !
        The export keyword is not implemented.

        Most C++ compilers (G++ included) do not yet implement export, which is necessary for separate compilation of template declarations and definitions. Without export, a --- 601,607 ----

        !
        The export keyword is not implemented.

        Most C++ compilers (G++ included) do not yet implement export, which is necessary for separate compilation of template declarations and definitions. Without export, a *************** workaround is simply to place all defini *** 630,636 **** itself. Alternatively, the compilation unit containing template definitions may be included from the header.

        !
        Two stage lookup in templates is not implemented.

        [14.6] specifies how names are looked up inside a template. G++ does not do this correctly, but for most templates this will not be noticeable.

        --- 610,616 ---- itself. Alternatively, the compilation unit containing template definitions may be included from the header.

        !
        Two stage lookup in templates is not implemented.

        [14.6] specifies how names are looked up inside a template. G++ does not do this correctly, but for most templates this will not be noticeable.

        diff -Nrc3pad gcc-3.1/config/ChangeLog gcc-3.1.1/config/ChangeLog *** gcc-3.1/config/ChangeLog Wed May 15 02:15:07 2002 --- gcc-3.1.1/config/ChangeLog Thu Jul 25 23:34:12 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/config/mpw/ChangeLog gcc-3.1.1/config/mpw/ChangeLog *** gcc-3.1/config/mpw/ChangeLog Wed May 15 02:15:01 2002 --- gcc-3.1.1/config/mpw/ChangeLog Thu Jul 25 23:34:10 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/config.if gcc-3.1.1/config.if *** gcc-3.1/config.if Mon Feb 5 11:02:20 2001 --- gcc-3.1.1/config.if Fri Jun 28 01:53:37 2002 *************** *** 2,10 **** # Don't call it directly. This shell script fragment is called to # determine: # ! # 1. libstcxx_interface: the interface name for libstdc++. ! # 2. cxx_interface: the interface name for c++. ! # 3. libc_interface: the interface name for libc. # # Get the top level src dir. --- 2,9 ---- # Don't call it directly. This shell script fragment is called to # determine: # ! # 1. libstcxx_incdir: the interface name for libstdc++. ! # 2. libc_interface: the interface name for libc. # # Get the top level src dir. *************** else *** 21,32 **** if_topsrcdir=${top_srcdir} fi ! libstdcxx_srcdir=${if_topsrcdir}/libstdc++-v3 ! # We check libstdc++-v3/configure.in for libstdcxx_interface. ! libstdcxx_interface=`grep "^INTERFACE" ${libstdcxx_srcdir}/configure.in | sed 's/INTERFACE[ ]*=[ ]*\(.*\)/\1/'` ! libstdcxx_incdir=g++-${libstdcxx_interface} ! # Used to version libstdc++ shared libraries ! cxx_interface=2 # The trickiest part is libc_interface. if [ -z "${libc_interface}" ] --- 20,31 ---- if_topsrcdir=${top_srcdir} fi ! # Set libstdcxx_incdir. ! # This is the same as gcc/configure.in and libstdc++-v3/acinclude.m4. ! gcc_version_trigger=${if_topsrcdir}/gcc/version.c ! gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'` ! gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` ! libstdcxx_incdir=c++/${gcc_version} # The trickiest part is libc_interface. if [ -z "${libc_interface}" ] diff -Nrc3pad gcc-3.1/configure gcc-3.1.1/configure *** gcc-3.1/configure Wed Dec 5 12:40:39 2001 --- gcc-3.1.1/configure Mon Jun 24 16:14:28 2002 *************** subdirs= *** 89,95 **** target_alias=NOTARGET target_makefile_frag= undefs=NOUNDEFS ! version="$Revision: 1.40 $" x11=default bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' --- 89,95 ---- target_alias=NOTARGET target_makefile_frag= undefs=NOUNDEFS ! version="$Revision: 1.40.6.3 $" x11=default bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' diff -Nrc3pad gcc-3.1/configure.in gcc-3.1.1/configure.in *** gcc-3.1/configure.in Sun May 5 18:56:48 2002 --- gcc-3.1.1/configure.in Mon Jul 8 10:00:57 2002 *************** if test -n "${with_gxx_include_dir}"; th *** 1455,1461 **** fi if test x${gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gxx_include_dir='${libsubdir}/include/g++' else . ${topsrcdir}/config.if gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' --- 1455,1461 ---- fi if test x${gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gxx_include_dir='${libsubdir}/include/c++' else . ${topsrcdir}/config.if gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' diff -Nrc3pad gcc-3.1/contrib/ChangeLog gcc-3.1.1/contrib/ChangeLog *** gcc-3.1/contrib/ChangeLog Wed May 15 02:15:14 2002 --- gcc-3.1.1/contrib/ChangeLog Thu Jul 25 23:34:14 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-07-22 Gerald Pfeifer + + * gennews (files): Add proper files for the GCC 3.1 release series. + Simplify and reformat introductory wording. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/contrib/gennews gcc-3.1.1/contrib/gennews *** gcc-3.1/contrib/gennews Fri Jan 25 23:27:45 2002 --- gcc-3.1.1/contrib/gennews Thu Jul 25 14:36:02 2002 *************** *** 22,28 **** # Boston, MA 02111-1307, USA. website=http://gcc.gnu.org/ ! files="gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html egcs-1.0/egcs-1.0.3.html egcs-1.0/egcs-1.0.2.html egcs-1.0/egcs-1.0.1.html --- 22,29 ---- # Boston, MA 02111-1307, USA. website=http://gcc.gnu.org/ ! files="gcc-3.1/index.html gcc-3.1/changes.html ! gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html egcs-1.0/egcs-1.0.3.html egcs-1.0/egcs-1.0.2.html egcs-1.0/egcs-1.0.1.html *************** files="gcc-3.0/gcc-3.0.html gcc-3.0/feat *** 31,41 **** set -e cat < ! ! * Import following patch from mainline: ! ! 2002-03-18 Bernd Schmidt ! ! * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart ! instead of gen_rtx_SUBREG. ! (arm_reload_out_hi): Use gen_lowpart instead of ! gen_rtx_SUBREG to access QImode components. ! * config/arm/arm.md: Disable zero_extend split for QImode ! subregs in BIG_ENDIAN mode. ! (storehi_bigend): Match use of least significant byte. ! (storeinthi): Remove extraneous SUBREG. ! Add missing construction of operands[2]. ! (movhi): Use gen_lowpart in place of gen_rtx_SUBREG. ! (movqi): Use gen_lowpart in place of gen_rtx_SUBREG. ! Replace gen_rtx (SUBREG) with gen_rtx_SUBREG. ! ! 2002-07-18 Richard Henderson ! ! PR optimization/7147 ! * ifcvt.c (noce_get_condition): Make certain that the condition ! is valid at JUMP. ! ! 2002-07-16 Hans-Peter Nilsson ! ! * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't ! --gc-sections if -r. ! ! 2002-07-15 Eric Botcazou ! ! PR optimization/7153 ! * regmove.c (optimize_reg_copy_3): Don't optimize if the register ! dies in more than one insn. ! ! 2002-07-15 Jason Thorpe ! ! * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove. ! ! 2002-07-15 John David Anglin ! ! * bb-reorder.c (make_reorder_chain_1): Search harder for the vax ! casesi fallthru edge. ! * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection ! block after ADDR_VEC. ! * vax.md (casesi): Use emit_jump_insn. Remove unused constraints. ! ! 2002-07-15 Jakub Jelinek ! ! PR middle-end/7245 ! * config/i386/i386.c (const_int_1_31_operand): New. ! * config/i386/i386.h (PREDICATE_CODES): Add it. ! * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp, ! ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp, ! lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it. ! ! 2002-06-11 Andreas Schwab ! ! * config/m68k/m68k.h (PREDICATE_CODES): Define. ! ! 2002-07-15 Alan Modra ! ! PR target/7282 ! * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64. ! (floatunssidf2): Likewise. ! (floatsidf_ppc64): New insn_and_split. ! (floatunssidf_ppc64): Likewise. ! ! 2002-07-12 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for ! the scratch register. ! ("*movhi2_push"): Accept Z_REG because a split pattern can make use ! of it, forbid reload to use it. ! ! 2002-07-12 Marek Michalkiewicz ! ! * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT ! usage on 64-bit hosts, return value was truncated to 32 bits. ! ! 2002-07-11 John David Anglin ! ! * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand. ! Remove comment. Change predicate of 32-bit adddi3 insn pattern to ! arith11_operand. ! * pa-protos.h (adddi3_operand): Add prototype. ! * pa.c (cint_ok_for_move): Fix comment. ! (adddi3_operand): New function. ! (emit_move_sequence): Don't directly split DImode constants on ! 32-bit targets. ! ! 2002-07-05 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating ! QI mode registers in soft registers. ! ("zero_extendqihi2"): Do not take into account soft registers ! for register allocation (use '*' constraint). ! ! 2002-07-05 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know ! it is dead. ! ("*ashrsi3"): Likewise. ! ("*lshrsi3"): Likewise. ! ! 2002-07-05 Stephane Carrez ! ! * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize ! address computation and memory moves. ! ! 2002-07-03 Mark Mitchell ! ! PR c++/6706 ! * dwarfout.c (output_reg_number): Fix warning message. ! (output_bound_representation): Check SAVE_EXPR_RTL is not NULL ! before using it. ! ! 2002-07-03 Richard Henderson ! ! * config/i386/i386.md (prologue_get_pc): Issue pop here ... ! * config/i386/i386.c (load_pic_register): ... not here. ! ! 2002-07-03 David Edelsohn ! ! * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode ! in FPR as preference. ! (fctiwz): Same. ! (floatdidf2, fix_truncdfdi2): Same. ! (floatdisf2, floatditf2, fix_trunctfdi2): Same. ! (floatditf2): Same. ! (floatsitf2, fix_trunctfsi2): SImode in GPR. ! (ctrdi): Remove FPR alternative and splitter. ! ! 2002-07-02 Hans-Peter Nilsson ! ! PR target/7177 ! * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number ! of indirections for register inside sign-extended mem part. ! ! 2002-07-01 John David Anglin ! ! * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT. ! ! 2002-06-30 David Edelsohn ! ! * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR ! constraint in define_expand, not splitter. ! ! 2002-06-28 Phil Edwards ! ! * configure.in (gcc_gxx_include_dir): Change to match versioned ! C++ headers if --enable-version-specific-runtime-libs is used. ! * configure: Regenerate. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to ! avoid the auto increment addressing modes. ! ("*subsi3"): Likewise. ! (split for add/sub on address): For 68HC12 push the value on ! the stack and do the operation with a pop. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define. ! * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options): ! Declare. ! * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New, ! do not reorder basic blocks at the end when optimizing for size. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.c (autoinc_mode): New function. ! (m68hc11_make_autoinc_notes): New function. ! (m68hc11_split_move): Be very cautious when spliting a move with ! auto increment/decrement modes because this may result in incompatible ! directions; add REG_INC notes to the resulting insn for CSE reg. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant ! can be a valid address. ! ! 2002-06-28 Bob Wilson ! ! * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare. ! config/xtensa/xtensa.c (xtensa_return_addr): New function. ! config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr. ! config/xtensa/xtensa.md (fix_return_addr): New pattern. ! ! 2002-06-28 Bob Wilson ! ! * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic ! when generating the call to _mcount. ! (NO_PROFILE_COUNTERS): Define. ! ! 2001-06-08 Bernd Schmidt ! ! * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE ! subregs. ! * recog.c (general_operand, register_operand): Disallow them. ! ! 2002-06-27 Bob Wilson ! ! * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Pass ! flag_function_sections as new 3rd arg to resolve_unique_section. ! ! 2002-06-27 Neil Booth ! ! PR preprocessor/7070 ! * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF. ! ! 2002-06-27 Gerald Pfeifer ! ! * doc/install.texi (Binaries): Add Sinix/Reliant Unix. Move ! Hitachi entry. Make punctuation more consistent. ! ! 2002-06-27 Matt Kraai ! ! * doc/install.texi: Change ` bit' to `-bit'. ! * doc/md.texi: Change `-bits' to `-bit'. ! * doc/tm.texi: Change `-bits' to ` bits'. ! ! 2002-06-24 David S. Miller ! ! * config/sparc/sparc.h (INIT_TARGET_OPTABS): If ARCH64, set the ! 32-bit ABI libfuncs to NULL. ! ! * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift ! optabs if op1 is const0_rtx. ! ! 2002-06-23 Jan Hubicka ! ! * reg-stack.c (convert_regs_exit): Push the registers to stack in ! proper order. ! ! 2002-06-22 Ulrich Weigand ! ! PR middle-end/6963 ! * function.c (assign_stack_temp_for_type): Do not return ! the same MEM rtx for multiple uses of a stack slot. ! ! 2002-06-22 David S. Miller ! ! PR target/6841 target/6770 target/6719 ! * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return ! NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or ! GENERAL_OR_EXTRA_FP_REGS. ! ! 2002-06-21 Rainer Orth ! ! * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for ! multilibs. ! * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. ! * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Likewise. ! Fixes PR other/6836. ! ! 2002-06-21 Bo Thorsen ! ! * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386 ! support so multilib works again. And don't define this at all ! when -Dinhibit_libc is used. ! ! Thu Jun 20 16:41:40 CEST 2002 Jan Hubicka ! ! * combine.c (gen_lowpart_for_combine): Avoid calling of ! simplify_gen_subreg on VOIDmode. ! ! * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode. ! ! 2002-06-20 Richard Henderson ! ! * c-common.c (c_common_get_alias_set): Correctly handle characters. ! Rearrange order of expressions; don't handle vectors here. ! * alias.c (get_alias_set): Let vectors match their components. ! ! 2002-06-17 Hans-Peter Nilsson ! ! PR target/7042 ! * config/cris/cris.c (cris_simple_epilogue): Kludge around reorg.c ! bug by saing that the epilogue isn't simple if there's a ! non-empty current_function_epilogue_delay_list. ! * config/cris/cris.md ("return"): Add sanity check asserting that ! current_function_epilogue_delay_list is empty. ! ! 2002-06-17 Richard Henderson ! ! * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead ! of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. ! ! 2002-06-17 Richard Henderson ! ! PR target/6922 ! * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND. ! ! Mon Jun 17 00:31:46 CEST 2002 Jan Hubicka ! ! * i386-protos.h (x86_field_alignment): Declare. ! * i386.c (x86_field_alignment): Define. ! * i386.h (ADJUST_FIELD_ALIGNMENT): New. ! (BIGGEST_FIELD_ALIGNMENT): Kill. ! ! 2002-06-16 Richard Henderson ! ! PR opt/6722 ! * regclass.c (globalize_reg): Update regs_invalidated_by_call. ! ! 2002-06-16 Richard Henderson ! ! PR c/7030 ! * dwarf2out.c (modified_type_die): Don't assign the qualified die ! to the unqualified type. ! ! 2002-06-14 Jeff Sturm ! ! * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add ! SPARC_STACK_BIAS. ! ! 2002-06-14 Eric Botcazou ! ! * loop.c (check_final_value): Use v->always_executed ! instead of v->always_computable. ! * unroll.c (final_giv_value): Don't calculate the final ! value as a function of the biv if the giv is not computed ! for every loop iteration. ! ! 2002-06-14 Eric Botcazou ! ! PR c/6677 ! * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass ! the truncation down when the target type is signed. ! [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR. ! * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through ! the conversion if the target type is a smaller type. ! ! Thu Jun 13 18:27:05 CEST 2002 Jan Hubicka ! ! * i386.c (ix86_expand_movstr): Fix pasto. ! ! Thu Jun 13 18:02:11 CEST 2002 Jan Hubicka ! ! * reload.c (find_valid_class): Fix thinko in my previous patch. ! ! 2002-06-13 Hans-Peter Nilsson ! ! PR target/6997 ! * config/cris/cris.md ("sleu"): Set attribute "cc" to "none". ! ! 2002-06-12 Daniel Jacobowitz ! ! * config/mips/elf.h (DWARF2_DEBUG_INFO): Define. ! * config/mips/mips.c (mips_output_filename): Don't print a ! ".file" directive if we are using DWARF-2. ! (mips_output_function_prologue): Do not emit source file ! name for TARGET_GAS. ! ! 2002-06-11 Ulrich Weigand ! ! * config/s390/s390.md (movsi): Only use floating point ! register alternatives when operands are already fprs. ! (movdi_31, movdi_64): Likewise. ! ! 2002-06-11 Ulrich Weigand ! ! * config/s390/s390.md (reload_base, ltorg): Remove. ! * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool, ! s390_asm_output_pool_prologue, s390_pool_start_insn): Remove. ! * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool, ! s390_asm_output_pool_prologue): Likewise. ! * s390.h (s390_pool_start_insn): Likewise. ! ! * s390.c (s390_output_symbolic_const): Remove support for ! old-style pool chunks. ! (s390_function_epilogue): Likewise. ! (s390_output_constant_pool): Likewise. Also, fix incorrect ! alignment for 64-bit literal pools. ! (print_operand_address): Remove 'y' and 'Y' format flags. ! * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for ! old-style pool chunks. ! (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. ! (ASM_OUTPUT_POOL_EPILOGUE): Remove. ! (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove. ! ! * s390.c (consttable_operand): New function. ! * s390-protos.h (consttable_operand): Declare it. ! * s390.h (PREDICATE_CODES): Add consttable_operand. ! * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di, ! consttable_sf, consttable_df, pool_start_31, pool_end_31, ! pool_start_64, pool_end_64, reload_base, reload_base2): New insns. ! * s390.c (struct constant, struct constant_pool): New data types. ! (constant_modes, gen_consttable): New variables. ! (s390_start_pool, s390_end_pool, s390_add_pool, ! s390_dump_pool, s390_free_pool): New functions. ! (s390_chunkify_pool): Completely reimplement literal pool ! overflow handling. ! ! * s390.c (s390_pool_overflow): New variable. ! * s390.h (s390_pool_overflow): Declare it. ! * s390.md (cjump, icjump): Use it to adapt length for out-of-range ! jumps in literal pool overflow situations. ! ! * s390.c (s390_decompose_address): Accept new-style pool chunk offsets. ! (s390_frame_info): Account for possible use of RETURN_REGNUM ! by new literal pool overflow code. ! (s390_emit_prologue): Likewise. ! ! 2002-06-10 Jakub Jelinek ! ! PR optimization/6759 ! * cse.c (cse_insn): Fold src_eqv just once, store it folded back into ! the REQ_EQUAL note. ! ! 2002-06-10 Jakub Jelinek ! ! PR c/6660 ! * c-decl.c (grokfield): Allow user defined types if they declare ! structs or unions for unnamed fields. ! ! 2002-06-10 Jakub Jelinek ! ! PR c/6809 ! * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. ! ! 2002-06-10 Jakub Jelinek ! ! * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR. ! (compare_constant): Likewise. ! (output_addressed_constants): Likewise. ! ! 2002-06-10 Jakub Jelinek ! ! * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't ! merge bb with itself. ! ! 2002-06-07 Jason Thorpe ! ! * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}. ! * config/mips/t-netbsd: New file. ! ! 2002-06-07 H.J. Lu (hjl@gnu.org) ! ! * configure.in: Add --enable-__cxa_atexit. ! * configure: Regenerated. ! * config.in: Likewise. ! ! * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if ! not defined. ! ! 2002-06-07 Jason Thorpe ! ! * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define. ! ! Thu Jun 6 07:17:43 2002 Nicola Pero ! ! PR objc/6834 ! * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be ! c_common_get_alias_set. ! (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p. ! ! 2002-06-05 Jeff Law ! ! * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it ! rejects (mem (lo_sum (reg) (unspec))), but will allow ! (mem (lo_sum (reg) (symbol_ref)) for PA2.0. ! ! 2002-06-05 Alan Modra ! ! * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define. ! ! Tue Jun 4 18:16:50 CEST 2002 Jan Hubicka ! ! * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Do not initialize ! fields past the register table. ! ! * i386.c (classify_argument): Properly handle base classes. ! ! Tue Jun 4 13:09:18 CEST 2002 Jan Hubicka ! ! * loop.c (emit_prefetch_instructions): Properly place the address ! computation. ! ! * dwarf2out.c (output_call_frame_info): Do not skip unwind info ! when flag_asynchronous_unwind_tables is set. ! ! * i386-protos.h (x86_output_mi_thunk): Declare. ! * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ... ! * i386.c (x86_output_mi_thunk): ... here; handle 64bits. ! ! * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper ! mode. ! ! * i386.md (movabsdi): Kill broken alternative. ! ! * i386.c (dbx64_register_map): Fix typo ! ! 2002-06-03 Jason Thorpe ! ! * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove. ! ! 2002-05-31 John David Anglin ! ! * pa-linux.h (WCHAR_UNSIGNED): Define to 0. ! * pa.h (WCHAR_UNSIGNED): Define to 1. ! ! 2002-05-31 John David Anglin ! ! * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20. ! (output_call): Likewise. ! ! 2002-05-30 Richard Henderson ! Eric Botcazou ! ! PR optimization/6822 ! * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL ! to unsigned int for op1 comparisons. Use gen_int_mode. ! ! 2002-05-30 Marc Espie ! ! * config.gcc (sparc64-*-openbsd*): New. ! * config/sparc/openbsd1-64.h: New. ! * config/sparc/openbsd64.h: New. ! ! 2002-05-30 Jason Thorpe ! ! * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to ! 96 if not __mc68010__. ! ! 2002-05-30 Andreas Schwab ! ! * config/ia64/sysv4.h (DO_SELECT_SECTION): Also handle ! FUNCTION_DECLs. ! ! 2002-05-30 Jason Thorpe ! ! * config/i386/netbsd64.h (CPP_LP64_SPEC): Define. ! (CPP_SUBTARGET_SPEC): Define. ! (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and ! cpp_subtarget specs. ! (CPP_SPEC): Redefine to include %(cpp_subtarget). ! ! 2002-05-29 Hans-Peter Nilsson ! ! * doc/md.texi (Patterns): Note pattern condition pitfall ! for unnamed insn. ! ! 2002-05-29 Jason Thorpe ! ! * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove ! -D__arch64__. Add -D_LP64. ! (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version ! from sparc.h. ! (CPP_ARCH64_SPEC): Likewise. ! (NO_BUILTIN_PTRDIFF_TYPE): Undef. ! (NO_BUILTIN_SIZE_TYPE): Undef. ! ! 2002-05-29 Jason Thorpe ! ! * config.gcc (alpha-*-netbsd*): Don't use crtstuff. ! ! 2002-05-29 Jason Thorpe ! ! * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64. ! ! 2002-05-29 Richard Henderson ! ! * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom ! alignment for alloca. ! ! 2002-05-29 Neil Booth ! ! PR preprocessor/6844 ! * cppmacro.c (cpp_macro_definition): Reserve space for terminating ! NUL. ! ! 2002-05-29 Joel Sherrill ! ! * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405. ! ! 2002-05-29 Hans-Peter Nilsson ! ! PR target/6838 ! * config/cris/cris.md: Fix typos and thinkos in comments. ! (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem): ! Remove spurious mode specifier on operand 2. ! ! 2002-05-29 Ulrich Weigand ! ! * config/s390/s390.c (legitimate_pic_operand_p): Do not ! accept symbolic LARL operands. ! (s390_emit_epilogue): Do not set FRAME_RELATED_P on ! epilogue insns. ! ! 2002-05-28 Marc Espie ! * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN): Remove, ! inherited from gas.h. ! (ASM_QUAD): Undef. OpenBSD does not support it. ! ! 2002-05-28 Danny Smith ! ! * doc/install.texi (binaries): Change mingw binaries ! link to www.mingw.org. ! ! 2002-05-28 Richard Henderson ! ! * config/i386/i386.c (ix86_compute_frame_layout): Do not add ! bottom alignment for leaf functions. ! ! Mon May 27 10:37:28 CEST 2002 Jan Hubicka ! ! * reload.c (find_valid_class): Accept new argument DEST, ! choose class accordingly. ! (push_reload): Update callers. ! ! 2002-05-26 Richard Henderson ! ! 2002-05-25 Richard Henderson ! * c-pragma.c (apply_pragma_weak): Convert value identifier to ! string for decl_attributes. ! (handle_pragma_weak): Call assemble_alias if we're modifying ! an existing decl. ! ! 2002-05-15 Richard Henderson ! * varasm.c (merge_weak): Remove special case for extern and common. ! ! 2002-05-15 Richard Henderson ! * varasm.c (merge_weak): Error for any weakening after definition. ! Adjust weakening after use warning to catch more cases. ! (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently. ! * config/alpha/alpha.c (alpha_encode_section_info): Do not abort. ! ! 2002-03-02 Richard Henderson ! * attribs.c (handle_alias_attribute): Don't call assemble_alias. ! * toplev.c (rest_of_decl_compilation): Invoke assemble_alias when ! needed. ! ! 2002-05-26 Jakub Jelinek ! ! * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class. ! ! 2002-05-25 Richard Henderson ! ! PR target/6788 ! * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation ! using rtl instead of fprintf. ! * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it. ! * config/sparc/sparc-protos.h: Update. ! ! 2002-05-25 Marek Michalkiewicz ! ! * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL. ! ! * config/avr/avr.c (machine_dependent_reorg): Sign extend the ! CONST_INT operand to the correct mode after adding 1 to it. ! ! 2002-05-24 Roman Lechtchinsky ! ! * config/alpha/unicosmk.h (REAL_VALUE_TO_TARGET_SINGLE, ! REAL_VALUE_TO_TARGET_DOUBLE): Define for native builds. ! ! 2002-05-24 Jakub Jelinek ! ! PR other/6782 ! * final.c (get_mem_expr_from_op): Return 0 if op is NULL. ! ! 2002-05-24 David Edelsohn ! ! * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer. ! (STARTFILE_SPEC): Delete PE crt0.o. ! * config/rs6000/aix51.h: Same. ! * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to ! function descriptor symbol. Use RS6000_OUTPUT_BASENAME. ! (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME. ! * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define. ! ! 2002-05-24 Richard Henderson ! ! * varasm.c (asm_output_bss): Always output one byte. ! * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. ! ! 2002-05-24 Neil Booth ! ! PR preprocessor/6780 ! * cppmacro.c (enter_macro_context): Clear state.angled_headers. ! ! 2002-05-21 Richard Earnshaw ! ! * bitmap.c (bitmap_find_bit): Return early if we have the correct ! element cached. ! ! 2002-05-24 Neil Booth ! ! * cppinit.c (mark_named_operators): Split out from init_builtins. ! (struct builtin): Remove operator. ! (CPLUS, OPERATOR, O): Kill ! (struct named_op): New. ! (cpp_finish_options): Call it from here instead. ! (init_builtins): Don't do named operators. ! ! 2002-05-20 David S. Miller ! ! * cselib.c (max_value_regs): New. ! (cselib_lookup, cselib_invalidate_regno): Initialize it when ! adding new entries to the REG_VALUES table and we are dealing with ! a hard register. ! (clear_table): Initialize it. ! (cselib_invalidate_regno): Use it to determine which hard ! registers to scan when mode is not VOIDmode. ! ! 2002-05-24 Alan Modra ! ! * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits. ! ! 2002-05-23 Hans Boehm ! * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K ! pages. ! ! 2002-05-23 Neil Booth ! ! PR preprocessor/6517 ! * Makefile.in: Update. ! * c-common.c (c_common_post_options): Add preprocessor ! errors to the error count. ! * c-lang.c (c_post_options): Kill. ! (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. ! * hooks.h: Add header guards. ! * langhooks-def.h: Include hooks.h. ! (LANG_HOOKS_POST_OPTIONS): Update. ! * langhooks.h (struct lang_hooks): Update post_options. ! * toplev.c (parse_options_and_default_flags): Update. ! objc: ! * objc-lang.c (objc_post_options): Kill. ! (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. ! ! 2002-05-23 Jakub Jelinek ! ! PR target/6753 ! * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead ! of x in constraints for clarity. ! (sse_mov?fcc split): abort if op2 == op3. ! (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3, ! sse_movsfcc_const0_4): Add earlyclobber. ! (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3, ! sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode. ! Use Y instead of x in constraints. ! ! 2002-05-23 Jakub Jelinek ! ! PR c/6643 ! * emit-rtl.c (widen_memory_access): Only call compare_tree_int ! if DECL_SIZE_UNIT is INTEGER_CST. ! ! 2002-05-23 Jakub Jelinek ! ! * combine.c (force_to_mode): Use gen_int_mode. ! Don't clear CONST_INT bits outside of mode. ! ! 2002-05-23 Jakub Jelinek ! ! * configure.in: Fix as version test for binutils 2.12.1 releases ! (without dates). ! * configure: Rebuilt. ! ! Wed May 22 14:16:07 CEST 2002 Jan Hubicka ! ! * i386.c (expand_movstr, expand_clrstr): Fix inline-all-stringops ! sequence. ! (ix86_expand_clrstr): Fix typo. ! ! 2002-05-22 Duraid Madina ! ! * tradcpp.c (fixup_newlines): Use old-style function header. ! ! 2002-05-21 Richard Henderson ! ! * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE, ! FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, ! MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison. ! ! * toplev.c (display_help): Kill -a -ax help. ! ! * config/1750a/1750a.h, config/alpha/alpha.h, ! config/clipper/clipper.h, config/dsp16xx/dsp16xx.h, ! config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h, ! config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h: ! (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill. ! ! * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill. ! * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill. ! ! * config/i386/i386-protos.h (ix86_output_block_profiler): Kill. ! (ix86_output_function_block_profiler): Kill. ! * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill. ! (m68hc11_function_block_profiler): Kill. ! * config/m68hc11/m68hc11-protos.h: Update. ! * config/m88k/m88k.c (output_block_profiler): Kill. ! (output_function_block_profiler): Kill. ! * config/m88k/m88k-protos.h: Update. ! ! 2002-05-21 NIIBE Yutaka ! ! * reload1.c (do_output_reload): Run delete_output_reload ! only if optimizing. ! ! 2002-05-20 Richard Henderson ! ! * cse.c (canon_hash): Reorder do_not_record test. Always ! allow pic_offset_table_rtx. ! ! 2002-05-19 Neil Booth ! ! * doc/contrib.texi: Update my entry. ! ! 2002-05-19 Kaveh R. Ghazi ! ! * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define. ! ! 2002-05-19 Marek Michalkiewicz ! ! 2002-02-28 Marek Michalkiewicz ! * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29 ! which may overwrite the high byte of the frame pointer. ! ! 2002-03-19 Lars Brinkhoff ! ! * emit-rtl.c (gen_int_mode): New function. ! * rtl.h: Prototype for it. ! ! Sat May 18 23:09:19 CEST 2002 Jan Hubicka ! ! * i386.md (pushqi2, ashrqi_*): Fix constraint. ! ! 2002-05-18 Aldy Hernandez ! ! * config/rs6000/altivec.h: Cleanups. ! ! 2002-05-17 Rainer Orth ! ! * doc/install.texi (Specific, mips-sgi-irix6): Document need to ! bootstrap with -mips3. ! ! 2002-05-17 David S. Miller ! ! PR c/6689, PR optimization/6615 ! * local-alloc.c (struct equivalence): Rename 'src' to 'src_p' ! and make it a pointer to rtx. Update comments. ! (update_equiv_regs): When scanning for equivalences, record ! address of SET_SRC (set) in reg_equiv[].src_p. Dereference ! it while making the equiv replacements. ! ! 2002-05-17 Kurt Wall ! ! * doc/install.texi (Testing): Mention two common DejaGnu warnings ! that can be ignored. ! ! 2002-05-16 Gerald Pfeifer ! ! * doc/install.texi (Final install): Recommend to install into a ! "clean" target directory. ! ! 2002-05-17 Andreas Schwab ! ! * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of ! SELECT_SECTION. ! (UNIQUE_SECTION): Define to get small data correctly. ! ! * varasm.c (resolve_unique_section): Add third parameter ! flag_function_or_data_sections and use it instead of ! flag_function_sections. ! (assemble_start_function): Pass flag_function_sections. ! (asm_emit_uninitialised): Pass flag_data_sections. ! (assemble_variable): Likewise. ! ! 2002-05-15 Eric Botcazou ! ! * fold-const.c (fold) [LT_EXPR]: Move the transformation of a ! comparison against the highest or lowest integer value before ! the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)' ! transformation and that of an unsigned comparison against 0 ! right after. ! ! 2002-05-16 Richard Henderson ! ! PR c/3467 ! * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays ! for c99. ! ! 2002-05-16 Mark Mitchell ! ! * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH. ! ! 2002-05-09 David S. Miller ! ! * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9. ! ! 2002-05-07 David S. Miller ! ! PR target/6103 ! * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero. ! * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one. ! * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp ! library implementation clobbers the output before the inputs ! are fully consumed, use stack temporary for the output. ! ! Wed May 15 10:38:27 CEST 2002 Jan Hubicka ! ! * invoke.texi (-malign-double): Re-add lost warning. ! ! 2002-05-14 Gerald Pfeifer ! ! * doc/install.texi: Remove special markup originally required for ! HTML generation with texi2html. ! ! 2002-05-14 Gerald Pfeifer ! ! * doc/install.texi (Specific, *-*-solaris2*): Update passus on ! setting CONFIG_SHELL to /bin/ksh and remove alternate trick to ! (possibly) work around broken /bin/sh. ! ! 2002-05-08 Jason Merrill ! ! PR c++/6381 ! * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and ! REAL_CST. 2002-05-14 Release Manager *************** *** 13,28 **** 2002-05-09 Mark Mitchell ! * config/rs6000/rs6000.h: Revert previous patch. 2002-05-09 Joel Sherrill ! * config/rs6000/rs6000.h CPP_CPU_SPEC): Correct 403 and 405 arguments for binutils 2.12. Thu May 9 12:21:48 2002 Jeffrey A Law (law@redhat.com) ! * pa.c (hppa_profile_hook): Use force_reg to get the address of the profile hook into an appropriate pseudo register. 2002-05-09 Jakub Jelinek --- 938,953 ---- 2002-05-09 Mark Mitchell ! * config/rs6000/rs6000.h: Revert previous patch. 2002-05-09 Joel Sherrill ! * config/rs6000/rs6000.h CPP_CPU_SPEC): Correct 403 and 405 arguments for binutils 2.12. Thu May 9 12:21:48 2002 Jeffrey A Law (law@redhat.com) ! * pa.c (hppa_profile_hook): Use force_reg to get the address of the profile hook into an appropriate pseudo register. 2002-05-09 Jakub Jelinek *************** Sat Apr 20 02:17:38 CEST 2002 Jan Hubic *** 862,868 **** * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New. (ia64_va_arg): Expect variable sized types by reference. * config/ia64/ia64-protos.h: Update. ! * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use ia64_function_arg_pass_by_reference. 2002-04-18 Hans-Peter Nilsson --- 1787,1793 ---- * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New. (ia64_va_arg): Expect variable sized types by reference. * config/ia64/ia64-protos.h: Update. ! * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use ia64_function_arg_pass_by_reference. 2002-04-18 Hans-Peter Nilsson *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1002,1008 **** * stmt.c (expand_start_stmt_expr): Add has_scope parameter. * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE on the STMT_EXPR created for the inline function. ! 2002-04-16 Richard Henderson * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New. --- 1927,1933 ---- * stmt.c (expand_start_stmt_expr): Add has_scope parameter. * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE on the STMT_EXPR created for the inline function. ! 2002-04-16 Richard Henderson * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New. *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1038,1044 **** PR target/6305 * config/s390/s390.md (mulsidi3): Set both subregs of the ! multiword register. 2002-04-16 Aldy Hernandez --- 1963,1969 ---- PR target/6305 * config/s390/s390.md (mulsidi3): Set both subregs of the ! multiword register. 2002-04-16 Aldy Hernandez *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1092,1098 **** * doc/frontends.texi: Remove information about Chill. * doc/sourcebuild.texi: Likewise. * doc/standards.texi: Likewise. ! 2002-04-15 Douglas B Rupp * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include. --- 2017,2023 ---- * doc/frontends.texi: Remove information about Chill. * doc/sourcebuild.texi: Likewise. * doc/standards.texi: Likewise. ! 2002-04-15 Douglas B Rupp * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include. *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1107,1113 **** (sparc64_initialize_trampoline): Likewise. (sparc_profile_hook): Likewise. * config/sparc/sparc.md: Likewise. ! * config/sparc/sparc.c (sparc_extra_constraint_check): Fix type of argument 'c'. * config/sparc/sparc-protos.h (sparc_extra_constraint_check): --- 2032,2038 ---- (sparc64_initialize_trampoline): Likewise. (sparc_profile_hook): Likewise. * config/sparc/sparc.md: Likewise. ! * config/sparc/sparc.c (sparc_extra_constraint_check): Fix type of argument 'c'. * config/sparc/sparc-protos.h (sparc_extra_constraint_check): *************** Fri Apr 12 15:42:59 2002 Jeffrey A Law *** 1234,1240 **** * config/ia64/ia64.h (ASM_SPEC): Moved from here ... * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it overrides the definition in config/svr4.h. ! 2002-04-12 Eric Norum * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, --- 2159,2165 ---- * config/ia64/ia64.h (ASM_SPEC): Moved from here ... * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it overrides the definition in config/svr4.h. ! 2002-04-12 Eric Norum * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, *************** Fri Apr 12 08:06:54 2002 Richard Kenner *** 1344,1350 **** 2002-04-11 Richard Henderson * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative. ! (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory. (dimode mem/zero splitter): New. 2002-04-11 Hans-Peter Nilsson --- 2269,2275 ---- 2002-04-11 Richard Henderson * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative. ! (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory. (dimode mem/zero splitter): New. 2002-04-11 Hans-Peter Nilsson *************** Sun Mar 31 14:43:24 2002 Richard Kenner *** 1919,1925 **** * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here... (LINK_COMMAND_SPEC): ... from here. ! (init_gcc_specs): Duplicate it here too, omitting shared_name in the second copy. (init_spec): Test for duplicate * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'. --- 2844,2850 ---- * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here... (LINK_COMMAND_SPEC): ... from here. ! (init_gcc_specs): Duplicate it here too, omitting shared_name in the second copy. (init_spec): Test for duplicate * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'. *************** Sun Mar 31 14:43:24 2002 Richard Kenner *** 1960,1966 **** * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/netbsd-elf.h, config/sparc/sol2-sld-64.h, config/sparc/sol2.h, ! config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): Remove MASK_EPILOGUE. --- 2885,2891 ---- * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/netbsd-elf.h, config/sparc/sol2-sld-64.h, config/sparc/sol2.h, ! config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): Remove MASK_EPILOGUE. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2309,2315 **** 2002-03-24 Richard Henderson ! * recog.c (peephole2_optimize): Split blocks when EH insns are generated in the middle of a block. Do global life update if zapped EH edges. --- 3234,3240 ---- 2002-03-24 Richard Henderson ! * recog.c (peephole2_optimize): Split blocks when EH insns are generated in the middle of a block. Do global life update if zapped EH edges. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2320,2326 **** 2002-03-24 Neil Booth preprocessor/3951 ! * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF. * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD. (init_dependency_output): Don't make no_output decision here. --- 3245,3251 ---- 2002-03-24 Neil Booth preprocessor/3951 ! * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF. * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD. (init_dependency_output): Don't make no_output decision here. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2388,2397 **** * c-decl.c (finish_decl): Call it. * cp/decl.c (cp_finish_decl): Likewise. * doc/extend.texi: Document the new pragmas. ! * config/alpha/osf.h (CPP_SUBTARGET_SPEC): Add __EXTERN_PREFIX. (HANDLE_PRAGMA_EXTERN_PREFIX): New. ! * config/i386/sol2.h (CPP_PREDEFINES): Add __PRAGMA_REDEFINE_EXTNAME. (HANDLE_PRAGMA_REDEFINE_EXTNAME): New. * config/sparc/sol2.h: Likewise. --- 3313,3322 ---- * c-decl.c (finish_decl): Call it. * cp/decl.c (cp_finish_decl): Likewise. * doc/extend.texi: Document the new pragmas. ! * config/alpha/osf.h (CPP_SUBTARGET_SPEC): Add __EXTERN_PREFIX. (HANDLE_PRAGMA_EXTERN_PREFIX): New. ! * config/i386/sol2.h (CPP_PREDEFINES): Add __PRAGMA_REDEFINE_EXTNAME. (HANDLE_PRAGMA_REDEFINE_EXTNAME): New. * config/sparc/sol2.h: Likewise. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2409,2415 **** (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class. * config/xtensa/xtensa.md (movsi_internal, movhi_internal, movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand. ! 2002-03-22 Jakub Jelinek PR optimization/5854 --- 3334,3340 ---- (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class. * config/xtensa/xtensa.md (movsi_internal, movhi_internal, movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand. ! 2002-03-22 Jakub Jelinek PR optimization/5854 *************** Tue Mar 19 14:12:32 2002 Richard Kenner *** 2699,2705 **** 2002-03-18 Mark Mitchell ! * calls.c (precompute_arguments): Do not assume that temporaries can be destroyed after expanding the argument. (expand_call): Likewise. --- 3624,3630 ---- 2002-03-18 Mark Mitchell ! * calls.c (precompute_arguments): Do not assume that temporaries can be destroyed after expanding the argument. (expand_call): Likewise. *************** Tue Mar 19 14:12:32 2002 Richard Kenner *** 2708,2714 **** * gcc.c (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. (struct option_map option_map[]): Likewise. ! * objc/lang-specs.h (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. * doc/invoke.texi: Document -no-integrated-cpp flag. --- 3633,3639 ---- * gcc.c (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. (struct option_map option_map[]): Likewise. ! * objc/lang-specs.h (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. * doc/invoke.texi: Document -no-integrated-cpp flag. *************** Tue Mar 19 14:12:32 2002 Richard Kenner *** 2731,2737 **** (COLLECT_EXPORT_LIST): Delete. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define. ! 2002-03-18 Bob Wilson * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat --- 3656,3662 ---- (COLLECT_EXPORT_LIST): Delete. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define. ! 2002-03-18 Bob Wilson * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat *************** Mon Mar 18 18:12:48 CET 2002 Jan Hubick *** 2785,2791 **** * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. * arm.c (get_jump_table_size): If the table is not in the text section, return zero. ! 2002-03-17 Richard Henderson * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns --- 3710,3716 ---- * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. * arm.c (get_jump_table_size): If the table is not in the text section, return zero. ! 2002-03-17 Richard Henderson * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns *************** Fri Mar 8 06:48:45 2002 Richard Kenner *** 3379,3385 **** 2002-03-06 Ulrich Weigand ! * simplify-rtx.c (simplify_plus_minus): Do not abort, but simply fail if the expression is too complex to simplify. (simplify_gen_binary): Handle simplify_plus_minus failures. --- 4304,4310 ---- 2002-03-06 Ulrich Weigand ! * simplify-rtx.c (simplify_plus_minus): Do not abort, but simply fail if the expression is too complex to simplify. (simplify_gen_binary): Handle simplify_plus_minus failures. *************** Sat Feb 9 18:28:02 CET 2002 Jan Hubick *** 5231,5237 **** * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to copy FP regs to general-purpose regs only in outgoing calls. * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect ! change from 2000-10-30. Adjust for 64-bit (or 32-bit) HOST_WIDE_INT. * config/sh/sh.h (struct sh_args): Document all fields. (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments --- 6156,6162 ---- * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to copy FP regs to general-purpose regs only in outgoing calls. * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect ! change from 2000-10-30. Adjust for 64-bit (or 32-bit) HOST_WIDE_INT. * config/sh/sh.h (struct sh_args): Document all fields. (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments *************** Sat Feb 9 18:28:02 CET 2002 Jan Hubick *** 5324,5330 **** * config/sh/sh.md (call, call_value, sibcall): Simplify copying of non-branch-target register. 2000-12-22 Alexandre Oliva ! * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch. * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia. 2000-12-22 Alexandre Oliva * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex --- 6249,6255 ---- * config/sh/sh.md (call, call_value, sibcall): Simplify copying of non-branch-target register. 2000-12-22 Alexandre Oliva ! * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch. * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia. 2000-12-22 Alexandre Oliva * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex *************** Sat Feb 9 18:28:02 CET 2002 Jan Hubick *** 5554,5560 **** (UNSPEC_COMPACT_ARGS): New. (type): Added pt and ptabs. (length): Default to 4 on SHmedia. Default pt length to 12 ! and 20 on SHmedia32 and SHmedia64, respectively. (pt): New function unit. (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES. Add whitespace between operands of SHmedia instructions. --- 6479,6485 ---- (UNSPEC_COMPACT_ARGS): New. (type): Added pt and ptabs. (length): Default to 4 on SHmedia. Default pt length to 12 ! and 20 on SHmedia32 and SHmedia64, respectively. (pt): New function unit. (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES. Add whitespace between operands of SHmedia instructions. diff -Nrc3pad gcc-3.1/gcc/Makefile.in gcc-3.1.1/gcc/Makefile.in *** gcc-3.1/gcc/Makefile.in Wed May 8 23:18:36 2002 --- gcc-3.1.1/gcc/Makefile.in Thu May 23 17:57:21 2002 *************** CONFIG_H = $(GCONFIG_H) insn-constants.h *** 541,546 **** --- 541,547 ---- TCONFIG_H = tconfig.h $(xm_file_list) TARGET_H = target.h HOOKS_H = hooks.h + LANGHOOKS_DEF_H = langhooks.h $(HOOKS_H) TARGET_DEF_H = target-def.h $(HOOKS_H) TM_P_H = tm_p.h $(tm_p_file_list) tm-preds.h *************** s-under: $(GCC_PASSES) *** 1212,1218 **** c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \ $(C_COMMON_H) flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def $(TARGET_H) \ ! diagnostic.h tree-inline.h # A file used by all variants of C and some other languages. --- 1213,1219 ---- c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \ $(C_COMMON_H) flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def $(TARGET_H) \ ! diagnostic.h tree-inline.h $(LANGHOOKS_DEF_H) # A file used by all variants of C and some other languages. *************** convert.o: convert.c $(CONFIG_H) $(SYSTE *** 1327,1333 **** langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h \ tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h \ ! langhooks-def.h flags.h tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h function.h toplev.h \ $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ --- 1328,1334 ---- langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h \ tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h \ ! $(LANGHOOKS_DEF_H) flags.h tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h function.h toplev.h \ $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ diff -Nrc3pad gcc-3.1/gcc/NEWS gcc-3.1.1/gcc/NEWS *** gcc-3.1/gcc/NEWS Wed May 15 02:40:30 2002 --- gcc-3.1.1/gcc/NEWS Thu Jul 25 23:50:51 2002 *************** *** 1,9 **** ! This file contains information about GCC releases which has been ! generated automatically from the online release notes. This file ! covers releases of GCC (and the former EGCS project) since EGCS 1.0, ! on the line of development that led to GCC 3; for information on GCC ! 2.8.1 and older releases of GCC 2, see ONEWS. ====================================================================== http://gcc.gnu.org/gcc-3.0/gcc-3.0.html --- 1,441 ---- ! This file contains information about GCC releases which has been generated ! automatically from the online release notes. It covers releases of GCC ! (and the former EGCS project) since EGCS 1.0, on the line of development ! that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, ! see ONEWS. ! ! ====================================================================== ! http://gcc.gnu.org/gcc-3.1/index.html ! ! GCC 3.1 ! ! May 15, 2002 ! ! The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 3.1. ! ! GCC used to stand for the GNU C Compiler, but since the compiler ! supports several other languages aside from C, it now stands for the ! GNU Compiler Collection. ! ! A list of [2]successful builds is updated as new information becomes ! available. ! ! The GCC developers would like to thank the numerous people that have ! contributed [3]new features, improvements, bug fixes, and other ! changes as well as test results to GCC. This [4]amazing group of ! volunteers is what makes GCC successful. ! ! For additional information about GCC please refer to the [5]GCC ! project web site or contact the [6]GCC development mailing list. ! ! To obtain GCC please use [7]our mirror sites, one of the [8]GNU mirror ! sites, or [9]our CVS server. ! _________________________________________________________________ ! _________________________________________________________________ ! ! Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There ! are also [11]other ways to contact the FSF. ! ! These pages are maintained by [12]The GCC team. ! ! ! Please send comments on these web pages and GCC to [13]gcc@gnu.org ! or [14]gcc@gcc.gnu.org, send other questions to [15]gnu@gnu.org. ! ! Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite ! 330, Boston, MA 02111, USA. ! ! Verbatim copying and distribution of this entire article is permitted ! in any medium, provided this notice is preserved. ! ! Last modified 2002-07-17 [16]Valid XHTML 1.0 ! ! References ! ! 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.1/buildstat.html ! 3. http://gcc.gnu.org/gcc-3.1/changes.html ! 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 5. http://gcc.gnu.org/index.html ! 6. mailto:gcc@gcc.gnu.org ! 7. http://gcc.gnu.org/mirrors.html ! 8. http://www.gnu.org/order/ftp.html ! 9. http://gcc.gnu.org/cvs.html ! 10. mailto:gnu@gnu.org ! 11. http://www.gnu.org/home.html#ContactInfo ! 12. http://gcc.gnu.org/about.html ! 13. mailto:gcc@gnu.org ! 14. mailto:gcc@gcc.gnu.org ! 15. mailto:gnu@gnu.org ! 16. http://validator.w3.org/check/referer ! ====================================================================== ! http://gcc.gnu.org/gcc-3.1/changes.html ! ! GCC 3.1 Changes, New Features, and Fixes ! ! Additional changes (that will be) in GCC 3.1.1 ! ! * A bug related to how structures and unions are returned has been ! fixed for powerpc-*-netbsd*. ! * An important bug in the implementation of -fprefetch-loop-arrays ! has been fixed. Previously the optimization prefetched random ! blocks of memory for most targets except for i386. ! * The Java compiler now compiles Java programs much faster and also ! works with parallel make. ! * Nested functions have been fixed for mips*-*-netbsd*. ! * Some missing floating point support routines have beed added for ! mips*-*-netbsd*. ! ! Caveats ! ! * The -traditional C compiler option has been deprecated and will be ! removed in GCC 3.2. (It remains possible to preprocess non-C code ! with the traditional preprocessor.) ! * The default debugging format for most ELF platforms (including ! GNU/Linux and FreeBSD; notable exception is Solaris) has changed ! from stabs to DWARF2. This requires GDB 5.1.1 or later. ! ! General Optimizer Improvements ! ! * Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, ! and Andreas Jaeger, SuSE Labs, has contributed [1]infrastructure ! for profile driven optimizations. ! Options -fprofile-arcs and -fbranch-probabilities can now be used ! to improve speed of the generated code by profiling the actual ! program behaviour on typical runs. In the absence of profile info ! the compiler attempts to guess the profile statically. ! * [2]SPEC2000 and [3]SPEC95 benchmark suites are now used daily to ! monitor performance of the generated code. ! According to the SPECInt2000 results on an AMD Athlon CPU, the ! code generated by GCC 3.1 is 6% faster on the average (8.2% faster ! with profile feedback) compared to GCC 3.0. The code produced by ! GCC 3.0 is about 2.1% faster compared to 2.95.3. Tests were done ! using the -O2 -march=athlon command-line options. ! * Alexandre Oliva, of [4]Red Hat, has generalized the tree inlining ! infrastructure developed by [5]CodeSourcery, LLC for the C++ front ! end, so that it is now used in the C front end too. Inlining ! functions as trees exposes them earlier to the compiler, giving it ! more opportunities for optimization. ! * Support for data prefetching instructions has been added to the ! GCC back end and several targets. A new __builtin_prefetch ! intrinsic is available to explicitly insert prefetch instructions ! and experimental support for loop array prefetching has been added ! (see -fprefetch-loop-array documentation). ! * Support for emitting debugging information for macros has been ! added for DWARF2. It is activated using -g3. ! ! New Languages and Language specific improvements ! ! C/C++ ! ! * A few more [6]ISO C99 features. ! * The preprocessor is 10-50% faster than the preprocessor in GCC ! 3.0. ! * The preprocessor's symbol table has been merged with the symbol ! table of the C, C++ and Objective-C front ends. ! * The preprocessor consumes less memory than the preprocessor in GCC ! 3.0, often significantly so. On normal input files, it typically ! consumes less memory than pre-3.0 cccp-based GCC, too. ! ! C++ ! ! * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std ! was a workaround to allow std compliant code to work with the ! non-std compliant libstdc++-v2. libstdc++-v3 is std compliant. ! * The C++ ABI has been fixed so that void (A::*)() const is mangled ! as "M1AKFvvE", rather than "MK1AFvvE" as before. This change only ! affects pointer to cv-qualified member function types. ! * The C++ ABI has been changed to correctly handle this code: ! struct A { ! void operator delete[] (void *, size_t); ! }; ! ! struct B : public A { ! }; ! ! new B[10]; ! ! The amount of storage allocated for the array will be greater than ! it was in 3.0, in order to store the number of elements in the ! array, so that the correct size can be passed to operator delete[] ! when the array is deleted. Previously, the value passed to ! operator delete[] was unpredictable. ! This change will only affect code that declares a two-argument ! operator delete[] with a second parameter of type size_t in a base ! class, and does not override that definition in a derived class. ! * The C++ ABI has been changed so that: ! struct A { ! void operator delete[] (void *, size_t); ! void operator delete[] (void *); ! }; ! ! does not cause unnecessary storage to be allocated when an array ! of A objects is allocated. ! This change will only affect code that declares both of these ! forms of operator delete[], and declared the two-argument form ! before the one-argument form. ! * The C++ ABI has been changed so that when a parameter is passed by ! value, any cleanup for that parameter is performed in the caller, ! as specified by the ia64 C++ ABI, rather than the called function ! as before. As a result, classes with a non-trivial destructor but ! a trivial copy constructor will be passed and returned by ! invisible reference, rather than by bitwise copy as before. ! * G++ now supports the "named return value optimization": for code ! like ! A f () { ! A a; ! ... ! return a; ! } ! ! G++ will allocate a in the return value slot, so that the return ! becomes a no-op. For this to work, all return statements in the ! function must return the same variable. ! * Improvements to the C++ library are listed in [7]the libstdc++-v3 ! FAQ. ! ! Objective-C ! ! * Annoying linker warnings (due to incorrect code being generated) ! have been fixed. ! * If a class method cannot be found, the compiler no longer issues a ! warning if a corresponding instance method exists in the root ! class. ! * Forward @protocol declarations have been fixed. ! * Loading of categories has been fixed in certain situations (GNU ! run time only). ! * The class lookup in the run-time library has been rewritten so ! that class method dispatch is more than twice as fast as it used ! to be (GNU run time only). ! ! Java ! ! * libgcj now includes RMI, java.lang.ref.*, javax.naming, and ! javax.transaction. ! * Property files and other system resources can be compiled into ! executables which use libgcj using the new gcj --resource feature. ! * libgcj has been ported to more platforms. In particular there is ! now a mostly-functional mingw32 (Windows) target port. ! * JNI and CNI invocation interfaces were implemented, so ! gcj-compiled Java code can now be called from a C/C++ application. ! * gcj can now use builtin functions for certain known methods, for ! instance Math.cos. ! * gcj can now automatically remove redundant array-store checks in ! some common cases. ! * The --no-store-checks optimization option was added. This can be ! used to omit runtime store checks for code which is known not to ! throw ArrayStoreException ! * The following third party interface standards were added to ! libgcj: org.w3c.dom and org.xml.sax. ! * java.security has been merged with GNU Classpath. The new package ! is now JDK 1.2 compliant, and much more complete. ! * A bytecode verifier was added to the libgcj interpreter. ! * java.lang.Character was rewritten to comply with the Unicode 3.0 ! standard, and improve performance. ! * Partial support for many more locales was added to libgcj. ! * Socket timeouts have been implemented. ! * libgcj has been merged into a single shared library. There are no ! longer separate shared libraries for the garbage collector and ! zlib. ! * Several performance improvements were made to gcj and libgcj: ! + Hash synchronization (thin locks) ! + A special allocation path for finalizer-free objects ! + Thread-local allocation ! + Parallel GC, and other GC tweaks ! ! Fortran ! ! Fortran improvements are listed in [8]the Fortran documentation. ! ! Ada ! ! [9]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front ! end and associated tools. The GNAT compiler fully implements the Ada ! language as defined by the ISO/IEC 8652 standard. ! ! Please note that the integration of the Ada front end is still work in ! progress. ! ! New Targets and Target Specific Improvements ! ! * Hans-Peter Nilsson has contributed a port to [10]MMIX, the CPU ! architecture used in new editions of Donald E. Knuth's The Art of ! Computer Programming. ! * [11]Axis Communications has contributed its port to the CRIS CPU ! architecture, used in the ETRAX system-on-a-chip series. See ! [12]Axis' developer site for technical information. ! * Alexandre Oliva, of [13]Red Hat, has contributed a port to the ! [14]SuperH SH5 64-bit RISC microprocessor architecture, extending ! the existing SH port. ! * UltraSPARC is fully supported in 64-bit mode. The option -m64 ! enables it. ! * For compatibility with the Sun compiler #pragma redefine_extname ! has been implemented on Solaris. ! * The x86 back end has had some noticeable work done to it. ! + [15]SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas ! Jaeger have contributed a port to the AMD x86-64 ! architecture. For more information on x86-64 see ! [16]http://www.x86-64.org. ! + The compiler now supports MMX, 3DNow!, SSE, and SSE2 ! instructions. Options -mmmx, -m3dnow, -msse, and -msse2 will ! enable the respective instruction sets. Intel C++ compatible ! MMX/3DNow!/SSE intrinsics are implemented. SSE2 intrinsics ! will be added in next major release. ! + Following those improvements, targets for Pentium MMX, K6-2, ! K6-3, Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were ! added. Refer to the documentation on -march= and -mcpu= ! options for details. ! + For those targets that support it, -mfpmath=sse will cause ! the compiler to generate SSE/SSE2 instructions for floating ! point math instead of x87 instructions. Usually, this will ! lead to quicker code -- especially on the Pentium 4. Note ! that only scalar floating point instructions are used and GCC ! does not exploit SIMD features yet. ! + Prefetch support has been added to the Pentium III, Pentium ! 4, K6-2, K6-3, and Athlon series. ! + Code generated for floating point to integer converisons has ! been improved leading to better performance of many 3D ! applications. ! * The PowerPC back end has added 64-bit PowerPC GNU/Linux support. ! * C++ support for AIX has been improved. ! * Aldy Hernandez, of [17]Red Hat, Inc has contributed extensions to ! the PowerPC port supporting the AltiVec programming model (SIMD). ! The support, though presently useful, is experimental and is ! expected to stabilize for 3.2. The support is written to conform ! to Motorola's AltiVec specs. See -maltivec. ! ! Obsolete Systems ! ! Support for a number of older systems has been declared obsolete in ! GCC 3.1. Unless there is activity to revive them, the next release of ! GCC will have their sources permanently removed. ! ! All configurations of the following processor architectures have been ! declared obsolete: ! * MIL-STD-1750A, 1750a-*-* ! * AMD A29k, a29k-*-* ! * Convex, c*-convex-* ! * Clipper, clipper-*-* ! * Elxsi, elxsi-*-* ! * Intel i860, i860-*-* ! * Sun picoJava, pj-*-* and pjl-*-* ! * Western Electric 32000, we32k-*-* ! ! Most configurations of the following processor architectures have been ! declared obsolete, but we are preserving a few systems which may have ! active developers. It is unlikely that the remaining systems will ! survive much longer unless we see definite signs of port activity. ! * Motorola 88000 except ! + Generic a.out, m88k-*-aout* ! + Generic SVR4, m88k-*-sysv4 ! + OpenBSD, m88k-*-openbsd* ! * NS32k except ! + NetBSD, ns32k-*-netbsd* ! + OpenBSD, ns32k-*-openbsd*. ! * ROMP except ! + OpenBSD, romp-*-openbsd*. ! ! Finally, only some configurations of these processor architectures are ! being obsoleted. ! * Alpha: ! + OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka ! alpha*-*-osf[45], are still supported.) ! * ARM: ! + RISCiX, arm-*-riscix*. ! * i386: ! + 386BSD, i?86-*-bsd* ! + Chorus, i?86-*-chorusos* ! + DG/UX, i?86-*-dgux* ! + FreeBSD 1.x, i?86-*-freebsd1.* ! + IBM AIX, i?86-*-aix* ! + ISC UNIX, i?86-*-isc* ! + Linux with pre-BFD linker, i?86-*-linux*oldld* ! + NEXTstep, i?86-next-* ! + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose* ! + RTEMS/coff, i?86-*-rtemscoff* ! + RTEMS/go32, i?86-go32-rtems* ! + Sequent/BSD, i?86-sequent-bsd* ! + Sequent/ptx before version 3, i?86-sequent-ptx[12]* and ! i?86-sequent-sysv3* ! + SunOS, i?86-*-sunos* ! * Motorola 68000: ! + Altos, m68[k0]*-altos-* ! + Apollo, m68[k0]*-apollo-* ! + Apple A/UX, m68[k0]*-apple-* ! + Bull, m68[k0]*-bull-* ! + Convergent, m68[k0]*-convergent-* ! + Generic SVR3, m68[k0]*-*-sysv3* ! + ISI, m68[k0]*-isi-* ! + LynxOS, m68[k0]*-*-lynxos* ! + NEXT, m68[k0]*-next-* ! + RTEMS/coff, m68[k0]*-*-rtemscoff* ! + Sony, m68[k0]*-sony-* ! * MIPS: ! + DEC Ultrix, mips-*-ultrix* and mips-dec-* ! + Generic BSD, mips-*-bsd* ! + Generic System V, mips-*-sysv* ! + IRIX before version 5, mips-sgi-irix[1234]* ! + RiscOS, mips-*-riscos* ! + Sony, mips-sony-* ! + Tandem, mips-tandem-* ! * SPARC: ! + RTEMS/a.out, sparc-*-rtemsaout*. ! ! Documentation improvements ! ! * The old manual ("Using and Porting the GNU Compiler Collection") ! has been replaced by a users manual ("Using the GNU Compiler ! Collection") and a separate internals reference manual ("GNU ! Compiler Collection Internals"). ! * More complete and much improved documentation about GCC's internal ! representation used by the C and C++ front ends. ! * Many cleanups and improvements in general. ! _________________________________________________________________ ! ! Please send FSF & GNU inquiries & questions to [18]gnu@gnu.org. There ! are also [19]other ways to contact the FSF. ! ! These pages are maintained by [20]The GCC team. ! ! ! Please send comments on these web pages and GCC to [21]gcc@gnu.org ! or [22]gcc@gcc.gnu.org, send other questions to [23]gnu@gnu.org. ! ! Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite ! 330, Boston, MA 02111, USA. ! ! Verbatim copying and distribution of this entire article is permitted ! in any medium, provided this notice is preserved. ! ! Last modified 2002-07-17 [24]Valid XHTML 1.0 ! ! References + 1. http://gcc.gnu.org/news/profiledriven.html + 2. http://www.suse.de/~aj/SPEC/ + 3. http://people.redhat.com/dnovillo/SPEC/ + 4. http://www.redhat.com/ + 5. http://www.codesourcery.com/ + 6. http://gcc.gnu.org/gcc-3.1/c99status.html + 7. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1 + 8. http://gcc.gnu.org/onlinedocs/g77_news.html + 9. http://www.gnat.com/ + 10. http://www-cs-faculty.stanford.edu/~knuth/mmix.html + 11. http://www.axis.com/ + 12. http://developer.axis.com/ + 13. http://www.redhat.com/ + 14. http://www.superh.com/ + 15. http://www.suse.com/ + 16. http://www.x86-64.org/ + 17. http://www.redhat.com/ + 18. mailto:gnu@gnu.org + 19. http://www.gnu.org/home.html#ContactInfo + 20. http://gcc.gnu.org/about.html + 21. mailto:gcc@gnu.org + 22. mailto:gcc@gcc.gnu.org + 23. mailto:gnu@gnu.org + 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/gcc-3.0.html *************** Previous 3.0.x Releases *** 63,69 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-05-05 [17]Valid XHTML 1.0 References --- 495,501 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [17]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-3.0/features.html *** 89,107 **** GCC 3.0 New Features General Optimizer Improvements ! * [1]Basic block reordering pass. * New if-conversion pass with support for conditional (predicated) execution. * New tail call and sibling call elimination optimizations. * New register renaming pass. ! * New (experimental) [2]static single assignment (SSA) representation support. * New dead-code elimination pass implemented using the SSA representation. ! * [3]Global null pointer test elimination. ! * [4]Global code hoisting/unification. * More builtins and optimizations for stdio.h, string.h and old BSD functions, as well as for ISO C99 functions. * New builtin __builtin_expect for giving hints to the branch --- 521,582 ---- GCC 3.0 New Features + Additional changes in GCC 3.0.4 + + * GCC 3.0 now supports newer versions of the [1]NetBSD operating + system, which use the ELF object file format, on x86 processors. + * Correct debugging information is generated from functions that + have lines from multiple files (e.g. yacc output). + * A fix for whitespace handling in the -traditional preprocessor, + which can affect Fortran. + * Fixes to the exception handling runtime. + * More fixes for bad code generation in C++. + * A fix for shared library generation under AIX 4.3. + * Documentation updates. + * Port of GCC to Tensilica's Xtensa processor contributed. + * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). + + Additional changes in GCC 3.0.3 + + * A fix to correct an accidental change to the PowerPC ABI. + * Fixes for bad code generation on a variety of architectures. + * Improvements to the debugging information generated for C++ + classes. + * Fixes for bad code generation in C++. + * A fix to avoid crashes in the C++ demangler. + * A fix to the C++ standard library to avoid buffer overflows. + * Miscellaneous improvements for a variety of architectures. + + Additional changes in GCC 3.0.2 + + * Fixes for bad code generation during loop unrolling. + * Fixes for bad code generation by the sibling call optimization. + * Minor improvements to x86 code generation. + * Implemenation of function descriptors in C++ vtables for IA64. + * Numerous minor bug-fixes. + + Additional changes in GCC 3.0.1 + + * C++ fixes for incorrect code-generation. + * Improved cross-compiling support for the C++ standard library. + * Fixes for some embedded targets that worked in GCC 2.95.3, but not + in GCC 3.0. + * Fixes for various exception-handling bugs. + * A port to the S/390 architecture. + General Optimizer Improvements ! * [2]Basic block reordering pass. * New if-conversion pass with support for conditional (predicated) execution. * New tail call and sibling call elimination optimizations. * New register renaming pass. ! * New (experimental) [3]static single assignment (SSA) representation support. * New dead-code elimination pass implemented using the SSA representation. ! * [4]Global null pointer test elimination. ! * [5]Global code hoisting/unification. * More builtins and optimizations for stdio.h, string.h and old BSD functions, as well as for ISO C99 functions. * New builtin __builtin_expect for giving hints to the branch *************** New Languages and Language specific impr *** 116,134 **** compile Java source or Java bytecodes to either native code or Java class files, and supports native methods written in either the standard JNI or the more efficient and convenient CNI. ! * Here is a [5]partial list of C++ improvements, both new features and those no longer supported. * New C++ ABI. On the IA-64 platform GCC is capable of inter-operating with other IA-64 compilers. * The new ABI also significantly reduces the size of symbol and debug information. ! * New [6]C++ support library and many C++ bug fixes, vastly improving our conformance to the ISO C++ standard. ! * New [7]inliner for C++. * Rewritten C preprocessor, integrated into the C, C++ and Objective C compilers, with very many improvements including ISO C99 support ! and [8]improvements to dependency generation. ! * Support for more [9]ISO C99 features. * Many improvements to support for checking calls to format functions such as printf and scanf, including support for ISO C99 format features, extensions from the Single Unix Specification and --- 591,609 ---- compile Java source or Java bytecodes to either native code or Java class files, and supports native methods written in either the standard JNI or the more efficient and convenient CNI. ! * Here is a [6]partial list of C++ improvements, both new features and those no longer supported. * New C++ ABI. On the IA-64 platform GCC is capable of inter-operating with other IA-64 compilers. * The new ABI also significantly reduces the size of symbol and debug information. ! * New [7]C++ support library and many C++ bug fixes, vastly improving our conformance to the ISO C++ standard. ! * New [8]inliner for C++. * Rewritten C preprocessor, integrated into the C, C++ and Objective C compilers, with very many improvements including ISO C99 support ! and [9]improvements to dependency generation. ! * Support for more [10]ISO C99 features. * Many improvements to support for checking calls to format functions such as printf and scanf, including support for ISO C99 format features, extensions from the Single Unix Specification and *************** New Languages and Language specific impr *** 139,145 **** = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. * Additional warning option -Wfloat-equal. * Improvements to -Wtraditional. ! * Fortran improvements are listed in [10]the Fortran documentation. New Targets and Target Specific Improvements --- 614,620 ---- = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. * Additional warning option -Wfloat-equal. * Improvements to -Wtraditional. ! * Fortran improvements are listed in [11]the Fortran documentation. New Targets and Target Specific Improvements *************** Other significant improvements *** 190,196 **** number has been received, should be submitted again to the bug tracking database using gccbug if you can reproduce the problem with GCC 3.0.) ! * The internal libgcc library is [11]built as a shared library on systems that support it. * Extensive testsuite included with GCC, with many new tests. In addition to tests for GCC bugs that have been fixed, many tests --- 665,671 ---- number has been received, should be submitted again to the bug tracking database using gccbug if you can reproduce the problem with GCC 3.0.) ! * The internal libgcc library is [12]built as a shared library on systems that support it. * Extensive testsuite included with GCC, with many new tests. In addition to tests for GCC bugs that have been fixed, many tests *************** Other significant improvements *** 201,251 **** * Target-independent options -falign-functions, -falign-loops and -falign-jumps. ! Plus a great many bugfixes and almost all the [12]features found in GCC 2.95. - - Additional changes in GCC 3.0.1 - - * C++ fixes for incorrect code-generation. - * Improved cross-compiling support for the C++ standard library. - * Fixes for some embedded targets that worked in GCC 2.95.3, but not - in GCC 3.0. - * Fixes for various exception-handling bugs. - * A port to the S/390 architecture. - - Additional changes in GCC 3.0.2 - - * Fixes for bad code generation during loop unrolling. - * Fixes for bad code generation by the sibling call optimization. - * Minor improvements to x86 code generation. - * Implemenation of function descriptors in C++ vtables for IA64. - * Numerous minor bug-fixes. - - Additional changes in GCC 3.0.3 - - * A fix to correct an accidental change to the PowerPC ABI. - * Fixes for bad code generation on a variety of architectures. - * Improvements to the debugging information generated for C++ - classes. - * Fixes for bad code generation in C++. - * A fix to avoid crashes in the C++ demangler. - * A fix to the C++ standard library to avoid buffer overflows. - * Miscellaneous improvements for a variety of architectures. - - Additional changes in GCC 3.0.4 - - * GCC 3.0 now supports newer versions of the [13]NetBSD operating - system, which use the ELF object file format, on x86 processors. - * Correct debugging information is generated from functions that - have lines from multiple files (e.g. yacc output). - * A fix for whitespace handling in the -traditional preprocessor, - which can affect Fortran. - * Fixes to the exception handling runtime. - * More fixes for bad code generation in C++. - * A fix for shared library generation under AIX 4.3. - * Documentation updates. - * Port of GCC to Tensilica's Xtensa processor contributed. - * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). _________________________________________________________________ Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There --- 676,683 ---- * Target-independent options -falign-functions, -falign-loops and -falign-jumps. ! Plus a great many bugfixes and almost all the [13]features found in GCC 2.95. _________________________________________________________________ Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There *************** Additional changes in GCC 3.0.4 *** 263,285 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [20]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/news/reorder.html ! 2. http://gcc.gnu.org/news/ssa.html ! 3. http://gcc.gnu.org/news/null.html ! 4. http://gcc.gnu.org/news/unify.html ! 5. http://gcc.gnu.org/gcc-3.0/c++features.html ! 6. http://gcc.gnu.org/libstdc++/ ! 7. http://gcc.gnu.org/news/inlining.html ! 8. http://gcc.gnu.org/news/dependencies.html ! 9. http://gcc.gnu.org/gcc-3.0/c99status.html ! 10. http://gcc.gnu.org/onlinedocs/g77_news.html ! 11. http://gcc.gnu.org/gcc-3.0/libgcc.html ! 12. http://gcc.gnu.org/gcc-2.95/features.html ! 13. http://www.netbsd.org/ 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html --- 695,717 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [20]Valid XHTML 1.0 References ! 1. http://www.netbsd.org/ ! 2. http://gcc.gnu.org/news/reorder.html ! 3. http://gcc.gnu.org/news/ssa.html ! 4. http://gcc.gnu.org/news/null.html ! 5. http://gcc.gnu.org/news/unify.html ! 6. http://gcc.gnu.org/gcc-3.0/c++features.html ! 7. http://gcc.gnu.org/libstdc++/ ! 8. http://gcc.gnu.org/news/inlining.html ! 9. http://gcc.gnu.org/news/dependencies.html ! 10. http://gcc.gnu.org/gcc-3.0/c99status.html ! 11. http://gcc.gnu.org/onlinedocs/g77_news.html ! 12. http://gcc.gnu.org/gcc-3.0/libgcc.html ! 13. http://gcc.gnu.org/gcc-2.95/features.html 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 336,342 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [10]Valid XHTML 1.0 References --- 768,774 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/index.html *** 414,420 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [19]Valid XHTML 1.0 References --- 846,852 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [19]Valid XHTML 1.0 References *************** Additional Changes in GCC 2.95.3 *** 687,693 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [24]Valid XHTML 1.0 References --- 1119,1125 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [24]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 776,782 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [10]Valid XHTML 1.0 References --- 1208,1214 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/index.html *** 1004,1010 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [17]Valid XHTML 1.0 References --- 1436,1442 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [17]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 1110,1116 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1542,1548 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 1170,1176 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [8]Valid XHTML 1.0 References --- 1602,1608 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [8]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.h *** 1274,1280 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1706,1712 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.h *** 1413,1419 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1845,1851 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 1552,1558 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1984,1990 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.htm *** 1648,1654 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 2080,2086 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 1721,1727 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [9]Valid XHTML 1.0 References --- 2153,2159 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [9]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 1780,1786 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [8]Valid XHTML 1.0 References --- 2212,2218 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [8]Valid XHTML 1.0 References diff -Nrc3pad gcc-3.1/gcc/ada/ChangeLog gcc-3.1.1/gcc/ada/ChangeLog *** gcc-3.1/gcc/ada/ChangeLog Wed May 15 02:15:30 2002 --- gcc-3.1.1/gcc/ada/ChangeLog Thu Jul 25 23:34:51 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-26 Joseph S. Myers + + * gnatvsn.ads (Gnat_Version_String): Change to "3.1.1 20020526 + (prerelease)". + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/ada/gnatvsn.ads gcc-3.1.1/gcc/ada/gnatvsn.ads *** gcc-3.1/gcc/ada/gnatvsn.ads Sat May 4 03:28:13 2002 --- gcc-3.1.1/gcc/ada/gnatvsn.ads Thu Jul 25 23:40:33 2002 *************** *** 6,12 **** -- -- -- S p e c -- -- -- ! -- $Revision: 1.2.12.2 $ -- -- -- Copyright (C) 1992-2002 Free Software Foundation, Inc. -- -- -- --- 6,12 ---- -- -- -- S p e c -- -- -- ! -- $Revision: 1.2.12.63 $ -- -- -- Copyright (C) 1992-2002 Free Software Foundation, Inc. -- -- -- *************** *** 38,44 **** package Gnatvsn is ! Gnat_Version_String : constant String := "3.1 (20020501)"; -- Version output when GNAT (compiler), or its related tools, including -- GNATBIND, GNATCHOP, GNATFIND, GNATLINK, GNATMAKE, GNATXREF, are run -- (with appropriate verbose option switch set). --- 38,44 ---- package Gnatvsn is ! Gnat_Version_String : constant String := "3.1.1 20020725 (release)"; -- Version output when GNAT (compiler), or its related tools, including -- GNATBIND, GNATCHOP, GNATFIND, GNATLINK, GNATMAKE, GNATXREF, are run -- (with appropriate verbose option switch set). diff -Nrc3pad gcc-3.1/gcc/alias.c gcc-3.1.1/gcc/alias.c *** gcc-3.1/gcc/alias.c Mon Apr 22 18:14:28 2002 --- gcc-3.1.1/gcc/alias.c Thu Jun 20 07:35:41 2002 *************** get_alias_set (t) *** 564,569 **** --- 564,577 ---- and references to functions, but that's different.) */ else if (TREE_CODE (t) == FUNCTION_TYPE) set = 0; + + /* Unless the language specifies otherwise, let vector types alias + their components. This avoids some nasty type punning issues in + normal usage. And indeed lets vectors be treated more like an + array slice. */ + else if (TREE_CODE (t) == VECTOR_TYPE) + set = get_alias_set (TREE_TYPE (t)); + else /* Otherwise make a new alias set for this type. */ set = new_alias_set (); diff -Nrc3pad gcc-3.1/gcc/attribs.c gcc-3.1.1/gcc/attribs.c *** gcc-3.1/gcc/attribs.c Mon Feb 25 22:38:52 2002 --- gcc-3.1.1/gcc/attribs.c Mon May 27 05:48:13 2002 *************** handle_alias_attribute (node, name, args *** 1050,1056 **** DECL_INITIAL (decl) = error_mark_node; else DECL_EXTERNAL (decl) = 0; - assemble_alias (decl, id); } else { --- 1050,1055 ---- diff -Nrc3pad gcc-3.1/gcc/bb-reorder.c gcc-3.1.1/gcc/bb-reorder.c *** gcc-3.1/gcc/bb-reorder.c Sat Feb 9 02:18:11 2002 --- gcc-3.1.1/gcc/bb-reorder.c Mon Jul 15 16:19:38 2002 *************** make_reorder_chain_1 (bb, prev) *** 211,227 **** /* In the absence of a prediction, disturb things as little as possible by selecting the old "next" block from the list of successors. If there had been a fallthru edge, that will be the one. */ if (! next) { for (e = bb->succ; e ; e = e->succ_next) ! if (e->dest->index == bb->index + 1) { ! if ((e->flags & EDGE_FALLTHRU) ! || (e->dest->succ ! && ! (e->flags & (EDGE_ABNORMAL_CALL | EDGE_EH)))) ! next = e->dest; break; } } /* Make sure we didn't select a silly next block. */ --- 211,231 ---- /* In the absence of a prediction, disturb things as little as possible by selecting the old "next" block from the list of successors. If there had been a fallthru edge, that will be the one. */ + /* Note that the fallthru block may not be next any time we eliminate + forwarder blocks. */ if (! next) { for (e = bb->succ; e ; e = e->succ_next) ! if (e->flags & EDGE_FALLTHRU) { ! next = e->dest; break; } + else if (e->dest->index == bb->index + 1) + { + if (! (e->flags & (EDGE_ABNORMAL_CALL | EDGE_EH))) + next = e->dest; + } } /* Make sure we didn't select a silly next block. */ diff -Nrc3pad gcc-3.1/gcc/bitmap.c gcc-3.1.1/gcc/bitmap.c *** gcc-3.1/gcc/bitmap.c Wed Oct 31 03:01:15 2001 --- gcc-3.1.1/gcc/bitmap.c Fri May 24 12:23:36 2002 *************** bitmap_find_bit (head, bit) *** 300,307 **** bitmap_element *element; unsigned HOST_WIDE_INT indx = bit / BITMAP_ELEMENT_ALL_BITS; ! if (head->current == 0) ! return 0; if (head->indx > indx) for (element = head->current; --- 300,308 ---- bitmap_element *element; unsigned HOST_WIDE_INT indx = bit / BITMAP_ELEMENT_ALL_BITS; ! if (head->current == 0 ! || head->indx == indx) ! return head->current; if (head->indx > indx) for (element = head->current; diff -Nrc3pad gcc-3.1/gcc/c-common.c gcc-3.1.1/gcc/c-common.c *** gcc-3.1/gcc/c-common.c Fri Apr 26 18:10:32 2002 --- gcc-3.1.1/gcc/c-common.c Thu Jun 20 07:35:43 2002 *************** c_common_get_alias_set (t) *** 2326,2335 **** { tree u; - /* We know nothing about vector types */ - if (TREE_CODE (t) == VECTOR_TYPE) - return 0; - /* Permit type-punning when accessing a union, provided the access is directly through the union. For example, this code does not permit taking the address of a union member and then storing --- 2326,2331 ---- *************** c_common_get_alias_set (t) *** 2343,2359 **** && TREE_CODE (TREE_TYPE (TREE_OPERAND (u, 0))) == UNION_TYPE) return 0; - /* If this is a char *, the ANSI C standard says it can alias - anything. Note that all references need do this. */ - if (TREE_CODE_CLASS (TREE_CODE (t)) == 'r' - && TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE - && TYPE_PRECISION (TREE_TYPE (t)) == TYPE_PRECISION (char_type_node)) - return 0; - /* That's all the expressions we handle specially. */ if (! TYPE_P (t)) return -1; /* The C standard specifically allows aliasing between signed and unsigned variants of the same type. We treat the signed variant as canonical. */ --- 2339,2355 ---- && TREE_CODE (TREE_TYPE (TREE_OPERAND (u, 0))) == UNION_TYPE) return 0; /* That's all the expressions we handle specially. */ if (! TYPE_P (t)) return -1; + /* The C standard guarantess that any object may be accessed via an + lvalue that has character type. */ + if (t == char_type_node + || t == signed_char_type_node + || t == unsigned_char_type_node) + return 0; + /* The C standard specifically allows aliasing between signed and unsigned variants of the same type. We treat the signed variant as canonical. */ *************** c_common_post_options () *** 4161,4166 **** --- 4157,4166 ---- warning ("-Wformat-security ignored without -Wformat"); if (warn_missing_format_attribute && !warn_format) warning ("-Wmissing-format-attribute ignored without -Wformat"); + + /* If an error has occurred in cpplib, note it so we fail + immediately. */ + errorcount += cpp_errors (parse_in); } /* Front end initialization common to C, ObjC and C++. */ diff -Nrc3pad gcc-3.1/gcc/c-decl.c gcc-3.1.1/gcc/c-decl.c *** gcc-3.1/gcc/c-decl.c Fri May 3 12:07:04 2002 --- gcc-3.1.1/gcc/c-decl.c Mon Jun 10 21:53:37 2002 *************** grokdeclarator (declarator, declspecs, d *** 4617,4623 **** even if it is (eg) a const variable with known value. */ size_varies = 1; ! if (pedantic) { if (TREE_CONSTANT (size)) pedwarn ("ISO C89 forbids array `%s' whose size can't be evaluated", --- 4617,4623 ---- even if it is (eg) a const variable with known value. */ size_varies = 1; ! if (!flag_isoc99 && pedantic) { if (TREE_CONSTANT (size)) pedwarn ("ISO C89 forbids array `%s' whose size can't be evaluated", *************** grokfield (filename, line, declarator, d *** 5591,5598 **** { /* This is an unnamed decl. We only support unnamed structs/unions, so check for other things and refuse them. */ ! if (TREE_CODE (TREE_VALUE (declspecs)) != RECORD_TYPE ! && TREE_CODE (TREE_VALUE (declspecs)) != UNION_TYPE) { error ("unnamed fields of type other than struct or union are not allowed"); return NULL_TREE; --- 5591,5601 ---- { /* This is an unnamed decl. We only support unnamed structs/unions, so check for other things and refuse them. */ ! tree type = TREE_VALUE (declspecs); ! ! if (TREE_CODE (type) == TYPE_DECL) ! type = TREE_TYPE (type); ! if (TREE_CODE (type) != RECORD_TYPE && TREE_CODE (type) != UNION_TYPE) { error ("unnamed fields of type other than struct or union are not allowed"); return NULL_TREE; diff -Nrc3pad gcc-3.1/gcc/c-lang.c gcc-3.1.1/gcc/c-lang.c *** gcc-3.1/gcc/c-lang.c Tue Mar 19 07:56:35 2002 --- gcc-3.1.1/gcc/c-lang.c Thu May 23 17:57:26 2002 *************** Software Foundation, 59 Temple Place - S *** 29,35 **** static const char *c_init PARAMS ((const char *)); static void c_init_options PARAMS ((void)); - static void c_post_options PARAMS ((void)); /* ### When changing hooks, consider if ObjC needs changing too!! ### */ --- 29,34 ---- *************** static void c_post_options PARAMS ((void *** 44,50 **** #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION c_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set #undef LANG_HOOKS_SAFE_FROM_P --- 43,49 ---- #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION c_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set #undef LANG_HOOKS_SAFE_FROM_P *************** static void c_post_options PARAMS ((void *** 74,86 **** /* Each front end provides its own. */ const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; - /* Post-switch processing. */ - static void - c_post_options () - { - c_common_post_options (); - } - static void c_init_options () { --- 73,78 ---- diff -Nrc3pad gcc-3.1/gcc/c-lex.c gcc-3.1.1/gcc/c-lex.c *** gcc-3.1/gcc/c-lex.c Mon Apr 22 22:26:05 2002 --- gcc-3.1.1/gcc/c-lex.c Thu Jun 27 22:27:09 2002 *************** cb_def_pragma (pfile, line) *** 334,353 **** -Wunknown-pragmas has been given. */ if (warn_unknown_pragmas > in_system_header) { ! const unsigned char *space, *name = 0; const cpp_token *s; s = cpp_get_token (pfile); ! space = cpp_token_as_text (pfile, s); ! s = cpp_get_token (pfile); ! if (s->type == CPP_NAME) ! name = cpp_token_as_text (pfile, s); lineno = SOURCE_LINE (map, line); ! if (name) ! warning ("ignoring #pragma %s %s", space, name); ! else ! warning ("ignoring #pragma %s", space); } } --- 334,354 ---- -Wunknown-pragmas has been given. */ if (warn_unknown_pragmas > in_system_header) { ! const unsigned char *space, *name; const cpp_token *s; + space = name = (const unsigned char *) ""; s = cpp_get_token (pfile); ! if (s->type != CPP_EOF) ! { ! space = cpp_token_as_text (pfile, s); ! s = cpp_get_token (pfile); ! if (s->type == CPP_NAME) ! name = cpp_token_as_text (pfile, s); ! } lineno = SOURCE_LINE (map, line); ! warning ("ignoring #pragma %s %s", space, name); } } diff -Nrc3pad gcc-3.1/gcc/c-pragma.c gcc-3.1.1/gcc/c-pragma.c *** gcc-3.1/gcc/c-pragma.c Sun Apr 28 18:43:53 2002 --- gcc-3.1.1/gcc/c-pragma.c Mon May 27 05:48:14 2002 *************** apply_pragma_weak (decl, value) *** 284,292 **** tree decl, value; { if (value) ! decl_attributes (&decl, build_tree_list (get_identifier ("alias"), ! build_tree_list (NULL, value)), ! 0); if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl) && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) warning_with_decl (decl, "applying #pragma weak `%s' after first use results in unspecified behavior"); --- 284,297 ---- tree decl, value; { if (value) ! { ! value = build_string (IDENTIFIER_LENGTH (value), ! IDENTIFIER_POINTER (value)); ! decl_attributes (&decl, build_tree_list (get_identifier ("alias"), ! build_tree_list (NULL, value)), ! 0); ! } ! if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl) && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) warning_with_decl (decl, "applying #pragma weak `%s' after first use results in unspecified behavior"); *************** handle_pragma_weak (dummy) *** 343,349 **** decl = identifier_global_value (name); if (decl && TREE_CODE_CLASS (TREE_CODE (decl)) == 'd') ! apply_pragma_weak (decl, value); else pending_weaks = tree_cons (name, value, pending_weaks); } --- 348,358 ---- decl = identifier_global_value (name); if (decl && TREE_CODE_CLASS (TREE_CODE (decl)) == 'd') ! { ! apply_pragma_weak (decl, value); ! if (value) ! assemble_alias (decl, value); ! } else pending_weaks = tree_cons (name, value, pending_weaks); } diff -Nrc3pad gcc-3.1/gcc/cfgcleanup.c gcc-3.1.1/gcc/cfgcleanup.c *** gcc-3.1/gcc/cfgcleanup.c Wed Apr 10 00:18:53 2002 --- gcc-3.1.1/gcc/cfgcleanup.c Mon Jun 10 21:39:45 2002 *************** try_optimize_cfg (mode) *** 1634,1639 **** --- 1634,1640 ---- && !(s->flags & EDGE_COMPLEX) && (c = s->dest) != EXIT_BLOCK_PTR && c->pred->pred_next == NULL + && b != c /* If the jump insn has side effects, we can't kill the edge. */ && (GET_CODE (b->end) != JUMP_INSN diff -Nrc3pad gcc-3.1/gcc/cfgrtl.c gcc-3.1.1/gcc/cfgrtl.c *** gcc-3.1/gcc/cfgrtl.c Tue Apr 9 20:38:56 2002 --- gcc-3.1.1/gcc/cfgrtl.c Mon Jul 15 16:19:38 2002 *************** force_nonfallthru_and_redirect (e, targe *** 953,961 **** if (e->src->succ->succ_next) { /* Create the new structures. */ note = last_loop_beg_note (e->src->end); ! jump_block ! = create_basic_block (e->src->index + 1, NEXT_INSN (note), NULL); jump_block->count = e->count; jump_block->frequency = EDGE_FREQUENCY (e); jump_block->loop_depth = target->loop_depth; --- 953,973 ---- if (e->src->succ->succ_next) { /* Create the new structures. */ + + /* Position the new block correctly relative to loop notes. */ note = last_loop_beg_note (e->src->end); ! note = NEXT_INSN (note); ! ! /* ... and ADDR_VECs. */ ! if (note != NULL ! && GET_CODE (note) == CODE_LABEL ! && NEXT_INSN (note) ! && GET_CODE (NEXT_INSN (note)) == JUMP_INSN ! && (GET_CODE (PATTERN (NEXT_INSN (note))) == ADDR_DIFF_VEC ! || GET_CODE (PATTERN (NEXT_INSN (note))) == ADDR_VEC)) ! note = NEXT_INSN (NEXT_INSN (note)); ! ! jump_block = create_basic_block (e->src->index + 1, note, NULL); jump_block->count = e->count; jump_block->frequency = EDGE_FREQUENCY (e); jump_block->loop_depth = target->loop_depth; *************** purge_dead_edges (bb) *** 1954,1970 **** e->flags &= ~EDGE_ABNORMAL; ! /* Check purposes we can have edge. */ ! if ((e->flags & EDGE_FALLTHRU) ! && any_condjump_p (insn)) continue; else if (e->dest != EXIT_BLOCK_PTR && e->dest->head == JUMP_LABEL (insn)) continue; ! else if (e->dest == EXIT_BLOCK_PTR ! && returnjump_p (insn)) continue; purged = true; remove_edge (e); } --- 1966,1991 ---- e->flags &= ~EDGE_ABNORMAL; ! /* See if this edge is one we should keep. */ ! if ((e->flags & EDGE_FALLTHRU) && any_condjump_p (insn)) ! /* A conditional jump can fall through into the next ! block, so we should keep the edge. */ continue; else if (e->dest != EXIT_BLOCK_PTR && e->dest->head == JUMP_LABEL (insn)) + /* If the destination block is the target of the jump, + keep the edge. */ continue; ! else if (e->dest == EXIT_BLOCK_PTR && returnjump_p (insn)) ! /* If the destination block is the exit block, and this ! instruction is a return, then keep the edge. */ ! continue; ! else if ((e->flags & EDGE_EH) && can_throw_internal (insn)) ! /* Keep the edges that correspond to exceptions thrown by ! this instruction. */ continue; + /* We do not need this edge. */ purged = true; remove_edge (e); } diff -Nrc3pad gcc-3.1/gcc/combine.c gcc-3.1.1/gcc/combine.c *** gcc-3.1/gcc/combine.c Tue Apr 30 00:42:48 2002 --- gcc-3.1.1/gcc/combine.c Thu Jun 20 14:46:16 2002 *************** subst (x, from, to, in_dest, unique_copy *** 3539,3549 **** if (GET_CODE (new) == CONST_INT && GET_CODE (x) == SUBREG) { ! x = simplify_subreg (GET_MODE (x), new, GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x)); if (! x) ! abort (); } else if (GET_CODE (new) == CONST_INT && GET_CODE (x) == ZERO_EXTEND) --- 3539,3550 ---- if (GET_CODE (new) == CONST_INT && GET_CODE (x) == SUBREG) { ! enum machine_mode mode = GET_MODE (x); ! x = simplify_subreg (mode, new, GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x)); if (! x) ! x = gen_rtx_CLOBBER (mode, const0_rtx); } else if (GET_CODE (new) == CONST_INT && GET_CODE (x) == ZERO_EXTEND) *************** force_to_mode (x, mode, mask, reg, just_ *** 6697,6714 **** /* If X is a CONST_INT, return a new one. Do this here since the test below will fail. */ if (GET_CODE (x) == CONST_INT) ! { ! HOST_WIDE_INT cval = INTVAL (x) & mask; ! int width = GET_MODE_BITSIZE (mode); ! ! /* If MODE is narrower that HOST_WIDE_INT and CVAL is a negative ! number, sign extend it. */ ! if (width > 0 && width < HOST_BITS_PER_WIDE_INT ! && (cval & ((HOST_WIDE_INT) 1 << (width - 1))) != 0) ! cval |= (HOST_WIDE_INT) -1 << width; ! ! return GEN_INT (cval); ! } /* If X is narrower than MODE and we want all the bits in X's mode, just get X in the proper mode. */ --- 6698,6704 ---- /* If X is a CONST_INT, return a new one. Do this here since the test below will fail. */ if (GET_CODE (x) == CONST_INT) ! return gen_int_mode (INTVAL (x) & mask, mode); /* If X is narrower than MODE and we want all the bits in X's mode, just get X in the proper mode. */ *************** force_to_mode (x, mode, mask, reg, just_ *** 6914,6927 **** force_to_mode (XEXP (x, 1), mode, mask, reg, next_select)); - /* If OP1 is a CONST_INT and X is an IOR or XOR, clear bits outside - MASK since OP1 might have been sign-extended but we never want - to turn on extra bits, since combine might have previously relied - on them being off. */ - if (GET_CODE (op1) == CONST_INT && (code == IOR || code == XOR) - && (INTVAL (op1) & mask) != 0) - op1 = GEN_INT (INTVAL (op1) & mask); - if (op_mode != GET_MODE (x) || op0 != XEXP (x, 0) || op1 != XEXP (x, 1)) x = gen_binary (code, op_mode, op0, op1); break; --- 6904,6909 ---- *************** gen_lowpart_for_combine (mode, x) *** 9865,9870 **** --- 9847,9858 ---- int offset = 0; rtx res; + /* We can't handle VOIDmodes. We can get here when generating vector + modes since these, unlike integral and floating point modes are not + handled earlier. */ + if (GET_MODE (x) == VOIDmode) + return gen_rtx_CLOBBER (GET_MODE (x), const0_rtx); + offset = subreg_lowpart_offset (mode, GET_MODE (x)); res = simplify_gen_subreg (mode, x, GET_MODE (x), offset); if (res) diff -Nrc3pad gcc-3.1/gcc/config/1750a/1750a.h gcc-3.1.1/gcc/config/1750a/1750a.h *** gcc-3.1/gcc/config/1750a/1750a.h Wed Jan 16 02:37:16 2002 --- gcc-3.1.1/gcc/config/1750a/1750a.h Tue May 21 23:44:47 2002 *************** enum reg_class { NO_REGS, R2, R0_1, INDE *** 556,571 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ fprintf (FILE, "; got into FUNCTION_PROFILER with label # %d\n", (LABELNO)) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "; got into FUNCTION_BLOCK_PROFILER with label # %d\n",LABELNO) - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "; got into BLOCK_PROFILER with block # %d\n",BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 556,561 ---- diff -Nrc3pad gcc-3.1/gcc/config/alpha/alpha.c gcc-3.1.1/gcc/config/alpha/alpha.c *** gcc-3.1/gcc/config/alpha/alpha.c Wed Apr 10 05:14:54 2002 --- gcc-3.1.1/gcc/config/alpha/alpha.c Mon May 27 05:48:16 2002 *************** alpha_encode_section_info (decl) *** 1664,1670 **** XSTR (XEXP (DECL_RTL (decl), 0), 0) = string; } else if (symbol_str[0] == '@') ! abort (); } /* legitimate_address_p recognizes an RTL expression that is a valid --- 1664,1674 ---- XSTR (XEXP (DECL_RTL (decl), 0), 0) = string; } else if (symbol_str[0] == '@') ! { ! /* We're hosed. This can happen when the user adds a weak ! attribute after rtl generation. They should have gotten ! a warning about unspecified behaviour from varasm.c. */ ! } } /* legitimate_address_p recognizes an RTL expression that is a valid diff -Nrc3pad gcc-3.1/gcc/config/alpha/alpha.h gcc-3.1.1/gcc/config/alpha/alpha.h *** gcc-3.1/gcc/config/alpha/alpha.h Mon Feb 18 01:07:52 2002 --- gcc-3.1.1/gcc/config/alpha/alpha.h Tue May 21 23:44:50 2002 *************** extern struct alpha_compare alpha_compar *** 1224,1265 **** #define FUNCTION_PROFILER(FILE, LABELNO) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. - This assumes that __bb_init_func doesn't garble a1-a5. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - do { \ - ASM_OUTPUT_REG_PUSH (FILE, 16); \ - fputs ("\tlda $16,$PBX32\n", (FILE)); \ - fputs ("\tldq $26,0($16)\n", (FILE)); \ - fputs ("\tbne $26,1f\n", (FILE)); \ - fputs ("\tlda $27,__bb_init_func\n", (FILE)); \ - fputs ("\tjsr $26,($27),__bb_init_func\n", (FILE)); \ - fputs ("\tldgp $29,0($26)\n", (FILE)); \ - fputs ("1:\n", (FILE)); \ - ASM_OUTPUT_REG_POP (FILE, 16); \ - } while (0); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - do { \ - int blockn = (BLOCKNO); \ - fputs ("\tsubq $30,16,$30\n", (FILE)); \ - fputs ("\tstq $26,0($30)\n", (FILE)); \ - fputs ("\tstq $27,8($30)\n", (FILE)); \ - fputs ("\tlda $26,$PBX34\n", (FILE)); \ - fprintf ((FILE), "\tldq $27,%d($26)\n", 8*blockn); \ - fputs ("\taddq $27,1,$27\n", (FILE)); \ - fprintf ((FILE), "\tstq $27,%d($26)\n", 8*blockn); \ - fputs ("\tldq $26,0($30)\n", (FILE)); \ - fputs ("\tldq $27,8($30)\n", (FILE)); \ - fputs ("\taddq $30,16,$30\n", (FILE)); \ - } while (0) - - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 1224,1229 ---- diff -Nrc3pad gcc-3.1/gcc/config/alpha/elf.h gcc-3.1.1/gcc/config/alpha/elf.h *** gcc-3.1/gcc/config/alpha/elf.h Sun Mar 31 11:52:08 2002 --- gcc-3.1.1/gcc/config/alpha/elf.h Fri May 24 19:22:11 2002 *************** do { \ *** 165,171 **** } \ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \ ASM_OUTPUT_LABEL(FILE, NAME); \ ! ASM_OUTPUT_SKIP((FILE), (SIZE)); \ } while (0) /* This says how to output assembler code to declare an --- 165,171 ---- } \ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \ ASM_OUTPUT_LABEL(FILE, NAME); \ ! ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1); \ } while (0) /* This says how to output assembler code to declare an diff -Nrc3pad gcc-3.1/gcc/config/alpha/netbsd.h gcc-3.1.1/gcc/config/alpha/netbsd.h *** gcc-3.1/gcc/config/alpha/netbsd.h Tue Feb 5 19:01:46 2002 --- gcc-3.1.1/gcc/config/alpha/netbsd.h Wed May 29 22:12:47 2002 *************** Boston, MA 02111-1307, USA. */ *** 24,30 **** #undef CPP_PREDEFINES #define CPP_PREDEFINES \ ! "-D__NetBSD__ -D__ELF__ -Asystem=unix -Asystem=NetBSD" /* Show that we need a GP when profiling. */ --- 24,30 ---- #undef CPP_PREDEFINES #define CPP_PREDEFINES \ ! "-D__NetBSD__ -D__ELF__ -D_LP64 -Asystem=unix -Asystem=NetBSD" /* Show that we need a GP when profiling. */ diff -Nrc3pad gcc-3.1/gcc/config/alpha/unicosmk.h gcc-3.1.1/gcc/config/alpha/unicosmk.h *** gcc-3.1/gcc/config/alpha/unicosmk.h Thu Dec 20 17:36:33 2001 --- gcc-3.1.1/gcc/config/alpha/unicosmk.h Fri May 24 23:04:18 2002 *************** ssib_section () \ *** 574,579 **** --- 574,603 ---- #ifndef REAL_ARITHMETIC #define REAL_VALUE_ATOF(x,s) atof(x) #define REAL_VALUE_HTOF(x,s) atof(x) + + #define REAL_VALUE_TO_TARGET_SINGLE(IN, OUT) \ + do { \ + union { \ + float f; \ + HOST_WIDE_INT l; \ + } u; \ + \ + u.f = (IN); \ + (OUT) = (u.l >> 32) & 0xFFFFFFFF; \ + } while (0) + + #define REAL_VALUE_TO_TARGET_DOUBLE(IN, OUT) \ + do { \ + union { \ + REAL_VALUE_TYPE f; \ + HOST_WIDE_INT l; \ + } u; \ + \ + u.f = (IN); \ + (OUT)[0] = (u.l >> 32) & 0xFFFFFFFF; \ + (OUT)[1] = (u.l & 0xFFFFFFFF); \ + } while (0) + #endif #undef NM_FLAGS diff -Nrc3pad gcc-3.1/gcc/config/arm/arm.c gcc-3.1.1/gcc/config/arm/arm.c *** gcc-3.1/gcc/config/arm/arm.c Wed Mar 20 15:06:03 2002 --- gcc-3.1.1/gcc/config/arm/arm.c Sun Jul 21 12:09:02 2002 *************** arm_gen_movstrqi (operands) *** 4544,4551 **** RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_rtx_SUBREG (QImode, part_bytes_reg, 0)); ! if (--last_bytes) { tmp = gen_reg_rtx (SImode); --- 4544,4551 ---- RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_lowpart (QImode, part_bytes_reg)); ! if (--last_bytes) { tmp = gen_reg_rtx (SImode); *************** arm_gen_movstrqi (operands) *** 4563,4569 **** RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_rtx_SUBREG (HImode, part_bytes_reg, 0)); last_bytes -= 2; if (last_bytes) { --- 4563,4569 ---- RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_lowpart (HImode, part_bytes_reg)); last_bytes -= 2; if (last_bytes) { *************** arm_gen_movstrqi (operands) *** 4581,4587 **** RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_rtx_SUBREG (QImode, part_bytes_reg, 0)); } } --- 4581,4587 ---- RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_lowpart (QImode, part_bytes_reg)); } } *************** arm_reload_out_hi (operands) *** 5119,5141 **** { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_rtx_SUBREG (QImode, outval, 0))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_rtx_SUBREG (QImode, scratch, 0))); } else { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_rtx_SUBREG (QImode, outval, 0))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_rtx_SUBREG (QImode, scratch, 0))); } } --- 5119,5141 ---- { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_lowpart (QImode, outval))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_lowpart (QImode, scratch))); } else { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_lowpart (QImode, outval))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_lowpart (QImode, scratch))); } } diff -Nrc3pad gcc-3.1/gcc/config/arm/arm.md gcc-3.1.1/gcc/config/arm/arm.md *** gcc-3.1/gcc/config/arm/arm.md Wed Apr 10 14:25:51 2002 --- gcc-3.1.1/gcc/config/arm/arm.md Sun Jul 21 12:09:03 2002 *************** *** 3390,3396 **** [(set (match_operand:SI 0 "s_register_operand" "") (zero_extend:SI (subreg:QI (match_operand:SI 1 "" "") 0))) (clobber (match_operand:SI 2 "s_register_operand" ""))] ! "TARGET_ARM && (GET_CODE (operands[1]) != MEM)" [(set (match_dup 2) (match_dup 1)) (set (match_dup 0) (and:SI (match_dup 2) (const_int 255)))] "" --- 3390,3396 ---- [(set (match_operand:SI 0 "s_register_operand" "") (zero_extend:SI (subreg:QI (match_operand:SI 1 "" "") 0))) (clobber (match_operand:SI 2 "s_register_operand" ""))] ! "TARGET_ARM && (GET_CODE (operands[1]) != MEM) && ! BYTES_BIG_ENDIAN" [(set (match_dup 2) (match_dup 1)) (set (match_dup 0) (and:SI (match_dup 2) (const_int 255)))] "" *************** *** 4288,4294 **** [(set (match_dup 4) (match_dup 3)) (set (match_dup 2) (ashiftrt:SI (match_operand 0 "" "") (const_int 8))) ! (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 0))] "TARGET_ARM" " { --- 4288,4294 ---- [(set (match_dup 4) (match_dup 3)) (set (match_dup 2) (ashiftrt:SI (match_operand 0 "" "") (const_int 8))) ! (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 3))] "TARGET_ARM" " { *************** *** 4312,4318 **** (define_expand "storeinthi" [(set (match_operand 0 "" "") (subreg:QI (match_operand 1 "" "") 0)) ! (set (match_dup 3) (subreg:QI (match_dup 2) 0))] "TARGET_ARM" " { --- 4312,4318 ---- (define_expand "storeinthi" [(set (match_operand 0 "" "") (subreg:QI (match_operand 1 "" "") 0)) ! (set (match_dup 3) (match_dup 2))] "TARGET_ARM" " { *************** *** 4351,4356 **** --- 4351,4357 ---- operands[3] = adjust_address (op0, QImode, 1); operands[0] = adjust_address (operands[0], QImode, 0); + operands[2] = gen_lowpart (QImode, operands[2]); }" ) *************** *** 4413,4419 **** } emit_insn (gen_movsi (reg, GEN_INT (val))); ! operands[1] = gen_rtx_SUBREG (HImode, reg, 0); } else if (!arm_arch4) { --- 4414,4420 ---- } emit_insn (gen_movsi (reg, GEN_INT (val))); ! operands[1] = gen_lowpart (HImode, reg); } else if (!arm_arch4) { *************** *** 4810,4816 **** rtx reg = gen_reg_rtx (SImode); emit_insn (gen_movsi (reg, operands[1])); ! operands[1] = gen_rtx_SUBREG (QImode, reg, 0); } if (GET_CODE (operands[0]) == MEM) operands[1] = force_reg (QImode, operands[1]); --- 4811,4817 ---- rtx reg = gen_reg_rtx (SImode); emit_insn (gen_movsi (reg, operands[1])); ! operands[1] = gen_lowpart (QImode, reg); } if (GET_CODE (operands[0]) == MEM) operands[1] = force_reg (QImode, operands[1]); *************** *** 4853,4859 **** if (GET_CODE (operands[0]) != REG) abort (); ! operands[0] = gen_rtx (SUBREG, SImode, operands[0], 0); emit_insn (gen_movsi (operands[0], operands[1])); DONE; } --- 4854,4860 ---- if (GET_CODE (operands[0]) != REG) abort (); ! operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0); emit_insn (gen_movsi (operands[0], operands[1])); DONE; } diff -Nrc3pad gcc-3.1/gcc/config/avr/avr.c gcc-3.1.1/gcc/config/avr/avr.c *** gcc-3.1/gcc/config/avr/avr.c Mon Jan 7 15:04:34 2002 --- gcc-3.1.1/gcc/config/avr/avr.c Fri Jul 12 11:27:55 2002 *************** avr_handle_progmem_attribute (node, name *** 4669,4675 **** { if (DECL_P (*node)) { ! if (TREE_STATIC (*node) || DECL_EXTERNAL (*node)) { if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node)) { --- 4669,4688 ---- { if (DECL_P (*node)) { ! if (TREE_CODE (*node) == TYPE_DECL) ! { ! /* This is really a decl attribute, not a type attribute, ! but try to handle it for GCC 3.0 backwards compatibility. */ ! ! tree type = TREE_TYPE (*node); ! tree attr = tree_cons (name, args, TYPE_ATTRIBUTES (type)); ! tree newtype = build_type_attribute_variant (type, attr); ! ! TYPE_MAIN_VARIANT (newtype) = TYPE_MAIN_VARIANT (type); ! TREE_TYPE (*node) = newtype; ! *no_add_attrs = true; ! } ! else if (TREE_STATIC (*node) || DECL_EXTERNAL (*node)) { if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node)) { *************** machine_dependent_reorg (first_insn) *** 5051,5061 **** rtx pat = PATTERN (next); rtx src = SET_SRC (pat); rtx t = XEXP (src,0); ! if (avr_simplify_comparision_p (GET_MODE (XEXP (pattern,0)), ! GET_CODE (t), x)) { ! XEXP (pattern,1) = GEN_INT (INTVAL (x)+1); PUT_CODE (t, avr_normalize_condition (GET_CODE (t))); INSN_CODE (next) = -1; INSN_CODE (insn) = -1; --- 5064,5074 ---- rtx pat = PATTERN (next); rtx src = SET_SRC (pat); rtx t = XEXP (src,0); + enum machine_mode mode = GET_MODE (XEXP (pattern, 0)); ! if (avr_simplify_comparision_p (mode, GET_CODE (t), x)) { ! XEXP (pattern, 1) = gen_int_mode (INTVAL (x) + 1, mode); PUT_CODE (t, avr_normalize_condition (GET_CODE (t))); INSN_CODE (next) = -1; INSN_CODE (insn) = -1; *************** test_hard_reg_class (class, x) *** 5169,5175 **** int regno = true_regnum (x); if (regno < 0) return 0; ! return TEST_HARD_REG_CLASS (class, regno); } void --- 5182,5192 ---- int regno = true_regnum (x); if (regno < 0) return 0; ! ! if (TEST_HARD_REG_CLASS (class, regno)) ! return 1; ! ! return 0; } void *************** avr_hard_regno_mode_ok (regno, mode) *** 5210,5215 **** --- 5227,5239 ---- int regno; enum machine_mode mode; { + /* Bug workaround: recog.c (peep2_find_free_register) and probably + a few other places assume that the frame pointer is a single hard + register, so r29 may be allocated and overwrite the high byte of + the frame pointer. Do not allow any value to start in r29. */ + if (regno == REG_Y + 1) + return 0; + if (mode == QImode) return 1; /* if (regno < 24 && !AVR_ENHANCED) diff -Nrc3pad gcc-3.1/gcc/config/clipper/clipper.h gcc-3.1.1/gcc/config/clipper/clipper.h *** gcc-3.1/gcc/config/clipper/clipper.h Wed Jan 16 02:37:19 2002 --- gcc-3.1.1/gcc/config/clipper/clipper.h Tue May 21 23:44:54 2002 *************** do \ *** 551,566 **** #define FUNCTION_PROFILER(FILE, LABELNO) /* FIXME */ - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) /* FIXME */ - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) /* FIXME */ - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 551,556 ---- diff -Nrc3pad gcc-3.1/gcc/config/cris/cris.c gcc-3.1.1/gcc/config/cris/cris.c *** gcc-3.1/gcc/config/cris/cris.c Thu Apr 11 15:16:18 2002 --- gcc-3.1.1/gcc/config/cris/cris.c Mon Jun 17 22:06:34 2002 *************** cris_simple_epilogue () *** 2042,2047 **** --- 2042,2055 ---- || current_function_outgoing_args_size || current_function_calls_eh_return + /* Kludge for 3.1: when reorg changes branches to the return label + into return insns, it does not handle the case where there's a + delay list for the epilogue: it just drops the insns in + current_function_epilogue_delay_list on the floor, resulting in + invalid code. We kludge around it in that case by saying that + we don't have a simple enough epilogue to use return insns. */ + || current_function_epilogue_delay_list != NULL + /* If we're not supposed to emit prologue and epilogue, we must not emit return-type instructions. */ || !TARGET_PROLOGUE_EPILOGUE) diff -Nrc3pad gcc-3.1/gcc/config/cris/cris.h gcc-3.1.1/gcc/config/cris/cris.h *** gcc-3.1/gcc/config/cris/cris.h Thu Apr 18 17:04:14 2002 --- gcc-3.1.1/gcc/config/cris/cris.h Tue Jul 2 14:08:00 2002 *************** struct cum_args {int regs;}; *** 1297,1309 **** something_reloaded = 1; \ } \ \ ! if (REG_P (XEXP (XEXP (X, 0), 0)) \ ! && (REGNO (XEXP (XEXP (X, 0), 0)) \ >= FIRST_PSEUDO_REGISTER)) \ { \ /* First one is a pseudo - reload that. */ \ ! push_reload (XEXP (XEXP (X, 0), 0), NULL_RTX, \ ! &XEXP (XEXP (X, 0), 0), NULL, \ GENERAL_REGS, \ GET_MODE (X), VOIDmode, 0, 0, OPNUM, TYPE); \ something_reloaded = 1; \ --- 1297,1309 ---- something_reloaded = 1; \ } \ \ ! if (REG_P (XEXP (XEXP (XEXP (X, 0), 0), 0)) \ ! && (REGNO (XEXP (XEXP (XEXP (X, 0), 0), 0)) \ >= FIRST_PSEUDO_REGISTER)) \ { \ /* First one is a pseudo - reload that. */ \ ! push_reload (XEXP (XEXP (XEXP (X, 0), 0), 0), NULL_RTX, \ ! &XEXP (XEXP (XEXP (X, 0), 0), 0), NULL, \ GENERAL_REGS, \ GET_MODE (X), VOIDmode, 0, 0, OPNUM, TYPE); \ something_reloaded = 1; \ diff -Nrc3pad gcc-3.1/gcc/config/cris/cris.md gcc-3.1.1/gcc/config/cris/cris.md *** gcc-3.1/gcc/config/cris/cris.md Sun Nov 4 02:51:23 2001 --- gcc-3.1.1/gcc/config/cris/cris.md Mon Jun 17 22:06:34 2002 *************** *** 1,5 **** ;; GCC machine description for CRIS cpu cores. ! ;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ;; Contributed by Axis Communications. ;; This file is part of GCC. --- 1,5 ---- ;; GCC machine description for CRIS cpu cores. ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ;; Contributed by Axis Communications. ;; This file is part of GCC. *************** *** 385,391 **** prefer to split up constants early, like this. The testcase in gcc.c-torture/execute/961213-1.c shows that CSE2 gets confused by the resulting subreg sets when using the construct from mcore (as of FSF ! CVS, version -r 1.5), and it believe that the high part (the last one emitted) is the final value. This construct from romp seems more robust, especially considering the head comments from emit_no_conflict_block. */ --- 385,391 ---- prefer to split up constants early, like this. The testcase in gcc.c-torture/execute/961213-1.c shows that CSE2 gets confused by the resulting subreg sets when using the construct from mcore (as of FSF ! CVS, version -r 1.5), and it believes that the high part (the last one emitted) is the final value. This construct from romp seems more robust, especially considering the head comments from emit_no_conflict_block. */ *************** *** 561,577 **** ;; Other way around; move to memory. ! ;; For all side-effect patterns, it seems to be the case that the ! ;; predicate isn't consulted after combine. For sake of stability, we ! ;; recognize and split the cases where dangerous register combinations are ! ;; spotted: where a register is set in the side-effect, and used in the ! ;; main insn. We don't handle the case where the set in the main insn ! ;; overlaps the set in the side-effect; that would be too big a bug to ! ;; paper over. We handle just the case where the set in the side-effect ! ;; overlaps the input operand of the main insn (i.e. just moves to memory). ;; ! ;; move.s rx,[ry=rx+rw.S] ;; FIXME: These could have anonymous mode for operand 3. ;; QImode --- 561,582 ---- ;; Other way around; move to memory. ! ;; Note that the condition (which for side-effect patterns is usually a ! ;; call to cris_side_effect_mode_ok), isn't consulted for register ! ;; allocation preferences -- constraints is the method for that. The ! ;; drawback is that we can't exclude register allocation to cause ! ;; "move.s rw,[rx=ry+rz.S]" when rw==rx without also excluding rx==ry or ! ;; rx==rz if we use an earlyclobber modifier for the constraint for rx. ! ;; Instead of that, we recognize and split the cases where dangerous ! ;; register combinations are spotted: where a register is set in the ! ;; side-effect, and used in the main insn. We don't handle the case where ! ;; the set in the main insn overlaps the set in the side-effect; that case ! ;; must be handled in gcc. We handle just the case where the set in the ! ;; side-effect overlaps the input operand of the main insn (i.e. just ! ;; moves to memory). ;; ! ;; move.s rz,[ry=rx+rw.S] ;; FIXME: These could have anonymous mode for operand 3. ;; QImode *************** *** 628,637 **** # move.%s3 %3,[%4=%2+%0%T1]") ! ;; Split for the case above where the predicate isn't honored; only the ! ;; constraint, and we end up with the set in the side-effect gets the same ! ;; register as the input register. Arguably a GCC bug, but we'll spot it ! ;; rarely enough that we need to catch it ourselves to be safe. (define_split [(parallel --- 633,642 ---- # move.%s3 %3,[%4=%2+%0%T1]") ! ;; Split for the case above where we're out of luck with register ! ;; allocation (again, the condition isn't checked for that), and we end up ! ;; with the set in the side-effect getting the same register as the input ! ;; register. (define_split [(parallel *************** *** 737,751 **** }") ;; Like the biap case, a split where the set in the side-effect gets the ! ;; same register as the input register to the main insn due to gcc not ! ;; always checking the predicate. (define_split [(parallel [(set (mem (plus:SI (match_operand:SI 0 "cris_bdap_operand" "") (match_operand:SI 1 "cris_bdap_operand" ""))) ! (match_operand:SI 2 "register_operand" "")) (set (match_operand:SI 3 "register_operand" "") (plus:SI (match_dup 0) (match_dup 1)))])] "reload_completed && reg_overlap_mentioned_p (operands[3], operands[2])" --- 742,756 ---- }") ;; Like the biap case, a split where the set in the side-effect gets the ! ;; same register as the input register to the main insn, since the ! ;; condition isn't checked at register allocation. (define_split [(parallel [(set (mem (plus:SI (match_operand:SI 0 "cris_bdap_operand" "") (match_operand:SI 1 "cris_bdap_operand" ""))) ! (match_operand 2 "register_operand" "")) (set (match_operand:SI 3 "register_operand" "") (plus:SI (match_dup 0) (match_dup 1)))])] "reload_completed && reg_overlap_mentioned_p (operands[3], operands[2])" *************** *** 3389,3394 **** --- 3394,3404 ---- /* Just needs to hold a 'movem [sp+],rN'. */ char rd[sizeof (\"movem [$sp+],$r99\")]; + /* Try to avoid reorg.c surprises; avoid emitting invalid code, prefer + crashing. This test would have avoided invalid code for target/7042. */ + if (current_function_epilogue_delay_list != NULL) + abort (); + *rd = 0; /* Start from the last call-saved register. We know that we have a *************** *** 3763,3769 **** (leu:SI (cc0) (const_int 0)))] "" "sls %0" ! [(set_attr "slottable" "yes")]) (define_insn "slt" [(set (match_operand:SI 0 "register_operand" "=r") --- 3773,3780 ---- (leu:SI (cc0) (const_int 0)))] "" "sls %0" ! [(set_attr "slottable" "yes") ! (set_attr "cc" "none")]) (define_insn "slt" [(set (match_operand:SI 0 "register_operand" "=r") *************** *** 4272,4278 **** (set (match_dup 5) (match_dup 2))] "operands[5] = gen_rtx_MEM (GET_MODE (operands[2]), operands[3]);") ! ;; clear.d ry,[rx=rx+rz.S2] (define_split [(parallel --- 4283,4289 ---- (set (match_dup 5) (match_dup 2))] "operands[5] = gen_rtx_MEM (GET_MODE (operands[2]), operands[3]);") ! ;; clear.d [rx=rx+rz.S2] (define_split [(parallel *************** *** 4292,4298 **** (set (mem:SI (match_dup 3)) (const_int 0))] "") ! ;; clear.w ry,[rx=rx+rz.S2] (define_split [(parallel --- 4303,4309 ---- (set (mem:SI (match_dup 3)) (const_int 0))] "") ! ;; clear.w [rx=rx+rz.S2] (define_split [(parallel *************** *** 4312,4318 **** (set (mem:HI (match_dup 3)) (const_int 0))] "") ! ;; clear.b ry,[rx=rx+rz.S2] (define_split [(parallel --- 4323,4329 ---- (set (mem:HI (match_dup 3)) (const_int 0))] "") ! ;; clear.b [rx=rx+rz.S2] (define_split [(parallel *************** *** 4332,4338 **** (set (mem:QI (match_dup 3)) (const_int 0))] "") ! ;; clear.d ry,[rx=rx+i] (define_split [(parallel --- 4343,4349 ---- (set (mem:QI (match_dup 3)) (const_int 0))] "") ! ;; clear.d [rx=rx+i] (define_split [(parallel *************** *** 4349,4355 **** (set (mem:SI (match_dup 2)) (const_int 0))] "") ! ;; clear.w ry,[rx=rx+i] (define_split [(parallel --- 4360,4366 ---- (set (mem:SI (match_dup 2)) (const_int 0))] "") ! ;; clear.w [rx=rx+i] (define_split [(parallel *************** *** 4366,4372 **** (set (mem:HI (match_dup 2)) (const_int 0))] "") ! ;; clear.b ry,[rx=rx+i] (define_split [(parallel --- 4377,4383 ---- (set (mem:HI (match_dup 2)) (const_int 0))] "") ! ;; clear.b [rx=rx+i] (define_split [(parallel diff -Nrc3pad gcc-3.1/gcc/config/cris/linux.h gcc-3.1.1/gcc/config/cris/linux.h *** gcc-3.1/gcc/config/cris/linux.h Sat Apr 13 20:18:34 2002 --- gcc-3.1.1/gcc/config/cris/linux.h Wed Jul 17 01:43:12 2002 *************** Boston, MA 02111-1307, USA. */ *** 96,102 **** %{shared} %{static}\ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ ! %{O2|O3: --gc-sections}" /* Node: Sections */ --- 96,102 ---- %{shared} %{static}\ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ ! %{!r:%{O2|O3: --gc-sections}}" /* Node: Sections */ diff -Nrc3pad gcc-3.1/gcc/config/dsp16xx/dsp16xx.h gcc-3.1.1/gcc/config/dsp16xx/dsp16xx.h *** gcc-3.1/gcc/config/dsp16xx/dsp16xx.h Mon Jan 21 06:22:09 2002 --- gcc-3.1.1/gcc/config/dsp16xx/dsp16xx.h Tue May 21 23:44:56 2002 *************** extern struct dsp16xx_frame_info current *** 1218,1234 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ internal_error ("profiling not implemented yet") - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - internal_error ("profiling not implemented yet") - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - internal_error ("profiling not implemented yet") - - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 1218,1223 ---- diff -Nrc3pad gcc-3.1/gcc/config/h8300/h8300.h gcc-3.1.1/gcc/config/h8300/h8300.h *** gcc-3.1/gcc/config/h8300/h8300.h Tue Feb 19 07:36:55 2002 --- gcc-3.1.1/gcc/config/h8300/h8300.h Tue May 21 23:44:58 2002 *************** struct cum_arg *** 693,725 **** fprintf (FILE, "\t%s\t#LP%d,%s\n\tjsr @mcount\n", \ h8_mov_op, (LABELNO), h8_reg_names[0]); - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - /* ??? @LPBX0 is moved into r0 twice. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\t%s\t%s\n\t%s\t@LPBX0,%s\n\tbne LPI%d\n\t%s\t@LPBX0,%s\n\t%s\t%s\n\tjsr\t@__bb_init_func\nLPI%d:\t%s\t%s\n", \ - h8_push_op, h8_reg_names[0], \ - h8_mov_op, h8_reg_names[0], \ - (LABELNO), \ - h8_mov_op, h8_reg_names[0], \ - h8_push_op, h8_reg_names[0], \ - (LABELNO), \ - h8_pop_op, h8_reg_names[0]); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. This is a real pain in the - sphincter on a VAX, since we do not want to change any of the bits in the - processor status word. The way it is done here, it is pushed onto the stack - before any flags have changed, and then the stack is fixed up to account for - the fact that the instruction to restore the flags only reads a word. - It may seem a bit clumsy, but at least it works. */ - /* ??? This one needs work. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \ - 4 * BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 693,698 ---- diff -Nrc3pad gcc-3.1/gcc/config/i386/i386-protos.h gcc-3.1.1/gcc/config/i386/i386-protos.h *** gcc-3.1/gcc/config/i386/i386-protos.h Thu Feb 7 11:18:32 2002 --- gcc-3.1.1/gcc/config/i386/i386-protos.h Sun Jun 16 22:34:53 2002 *************** extern HOST_WIDE_INT ix86_initial_elimin *** 33,41 **** extern void ix86_expand_prologue PARAMS ((void)); extern void ix86_expand_epilogue PARAMS ((int)); - extern void ix86_output_function_block_profiler PARAMS ((FILE *, int)); - extern void ix86_output_block_profiler PARAMS ((FILE *, int)); - extern void ix86_output_addr_vec_elt PARAMS ((FILE *, int)); extern void ix86_output_addr_diff_elt PARAMS ((FILE *, int, int)); --- 33,38 ---- *************** extern tree ix86_handle_shared_attribute *** 197,200 **** --- 194,199 ---- extern unsigned int i386_pe_section_type_flags PARAMS ((tree, const char *, int)); extern void i386_pe_asm_named_section PARAMS ((const char *, unsigned int)); + extern void x86_output_mi_thunk PARAMS ((FILE *, int, tree)); + extern int x86_field_alignment PARAMS ((tree, int)); #endif diff -Nrc3pad gcc-3.1/gcc/config/i386/i386.c gcc-3.1.1/gcc/config/i386/i386.c *** gcc-3.1/gcc/config/i386/i386.c Tue Apr 23 08:11:22 2002 --- gcc-3.1.1/gcc/config/i386/i386.c Mon Jul 15 06:54:35 2002 *************** static int const x86_64_int_return_regis *** 457,463 **** int const dbx64_register_map[FIRST_PSEUDO_REGISTER] = { 0, 1, 2, 3, 4, 5, 6, 7, /* general regs */ ! 33, 34, 35, 36, 37, 38, 39, 40 /* fp regs */ -1, -1, -1, -1, -1, /* arg, flags, fpsr, dir, frame */ 17, 18, 19, 20, 21, 22, 23, 24, /* SSE */ 41, 42, 43, 44, 45, 46, 47, 48, /* MMX */ --- 457,463 ---- int const dbx64_register_map[FIRST_PSEUDO_REGISTER] = { 0, 1, 2, 3, 4, 5, 6, 7, /* general regs */ ! 33, 34, 35, 36, 37, 38, 39, 40, /* fp regs */ -1, -1, -1, -1, -1, /* arg, flags, fpsr, dir, frame */ 17, 18, 19, 20, 21, 22, 23, 24, /* SSE */ 41, 42, 43, 44, 45, 46, 47, 48, /* MMX */ *************** classify_argument (mode, type, classes, *** 1675,1680 **** --- 1675,1708 ---- /* Classify each field of record and merge classes. */ if (TREE_CODE (type) == RECORD_TYPE) { + /* For classes first merge in the field of the subclasses. */ + if (TYPE_BINFO (type) != NULL && TYPE_BINFO_BASETYPES (type) != NULL) + { + tree bases = TYPE_BINFO_BASETYPES (type); + int n_bases = TREE_VEC_LENGTH (bases); + int i; + + for (i = 0; i < n_bases; ++i) + { + tree binfo = TREE_VEC_ELT (bases, i); + int num; + int offset = tree_low_cst (BINFO_OFFSET (binfo), 0) * 8; + tree type = BINFO_TYPE (binfo); + + num = classify_argument (TYPE_MODE (type), + type, subclasses, + (offset + bit_offset) % 256); + if (!num) + return 0; + for (i = 0; i < num; i++) + { + int pos = (offset + bit_offset) / 8 / 8; + classes[i + pos] = + merge_classes (subclasses[i], classes[i + pos]); + } + } + } + /* And now merge the fields of structure. */ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { if (TREE_CODE (field) == FIELD_DECL) *************** classify_argument (mode, type, classes, *** 1735,1740 **** --- 1763,1795 ---- else if (TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == QUAL_UNION_TYPE) { + /* For classes first merge in the field of the subclasses. */ + if (TYPE_BINFO (type) != NULL && TYPE_BINFO_BASETYPES (type) != NULL) + { + tree bases = TYPE_BINFO_BASETYPES (type); + int n_bases = TREE_VEC_LENGTH (bases); + int i; + + for (i = 0; i < n_bases; ++i) + { + tree binfo = TREE_VEC_ELT (bases, i); + int num; + int offset = tree_low_cst (BINFO_OFFSET (binfo), 0) * 8; + tree type = BINFO_TYPE (binfo); + + num = classify_argument (TYPE_MODE (type), + type, subclasses, + (offset + bit_offset) % 256); + if (!num) + return 0; + for (i = 0; i < num; i++) + { + int pos = (offset + bit_offset) / 8 / 8; + classes[i + pos] = + merge_classes (subclasses[i], classes[i + pos]); + } + } + } for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { if (TREE_CODE (field) == FIELD_DECL) *************** const_int_1_operand (op, mode) *** 2841,2846 **** --- 2896,2913 ---- return (GET_CODE (op) == CONST_INT && INTVAL (op) == 1); } + /* Return nonzero if OP is CONST_INT >= 1 and <= 31 (a valid operand + for shift & compare patterns, as shifting by 0 does not change flags), + else return zero. */ + + int + const_int_1_31_operand (op, mode) + rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; + { + return (GET_CODE (op) == CONST_INT && INTVAL (op) >= 1 && INTVAL (op) <= 31); + } + /* Returns 1 if OP is either a symbol reference or a sum of a symbol reference and a constant. */ *************** load_pic_register () *** 3863,3871 **** emit_insn (gen_prologue_get_pc (pic_offset_table_rtx, pclab)); - if (! TARGET_DEEP_BRANCH_PREDICTION) - emit_insn (gen_popsi1 (pic_offset_table_rtx)); - emit_insn (gen_prologue_set_got (pic_offset_table_rtx, gotsym, pclab)); } --- 3930,3935 ---- *************** ix86_compute_frame_layout (frame) *** 4015,4022 **** offset += size; ! /* Add outgoing arguments area. */ ! if (ACCUMULATE_OUTGOING_ARGS) { offset += current_function_outgoing_args_size; frame->outgoing_arguments_size = current_function_outgoing_args_size; --- 4079,4087 ---- offset += size; ! /* Add outgoing arguments area. Can be skipped if we eliminated ! all the function calls as dead code. */ ! if (ACCUMULATE_OUTGOING_ARGS && !current_function_is_leaf) { offset += current_function_outgoing_args_size; frame->outgoing_arguments_size = current_function_outgoing_args_size; *************** ix86_compute_frame_layout (frame) *** 4024,4032 **** else frame->outgoing_arguments_size = 0; ! /* Align stack boundary. */ ! frame->padding2 = ((offset + preferred_alignment - 1) ! & -preferred_alignment) - offset; offset += frame->padding2; --- 4089,4101 ---- else frame->outgoing_arguments_size = 0; ! /* Align stack boundary. Only needed if we're calling another function ! or using alloca. */ ! if (!current_function_is_leaf || current_function_calls_alloca) ! frame->padding2 = ((offset + preferred_alignment - 1) ! & -preferred_alignment) - offset; ! else ! frame->padding2 = 0; offset += frame->padding2; *************** ix86_expand_int_movcc (operands) *** 7958,7964 **** if ((code == LEU || code == GTU) && GET_CODE (ix86_compare_op1) == CONST_INT && mode != HImode ! && (unsigned int) INTVAL (ix86_compare_op1) != 0xffffffff && GET_CODE (operands[2]) == CONST_INT && GET_CODE (operands[3]) == CONST_INT) { --- 8027,8038 ---- if ((code == LEU || code == GTU) && GET_CODE (ix86_compare_op1) == CONST_INT && mode != HImode ! && INTVAL (ix86_compare_op1) != -1 ! /* For x86-64, the immediate field in the instruction is 32-bit ! signed, so we can't increment a DImode value above 0x7fffffff. */ ! && (!TARGET_64BIT ! || GET_MODE (ix86_compare_op0) != DImode ! || INTVAL (ix86_compare_op1) != 0x7fffffff) && GET_CODE (operands[2]) == CONST_INT && GET_CODE (operands[3]) == CONST_INT) { *************** ix86_expand_int_movcc (operands) *** 7966,7972 **** code = LTU; else code = GEU; ! ix86_compare_op1 = GEN_INT (INTVAL (ix86_compare_op1) + 1); } start_sequence (); --- 8040,8047 ---- code = LTU; else code = GEU; ! ix86_compare_op1 = gen_int_mode (INTVAL (ix86_compare_op1) + 1, ! GET_MODE (ix86_compare_op0)); } start_sequence (); *************** ix86_expand_movstr (dst, src, count_exp, *** 9130,9135 **** --- 9205,9213 ---- { rtx countreg2; rtx label = NULL; + int desired_alignment = (TARGET_PENTIUMPRO + && (count == 0 || count >= (unsigned int) 260) + ? 8 : UNITS_PER_WORD); /* In case we don't know anything about the alignment, default to library version, since it is usually equally fast and result in *************** ix86_expand_movstr (dst, src, count_exp, *** 9159,9171 **** This is quite costy. Maybe we can revisit this decision later or add some customizability to this code. */ ! if (count == 0 ! && align < (TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260) ! ? 8 : UNITS_PER_WORD)) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (UNITS_PER_WORD - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) --- 9237,9246 ---- This is quite costy. Maybe we can revisit this decision later or add some customizability to this code. */ ! if (count == 0 && align < desired_alignment) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (desired_alignment - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) *************** ix86_expand_movstr (dst, src, count_exp, *** 9184,9193 **** emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 ! && ((TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260)) ! || TARGET_64BIT)) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strmovsi (destreg, srcreg)); --- 9259,9265 ---- emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 && desired_alignment > 4) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strmovsi (destreg, srcreg)); *************** ix86_expand_movstr (dst, src, count_exp, *** 9196,9201 **** --- 9268,9279 ---- LABEL_NUSES (label) = 1; } + if (label && desired_alignment > 4 && !TARGET_64BIT) + { + emit_label (label); + LABEL_NUSES (label) = 1; + label = NULL_RTX; + } if (!TARGET_SINGLE_STRINGOP) emit_insn (gen_cld ()); if (TARGET_64BIT) *************** ix86_expand_clrstr (src, count_exp, alig *** 9341,9346 **** --- 9419,9428 ---- { rtx countreg2; rtx label = NULL; + /* Compute desired alignment of the string operation. */ + int desired_alignment = (TARGET_PENTIUMPRO + && (count == 0 || count >= (unsigned int) 260) + ? 8 : UNITS_PER_WORD); /* In case we don't know anything about the alignment, default to library version, since it is usually equally fast and result in *************** ix86_expand_clrstr (src, count_exp, alig *** 9355,9367 **** countreg = copy_to_mode_reg (counter_mode, count_exp); zeroreg = copy_to_mode_reg (Pmode, const0_rtx); ! if (count == 0 ! && align < (TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260) ! ? 8 : UNITS_PER_WORD)) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (UNITS_PER_WORD - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) --- 9437,9446 ---- countreg = copy_to_mode_reg (counter_mode, count_exp); zeroreg = copy_to_mode_reg (Pmode, const0_rtx); ! if (count == 0 && align < desired_alignment) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (desired_alignment - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) *************** ix86_expand_clrstr (src, count_exp, alig *** 9382,9389 **** emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 && TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260)) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strsetsi (destreg, (TARGET_64BIT --- 9461,9467 ---- emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 && desired_alignment > 4) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strsetsi (destreg, (TARGET_64BIT *************** ix86_expand_clrstr (src, count_exp, alig *** 9394,9399 **** --- 9472,9484 ---- LABEL_NUSES (label) = 1; } + if (label && desired_alignment > 4 && !TARGET_64BIT) + { + emit_label (label); + LABEL_NUSES (label) = 1; + label = NULL_RTX; + } + if (!TARGET_SINGLE_STRINGOP) emit_insn (gen_cld ()); if (TARGET_64BIT) *************** ix86_expand_clrstr (src, count_exp, alig *** 9409,9426 **** emit_insn (gen_rep_stossi (destreg, countreg2, zeroreg, destreg, countreg2)); } - if (label) { emit_label (label); LABEL_NUSES (label) = 1; } if (TARGET_64BIT && align > 4 && count != 0 && (count & 4)) emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); if (TARGET_64BIT && (align <= 4 || count == 0)) { ! rtx label = ix86_expand_aligntest (destreg, 2); emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); emit_label (label); --- 9494,9511 ---- emit_insn (gen_rep_stossi (destreg, countreg2, zeroreg, destreg, countreg2)); } if (label) { emit_label (label); LABEL_NUSES (label) = 1; } + if (TARGET_64BIT && align > 4 && count != 0 && (count & 4)) emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); if (TARGET_64BIT && (align <= 4 || count == 0)) { ! rtx label = ix86_expand_aligntest (countreg, 2); emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); emit_label (label); *************** ix86_expand_clrstr (src, count_exp, alig *** 9431,9437 **** gen_rtx_SUBREG (HImode, zeroreg, 0))); if (align <= 2 || count == 0) { ! rtx label = ix86_expand_aligntest (destreg, 2); emit_insn (gen_strsethi (destreg, gen_rtx_SUBREG (HImode, zeroreg, 0))); emit_label (label); --- 9516,9522 ---- gen_rtx_SUBREG (HImode, zeroreg, 0))); if (align <= 2 || count == 0) { ! rtx label = ix86_expand_aligntest (countreg, 2); emit_insn (gen_strsethi (destreg, gen_rtx_SUBREG (HImode, zeroreg, 0))); emit_label (label); *************** ix86_expand_clrstr (src, count_exp, alig *** 9442,9448 **** gen_rtx_SUBREG (QImode, zeroreg, 0))); if (align <= 1 || count == 0) { ! rtx label = ix86_expand_aligntest (destreg, 1); emit_insn (gen_strsetqi (destreg, gen_rtx_SUBREG (QImode, zeroreg, 0))); emit_label (label); --- 9527,9533 ---- gen_rtx_SUBREG (QImode, zeroreg, 0))); if (align <= 1 || count == 0) { ! rtx label = ix86_expand_aligntest (countreg, 1); emit_insn (gen_strsetqi (destreg, gen_rtx_SUBREG (QImode, zeroreg, 0))); emit_label (label); *************** x86_order_regs_for_local_alloc () *** 12473,12475 **** --- 12558,12653 ---- while (pos < FIRST_PSEUDO_REGISTER) reg_alloc_order [pos++] = 0; } + + void + x86_output_mi_thunk (file, delta, function) + FILE *file; + int delta; + tree function; + { + tree parm; + rtx xops[3]; + + if (ix86_regparm > 0) + parm = TYPE_ARG_TYPES (TREE_TYPE (function)); + else + parm = NULL_TREE; + for (; parm; parm = TREE_CHAIN (parm)) + if (TREE_VALUE (parm) == void_type_node) + break; + + xops[0] = GEN_INT (delta); + if (TARGET_64BIT) + { + int n = aggregate_value_p (TREE_TYPE (TREE_TYPE (function))) != 0; + xops[1] = gen_rtx_REG (DImode, x86_64_int_parameter_registers[n]); + output_asm_insn ("add{q} {%0, %1|%1, %0}", xops); + if (flag_pic) + { + fprintf (file, "\tjmp *"); + assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); + fprintf (file, "@GOTPCREL(%%rip)\n"); + } + else + { + fprintf (file, "\tjmp "); + assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); + fprintf (file, "\n"); + } + } + else + { + if (parm) + xops[1] = gen_rtx_REG (SImode, 0); + else if (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)))) + xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 8)); + else + xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 4)); + output_asm_insn ("add{l} {%0, %1|%1, %0}", xops); + + if (flag_pic) + { + xops[0] = pic_offset_table_rtx; + xops[1] = gen_label_rtx (); + xops[2] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); + + if (ix86_regparm > 2) + abort (); + output_asm_insn ("push{l}\t%0", xops); + output_asm_insn ("call\t%P1", xops); + ASM_OUTPUT_INTERNAL_LABEL (file, "L", CODE_LABEL_NUMBER (xops[1])); + output_asm_insn ("pop{l}\t%0", xops); + output_asm_insn + ("add{l}\t{%2+[.-%P1], %0|%0, OFFSET FLAT: %2+[.-%P1]}", xops); + xops[0] = gen_rtx_MEM (SImode, XEXP (DECL_RTL (function), 0)); + output_asm_insn + ("mov{l}\t{%0@GOT(%%ebx), %%ecx|%%ecx, %0@GOT[%%ebx]}", xops); + asm_fprintf (file, "\tpop{l\t%%ebx|\t%%ebx}\n"); + asm_fprintf (file, "\tjmp\t{*%%ecx|%%ecx}\n"); + } + else + { + fprintf (file, "\tjmp "); + assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); + fprintf (file, "\n"); + } + } + } + + int + x86_field_alignment (field, computed) + tree field; + int computed; + { + enum machine_mode mode; + if (TARGET_64BIT || DECL_USER_ALIGN (field) || TARGET_ALIGN_DOUBLE) + return computed; + mode = TYPE_MODE (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE + ? get_inner_array_type (field) : TREE_TYPE (field)); + if ((mode == DFmode || mode == DCmode + || mode == DImode || mode == CDImode) + && !TARGET_ALIGN_DOUBLE) + return MIN (32, computed); + return computed; + } + diff -Nrc3pad gcc-3.1/gcc/config/i386/i386.h gcc-3.1.1/gcc/config/i386/i386.h *** gcc-3.1/gcc/config/i386/i386.h Thu Apr 18 16:06:23 2002 --- gcc-3.1.1/gcc/config/i386/i386.h Mon Jul 15 06:54:36 2002 *************** extern int ix86_arch; *** 609,615 **** %{mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ -D__tune_athlon_sse__ }\ %{mcpu=pentium4:-D__tune_pentium4__ }\ ! %{march=athlon-tbird|march=athlon-xp|march=athlon-mp|march=pentium3|march=pentium4:\ -D__SSE__ }\ %{march=pentium-mmx|march=k6|march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ --- 609,615 ---- %{mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ -D__tune_athlon_sse__ }\ %{mcpu=pentium4:-D__tune_pentium4__ }\ ! %{march=athlon-xp|march=athlon-mp|march=pentium3|march=pentium4:\ -D__SSE__ }\ %{march=pentium-mmx|march=k6|march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ *************** extern int ix86_arch; *** 781,792 **** /* The published ABIs say that doubles should be aligned on word boundaries, so lower the aligment for structure fields unless -malign-double is set. */ ! /* BIGGEST_FIELD_ALIGNMENT is also used in libobjc, where it must be ! constant. Use the smaller value in that context. */ ! #ifndef IN_TARGET_LIBS ! #define BIGGEST_FIELD_ALIGNMENT (TARGET_64BIT ? 128 : (TARGET_ALIGN_DOUBLE ? 64 : 32)) ! #else #define BIGGEST_FIELD_ALIGNMENT 32 #endif /* If defined, a C expression to compute the alignment given to a --- 781,795 ---- /* The published ABIs say that doubles should be aligned on word boundaries, so lower the aligment for structure fields unless -malign-double is set. */ ! ! /* ??? Blah -- this macro is used directly by libobjc. Since it ! supports no vector modes, cut out the complexity and fall back ! on BIGGEST_FIELD_ALIGNMENT. */ ! #ifdef IN_TARGET_LIBS #define BIGGEST_FIELD_ALIGNMENT 32 + #else + #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ + x86_field_alignment (FIELD, COMPUTED) #endif /* If defined, a C expression to compute the alignment given to a *************** extern int const svr4_dbx_register_map[F *** 3026,3031 **** --- 3029,3035 ---- SYMBOL_REF, LABEL_REF}}, \ {"shiftdi_operand", {SUBREG, REG, MEM}}, \ {"const_int_1_operand", {CONST_INT}}, \ + {"const_int_1_31_operand", {CONST_INT}}, \ {"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \ {"aligned_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ LABEL_REF, SUBREG, REG, MEM}}, \ diff -Nrc3pad gcc-3.1/gcc/config/i386/i386.md gcc-3.1.1/gcc/config/i386/i386.md *** gcc-3.1/gcc/config/i386/i386.md Mon Apr 29 15:07:26 2002 --- gcc-3.1.1/gcc/config/i386/i386.md Mon Jul 15 06:54:36 2002 *************** *** 2014,2020 **** ;; For 64BIT abi we always round up to 8 bytes. (define_insn "*pushqi2_rex64" [(set (match_operand:QI 0 "push_operand" "=X") ! (match_operand:QI 1 "nonmemory_no_elim_operand" "ri"))] "TARGET_64BIT" "push{q}\t%q1" [(set_attr "type" "push") --- 2014,2020 ---- ;; For 64BIT abi we always round up to 8 bytes. (define_insn "*pushqi2_rex64" [(set (match_operand:QI 0 "push_operand" "=X") ! (match_operand:QI 1 "nonmemory_no_elim_operand" "qi"))] "TARGET_64BIT" "push{q}\t%q1" [(set_attr "type" "push") *************** *** 2555,2571 **** ;; We fake an second form of instruction to force reload to load address ;; into register when rax is not available (define_insn "*movabsdi_1_rex64" ! [(set (mem:DI (match_operand:DI 0 "x86_64_movabs_operand" "i,r,r")) ! (match_operand:DI 1 "nonmemory_operand" "a,er,i"))] "TARGET_64BIT" "@ movabs{q}\t{%1, %P0|%P0, %1} ! mov{q}\t{%1, %a0|%a0, %1} ! movabs{q}\t{%1, %a0|%a0, %1}" [(set_attr "type" "imov") ! (set_attr "modrm" "0,*,*") ! (set_attr "length_address" "8,0,0") ! (set_attr "length_immediate" "0,*,*") (set_attr "memory" "store") (set_attr "mode" "DI")]) --- 2555,2570 ---- ;; We fake an second form of instruction to force reload to load address ;; into register when rax is not available (define_insn "*movabsdi_1_rex64" ! [(set (mem:DI (match_operand:DI 0 "x86_64_movabs_operand" "i,r")) ! (match_operand:DI 1 "nonmemory_operand" "a,er"))] "TARGET_64BIT" "@ movabs{q}\t{%1, %P0|%P0, %1} ! mov{q}\t{%1, %a0|%a0, %1}" [(set_attr "type" "imov") ! (set_attr "modrm" "0,*") ! (set_attr "length_address" "8,0") ! (set_attr "length_immediate" "0,*") (set_attr "memory" "store") (set_attr "mode" "DI")]) *************** *** 10951,10957 **** [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashift:SI (match_dup 1) (match_dup 2)))] --- 10950,10956 ---- [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashift:SI (match_dup 1) (match_dup 2)))] *************** *** 10990,10996 **** [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashift:SI (match_dup 1) (match_dup 2))))] --- 10989,10995 ---- [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashift:SI (match_dup 1) (match_dup 2))))] *************** *** 11115,11121 **** [(set (reg 17) (compare (ashift:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashift:HI (match_dup 1) (match_dup 2)))] --- 11114,11120 ---- [(set (reg 17) (compare (ashift:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashift:HI (match_dup 1) (match_dup 2)))] *************** *** 11279,11285 **** [(set (reg 17) (compare (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashift:QI (match_dup 1) (match_dup 2)))] --- 11278,11284 ---- [(set (reg 17) (compare (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashift:QI (match_dup 1) (match_dup 2)))] *************** *** 11629,11635 **** [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashiftrt:SI (match_dup 1) (match_dup 2)))] --- 11628,11634 ---- [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashiftrt:SI (match_dup 1) (match_dup 2)))] *************** *** 11643,11649 **** [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashiftrt:SI (match_dup 1) (match_dup 2))))] --- 11642,11648 ---- [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashiftrt:SI (match_dup 1) (match_dup 2))))] *************** *** 11715,11721 **** [(set (reg 17) (compare (ashiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashiftrt:HI (match_dup 1) (match_dup 2)))] --- 11714,11720 ---- [(set (reg 17) (compare (ashiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashiftrt:HI (match_dup 1) (match_dup 2)))] *************** *** 11768,11774 **** (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") (match_operand:QI 2 "const_int_1_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=rm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && (TARGET_PENTIUM || TARGET_PENTIUMPRO) --- 11767,11773 ---- (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") (match_operand:QI 2 "const_int_1_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && (TARGET_PENTIUM || TARGET_PENTIUMPRO) *************** *** 11787,11795 **** [(set (reg 17) (compare (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=rm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)" --- 11786,11794 ---- [(set (reg 17) (compare (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)" *************** *** 12020,12026 **** [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (lshiftrt:SI (match_dup 1) (match_dup 2)))] --- 12019,12025 ---- [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (lshiftrt:SI (match_dup 1) (match_dup 2)))] *************** *** 12034,12040 **** [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (lshiftrt:DI (zero_extend:DI (match_dup 1)) (match_dup 2)))] --- 12033,12039 ---- [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (lshiftrt:DI (zero_extend:DI (match_dup 1)) (match_dup 2)))] *************** *** 12106,12112 **** [(set (reg 17) (compare (lshiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (lshiftrt:HI (match_dup 1) (match_dup 2)))] --- 12105,12111 ---- [(set (reg 17) (compare (lshiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (lshiftrt:HI (match_dup 1) (match_dup 2)))] *************** *** 12178,12184 **** [(set (reg 17) (compare (lshiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (lshiftrt:QI (match_dup 1) (match_dup 2)))] --- 12177,12183 ---- [(set (reg 17) (compare (lshiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (lshiftrt:QI (match_dup 1) (match_dup 2)))] *************** *** 13816,13821 **** --- 13815,13821 ---- { ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L", CODE_LABEL_NUMBER (operands[1])); + return "pop{l}\t%0"; } RET; } *************** *** 16576,16587 **** "#") (define_insn "sse_movdfcc" ! [(set (match_operand:DF 0 "register_operand" "=&x#rf,x#rf,?f#xr,?f#xr,?f#xr,?f#xr,?r#xf,?r#xf,?r#xf,?r#xf") (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "0#fx,x#fx,f#x,f#x,xm#f,xm#f,f#x,f#x,xm#f,xm#f") ! (match_operand:DF 5 "nonimmediate_operand" "xm#f,xm#f,f#x,f#x,x#f,x#f,f#x,f#x,x#f,x#f")]) ! (match_operand:DF 2 "nonimmediate_operand" "x#fr,0#fr,f#fx,0#fx,f#fx,0#fx,rm#rx,0#rx,rm#rx,0#rx") ! (match_operand:DF 3 "nonimmediate_operand" "x#fr,x#fr,0#fx,f#fx,0#fx,f#fx,0#fx,rm#rx,0#rx,rm#rx"))) (clobber (match_scratch:DF 6 "=2,&4,X,X,X,X,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE2 --- 16576,16587 ---- "#") (define_insn "sse_movdfcc" ! [(set (match_operand:DF 0 "register_operand" "=&Y#rf,Y#rf,?f#Yr,?f#Yr,?f#Yr,?f#Yr,?r#Yf,?r#Yf,?r#Yf,?r#Yf") (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "0#fY,Y#fY,f#Y,f#Y,Ym#f,Ym#f,f#Y,f#Y,Ym#f,Ym#f") ! (match_operand:DF 5 "nonimmediate_operand" "Ym#f,Ym#f,f#Y,f#Y,Y#f,Y#f,f#Y,f#Y,Y#f,Y#f")]) ! (match_operand:DF 2 "nonimmediate_operand" "Y#fr,0#fr,f#fY,0#fY,f#fY,0#fY,rm#rY,0#rY,rm#rY,0#rY") ! (match_operand:DF 3 "nonimmediate_operand" "Y#fr,Y#fr,0#fY,f#fY,0#fY,f#fY,0#fY,rm#rY,0#rY,rm#rY"))) (clobber (match_scratch:DF 6 "=2,&4,X,X,X,X,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE2 *************** *** 16591,16601 **** "#") (define_insn "sse_movdfcc_eq" ! [(set (match_operand:DF 0 "register_operand" "=&x#rf,x#rf,?f#xr,?f#xr,?r#xf,?r#xf") ! (if_then_else:DF (eq (match_operand:DF 3 "nonimmediate_operand" "%0#fx,x#fx,f#x,xm#f,f#x,xm#f") ! (match_operand:DF 4 "nonimmediate_operand" "xm#f,xm#f,f#x,x#f,f#x,x#f")) ! (match_operand:DF 1 "nonimmediate_operand" "x#fr,0#fr,0#fx,0#fx,0#rx,0#rx") ! (match_operand:DF 2 "nonimmediate_operand" "x#fr,x#fr,f#fx,f#fx,rm#rx,rm#rx"))) (clobber (match_scratch:DF 5 "=1,&3,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE --- 16591,16601 ---- "#") (define_insn "sse_movdfcc_eq" ! [(set (match_operand:DF 0 "register_operand" "=&Y#rf,Y#rf,?f#Yr,?f#Yr,?r#Yf,?r#Yf") ! (if_then_else:DF (eq (match_operand:DF 3 "nonimmediate_operand" "%0#fY,Y#fY,f#Y,Ym#f,f#Y,Ym#f") ! (match_operand:DF 4 "nonimmediate_operand" "Ym#f,Ym#f,f#Y,Y#f,f#Y,Y#f")) ! (match_operand:DF 1 "nonimmediate_operand" "Y#fr,0#fr,0#fY,0#fY,0#rY,0#rY") ! (match_operand:DF 2 "nonimmediate_operand" "Y#fr,Y#fr,f#fY,f#fY,rm#rY,rm#rY"))) (clobber (match_scratch:DF 5 "=1,&3,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE *************** *** 16647,16652 **** --- 16647,16656 ---- (set (subreg:TI (match_dup 0) 0) (ior:TI (subreg:TI (match_dup 6) 0) (subreg:TI (match_dup 7) 0)))] { + /* If op2 == op3, op3 will be clobbered before it is used. + This should be optimized out though. */ + if (operands_match_p (operands[2], operands[3])) + abort (); PUT_MODE (operands[1], GET_MODE (operands[0])); if (operands_match_p (operands[0], operands[4])) operands[6] = operands[4], operands[7] = operands[2]; *************** *** 16658,16664 **** ;; Do not brother with the integer/floating point case, since these are ;; bot considerably slower, unlike in the generic case. (define_insn "*sse_movsfcc_const0_1" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) --- 16662,16668 ---- ;; Do not brother with the integer/floating point case, since these are ;; bot considerably slower, unlike in the generic case. (define_insn "*sse_movsfcc_const0_1" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) *************** *** 16668,16674 **** "#") (define_insn "*sse_movsfcc_const0_2" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) --- 16672,16678 ---- "#") (define_insn "*sse_movsfcc_const0_2" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) *************** *** 16678,16684 **** "#") (define_insn "*sse_movsfcc_const0_3" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) --- 16682,16688 ---- "#") (define_insn "*sse_movsfcc_const0_3" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) *************** *** 16688,16694 **** "#") (define_insn "*sse_movsfcc_const0_4" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) --- 16692,16698 ---- "#") (define_insn "*sse_movsfcc_const0_4" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) *************** *** 16698,16739 **** "#") (define_insn "*sse_movdfcc_const0_1" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "sse_comparison_operator" ! [(match_operand:SF 4 "register_operand" "0") ! (match_operand:SF 5 "nonimmediate_operand" "xm")]) ! (match_operand:SF 2 "register_operand" "x") ! (match_operand:SF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_2" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "sse_comparison_operator" ! [(match_operand:SF 4 "register_operand" "0") ! (match_operand:SF 5 "nonimmediate_operand" "xm")]) ! (match_operand:SF 2 "const0_operand" "X") ! (match_operand:SF 3 "register_operand" "x")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_3" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:SF 4 "nonimmediate_operand" "xm") ! (match_operand:SF 5 "register_operand" "0")]) ! (match_operand:SF 2 "register_operand" "x") ! (match_operand:SF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_4" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:SF 4 "nonimmediate_operand" "xm") ! (match_operand:SF 5 "register_operand" "0")]) ! (match_operand:SF 2 "const0_operand" "X") ! (match_operand:SF 3 "register_operand" "x")))] "TARGET_SSE2" "#") --- 16702,16743 ---- "#") (define_insn "*sse_movdfcc_const0_1" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "register_operand" "0") ! (match_operand:DF 5 "nonimmediate_operand" "Ym")]) ! (match_operand:DF 2 "register_operand" "Y") ! (match_operand:DF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_2" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "register_operand" "0") ! (match_operand:DF 5 "nonimmediate_operand" "Ym")]) ! (match_operand:DF 2 "const0_operand" "X") ! (match_operand:DF 3 "register_operand" "Y")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_3" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "Ym") ! (match_operand:DF 5 "register_operand" "0")]) ! (match_operand:DF 2 "register_operand" "Y") ! (match_operand:DF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_4" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "Ym") ! (match_operand:DF 5 "register_operand" "0")]) ! (match_operand:DF 2 "const0_operand" "X") ! (match_operand:DF 3 "register_operand" "Y")))] "TARGET_SSE2" "#") diff -Nrc3pad gcc-3.1/gcc/config/i386/linux64.h gcc-3.1.1/gcc/config/i386/linux64.h *** gcc-3.1/gcc/config/i386/linux64.h Fri Apr 26 07:57:50 2002 --- gcc-3.1.1/gcc/config/i386/linux64.h Fri Jun 21 07:04:46 2002 *************** Boston, MA 02111-1307, USA. */ *** 69,81 **** #define MULTILIB_DEFAULTS { "m64" } /* Do code reading to identify a signal frame, and set the frame ! state data appropriately. See unwind-dw2.c for the structs. */ #ifdef IN_LIBGCC2 #include #include #endif #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ do { \ unsigned char *pc_ = (CONTEXT)->ra; \ --- 69,84 ---- #define MULTILIB_DEFAULTS { "m64" } /* Do code reading to identify a signal frame, and set the frame ! state data appropriately. See unwind-dw2.c for the structs. ! Don't use this at all if inhibit_libc is used. */ + #ifndef inhibit_libc #ifdef IN_LIBGCC2 #include #include #endif + #ifdef __x86_64__ #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ do { \ unsigned char *pc_ = (CONTEXT)->ra; \ *************** Boston, MA 02111-1307, USA. */ *** 132,134 **** --- 135,193 ---- (FS)->retaddr_column = 16; \ goto SUCCESS; \ } while (0) + #else /* ifdef __x86_64__ */ + #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ + do { \ + unsigned char *pc_ = (CONTEXT)->ra; \ + struct sigcontext *sc_; \ + long new_cfa_; \ + \ + /* popl %eax ; movl $__NR_sigreturn,%eax ; int $0x80 */ \ + if (*(unsigned short *)(pc_+0) == 0xb858 \ + && *(unsigned int *)(pc_+2) == 119 \ + && *(unsigned short *)(pc_+6) == 0x80cd) \ + sc_ = (CONTEXT)->cfa + 4; \ + /* movl $__NR_rt_sigreturn,%eax ; int $0x80 */ \ + else if (*(unsigned char *)(pc_+0) == 0xb8 \ + && *(unsigned int *)(pc_+1) == 173 \ + && *(unsigned short *)(pc_+5) == 0x80cd) \ + { \ + struct rt_sigframe { \ + int sig; \ + struct siginfo *pinfo; \ + void *puc; \ + struct siginfo info; \ + struct ucontext uc; \ + } *rt_ = (CONTEXT)->cfa; \ + sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \ + } \ + else \ + break; \ + \ + new_cfa_ = sc_->esp; \ + (FS)->cfa_how = CFA_REG_OFFSET; \ + (FS)->cfa_reg = 4; \ + (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \ + \ + /* The SVR4 register numbering macros aren't usable in libgcc. */ \ + (FS)->regs.reg[0].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[0].loc.offset = (long)&sc_->eax - new_cfa_; \ + (FS)->regs.reg[3].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[3].loc.offset = (long)&sc_->ebx - new_cfa_; \ + (FS)->regs.reg[1].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[1].loc.offset = (long)&sc_->ecx - new_cfa_; \ + (FS)->regs.reg[2].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[2].loc.offset = (long)&sc_->edx - new_cfa_; \ + (FS)->regs.reg[6].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[6].loc.offset = (long)&sc_->esi - new_cfa_; \ + (FS)->regs.reg[7].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[7].loc.offset = (long)&sc_->edi - new_cfa_; \ + (FS)->regs.reg[5].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[5].loc.offset = (long)&sc_->ebp - new_cfa_; \ + (FS)->regs.reg[8].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[8].loc.offset = (long)&sc_->eip - new_cfa_; \ + (FS)->retaddr_column = 8; \ + goto SUCCESS; \ + } while (0) + #endif /* ifdef __x86_64__ */ + #endif /* ifdef inhibit_libc */ diff -Nrc3pad gcc-3.1/gcc/config/i386/netbsd64.h gcc-3.1.1/gcc/config/i386/netbsd64.h *** gcc-3.1/gcc/config/i386/netbsd64.h Tue Jan 22 19:48:27 2002 --- gcc-3.1.1/gcc/config/i386/netbsd64.h Thu May 30 04:00:33 2002 *************** Boston, MA 02111-1307, USA. */ *** 48,53 **** --- 48,71 ---- "-D__NetBSD__ -D__ELF__ -Asystem=unix -Asystem=NetBSD" + /* Provide some extra CPP specs needed by NetBSD/x86_64. */ + #define CPP_LP64_SPEC "%{!m32:-D_LP64}" + + #define CPP_SUBTARGET_SPEC "%(cpp_lp64)" + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + { "cpp_lp64", CPP_LP64_SPEC }, \ + { "cpp_subtarget", CPP_SUBTARGET_SPEC }, + + + /* Provide a CPP_SPEC appropriate for NetBSD. Currently we deal with + our subtarget specs and the GCC option `-posix'. */ + + #undef CPP_SPEC + #define CPP_SPEC "%(cpp_cpu) %(cpp_subtarget) %{posix:-D_POSIX_SOURCE}" + + /* Output assembler code to FILE to call the profiler. */ #undef FUNCTION_PROFILER diff -Nrc3pad gcc-3.1/gcc/config/i386/openbsd.h gcc-3.1.1/gcc/config/i386/openbsd.h *** gcc-3.1/gcc/config/i386/openbsd.h Wed Oct 17 01:39:47 2001 --- gcc-3.1.1/gcc/config/i386/openbsd.h Tue May 28 21:29:47 2002 *************** Boston, MA 02111-1307, USA. */ *** 95,120 **** #undef ASM_PREFERRED_EH_DATA_FORMAT - /* Assembler format: alignment output. */ - - /* A C statement to output to the stdio stream FILE an assembler - command to advance the location counter to a multiple of 1< 0) \ ! parm = TYPE_ARG_TYPES (TREE_TYPE (function)); \ ! else \ ! parm = NULL_TREE; \ ! for (; parm; parm = TREE_CHAIN (parm)) \ ! if (TREE_VALUE (parm) == void_type_node) \ ! break; \ ! \ ! xops[0] = GEN_INT (DELTA); \ ! if (parm) \ ! xops[1] = gen_rtx_REG (SImode, 0); \ ! else if (aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION)))) \ ! xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 8)); \ ! else \ ! xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 4)); \ ! output_asm_insn ("add{l} {%0, %1|%1, %0}", xops); \ ! \ ! if (flag_pic && !TARGET_64BIT) \ ! { \ ! xops[0] = pic_offset_table_rtx; \ ! xops[1] = gen_label_rtx (); \ ! xops[2] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); \ ! \ ! if (ix86_regparm > 2) \ ! abort (); \ ! output_asm_insn ("push{l}\t%0", xops); \ ! output_asm_insn ("call\t%P1", xops); \ ! ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", CODE_LABEL_NUMBER (xops[1])); \ ! output_asm_insn ("pop{l}\t%0", xops); \ ! output_asm_insn ("add{l}\t{%2+[.-%P1], %0|%0, OFFSET FLAT: %2+[.-%P1]}", xops); \ ! xops[0] = gen_rtx_MEM (SImode, XEXP (DECL_RTL (FUNCTION), 0)); \ ! output_asm_insn ("mov{l}\t{%0@GOT(%%ebx), %%ecx|%%ecx, %0@GOT[%%ebx]}",\ ! xops); \ ! asm_fprintf (FILE, "\tpop{l\t%%ebx|\t%%ebx}\n"); \ ! asm_fprintf (FILE, "\tjmp\t{*%%ecx|%%ecx}\n"); \ ! } \ ! else if (flag_pic && TARGET_64BIT) \ ! { \ ! fprintf (FILE, "\tjmp *"); \ ! assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ ! fprintf (FILE, "@GOTPCREL(%%rip)\n"); \ ! } \ ! else \ ! { \ ! fprintf (FILE, "\tjmp "); \ ! assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ ! fprintf (FILE, "\n"); \ ! } \ ! } while (0) --- 79,83 ---- /* Output code to add DELTA to the first argument, and then jump to FUNCTION. Used for C++ multiple inheritance. */ ! #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ ! x86_output_mi_thunk (FILE, DELTA, FUNCTION); diff -Nrc3pad gcc-3.1/gcc/config/i960/i960.h gcc-3.1.1/gcc/config/i960/i960.h *** gcc-3.1/gcc/config/i960/i960.h Fri May 3 12:07:06 2002 --- gcc-3.1.1/gcc/config/i960/i960.h Tue May 21 23:45:01 2002 *************** extern struct rtx_def *i960_compare_op0, *** 1456,1480 **** ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \ sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO))) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - { fprintf (FILE, "\tld LPBX0,g12\n"); \ - fprintf (FILE, "\tcmpobne 0,g12,LPY%d\n",LABELNO);\ - fprintf (FILE, "\tlda LPBX0,g12\n"); \ - fprintf (FILE, "\tcall ___bb_init_func\n"); \ - fprintf (FILE, "LPY%d:\n",LABELNO); } - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - { int blockn = (BLOCKNO); \ - fprintf (FILE, "\tld LPBX2+%d,g12\n", 4 * blockn); \ - fprintf (FILE, "\taddo g12,1,g12\n"); \ - fprintf (FILE, "\tst g12,LPBX2+%d\n", 4 * blockn); } - /* Print operand X (an rtx) in assembler syntax to file FILE. CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified. For `%' followed by punctuation, CODE is the punctuation and X is null. */ --- 1456,1461 ---- diff -Nrc3pad gcc-3.1/gcc/config/ia64/linux.h gcc-3.1.1/gcc/config/ia64/linux.h *** gcc-3.1/gcc/config/ia64/linux.h Mon Apr 15 20:27:29 2002 --- gcc-3.1.1/gcc/config/ia64/linux.h Thu May 23 21:24:38 2002 *************** *** 58,64 **** #include #define IA64_GATE_AREA_START 0xa000000000000100LL ! #define IA64_GATE_AREA_END 0xa000000000010000LL #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ if ((CONTEXT)->rp >= IA64_GATE_AREA_START \ --- 58,64 ---- #include #define IA64_GATE_AREA_START 0xa000000000000100LL ! #define IA64_GATE_AREA_END 0xa000000000020000LL #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ if ((CONTEXT)->rp >= IA64_GATE_AREA_START \ diff -Nrc3pad gcc-3.1/gcc/config/ia64/sysv4.h gcc-3.1.1/gcc/config/ia64/sysv4.h *** gcc-3.1/gcc/config/ia64/sysv4.h Fri Apr 12 14:42:52 2002 --- gcc-3.1.1/gcc/config/ia64/sysv4.h Thu May 30 12:42:22 2002 *************** do { \ *** 140,184 **** emit_safe_across_calls (STREAM); \ } while (0) /* We override svr4.h so that we can support the sdata section. */ #undef SELECT_SECTION #define SELECT_SECTION(DECL,RELOC,ALIGN) \ ! { \ ! if (TREE_CODE (DECL) == STRING_CST) \ { \ ! if (! flag_writable_strings) \ ! mergeable_string_section ((DECL), (ALIGN), 0); \ ! else \ ! data_section (); \ } \ ! else if (TREE_CODE (DECL) == VAR_DECL) \ { \ ! if (XSTR (XEXP (DECL_RTL (DECL), 0), 0)[0] \ ! == SDATA_NAME_FLAG_CHAR) \ ! sdata_section (); \ ! /* ??? We need the extra RELOC check, because the default is to \ ! only check RELOC if flag_pic is set, and we don't set flag_pic \ ! (yet?). */ \ ! else if (!DECL_READONLY_SECTION (DECL, RELOC) || (RELOC)) \ ! data_section (); \ ! else if (flag_merge_constants < 2) \ ! /* C and C++ don't allow different variables to share \ ! the same location. -fmerge-all-constants allows \ ! even that (at the expense of not conforming). */ \ ! const_section (); \ ! else if (TREE_CODE (DECL_INITIAL (DECL)) == STRING_CST) \ ! mergeable_string_section (DECL_INITIAL (DECL), (ALIGN), 0); \ ! else \ ! mergeable_constant_section (DECL_MODE (DECL), (ALIGN), 0); \ } \ ! /* This could be a CONSTRUCTOR containing ADDR_EXPR of a VAR_DECL, \ ! in which case we can't put it in a shared library rodata. */ \ ! else if (flag_pic && (RELOC)) \ ! data_section (); \ ! else \ ! const_section (); \ ! } /* Similarly for constant pool data. */ --- 140,275 ---- emit_safe_across_calls (STREAM); \ } while (0) + /* A C statement or statements to switch to the appropriate + section for output of DECL. DECL is either a `VAR_DECL' node + or a constant of some sort. RELOC indicates whether forming + the initial value of DECL requires link-time relocations. + + Set SECNUM to: + 0 .text + 1 .rodata + 2 .data + 3 .sdata + 4 .bss + 5 .sbss + */ + #define DO_SELECT_SECTION(SECNUM, DECL, RELOC) \ + do \ + { \ + if (TREE_CODE (DECL) == FUNCTION_DECL) \ + SECNUM = 0; \ + else if (TREE_CODE (DECL) == STRING_CST) \ + { \ + if (! flag_writable_strings) \ + SECNUM = 0x101; \ + else \ + SECNUM = 2; \ + } \ + else if (TREE_CODE (DECL) == VAR_DECL) \ + { \ + if (XSTR (XEXP (DECL_RTL (DECL), 0), 0)[0] \ + == SDATA_NAME_FLAG_CHAR) \ + SECNUM = 3; \ + /* ??? We need the extra RELOC check, because the default \ + is to only check RELOC if flag_pic is set, and we don't \ + set flag_pic (yet?). */ \ + else if (!DECL_READONLY_SECTION (DECL, RELOC) || (RELOC)) \ + SECNUM = 2; \ + else if (flag_merge_constants < 2) \ + /* C and C++ don't allow different variables to share \ + the same location. -fmerge-all-constants allows \ + even that (at the expense of not conforming). */ \ + SECNUM = 1; \ + else if (TREE_CODE (DECL_INITIAL (DECL)) == STRING_CST) \ + SECNUM = 0x201; \ + else \ + SECNUM = 0x301; \ + } \ + /* This could be a CONSTRUCTOR containing ADDR_EXPR of a VAR_DECL, \ + in which case we can't put it in a shared library rodata. */ \ + else if (flag_pic && (RELOC)) \ + SECNUM = 3; \ + else \ + SECNUM = 2; \ + } \ + while (0) + /* We override svr4.h so that we can support the sdata section. */ #undef SELECT_SECTION #define SELECT_SECTION(DECL,RELOC,ALIGN) \ ! do \ { \ ! typedef void (*sec_fn) PARAMS ((void)); \ ! static sec_fn const sec_functions[6] = \ ! { \ ! text_section, \ ! const_section, \ ! data_section, \ ! sdata_section, \ ! bss_section, \ ! sbss_section \ ! }; \ ! \ ! int sec; \ ! \ ! DO_SELECT_SECTION (sec, DECL, RELOC); \ ! \ ! switch (sec) \ ! { \ ! case 0x101: \ ! mergeable_string_section (DECL, ALIGN, 0); \ ! break; \ ! case 0x201: \ ! mergeable_string_section (DECL_INITIAL (DECL), \ ! ALIGN, 0); \ ! break; \ ! case 0x301: \ ! mergeable_constant_section (DECL_MODE (DECL), \ ! ALIGN, 0); \ ! break; \ ! default: \ ! (*sec_functions[sec]) (); \ ! break; \ ! } \ } \ ! while (0) ! ! #undef UNIQUE_SECTION ! #define UNIQUE_SECTION(DECL, RELOC) \ ! do \ { \ ! static const char * const prefixes[6][2] = \ ! { \ ! { ".text.", ".gnu.linkonce.t." }, \ ! { ".rodata.", ".gnu.linkonce.r." }, \ ! { ".data.", ".gnu.linkonce.d." }, \ ! { ".sdata.", ".gnu.linkonce.s." }, \ ! { ".bss.", ".gnu.linkonce.b." }, \ ! { ".sbss.", ".gnu.linkonce.sb." } \ ! }; \ ! \ ! int nlen, plen, sec; \ ! const char *name, *prefix; \ ! char *string; \ ! \ ! DO_SELECT_SECTION (sec, DECL, RELOC); \ ! \ ! name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \ ! STRIP_NAME_ENCODING (name, name); \ ! nlen = strlen (name); \ ! \ ! prefix = prefixes[sec & 0xff][DECL_ONE_ONLY(DECL)]; \ ! plen = strlen (prefix); \ ! \ ! string = alloca (nlen + plen + 1); \ ! \ ! memcpy (string, prefix, plen); \ ! memcpy (string + plen, name, nlen + 1); \ ! \ ! DECL_SECTION_NAME (DECL) = build_string (nlen + plen, string); \ } \ ! while (0) /* Similarly for constant pool data. */ diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11-protos.h gcc-3.1.1/gcc/config/m68hc11/m68hc11-protos.h *** gcc-3.1/gcc/config/m68hc11/m68hc11-protos.h Sat Mar 16 12:59:20 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11-protos.h Fri Jun 28 20:55:10 2002 *************** *** 1,6 **** /* Prototypes for exported functions defined in m68hc11.c Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@worldnet.fr) This file is part of GNU CC. --- 1,6 ---- /* Prototypes for exported functions defined in m68hc11.c Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 21,26 **** --- 21,27 ---- extern int m68hc11_override_options PARAMS((void)); + extern int m68hc11_optimization_options PARAMS((int,int)); extern void m68hc11_conditional_register_usage PARAMS((void)); extern int hard_regno_mode_ok PARAMS((int, enum machine_mode)); *************** extern int m68hc11_initial_elimination_o *** 30,38 **** extern void expand_prologue PARAMS((void)); extern void expand_epilogue PARAMS((void)); - extern int m68hc11_function_block_profiler PARAMS((FILE*,int)); - - extern int m68hc11_block_profiler PARAMS((FILE*,int)); extern void m68hc11_asm_file_start PARAMS((FILE*, const char*)); --- 31,36 ---- diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11.c gcc-3.1.1/gcc/config/m68hc11/m68hc11.c *** gcc-3.1/gcc/config/m68hc11/m68hc11.c Sun Mar 24 16:13:25 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11.c Fri Jun 28 20:55:10 2002 *************** *** 1,6 **** /* Subroutines for code generation on Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@worldnet.fr) This file is part of GNU CC. --- 1,6 ---- /* Subroutines for code generation on Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. *************** m68hc11_override_options () *** 286,291 **** --- 286,306 ---- } + int + m68hc11_optimization_options (level, size) + int level ATTRIBUTE_UNUSED; + int size; + { + /* When optimizing for size, do not reorder basic blocks because + it duplicates some insns for speed and this results in larder code. + This reordering can still be enabled but explicitly. */ + if (size) + { + flag_reorder_blocks = 0; + } + return 0; + } + void m68hc11_conditional_register_usage () { *************** register_indirect_p (operand, mode, stri *** 548,553 **** --- 563,574 ---- case REG: return REGNO_OK_FOR_BASE_P2 (REGNO (operand), strict); + case CONST_INT: + if (TARGET_M6811) + return 0; + + return VALID_CONSTANT_OFFSET_P (operand, mode); + default: return 0; } *************** m68hc11_unary_operator (op, mode) *** 1126,1150 **** || GET_CODE (op) == SIGN_EXTEND || GET_CODE (op) == ZERO_EXTEND; } - - /* Profiling. */ - - int - m68hc11_block_profiler (out, blockno) - FILE *out ATTRIBUTE_UNUSED; - int blockno ATTRIBUTE_UNUSED; - { - return 0; - } - - int - m68hc11_function_block_profiler (out, block_or_label) - FILE *out ATTRIBUTE_UNUSED; - int block_or_label ATTRIBUTE_UNUSED; - { - return 0; - } - /* Emit the code to build the trampoline used to call a nested function. 68HC11 68HC12 --- 1147,1152 ---- *************** m68hc11_expand_compare_and_branch (code, *** 2683,2720 **** return 0; } ! /* Return 1 if the TO and FROM operands contain compatible address ! increment and decrement modes for a split_move. One of the two ! operands must not use an autoinc mode or both must go in the ! same direction. */ static int ! m68hc11_autoinc_compatible_p (to, from) ! rtx to, from; { ! enum { INCOP, DECOP } type_to, type_from; ! /* If one of them is not a MEM, it is ok. */ ! if (GET_CODE (to) != MEM || GET_CODE (from) != MEM) ! return 1; ! to = XEXP (to, 0); ! from = XEXP (from, 0); ! if (GET_CODE (to) == PRE_INC || GET_CODE (to) == POST_INC) ! type_to = INCOP; ! else if (GET_CODE (to) == PRE_DEC || GET_CODE (to) == POST_DEC) ! type_to = DECOP; ! else ! return 1; ! if (GET_CODE (from) == PRE_INC || GET_CODE (from) == POST_INC) ! type_from = INCOP; ! else if (GET_CODE (from) == PRE_DEC || GET_CODE (from) == POST_DEC) ! type_from = DECOP; ! else ! return 1; ! return type_to == type_from; } /* Split a DI, SI or HI move into several smaller move operations. --- 2685,2730 ---- return 0; } ! /* Return the increment/decrement mode of a MEM if it is such. ! Return CONST if it is anything else. */ static int ! autoinc_mode (x) ! rtx x; { ! if (GET_CODE (x) != MEM) ! return CONST; ! x = XEXP (x, 0); ! if (GET_CODE (x) == PRE_INC ! || GET_CODE (x) == PRE_DEC ! || GET_CODE (x) == POST_INC ! || GET_CODE (x) == POST_DEC) ! return GET_CODE (x); ! return CONST; ! } ! static int ! m68hc11_make_autoinc_notes (x, data) ! rtx *x; ! void *data; ! { ! rtx insn; ! switch (GET_CODE (*x)) ! { ! case PRE_DEC: ! case PRE_INC: ! case POST_DEC: ! case POST_INC: ! insn = (rtx) data; ! REG_NOTES (insn) = alloc_EXPR_LIST (REG_INC, XEXP (*x, 0), ! REG_NOTES (insn)); ! return -1; ! default: ! return 0; ! } } /* Split a DI, SI or HI move into several smaller move operations. *************** m68hc11_split_move (to, from, scratch) *** 2726,2766 **** { rtx low_to, low_from; rtx high_to, high_from; enum machine_mode mode; int offset = 0; mode = GET_MODE (to); - if (GET_MODE_SIZE (mode) == 8) - mode = SImode; - else if (GET_MODE_SIZE (mode) == 4) - mode = HImode; - else - mode = QImode; /* If the TO and FROM contain autoinc modes that are not compatible together (one pop and the other a push), we must change one to an offsetable operand and generate an appropriate add at the end. */ ! if (TARGET_M6812 && m68hc11_autoinc_compatible_p (to, from) == 0) { rtx reg; int code; ! /* Decide to change the source. */ ! code = GET_CODE (XEXP (from, 0)); ! reg = XEXP (XEXP (from, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (from)); ! if (code == PRE_DEC || code == POST_DEC) ! offset = -offset; ! if (code == PRE_DEC || code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (to, gen_rtx_MEM (GET_MODE (from), reg), scratch); ! if (code == POST_DEC || code == POST_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! return; } if (TARGET_M6812 && IS_STACK_PUSH (to) && reg_mentioned_p (gen_rtx (REG, HImode, HARD_SP_REGNUM), from)) --- 2736,2851 ---- { rtx low_to, low_from; rtx high_to, high_from; + rtx insn; enum machine_mode mode; int offset = 0; + int autoinc_from = autoinc_mode (from); + int autoinc_to = autoinc_mode (to); mode = GET_MODE (to); /* If the TO and FROM contain autoinc modes that are not compatible together (one pop and the other a push), we must change one to an offsetable operand and generate an appropriate add at the end. */ ! if (TARGET_M6812 && GET_MODE_SIZE (mode) > 2) { rtx reg; int code; ! /* The source uses an autoinc mode which is not compatible with ! a split (this would result in a word swap). */ ! if (autoinc_from == PRE_INC || autoinc_from == POST_DEC) ! { ! code = GET_CODE (XEXP (from, 0)); ! reg = XEXP (XEXP (from, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (from)); ! if (code == POST_DEC) ! offset = -offset; ! if (code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (to, gen_rtx_MEM (GET_MODE (from), reg), scratch); ! if (code == POST_DEC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! return; ! } ! ! /* Likewise for destination. */ ! if (autoinc_to == PRE_INC || autoinc_to == POST_DEC) ! { ! code = GET_CODE (XEXP (to, 0)); ! reg = XEXP (XEXP (to, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (to)); ! if (code == POST_DEC) ! offset = -offset; ! ! if (code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! ! m68hc11_split_move (gen_rtx_MEM (GET_MODE (to), reg), from, scratch); ! if (code == POST_DEC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! return; ! } ! ! /* The source and destination auto increment modes must be compatible ! with each other: same direction. */ ! if ((autoinc_to != autoinc_from ! && autoinc_to != CONST && autoinc_from != CONST) ! /* The destination address register must not be used within ! the source operand because the source address would change ! while doing the copy. */ ! || (autoinc_to != CONST ! && reg_mentioned_p (XEXP (XEXP (to, 0), 0), from) ! && !IS_STACK_PUSH (to))) ! { ! /* Must change the destination. */ ! code = GET_CODE (XEXP (to, 0)); ! reg = XEXP (XEXP (to, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (to)); ! if (code == PRE_DEC || code == POST_DEC) ! offset = -offset; ! ! if (code == PRE_DEC || code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (gen_rtx_MEM (GET_MODE (to), reg), from, scratch); ! if (code == POST_DEC || code == POST_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! ! return; ! } ! ! /* Likewise, the source address register must not be used within ! the destination operand. */ ! if (autoinc_from != CONST ! && reg_mentioned_p (XEXP (XEXP (from, 0), 0), to) ! && !IS_STACK_PUSH (to)) ! { ! /* Must change the source. */ ! code = GET_CODE (XEXP (from, 0)); ! reg = XEXP (XEXP (from, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (from)); ! if (code == PRE_DEC || code == POST_DEC) ! offset = -offset; ! ! if (code == PRE_DEC || code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (to, gen_rtx_MEM (GET_MODE (from), reg), scratch); ! if (code == POST_DEC || code == POST_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! ! return; ! } } + if (GET_MODE_SIZE (mode) == 8) + mode = SImode; + else if (GET_MODE_SIZE (mode) == 4) + mode = HImode; + else + mode = QImode; + if (TARGET_M6812 && IS_STACK_PUSH (to) && reg_mentioned_p (gen_rtx (REG, HImode, HARD_SP_REGNUM), from)) *************** m68hc11_split_move (to, from, scratch) *** 2796,2801 **** --- 2881,2905 ---- high_from = adjust_address (high_from, mode, offset); low_from = high_from; } + + /* When copying with a POST_INC mode, we must copy the + high part and then the low part to guarantee a correct + 32/64-bit copy. */ + if (TARGET_M6812 + && GET_MODE_SIZE (mode) >= 2 + && autoinc_from != autoinc_to + && (autoinc_from == POST_INC || autoinc_to == POST_INC)) + { + rtx swap; + + swap = low_to; + low_to = high_to; + high_to = swap; + + swap = low_from; + low_from = high_from; + high_from = swap; + } if (mode == SImode) { m68hc11_split_move (low_to, low_from, scratch); *************** m68hc11_split_move (to, from, scratch) *** 2813,2830 **** && (!m68hc11_register_indirect_p (to, GET_MODE (to)) || m68hc11_small_indexed_indirect_p (to, GET_MODE (to))))) { ! emit_move_insn (low_to, low_from); ! emit_move_insn (high_to, high_from); } else { ! rtx insn; ! ! emit_move_insn (scratch, low_from); insn = emit_move_insn (low_to, scratch); ! emit_move_insn (scratch, high_from); insn = emit_move_insn (high_to, scratch); } } --- 2917,2939 ---- && (!m68hc11_register_indirect_p (to, GET_MODE (to)) || m68hc11_small_indexed_indirect_p (to, GET_MODE (to))))) { ! insn = emit_move_insn (low_to, low_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); ! ! insn = emit_move_insn (high_to, high_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); } else { ! insn = emit_move_insn (scratch, low_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); insn = emit_move_insn (low_to, scratch); + for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); ! insn = emit_move_insn (scratch, high_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); insn = emit_move_insn (high_to, scratch); + for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); } } diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11.h gcc-3.1.1/gcc/config/m68hc11/m68hc11.h *** gcc-3.1/gcc/config/m68hc11/m68hc11.h Fri Mar 22 21:54:44 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11.h Fri Jun 28 20:55:10 2002 *************** *** 1,7 **** /* Definitions of target machine for GNU compiler. Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@worldnet.fr) This file is part of GNU CC. --- 1,7 ---- /* Definitions of target machine for GNU compiler. Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. *************** extern const char *m68hc11_soft_reg_coun *** 214,219 **** --- 214,223 ---- #define OVERRIDE_OPTIONS m68hc11_override_options (); + /* Define this to change the optimizations performed by default. */ + #define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \ + m68hc11_optimization_options(LEVEL, SIZE) + /* Define cost parameters for a given processor variant. */ struct processor_costs { diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11.md gcc-3.1.1/gcc/config/m68hc11/m68hc11.md *** gcc-3.1/gcc/config/m68hc11/m68hc11.md Sun Mar 24 16:05:41 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11.md Fri Jul 12 20:43:54 2002 *************** *** 1,6 **** ;;- Machine description file for Motorola 68HC11 and 68HC12. ;;- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! ;;- Contributed by Stephane Carrez (stcarrez@worldnet.fr) ;; This file is part of GNU CC. --- 1,6 ---- ;;- Machine description file for Motorola 68HC11 and 68HC12. ;;- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! ;;- Contributed by Stephane Carrez (stcarrez@nerim.fr) ;; This file is part of GNU CC. *************** *** 790,797 **** ;;-------------------------------------------------------------------- (define_insn "*movhi2_push" ! [(set (match_operand:HI 0 "push_operand" "=<,<") ! (match_operand:HI 1 "general_operand" "xy,?d"))] "TARGET_M6811 && !TARGET_M6812" "* { --- 790,797 ---- ;;-------------------------------------------------------------------- (define_insn "*movhi2_push" ! [(set (match_operand:HI 0 "push_operand" "=<,<,<") ! (match_operand:HI 1 "general_operand" "xy,?d,!z"))] "TARGET_M6811 && !TARGET_M6812" "* { *************** *** 1019,1027 **** (define_insn "*movqi_68hc12" [(set (match_operand:QI 0 "nonimmediate_operand" ! "=U,d*AU*q,d*A*qU,*u,d*A*q,m,m") (match_operand:QI 1 "general_operand" ! "U,*ri*q,U,*ri*qU,m,d*q,!*A"))] "TARGET_M6812" "* { --- 1019,1027 ---- (define_insn "*movqi_68hc12" [(set (match_operand:QI 0 "nonimmediate_operand" ! "=U,d*AU*q,d*A*qU,d*A*q,m,?*u,m") (match_operand:QI 1 "general_operand" ! "U,*ri*q,U,m,d*q,*ri*qU,!*A"))] "TARGET_M6812" "* { *************** *** 1228,1234 **** [(set (match_operand:DI 0 "nonimmediate_operand" "=m,m,!u,!u") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "m,Du,m,Du"))) ! (clobber (match_scratch:HI 2 "=d,d,&dB,d"))] "" "#") --- 1228,1234 ---- [(set (match_operand:DI 0 "nonimmediate_operand" "=m,m,!u,!u") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "m,Du,m,Du"))) ! (clobber (match_scratch:HI 2 "=d,d,d,d"))] "" "#") *************** *** 1348,1354 **** ") (define_insn "zero_extendqihi2" ! [(set (match_operand:HI 0 "non_push_operand" "=dm,d,*A,!u,d,m,!u") (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,*A,d*Am,d,!um,*A,*A")))] "" --- 1348,1354 ---- ") (define_insn "zero_extendqihi2" ! [(set (match_operand:HI 0 "non_push_operand" "=dm,d,*A,!*u,d,m,!*u") (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,*A,d*Am,d,!um,*A,*A")))] "" *************** *** 1900,1908 **** }") (define_insn "*addsi3" ! [(set (match_operand:SI 0 "non_push_operand" "=m,D,!u,?D,D") (plus:SI (match_operand:SI 1 "non_push_operand" "%0,0,0,0,0") ! (match_operand:SI 2 "general_operand" "ML,i,ML,?D,?miu"))) (clobber (match_scratch:HI 3 "=d,X,d,X,X"))] "" "* --- 1900,1908 ---- }") (define_insn "*addsi3" ! [(set (match_operand:SI 0 "non_push_operand" "=o,D,!u,?D,D") (plus:SI (match_operand:SI 1 "non_push_operand" "%0,0,0,0,0") ! (match_operand:SI 2 "general_operand" "ML,i,ML,?D,?oiu"))) (clobber (match_scratch:HI 3 "=d,X,d,X,X"))] "" "* *************** *** 2500,2507 **** (define_insn "*subsi3" [(set (match_operand:SI 0 "register_operand" "=D,D,D,D,!u") ! (minus:SI (match_operand:SI 1 "general_operand" "0,mi,0,!u,0") ! (match_operand:SI 2 "general_operand" "mi,D,!u,D,!mui"))) (clobber (match_scratch:HI 3 "=X,X,X,X,d"))] "" "#") --- 2500,2507 ---- (define_insn "*subsi3" [(set (match_operand:SI 0 "register_operand" "=D,D,D,D,!u") ! (minus:SI (match_operand:SI 1 "general_operand" "0,oi,0,!u,0") ! (match_operand:SI 2 "general_operand" "oi,D,!u,D,!oui"))) (clobber (match_scratch:HI 3 "=X,X,X,X,d"))] "" "#") *************** *** 3932,3950 **** || (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) >= -4 && INTVAL (operands[2]) <= 4)))" ! [(set (match_dup 4) (match_dup 5)) (set (match_dup 8) (match_dup 7)) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))]) (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 6)])) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))])] " /* Save the operand2 in a temporary location and use it. */ ! if ((H_REG_P (operands[2]) ! || reg_mentioned_p (operands[0], operands[2])) ! && !(SP_REG_P (operands[2]) && GET_CODE (operands[3]) == PLUS)) { operands[4] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM); operands[6] = operands[4]; if (!H_REG_P (operands[2])) --- 3932,3986 ---- || (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) >= -4 && INTVAL (operands[2]) <= 4)))" ! [(set (match_dup 9) (match_dup 0)) ! (set (match_dup 4) (match_dup 5)) (set (match_dup 8) (match_dup 7)) + (set (match_dup 0) (match_dup 1)) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))]) (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 6)])) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))])] " + operands[9] = operands[0]; + /* For 68HC12, push the value on the stack and do the operation + with a pop. */ + if (TARGET_M6812 + && m68hc11_non_shift_operator (operands[3], HImode) + && (H_REG_P (operands[2]) + || (m68hc11_small_indexed_indirect_p (operands[2], HImode) + && reg_mentioned_p (operands[0], operands[2])))) + { + operands[4] = gen_rtx (MEM, HImode, + gen_rtx (PRE_DEC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[6] = gen_rtx (MEM, HImode, + gen_rtx (POST_INC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[5] = operands[2]; + operands[8] = operands[7] = operands[0]; + } /* Save the operand2 in a temporary location and use it. */ ! else if ((H_REG_P (operands[2]) ! || reg_mentioned_p (operands[0], operands[2])) ! && !(SP_REG_P (operands[2]) && GET_CODE (operands[3]) == PLUS)) { + if (GET_CODE (operands[3]) == MINUS + && reg_mentioned_p (operands[0], operands[2])) + { + operands[9] = gen_rtx (MEM, HImode, + gen_rtx (PRE_DEC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[1] = gen_rtx (MEM, HImode, + gen_rtx (POST_INC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[8] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM); + operands[4] = operands[7] = operands[0]; + operands[6] = operands[8]; + operands[5] = operands[2]; + } + else + { operands[4] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM); operands[6] = operands[4]; if (!H_REG_P (operands[2])) *************** *** 3958,3963 **** --- 3994,4000 ---- operands[5] = operands[2]; operands[8] = operands[7] = operands[0]; } + } } else { *************** *** 4660,4675 **** if (!Y_REG_P (operands[2])) { rtx ops[1]; ops[0] = operands[1]; ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) { ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashlsi3\", operands); ! return \"puly\"; } return \"bsr\\t___ashlsi3\"; }") --- 4697,4714 ---- if (!Y_REG_P (operands[2])) { rtx ops[1]; + int y_dead = dead_register_here (insn, iy_reg); ops[0] = operands[1]; ! if (y_dead == 0) { ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashlsi3\", operands); ! return y_dead == 0 ? \"puly\" : \"\"; } return \"bsr\\t___ashlsi3\"; }") *************** *** 5068,5083 **** if (!Y_REG_P (operands[2])) { rtx ops[1]; ops[0] = operands[1]; ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) { ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashrsi3\", operands); ! return \"puly\"; } return \"bsr\\t___ashrsi3\"; }") --- 5107,5124 ---- if (!Y_REG_P (operands[2])) { rtx ops[1]; + int y_dead = dead_register_here (insn, iy_reg); ops[0] = operands[1]; ! if (y_dead == 0) { ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashrsi3\", operands); ! return y_dead == 0 ? \"puly\" : \"\"; } return \"bsr\\t___ashrsi3\"; }") *************** *** 5412,5427 **** if (!Y_REG_P (operands[2])) { rtx ops[1]; ops[0] = operands[1]; ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) { ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___lshrsi3\", operands); ! return \"puly\"; } return \"bsr\\t___lshrsi3\"; }") --- 5453,5470 ---- if (!Y_REG_P (operands[2])) { rtx ops[1]; + int y_dead = dead_register_here (insn, iy_reg); ops[0] = operands[1]; ! if (y_dead == 0) { ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___lshrsi3\", operands); ! return y_dead == 0 ? \"puly\" : \"\"; } return \"bsr\\t___lshrsi3\"; }") *************** *** 6442,6470 **** ;;-------------------------------------------------------------------- ;; ! ;; Reorganize to optimize address computations. ;; (define_peephole2 ! [(set (match_operand:HI 0 "hard_reg_operand" "") ! (match_operand:HI 1 "const_int_operand" "")) ! (set (match_dup 0) ! (plus:HI (match_dup 0) ! (match_operand:HI 2 "general_operand" "")))] ! "(INTVAL (operands[1]) >= -2 && INTVAL (operands[1]) <= 2)" ! [(set (match_dup 0) (match_dup 2)) ! (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] ! "") ;; ! ;; Reorganize address computation based on stack pointer. ;; (define_peephole2 ! [(set (match_operand:HI 0 "hard_reg_operand" "") ! (match_operand:HI 1 "const_int_operand" "")) ! (set (match_dup 0) (plus:HI (match_dup 0) (reg:HI SP_REGNUM)))] ! "" ! [(set (match_dup 0) (reg:HI SP_REGNUM)) ! (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] "") ;; --- 6485,6519 ---- ;;-------------------------------------------------------------------- ;; ! ;; Replace "leas 2,sp" with a "pulx" or a "puly". ! ;; On 68HC12, this is one cycle slower but one byte smaller. ! ;; pr target/6899: This peephole is not valid because a register CSE ! ;; pass removes the pulx/puly. ;; (define_peephole2 ! [(set (reg:HI SP_REGNUM) (plus:HI (reg:HI SP_REGNUM) (const_int 2))) ! (match_scratch:HI 0 "xy")] ! "0 && TARGET_M6812 && optimize_size" ! [(set (match_dup 0) (match_dup 1))] ! "operands[1] = gen_rtx (MEM, HImode, ! gen_rtx (POST_INC, HImode, ! gen_rtx_REG (HImode, HARD_SP_REGNUM)));") ;; ! ;; Optimize memory<->memory moves when the value is also loaded in ! ;; a register. ;; (define_peephole2 ! [(set (match_operand:QI 0 "memory_operand" "") ! (match_operand:QI 1 "memory_operand" "")) ! (set (reg:QI D_REGNUM) ! (match_operand:QI 2 "memory_operand" ""))] ! "(rtx_equal_p (operands[0], operands[2]) && !side_effects_p (operands[0])) ! || (GET_CODE (XEXP (operands[0], 0)) == REG ! && GET_CODE (XEXP (operands[2], 0)) == POST_INC ! && rtx_equal_p (XEXP (operands[0], 0), XEXP (XEXP (operands[2], 0), 0)))" ! [(set (reg:QI D_REGNUM) (match_dup 1)) ! (set (match_dup 2) (reg:QI D_REGNUM))] "") ;; *************** *** 6484,6491 **** "") ;; ;; Optimize an address register increment and a compare to use ! ;; a PRE_INC or PRE_DEC addressing mode (disabled on the compare insn ;; before reload, but can be enabled after). ;; (define_peephole2 --- 6533,6571 ---- "") ;; + ;; Optimize loading a constant to memory when that same constant + ;; is loaded to a hard register. Switch the two to use the register + ;; for memory initialization. In most cases, the constant is 0. + ;; + (define_peephole2 + [(set (match_operand:HI 0 "memory_operand" "") + (match_operand:HI 1 "immediate_operand" "")) + (set (match_operand:HI 2 "hard_reg_operand" "") + (match_dup 1))] + "(D_REG_P (operands[2]) || X_REG_P (operands[2]) || Y_REG_P (operands[2])) + && !reg_mentioned_p (operands[2], operands[0]) + && GET_MODE (operands[2]) == HImode" + [(set (match_dup 2) (match_dup 1)) + (set (match_dup 0) (match_dup 2))] + "") + + ;; + ;; Reorganize to optimize address computations. + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "const_int_operand" "")) + (set (match_dup 0) + (plus:HI (match_dup 0) + (match_operand:HI 2 "general_operand" "")))] + "(INTVAL (operands[1]) >= -2 && INTVAL (operands[1]) <= 2)" + [(set (match_dup 0) (match_dup 2)) + (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] + "") + + ;; ;; Optimize an address register increment and a compare to use ! ;; a PRE_INC or PRE_DEC addressing mode (disabled on the tst insn ;; before reload, but can be enabled after). ;; (define_peephole2 *************** *** 6493,6498 **** --- 6573,6599 ---- (plus:HI (match_dup 0) (match_operand:HI 1 "const_int_operand" ""))) (set (cc0) + (match_operand:QI 2 "memory_operand" ""))] + "TARGET_AUTO_INC_DEC + && (INTVAL (operands[1]) == -1 || INTVAL (operands[1]) == 1) + && reg_mentioned_p (operands[0], operands[2])" + [(set (cc0) (match_dup 3))] + "if (INTVAL (operands[1]) == 1) + operands[3] = gen_rtx (MEM, QImode, + gen_rtx (PRE_INC, HImode, operands[0])); + else + operands[3] = gen_rtx (MEM, QImode, + gen_rtx (PRE_DEC, HImode, operands[0])); + ") + + ;; + ;; Likewise for compare. + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (plus:HI (match_dup 0) + (match_operand:HI 1 "const_int_operand" ""))) + (set (cc0) (compare (match_operand:QI 2 "hard_reg_operand" "") (match_operand:QI 3 "memory_operand" "")))] "TARGET_AUTO_INC_DEC *************** *** 6527,6532 **** --- 6628,6674 ---- ") ;; + ;; Replace a "ldx #N; addx " with a "ldx ; addx #n" + ;; (avoids many temporary moves because we can't add sp to another reg easily) + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "const_int_operand" "")) + (set (match_dup 0) (plus:HI (match_dup 0) (reg:HI SP_REGNUM)))] + "" + [(set (match_dup 0) (reg:HI SP_REGNUM)) + (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] + "") + + ;; + ;; Replace "ldd #N; addd " with "ldd ; addd #N". + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "const_int_operand" "")) + (set (match_dup 0) + (plus:HI (match_dup 0) + (match_operand:HI 2 "general_operand" "")))] + "(INTVAL (operands[1]) >= -2 && INTVAL (operands[1]) <= 2)" + [(set (match_dup 0) (match_dup 2)) + (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] + "") + + ;; + ;; Replace a "ldd ; psha; pshb" with a "ldx ; pshx". + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "memory_operand" "")) + (set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) + (match_dup 0)) + (match_scratch:HI 2 "x")] + "TARGET_M6811 && D_REG_P (operands[0]) && peep2_reg_dead_p (2, operands[0])" + [(set (match_dup 2) (match_dup 1)) + (set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))] + "") + + ;; ;; This peephole catches the address computations generated by the reload ;; pass. (define_peephole diff -Nrc3pad gcc-3.1/gcc/config/m68k/m68k.h gcc-3.1.1/gcc/config/m68k/m68k.h *** gcc-3.1/gcc/config/m68k/m68k.h Wed Mar 13 05:35:59 2002 --- gcc-3.1.1/gcc/config/m68k/m68k.h Mon Jul 15 06:33:38 2002 *************** extern int m68k_align_funcs; *** 1971,1976 **** --- 1971,1991 ---- extern int m68k_last_compare_had_fp_operands; + /* Define the codes that are matched by predicates in m68k.c. */ + + #define PREDICATE_CODES \ + {"general_src_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ + LABEL_REF, SUBREG, REG, MEM}}, \ + {"nonimmediate_src_operand", {SUBREG, REG, MEM}}, \ + {"memory_src_operand", {SUBREG, MEM}}, \ + {"not_sp_operand", {SUBREG, REG, MEM}}, \ + {"pcrel_address", {SYMBOL_REF, LABEL_REF, CONST}}, \ + {"const_uint32_operand", {CONST_INT, CONST_DOUBLE}}, \ + {"const_sint32_operand", {CONST_INT}}, \ + {"valid_dbcc_comparison_p", {EQ, NE, GTU, LTU, GEU, LEU, \ + GT, LT, GE, LE}}, \ + {"extend_operator", {SIGN_EXTEND, ZERO_EXTEND}}, + /* Local variables: version-control: t diff -Nrc3pad gcc-3.1/gcc/config/m68k/netbsd-elf.h gcc-3.1.1/gcc/config/m68k/netbsd-elf.h *** gcc-3.1/gcc/config/m68k/netbsd-elf.h Tue Feb 5 19:01:52 2002 --- gcc-3.1.1/gcc/config/m68k/netbsd-elf.h Thu May 30 17:25:07 2002 *************** Boston, MA 02111-1307, USA. */ *** 42,47 **** --- 42,49 ---- #ifdef __mc68010__ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64 + #else + #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 96 #endif #define EXTRA_SPECS \ diff -Nrc3pad gcc-3.1/gcc/config/m68k/sun3.h gcc-3.1.1/gcc/config/m68k/sun3.h *** gcc-3.1/gcc/config/m68k/sun3.h Thu Dec 20 17:36:36 2001 --- gcc-3.1.1/gcc/config/m68k/sun3.h Tue May 21 23:45:06 2002 *************** Boston, MA 02111-1307, USA. */ *** 235,255 **** asm_fprintf (FILE, "%I0r%s", dstr); \ } \ } while (0) - - #if 0 - /* This was turned off as it caused linking errors on sunos4.1. - `gcc -a' links in /usr/lib/bb_link.o which does not provide __bb_link - but its own version of __bb_init_func. */ - #undef BLOCK_PROFILER_CODE - #define BLOCK_PROFILER_CODE \ - extern int ___tcov_init; \ - \ - __bb_init_func (blocks) \ - struct bb *blocks; \ - { \ - if (! ___tcov_init) \ - ___tcov_init_func (); \ - \ - ___bb_link (blocks->filename, blocks->counts, blocks->ncounts); \ - } - #endif --- 235,237 ---- diff -Nrc3pad gcc-3.1/gcc/config/m68k/tower-as.h gcc-3.1.1/gcc/config/m68k/tower-as.h *** gcc-3.1/gcc/config/m68k/tower-as.h Thu Dec 20 17:36:36 2001 --- gcc-3.1.1/gcc/config/m68k/tower-as.h Tue May 21 23:45:06 2002 *************** Boston, MA 02111-1307, USA. */ *** 157,182 **** #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (68k, Motorola/SGS/Tower32 syntax)"); - #undef FUNCTION_BLOCK_PROFILER - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - do { \ - char label1[20], label2[20]; \ - ASM_GENERATE_INTERNAL_LABEL (label1, "LPBX", 0); \ - ASM_GENERATE_INTERNAL_LABEL (label2, "LPI", LABELNO); \ - fprintf (FILE, "\ttst.l %s\n\tbne %s\n\tpea %s\n\tjsr __bb_init_func\n\taddq.l &4,%%sp\n", \ - label1, label2, label1); \ - ASM_OUTPUT_INTERNAL_LABEL (FILE, "LPI", LABELNO); \ - putc ('\n', FILE); \ - } while (0) - - #undef BLOCK_PROFILER - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - do { \ - char label[20]; \ - ASM_GENERATE_INTERNAL_LABEL (label, "LPBX", 2); \ - fprintf (FILE, "\taddq.l &1,%s+%d\n", label, 4 * BLOCKNO); \ - } while (0) - #undef FUNCTION_PROFILER #define FUNCTION_PROFILER(FILE, LABEL_NO) \ fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO)) --- 157,162 ---- diff -Nrc3pad gcc-3.1/gcc/config/m88k/m88k-protos.h gcc-3.1.1/gcc/config/m88k/m88k-protos.h *** gcc-3.1/gcc/config/m88k/m88k-protos.h Thu Dec 27 03:35:21 2001 --- gcc-3.1.1/gcc/config/m88k/m88k-protos.h Tue May 21 23:45:11 2002 *************** extern void m88k_layout_frame PARAMS ((v *** 86,93 **** extern void m88k_expand_prologue PARAMS ((void)); extern void m88k_expand_epilogue PARAMS ((void)); extern void output_function_profiler PARAMS ((FILE *, int, const char *, int)); - extern void output_function_block_profiler PARAMS ((FILE *, int)); - extern void output_block_profiler PARAMS ((FILE *, int)); extern void output_ascii PARAMS ((FILE *, const char *, int, const char *, int)); extern void output_label PARAMS ((int)); --- 86,91 ---- diff -Nrc3pad gcc-3.1/gcc/config/m88k/m88k.c gcc-3.1.1/gcc/config/m88k/m88k.c *** gcc-3.1/gcc/config/m88k/m88k.c Sun Feb 17 14:23:52 2002 --- gcc-3.1.1/gcc/config/m88k/m88k.c Tue May 21 23:45:11 2002 *************** output_function_profiler (file, labelno, *** 2468,2540 **** fprintf (file, "\taddu\t %s,%s,64\n", reg_names[31], reg_names[31]); } } - - /* Output assembler code to FILE to initialize basic-block profiling for - the current module. LABELNO is unique to each instance. */ - - void - output_function_block_profiler (file, labelno) - FILE *file; - int labelno; - { - char block[256]; - char label[256]; - - /* Remember to update FUNCTION_BLOCK_PROFILER_LENGTH. */ - - ASM_GENERATE_INTERNAL_LABEL (block, "LPBX", 0); - ASM_GENERATE_INTERNAL_LABEL (label, "LPY", labelno); - - /* @@ Need to deal with PIC. I'm not sure what the requirements are on - register usage, so I used r26/r27 to be safe. */ - fprintf (file, "\tor.u\t %s,%s,%shi16(%s)\n", reg_names[27], reg_names[0], - m88k_pound_sign, &block[1]); - fprintf (file, "\tld\t %s,%s,%slo16(%s)\n", reg_names[26], reg_names[27], - m88k_pound_sign, &block[1]); - fprintf (file, "\tbcnd\t %sne0,%s,%s\n", - m88k_pound_sign, reg_names[26], &label[1]); - fprintf (file, "\tsubu\t %s,%s,64\n", reg_names[31], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,32\n", reg_names[2], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,40\n", reg_names[4], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,48\n", reg_names[6], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,56\n", reg_names[8], reg_names[31]); - fputs ("\tbsr.n\t ", file); - ASM_OUTPUT_LABELREF (file, "__bb_init_func"); - putc ('\n', file); - fprintf (file, "\tor\t %s,%s,%slo16(%s)\n", reg_names[2], reg_names[27], - m88k_pound_sign, &block[1]); - fprintf (file, "\tld.d\t %s,%s,32\n", reg_names[2], reg_names[31]); - fprintf (file, "\tld.d\t %s,%s,40\n", reg_names[4], reg_names[31]); - fprintf (file, "\tld.d\t %s,%s,48\n", reg_names[6], reg_names[31]); - fprintf (file, "\tld.d\t %s,%s,56\n", reg_names[8], reg_names[31]); - fprintf (file, "\taddu\t %s,%s,64\n", reg_names[31], reg_names[31]); - ASM_OUTPUT_INTERNAL_LABEL (file, "LPY", labelno); - } - - /* Output assembler code to FILE to increment the count associated with - the basic block number BLOCKNO. */ - - void - output_block_profiler (file, blockno) - FILE *file; - int blockno; - { - char block[256]; - - /* Remember to update BLOCK_PROFILER_LENGTH. */ - - ASM_GENERATE_INTERNAL_LABEL (block, "LPBX", 2); - - /* @@ Need to deal with PIC. I'm not sure what the requirements are on - register usage, so I used r26/r27 to be safe. */ - fprintf (file, "\tor.u\t %s,%s,%shi16(%s+%d)\n", reg_names[27], reg_names[0], - m88k_pound_sign, &block[1], 4 * blockno); - fprintf (file, "\tld\t %s,%s,%slo16(%s+%d)\n", reg_names[26], reg_names[27], - m88k_pound_sign, &block[1], 4 * blockno); - fprintf (file, "\taddu\t %s,%s,1\n", reg_names[26], reg_names[26]); - fprintf (file, "\tst\t %s,%s,%slo16(%s+%d)\n", reg_names[26], reg_names[27], - m88k_pound_sign, &block[1], 4 * blockno); - } /* Determine whether a function argument is passed in a register, and which register. --- 2468,2473 ---- diff -Nrc3pad gcc-3.1/gcc/config/m88k/m88k.h gcc-3.1.1/gcc/config/m88k/m88k.h *** gcc-3.1/gcc/config/m88k/m88k.h Tue Jan 8 22:51:34 2002 --- gcc-3.1.1/gcc/config/m88k/m88k.h Tue May 21 23:45:11 2002 *************** enum reg_class { NO_REGS, AP_REG, XRF_RE *** 1055,1076 **** /* Maximum length in instructions of the code output by FUNCTION_PROFILER. */ #define FUNCTION_PROFILER_LENGTH (5+3+1+5) - /* Output assembler code to FILE to initialize basic-block profiling for - the current module. LABELNO is unique to each instance. */ - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - output_function_block_profiler (FILE, LABELNO) - - /* Maximum length in instructions of the code output by - FUNCTION_BLOCK_PROFILER. */ - #define FUNCTION_BLOCK_PROFILER_LENGTH (3+5+2+5) - - /* Output assembler code to FILE to increment the count associated with - the basic block number BLOCKNO. */ - #define BLOCK_PROFILER(FILE, BLOCKNO) output_block_profiler (FILE, BLOCKNO) - - /* Maximum length in instructions of the code output by BLOCK_PROFILER. */ - #define BLOCK_PROFILER_LENGTH 4 - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 1055,1060 ---- diff -Nrc3pad gcc-3.1/gcc/config/mips/elf.h gcc-3.1.1/gcc/config/mips/elf.h *** gcc-3.1/gcc/config/mips/elf.h Sun Nov 11 05:56:43 2001 --- gcc-3.1.1/gcc/config/mips/elf.h Wed Jun 12 18:04:10 2002 *************** Boston, MA 02111-1307, USA. */ *** 22,27 **** --- 22,33 ---- /* Use ELF. */ #define OBJECT_FORMAT_ELF + /* All ELF targets can support DWARF-2. */ + + #ifndef DWARF2_DEBUGGING_INFO + #define DWARF2_DEBUGGING_INFO 1 + #endif + /* Until we figure out what MIPS ELF targets normally use, just do stabs in ELF. */ #ifndef PREFERRED_DEBUGGING_TYPE diff -Nrc3pad gcc-3.1/gcc/config/mips/iris6.h gcc-3.1.1/gcc/config/mips/iris6.h *** gcc-3.1/gcc/config/mips/iris6.h Mon Dec 17 15:05:34 2001 --- gcc-3.1.1/gcc/config/mips/iris6.h Sun May 19 15:21:35 2002 *************** Boston, MA 02111-1307, USA. */ *** 124,129 **** --- 124,141 ---- %{mabi=64: -D__mips64} \ %{!mabi*: -D__mips64}" + /* The GNU C++ standard library requires that __EXTENSIONS__ and + _SGI_SOURCE be defined on at least irix6.2 and probably all irix6 + prior to 6.5. They normally get defined in SUBTARGET_CPP_SPEC if + !ansi, for g++ we want them regardless. We don't need this on + irix6.5 itself, but it shouldn't hurt other than the namespace + pollution. */ + #undef CPLUSPLUS_CPP_SPEC + #define CPLUSPLUS_CPP_SPEC "\ + -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS \ + %{ansi:-D__EXTENSIONS__ -D_SGI_SOURCE} %(cpp) \ + " + /* Irix 6 uses DWARF-2. */ #define DWARF2_DEBUGGING_INFO #define MIPS_DEBUGGING_INFO diff -Nrc3pad gcc-3.1/gcc/config/mips/mips.c gcc-3.1.1/gcc/config/mips/mips.c *** gcc-3.1/gcc/config/mips/mips.c Wed Apr 17 00:42:38 2002 --- gcc-3.1.1/gcc/config/mips/mips.c Wed Jun 12 18:04:11 2002 *************** mips_output_filename (stream, name) *** 5916,5922 **** static int first_time = 1; char ltext_label_name[100]; ! if (first_time) { first_time = 0; SET_FILE_NUMBER (); --- 5916,5926 ---- static int first_time = 1; char ltext_label_name[100]; ! /* If we are emitting DWARF-2, let dwarf2out handle the ".file" ! directives. */ ! if (write_symbols == DWARF2_DEBUG) ! return; ! else if (first_time) { first_time = 0; SET_FILE_NUMBER (); *************** mips_output_function_prologue (file, siz *** 6956,6962 **** #endif HOST_WIDE_INT tsize = current_frame_info.total_size; ! ASM_OUTPUT_SOURCE_FILENAME (file, DECL_SOURCE_FILE (current_function_decl)); #ifdef SDB_DEBUGGING_INFO if (debug_info_level != DINFO_LEVEL_TERSE && write_symbols == SDB_DEBUG) --- 6960,6970 ---- #endif HOST_WIDE_INT tsize = current_frame_info.total_size; ! /* ??? When is this really needed? At least the GNU assembler does not ! need the source filename more than once in the file, beyond what is ! emitted by the debug information. */ ! if (!TARGET_GAS) ! ASM_OUTPUT_SOURCE_FILENAME (file, DECL_SOURCE_FILE (current_function_decl)); #ifdef SDB_DEBUGGING_INFO if (debug_info_level != DINFO_LEVEL_TERSE && write_symbols == SDB_DEBUG) diff -Nrc3pad gcc-3.1/gcc/config/mips/netbsd.h gcc-3.1.1/gcc/config/mips/netbsd.h *** gcc-3.1/gcc/config/mips/netbsd.h Tue Jan 22 04:23:05 2002 --- gcc-3.1.1/gcc/config/mips/netbsd.h Fri Jun 7 16:13:32 2002 *************** Boston, MA 02111-1307, USA. */ *** 180,185 **** --- 180,191 ---- #undef SET_ASM_OP + /* NetBSD hasn't historically provided _flush_cache(), but rather + _cacheflush(), which takes the same arguments as the former. */ + #undef CACHE_FLUSH_FUNC + #define CACHE_FLUSH_FUNC "_cacheflush" + + /* Make gcc agree with */ #undef WCHAR_TYPE diff -Nrc3pad gcc-3.1/gcc/config/mips/t-netbsd gcc-3.1.1/gcc/config/mips/t-netbsd *** gcc-3.1/gcc/config/mips/t-netbsd Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/config/mips/t-netbsd Fri Jun 7 23:35:32 2002 *************** *** 0 **** --- 1,20 ---- + # We want fine grained libraries, so use the new code to build the + # floating point emulation libraries. + FPBIT = fp-bit.c + DPBIT = dp-bit.c + + dp-bit.c: $(srcdir)/config/fp-bit.c + echo '#ifdef __MIPSEL__' > dp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c + echo '#endif' >> dp-bit.c + echo '#undef US_SOFTWARE_GOFAST' >> dp-bit.c + echo '#undef FLOAT' >> dp-bit.c + cat $(srcdir)/config/fp-bit.c >> dp-bit.c + + fp-bit.c: $(srcdir)/config/fp-bit.c + echo '#ifdef __MIPSEL__' > fp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c + echo '#endif' >> fp-bit.c + echo '#undef US_SOFTWARE_GOFAST' >> fp-bit.c + echo '#define FLOAT' >> fp-bit.c + cat $(srcdir)/config/fp-bit.c >> fp-bit.c diff -Nrc3pad gcc-3.1/gcc/config/pa/pa-linux.h gcc-3.1.1/gcc/config/pa/pa-linux.h *** gcc-3.1/gcc/config/pa/pa-linux.h Mon Apr 15 20:27:34 2002 --- gcc-3.1.1/gcc/config/pa/pa-linux.h Sat Jun 1 00:35:19 2002 *************** along with GNU CC; see the file COPYING. *** 18,23 **** --- 18,27 ---- the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + /* Wide characters are signed. */ + #undef WCHAR_UNSIGNED + #define WCHAR_UNSIGNED 0 + /* Use DWARF2 debugging info and unwind. */ #undef PREFERRED_DEBUGGING_TYPE #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG diff -Nrc3pad gcc-3.1/gcc/config/pa/pa-protos.h gcc-3.1.1/gcc/config/pa/pa-protos.h *** gcc-3.1/gcc/config/pa/pa-protos.h Mon Jan 21 22:57:48 2002 --- gcc-3.1.1/gcc/config/pa/pa-protos.h Thu Jul 11 18:22:02 2002 *************** extern rtx legitimize_pic_address PARAMS *** 63,68 **** --- 63,69 ---- extern struct rtx_def *gen_cmp_fp PARAMS ((enum rtx_code, rtx, rtx)); extern void hppa_encode_label PARAMS ((rtx)); extern int arith11_operand PARAMS ((rtx, enum machine_mode)); + extern int adddi3_operand PARAMS ((rtx, enum machine_mode)); extern int symbolic_expression_p PARAMS ((rtx)); extern int hppa_address_cost PARAMS ((rtx)); extern int symbolic_memory_operand PARAMS ((rtx, enum machine_mode)); diff -Nrc3pad gcc-3.1/gcc/config/pa/pa.c gcc-3.1.1/gcc/config/pa/pa.c *** gcc-3.1/gcc/config/pa/pa.c Thu May 9 18:20:31 2002 --- gcc-3.1.1/gcc/config/pa/pa.c Thu Jul 11 18:22:02 2002 *************** reg_before_reload_operand (op, mode) *** 393,399 **** return 0; } ! /* Accept any constant that can be moved in one instructions into a general register. */ int cint_ok_for_move (intval) --- 393,399 ---- return 0; } ! /* Accept any constant that can be moved in one instruction into a general register. */ int cint_ok_for_move (intval) *************** arith11_operand (op, mode) *** 529,534 **** --- 529,546 ---- || (GET_CODE (op) == CONST_INT && INT_11_BITS (op))); } + /* Return truth value of whether OP can be used as an operand in a + adddi3 insn. */ + int + adddi3_operand (op, mode) + rtx op; + enum machine_mode mode; + { + return (register_operand (op, mode) + || (GET_CODE (op) == CONST_INT + && (TARGET_64BIT ? INT_14_BITS (op) : INT_11_BITS (op)))); + } + /* A constant integer suitable for use in a PRE_MODIFY memory reference. */ int *************** emit_move_sequence (operands, mode, scra *** 1695,1703 **** else temp = gen_reg_rtx (mode); ! if (GET_CODE (operand1) == CONST_INT) { ! /* Directly break constant into low and high parts. This provides better optimization opportunities because various passes recognize constants split with PLUS but not LO_SUM. We use a 14-bit signed low part except when the addition --- 1707,1719 ---- else temp = gen_reg_rtx (mode); ! /* We don't directly split DImode constants on 32-bit targets ! because PLUS uses an 11-bit immediate and the insn sequence ! generated is not as efficient as the one using HIGH/LO_SUM. */ ! if (GET_CODE (operand1) == CONST_INT ! && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT) { ! /* Directly break constant into high and low parts. This provides better optimization opportunities because various passes recognize constants split with PLUS but not LO_SUM. We use a 14-bit signed low part except when the addition *************** output_millicode_call (insn, call_dest) *** 5921,5927 **** { xoperands[0] = call_dest; output_asm_insn ("ldil L%%%0,%3", xoperands); ! output_asm_insn ("{ble|be,l} R%%%0(%%sr4,%3)", xoperands); output_asm_insn ("nop", xoperands); } --- 5937,5946 ---- { xoperands[0] = call_dest; output_asm_insn ("ldil L%%%0,%3", xoperands); ! if (TARGET_PA_20) ! output_asm_insn ("be,l R%%%0(%%sr4,%3),%%sr0,%%r31", xoperands); ! else ! output_asm_insn ("ble R%%%0(%%sr4,%3)", xoperands); output_asm_insn ("nop", xoperands); } *************** output_call (insn, call_dest, sibcall) *** 6166,6173 **** /* Get the high part of the address of $dyncall into %r2, then add in the low part in the branch instruction. */ output_asm_insn ("ldil L%%$$dyncall,%%r2", xoperands); ! output_asm_insn ("{ble|be,l} R%%$$dyncall(%%sr4,%%r2)", ! xoperands); if (sibcall) { --- 6185,6195 ---- /* Get the high part of the address of $dyncall into %r2, then add in the low part in the branch instruction. */ output_asm_insn ("ldil L%%$$dyncall,%%r2", xoperands); ! if (TARGET_PA_20) ! output_asm_insn ("be,l R%%$$dyncall(%%sr4,%%r2),%%sr0,%%r31", ! xoperands); ! else ! output_asm_insn ("ble R%%$$dyncall(%%sr4,%%r2)", xoperands); if (sibcall) { diff -Nrc3pad gcc-3.1/gcc/config/pa/pa.h gcc-3.1.1/gcc/config/pa/pa.h *** gcc-3.1/gcc/config/pa/pa.h Thu May 2 00:33:08 2002 --- gcc-3.1.1/gcc/config/pa/pa.h Wed Jun 5 19:31:48 2002 *************** extern int target_flags; *** 348,353 **** --- 348,354 ---- #define SIZE_TYPE "unsigned int" #define PTRDIFF_TYPE "int" #define WCHAR_TYPE "unsigned int" + #define WCHAR_UNSIGNED 1 #define WCHAR_TYPE_SIZE 32 /* Show we can debug even without a frame pointer. */ *************** extern int may_call_alloca; *** 1238,1244 **** ? GET_MODE (OP) \ : DFmode), \ XEXP (OP, 0)) \ ! && GET_CODE (XEXP (OP, 0)) != LO_SUM \ && !(GET_CODE (XEXP (OP, 0)) == PLUS \ && (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\ || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT)))\ --- 1239,1249 ---- ? GET_MODE (OP) \ : DFmode), \ XEXP (OP, 0)) \ ! && !(GET_CODE (XEXP (OP, 0)) == LO_SUM \ ! && GET_CODE (XEXP (XEXP (OP, 0), 0)) == REG \ ! && REG_OK_FOR_BASE_P (XEXP (XEXP (OP, 0), 0))\ ! && GET_CODE (XEXP (XEXP (OP, 0), 1)) == UNSPEC\ ! && GET_MODE (XEXP (OP, 0)) == Pmode) \ && !(GET_CODE (XEXP (OP, 0)) == PLUS \ && (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\ || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT)))\ diff -Nrc3pad gcc-3.1/gcc/config/pa/pa.md gcc-3.1.1/gcc/config/pa/pa.md *** gcc-3.1/gcc/config/pa/pa.md Mon Feb 4 21:05:25 2002 --- gcc-3.1.1/gcc/config/pa/pa.md Thu Jul 11 18:22:02 2002 *************** *** 3653,3674 **** (define_expand "adddi3" [(set (match_operand:DI 0 "register_operand" "") (plus:DI (match_operand:DI 1 "register_operand" "") ! (match_operand:DI 2 "arith_operand" "")))] "" "") - ;; We allow arith_operand for operands2, even though strictly speaking it - ;; we would prefer to us arith11_operand since that's what the hardware - ;; can actually support. - ;; - ;; But the price of the extra reload in that case is worth the simplicity - ;; we get by allowing a trivial adddi3 expander to be used for both - ;; PA64 and PA32. - (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (plus:DI (match_operand:DI 1 "register_operand" "%r") ! (match_operand:DI 2 "arith_operand" "rI")))] "!TARGET_64BIT" "* { --- 3653,3666 ---- (define_expand "adddi3" [(set (match_operand:DI 0 "register_operand" "") (plus:DI (match_operand:DI 1 "register_operand" "") ! (match_operand:DI 2 "adddi3_operand" "")))] "" "") (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (plus:DI (match_operand:DI 1 "register_operand" "%r") ! (match_operand:DI 2 "arith11_operand" "rI")))] "!TARGET_64BIT" "* { diff -Nrc3pad gcc-3.1/gcc/config/rs6000/aix43.h gcc-3.1.1/gcc/config/rs6000/aix43.h *** gcc-3.1/gcc/config/rs6000/aix43.h Thu Feb 28 14:44:15 2002 --- gcc-3.1.1/gcc/config/rs6000/aix43.h Fri May 24 19:27:08 2002 *************** do { \ *** 186,203 **** #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{mpe:%{pg:/usr/lpp/ppe.poe/lib/gcrt0.o}\ ! %{!pg:%{p:/usr/lpp/ppe.poe/lib/mcrt0.o}\ ! %{!p:/usr/lpp/ppe.poe/lib/crt0.o}}}\ ! %{!mpe:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}}" /* AIX 4.3 typedefs ptrdiff_t as "long" while earlier releases used "int". */ --- 186,200 ---- #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\ ! %{mpe:-binitfini:poe_remote_main}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}" /* AIX 4.3 typedefs ptrdiff_t as "long" while earlier releases used "int". */ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/aix51.h gcc-3.1.1/gcc/config/rs6000/aix51.h *** gcc-3.1/gcc/config/rs6000/aix51.h Tue Mar 26 20:16:32 2002 --- gcc-3.1.1/gcc/config/rs6000/aix51.h Fri May 24 19:27:08 2002 *************** do { \ *** 189,206 **** #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{mpe:%{pg:/usr/lpp/ppe.poe/lib/gcrt0.o}\ ! %{!pg:%{p:/usr/lpp/ppe.poe/lib/mcrt0.o}\ ! %{!p:/usr/lpp/ppe.poe/lib/crt0.o}}}\ ! %{!mpe:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}}" /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */ --- 189,203 ---- #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\ ! %{mpe:-binitfini:poe_remote_main}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}" /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/altivec.h gcc-3.1.1/gcc/config/rs6000/altivec.h *** gcc-3.1/gcc/config/rs6000/altivec.h Wed Apr 24 10:59:40 2002 --- gcc-3.1.1/gcc/config/rs6000/altivec.h Sat May 18 05:40:16 2002 *************** Boston, MA 02111-1307, USA. */ *** 45,52 **** #define vector __vector #define bool signed ! #define pixel short ! #define __pixel short /* Dummy prototype. */ extern int __altivec_link_error_invalid_argument (); --- 45,52 ---- #define vector __vector #define bool signed ! #define pixel unsigned short ! #define __pixel unsigned short /* Dummy prototype. */ extern int __altivec_link_error_invalid_argument (); *************** extern int __altivec_link_error_invalid_ *** 122,134 **** inlined. */ inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline)); inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline)); inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline)); inline void vec_dss (const char) __attribute__ ((always_inline)); ! inline void vec_dst (void *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (void *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (void *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (void *, int, const char) __attribute__ ((always_inline)); inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline)); inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline)); --- 122,201 ---- inlined. */ inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline)); inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline)); + inline vector float vec_vcfsx (vector signed int a1, const char a2) __attribute__ ((always_inline)); + inline vector float vec_vcfux (vector unsigned int a1, const char a2) __attribute__ ((always_inline)); inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline)); inline void vec_dss (const char) __attribute__ ((always_inline)); ! ! inline void vec_dst (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (float *, int, const char) __attribute__ ((always_inline)); ! ! inline void vec_dstst (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (float *, int, const char) __attribute__ ((always_inline)); ! ! inline void vec_dststt (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (float *, int, const char) __attribute__ ((always_inline)); ! ! inline void vec_dstt (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (float *, int, const char) __attribute__ ((always_inline)); ! inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline)); inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline)); *************** inline vector signed int vec_splat_s32 ( *** 149,154 **** --- 216,228 ---- inline vector unsigned char vec_splat_u8 (const char) __attribute__ ((always_inline)); inline vector unsigned short vec_splat_u16 (const char) __attribute__ ((always_inline)); inline vector unsigned int vec_splat_u32 (const char) __attribute__ ((always_inline)); + inline vector float vec_vspltw (vector float a1, const char a2) __attribute__ ((always_inline)); + inline vector signed int vec_vspltw (vector signed int a1, const char a2) __attribute__ ((always_inline)); + inline vector unsigned int vec_vspltw (vector unsigned int a1, const char a2) __attribute__ ((always_inline)); + inline vector signed short vec_vsplth (vector signed short a1, const char a2) __attribute__ ((always_inline)); + inline vector unsigned short vec_vsplth (vector unsigned short a1, const char a2) __attribute__ ((always_inline)); + inline vector signed char vec_vspltb (vector signed char a1, const char a2) __attribute__ ((always_inline)); + inline vector unsigned char vec_vspltb (vector unsigned char a1, const char a2) __attribute__ ((always_inline)); /* vec_abs */ *************** vec_dssall () *** 1132,1138 **** /* vec_dst */ inline void ! vec_dst (void *a1, int a2, const char a3) { __builtin_altivec_dst ((void *) a1, a2, a3); } --- 1206,1302 ---- /* vec_dst */ inline void ! vec_dst (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (float *a1, int a2, const char a3) { __builtin_altivec_dst ((void *) a1, a2, a3); } *************** vec_dst (void *a1, int a2, const char a3 *** 1140,1146 **** /* vec_dstst */ inline void ! vec_dstst (void *a1, int a2, const char a3) { __builtin_altivec_dstst ((void *) a1, a2, a3); } --- 1304,1400 ---- /* vec_dstst */ inline void ! vec_dstst (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (float *a1, int a2, const char a3) { __builtin_altivec_dstst ((void *) a1, a2, a3); } *************** vec_dstst (void *a1, int a2, const char *** 1148,1154 **** /* vec_dststt */ inline void ! vec_dststt (void *a1, int a2, const char a3) { __builtin_altivec_dststt ((void *) a1, a2, a3); } --- 1402,1498 ---- /* vec_dststt */ inline void ! vec_dststt (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (float *a1, int a2, const char a3) { __builtin_altivec_dststt ((void *) a1, a2, a3); } *************** vec_dststt (void *a1, int a2, const char *** 1156,1162 **** /* vec_dstt */ inline void ! vec_dstt (void *a1, int a2, const char a3) { __builtin_altivec_dstt ((void *) a1, a2, a3); } --- 1500,1596 ---- /* vec_dstt */ inline void ! vec_dstt (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (float *a1, int a2, const char a3) { __builtin_altivec_dstt ((void *) a1, a2, a3); } *************** vec_ld (int a1, signed int *a2) *** 1203,1208 **** --- 1637,1648 ---- return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2); } + inline vector signed int + vec_ld (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2); + } + inline vector unsigned int vec_ld (int a1, vector unsigned int *a2) { *************** vec_ld (int a1, unsigned int *a2) *** 1215,1220 **** --- 1655,1666 ---- return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); } + inline vector unsigned int + vec_ld (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); + } + inline vector signed short vec_ld (int a1, vector signed short *a2) { *************** vec_lde (int a1, unsigned int *a2) *** 1307,1312 **** --- 1753,1770 ---- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); } + inline vector signed int + vec_lde (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); + } + + inline vector unsigned int + vec_lde (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); + } + /* vec_lvewx */ inline vector float *************** vec_lvewx (int a1, unsigned int *a2) *** 1327,1332 **** --- 1785,1802 ---- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); } + inline vector signed int + vec_lvewx (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); + } + + inline vector unsigned int + vec_lvewx (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); + } + /* vec_lvehx */ inline vector signed short *************** vec_ldl (int a1, signed int *a2) *** 1381,1386 **** --- 1851,1862 ---- return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); } + inline vector signed int + vec_ldl (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); + } + inline vector unsigned int vec_ldl (int a1, vector unsigned int *a2) { *************** vec_ldl (int a1, unsigned int *a2) *** 1393,1398 **** --- 1869,1880 ---- return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); } + inline vector unsigned int + vec_ldl (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); + } + inline vector signed short vec_ldl (int a1, vector signed short *a2) { *************** vec_lvsl (int a1, signed int *a2) *** 1488,1493 **** --- 1970,1987 ---- } inline vector unsigned char + vec_lvsl (int a1, unsigned long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); + } + + inline vector unsigned char + vec_lvsl (int a1, signed long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); + } + + inline vector unsigned char vec_lvsl (int a1, float *a2) { return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); *************** vec_lvsr (int a1, signed int *a2) *** 1532,1537 **** --- 2026,2043 ---- } inline vector unsigned char + vec_lvsr (int a1, unsigned long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); + } + + inline vector unsigned char + vec_lvsr (int a1, signed long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); + } + + inline vector unsigned char vec_lvsr (int a1, float *a2) { return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); *************** vec_vpkuhum (vector unsigned short a1, v *** 2557,2566 **** /* vec_packpx */ ! inline vector signed short vec_packpx (vector unsigned int a1, vector unsigned int a2) { ! return (vector signed short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2); } /* vec_packs */ --- 3063,3072 ---- /* vec_packpx */ ! inline vector unsigned short vec_packpx (vector unsigned int a1, vector unsigned int a2) { ! return (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2); } /* vec_packs */ *************** vec_unpackh (vector signed short a1) *** 4321,4326 **** --- 4827,4838 ---- return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1); } + inline vector unsigned int + vec_unpackh (vector unsigned short a1) + { + return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1); + } + /* vec_vupkhsh */ inline vector signed int *************** vec_vupkhsh (vector signed short a1) *** 4332,4338 **** /* vec_vupkhpx */ inline vector unsigned int ! vec_vupkhpx (vector signed short a1) { return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1); } --- 4844,4850 ---- /* vec_vupkhpx */ inline vector unsigned int ! vec_vupkhpx (vector unsigned short a1) { return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1); } *************** vec_unpackl (vector signed char a1) *** 4354,4360 **** } inline vector unsigned int ! vec_vupklpx (vector signed short a1) { return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1); } --- 4866,4872 ---- } inline vector unsigned int ! vec_unpackl (vector unsigned short a1) { return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1); } *************** vec_unpackl (vector signed short a1) *** 4365,4370 **** --- 4877,4890 ---- return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1); } + /* vec_vupklpx */ + + inline vector unsigned int + vec_vupklpx (vector unsigned short a1) + { + return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1); + } + /* vec_upklsh */ inline vector signed int *************** vec_all_ge (vector signed int a1, vector *** 4630,4636 **** inline int vec_all_ge (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2); } /* vec_all_gt */ --- 5150,5156 ---- inline int vec_all_ge (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_LT, a1, a2); } /* vec_all_gt */ *************** vec_any_le (vector signed int a1, vector *** 5326,5332 **** inline int vec_any_le (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1); } /* vec_any_lt */ --- 5846,5852 ---- inline int vec_any_le (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a2, a1); } /* vec_any_lt */ *************** struct __vec_step_help *** 5595,5601 **** static const int _S_elem = 4; }; ! #define vec_step(t) __vec_step_help::_S_elem #else /* not C++ */ --- 6115,6121 ---- static const int _S_elem = 4; }; ! #define vec_step(t) __vec_step_help::_S_elem #else /* not C++ */ *************** struct __vec_step_help *** 5623,5635 **** __altivec_link_error_invalid_argument ()))) #define vec_step(t) \ ! __ch (__builtin_types_compatible_p (t, vector signed int), 4, \ ! __ch (__builtin_types_compatible_p (t, vector unsigned int), 4, \ ! __ch (__builtin_types_compatible_p (t, vector signed short), 8, \ ! __ch (__builtin_types_compatible_p (t, vector unsigned short), 8, \ ! __ch (__builtin_types_compatible_p (t, vector signed char), 16, \ ! __ch (__builtin_types_compatible_p (t, vector unsigned char), 16, \ ! __ch (__builtin_types_compatible_p (t, vector float), 4, \ __altivec_link_error_invalid_argument ()))))))) #define vec_vaddubm(a1, a2) \ --- 6143,6155 ---- __altivec_link_error_invalid_argument ()))) #define vec_step(t) \ ! __ch (__builtin_types_compatible_p (typeof (t), vector signed int), 4, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector unsigned int), 4, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector signed short), 8, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector unsigned short), 8, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector signed char), 16, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector unsigned char), 16, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector float), 4, \ __altivec_link_error_invalid_argument ()))))))) #define vec_vaddubm(a1, a2) \ *************** __ch (__bin_args_eq (vector float, (a1), *** 5813,5820 **** ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \ ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ ! ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ --- 6333,6342 ---- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \ ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __ch (__bin_args_eq (vector signed int, (a1), vector float, (a2)), \ ! ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __ch (__bin_args_eq (vector float, (a1), vector signed int, (a2)), \ ! ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ *************** __ch (__bin_args_eq (vector unsigned int *** 5826,5834 **** __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \ ! ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \ ! ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \ --- 6348,6356 ---- __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \ ! ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \ ! ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \ *************** __ch (__bin_args_eq (vector signed char, *** 5851,5857 **** ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \ ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))) #define vec_avg(a1, a2) \ __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \ --- 6373,6379 ---- ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \ ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __altivec_link_error_invalid_argument ()))))))))))))))))))))))) #define vec_avg(a1, a2) \ __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \ *************** __ch (__bin_args_eq (vector unsigned int *** 6023,6039 **** ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())) #define vec_vcfsx(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ()) #define vec_vcfux(a1, a2) \ __ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ()) #define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2)) --- 6545,6569 ---- ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_vcfsx(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())) #define vec_vcfux(a1, a2) \ __ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())) #define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2)) *************** __ch (__bin_args_eq (vector unsigned int *** 6043,6251 **** #define vec_dssall() __builtin_altivec_dssall () ! #define vec_dst(a1, a2, a3) __builtin_altivec_dst ((a1), (a2), (a3)) ! #define vec_dstst(a1, a2, a3) __builtin_altivec_dstst ((a1), (a2), (a3)) ! #define vec_dststt(a1, a2, a3) __builtin_altivec_dststt ((a1), (a2), (a3)) ! #define vec_dstt(a1, a2, a3) __builtin_altivec_dstt ((a1), (a2), (a3)) #define vec_expte(a1) __builtin_altivec_vexptefp ((a1)) #define vec_floor(a1) __builtin_altivec_vrfim (a1) #define vec_ld(a, b) \ ! __ch (__un_args_eq (vector unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned char [], (b)), \ ! ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed char [], (b)), \ ! ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short [], (b)), \ ! ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed short [], (b)), \ ! ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed int *, (b)), \ ! ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector float *, (b)), \ ! ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector float [], (b)), \ ! ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))))))))) #define vec_lde(a, b) \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ! ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))) #define vec_lvewx(a, b) \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ! ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))) #define vec_lvehx(a, b) \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_lvebx(a, b) \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_ldl(a, b) \ ! __ch (__un_args_eq (vector unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned char [], (b)), \ ! ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed char [], (b)), \ ! ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short [], (b)), \ ! ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed short [], (b)), \ ! ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed int *, (b)), \ ! ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector float *, (b)), \ ! ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector float [], (b)), \ ! ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))))))))) #define vec_loge(a1) __builtin_altivec_vlogefp ((a1)) ! #define vec_lvsl(a1, a2) ((vector unsigned char) __builtin_altivec_lvsl ((a1), (a2))) ! #define vec_lvsr(a1, a2) ((vector unsigned char) __builtin_altivec_lvsr ((a1), (a2))) #define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3))) --- 6573,6883 ---- #define vec_dssall() __builtin_altivec_dssall () ! #define vec_dst(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) ! #define vec_dstst(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) ! #define vec_dststt(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) ! #define vec_dstt(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) #define vec_expte(a1) __builtin_altivec_vexptefp ((a1)) #define vec_floor(a1) __builtin_altivec_vrfim (a1) #define vec_ld(a, b) \ ! __ch (__un_args_eq (vector unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector float, *(b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) #define vec_lde(a, b) \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ()))))))))) #define vec_lvewx(a, b) \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ()))))) #define vec_lvehx(a, b) \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())) #define vec_lvebx(a, b) \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())) #define vec_ldl(a, b) \ ! __ch (__un_args_eq (vector unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector float, *(b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) #define vec_loge(a1) __builtin_altivec_vlogefp ((a1)) ! #define vec_lvsl(a1, a2) \ ! __ch (__un_args_eq (unsigned char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (float, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __altivec_link_error_invalid_argument ()))))))))) ! #define vec_lvsr(a1, a2) \ ! __ch (__un_args_eq (unsigned char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (float, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __altivec_link_error_invalid_argument ()))))))))) #define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3))) *************** __ch (__tern_args_eq (vector signed char *** 6524,6530 **** ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) ! #define vec_msumubm(a1, a2, a3) \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \ ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) --- 7156,7162 ---- ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) ! #define vec_vmsumubm(a1, a2, a3) \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \ ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) *************** __ch (__bin_args_eq (vector unsigned sho *** 6613,6619 **** ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ()) ! #define vec_mulosb(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \ ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ()) --- 7245,7251 ---- ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ()) ! #define vec_vmulosb(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \ ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ()) *************** __ch (__bin_args_eq (vector unsigned sho *** 6703,6709 **** ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ())) ! #define vec_packpx(a1, a2) __builtin_altivec_vpkpx ((a1), (a2)) #define vec_packs(a1, a2) \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ --- 7335,7344 ---- ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ())) ! #define vec_packpx(a1, a2) \ ! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ ! (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) (a1), (vector signed int) (a2)), \ ! __altivec_link_error_invalid_argument ()) #define vec_packs(a1, a2) \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ *************** __altivec_link_error_invalid_argument () *** 6886,6904 **** #define vec_sld(a1, a2, a3) \ __ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \ ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \ ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \ ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \ ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \ ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \ ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \ ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ ! __altivec_link_error_invalid_argument ()))))))) #define vec_sll(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ --- 7521,7553 ---- #define vec_sld(a1, a2, a3) \ __ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \ ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector float, (a1), vector float, (a2), unsigned int, (a3)), \ + ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \ ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), unsigned int, (a3)), \ + ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \ ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), unsigned int, (a3)), \ + ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \ ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), unsigned int, (a3)), \ + ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \ ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), unsigned int, (a3)), \ + ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \ ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), unsigned int, (a3)), \ + ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \ ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ ! __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), unsigned int, (a3)), \ ! ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ ! __altivec_link_error_invalid_argument ())))))))))))))) #define vec_sll(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ *************** __ch (__bin_args_eq (vector unsigned cha *** 6973,7014 **** #define vec_splat(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ()))))))) #define vec_vspltw(a1, a2) \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ()))) #define vec_vsplth(a1, a2) \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())) #define vec_vspltb(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())) #define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1)) --- 7622,7691 ---- #define vec_splat(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \ + ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \ + ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \ + ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \ + ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \ + ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \ + ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))))))))))))) #define vec_vspltw(a1, a2) \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \ + ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \ + ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))))) #define vec_vsplth(a1, a2) \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \ + ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_vspltb(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \ + ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1)) *************** __ch (__bin_args_eq (vector unsigned cha *** 7277,7283 **** ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ())))) ! #define vec_subc(a1, a2) ((vector unsigned int) __builtin_altivec_vsubcuw ((vector unsigned int) (a1), (vector unsigned int) (a2))) #define vec_subs(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \ --- 7954,7963 ---- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ())))) ! #define vec_subc(a1, a2) \ ! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ ! ((vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) (a1), (vector signed int) (a2))), \ ! __altivec_link_error_invalid_argument ()) #define vec_subs(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \ *************** __altivec_link_error_invalid_argument () *** 7381,7387 **** #define vec_unpackh(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \ --- 8061,8067 ---- #define vec_unpackh(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \ *************** __ch (__un_args_eq (vector signed short, *** 7393,7399 **** __altivec_link_error_invalid_argument ()) #define vec_vupkhpx(a1) \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) --- 8073,8079 ---- __altivec_link_error_invalid_argument ()) #define vec_vupkhpx(a1) \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) *************** __altivec_link_error_invalid_argument () *** 7405,7411 **** #define vec_unpackl(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \ --- 8085,8091 ---- #define vec_unpackl(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \ *************** __ch (__un_args_eq (vector signed short, *** 7417,7423 **** __altivec_link_error_invalid_argument ()) #define vec_vupklpx(a1) \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) --- 8097,8103 ---- __altivec_link_error_invalid_argument ()) #define vec_vupklpx(a1) \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) *************** __ch (__bin_args_eq (vector float, ((a1) *** 7433,7442 **** ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \ ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \ ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ - __ch (__bin_args_eq (vector unsigned int, ((a1)), vector unsigned int, ((a2))), \ - ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \ --- 8113,8124 ---- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \ ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ + __ch (__bin_args_eq (vector signed int, ((a1)), vector float, ((a2))), \ + ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ + __ch (__bin_args_eq (vector float, ((a1)), vector signed int, ((a2))), \ + ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \ ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \ *************** __ch (__bin_args_eq (vector unsigned int *** 7446,7454 **** __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \ ! ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \ ! ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \ --- 8128,8136 ---- __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \ ! ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \ ! ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \ *************** __ch (__bin_args_eq (vector unsigned cha *** 7470,7477 **** __ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \ ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \ ! ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))) /* Predicates. */ --- 8152,8159 ---- __ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \ ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \ ! ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ ! __altivec_link_error_invalid_argument ()))))))))))))))))))))))) /* Predicates. */ *************** __ch (__bin_args_eq (vector unsigned int *** 7530,7536 **** __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \ __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \ ! __builtin_altivec_vcmpgefp_p (__CR6_EQ, (vector float) (a1), (vector float) (a2)), \ __altivec_link_error_invalid_argument ()))))))))))))) #define vec_all_gt(a1, a2) \ --- 8212,8218 ---- __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \ __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \ ! __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \ __altivec_link_error_invalid_argument ()))))))))))))) #define vec_all_gt(a1, a2) \ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/linux64.h gcc-3.1.1/gcc/config/rs6000/linux64.h *** gcc-3.1/gcc/config/rs6000/linux64.h Mon Mar 18 19:16:17 2002 --- gcc-3.1.1/gcc/config/rs6000/linux64.h Wed Jun 5 04:02:27 2002 *************** do { \ *** 308,310 **** --- 308,329 ---- || (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ && ! TARGET_NO_FP_IN_TOC))))) + /* This is the same as the dbxelf.h version, except that we need to + use the function code label, not the function descriptor. */ + #undef ASM_OUTPUT_SOURCE_LINE + #define ASM_OUTPUT_SOURCE_LINE(FILE, LINE) \ + do \ + { \ + static int sym_lineno = 1; \ + char temp[256]; \ + ASM_GENERATE_INTERNAL_LABEL (temp, "LM", sym_lineno); \ + fprintf (FILE, "\t.stabn 68,0,%d,", LINE); \ + assemble_name (FILE, temp); \ + fputs ("-.", FILE); \ + assemble_name (FILE, \ + XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\ + putc ('\n', FILE); \ + ASM_OUTPUT_INTERNAL_LABEL (FILE, "LM", sym_lineno); \ + sym_lineno += 1; \ + } \ + while (0) diff -Nrc3pad gcc-3.1/gcc/config/rs6000/netbsd.h gcc-3.1.1/gcc/config/rs6000/netbsd.h *** gcc-3.1/gcc/config/rs6000/netbsd.h Sun Feb 17 01:20:31 2002 --- gcc-3.1.1/gcc/config/rs6000/netbsd.h Mon Jun 3 00:28:58 2002 *************** Boston, MA 02111-1307, USA. */ *** 60,70 **** #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (PowerPC NetBSD/ELF)"); - /* For backward compatibility, we must continue to use the AIX - structure return convention. */ - #undef DRAFT_V4_STRUCT_RET - #define DRAFT_V4_STRUCT_RET 1 - /* Use STABS debugging information by default. DWARF2 makes a mess of the 1.5.2 linker. */ #undef PREFERRED_DEBUGGING_TYPE --- 60,65 ---- diff -Nrc3pad gcc-3.1/gcc/config/rs6000/rs6000.c gcc-3.1.1/gcc/config/rs6000/rs6000.c *** gcc-3.1/gcc/config/rs6000/rs6000.c Mon Apr 22 01:04:49 2002 --- gcc-3.1.1/gcc/config/rs6000/rs6000.c Thu May 23 23:22:44 2002 *************** output_toc (file, x, labelno, mode) *** 10157,10164 **** if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", k[0], k[1]); ! fprintf (file, "0x%lx%08lx\n", k[0], k[1]); return; } else --- 10157,10166 ---- if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", ! k[0] & 0xffffffff, k[1] & 0xffffffff); ! fprintf (file, "0x%lx%08lx\n", ! k[0] & 0xffffffff, k[1] & 0xffffffff); return; } else *************** output_toc (file, x, labelno, mode) *** 10166,10173 **** if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", k[0], k[1]); ! fprintf (file, "0x%lx,0x%lx\n", k[0], k[1]); return; } } --- 10168,10177 ---- if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", ! k[0] & 0xffffffff, k[1] & 0xffffffff); ! fprintf (file, "0x%lx,0x%lx\n", ! k[0] & 0xffffffff, k[1] & 0xffffffff); return; } } *************** output_toc (file, x, labelno, mode) *** 10184,10191 **** if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l); ! fprintf (file, "0x%lx00000000\n", l); return; } else --- 10188,10195 ---- if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff); ! fprintf (file, "0x%lx00000000\n", l & 0xffffffff); return; } else *************** output_toc (file, x, labelno, mode) *** 10193,10200 **** if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l); ! fprintf (file, "0x%lx\n", l); return; } } --- 10197,10204 ---- if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff); ! fprintf (file, "0x%lx\n", l & 0xffffffff); return; } } *************** output_toc (file, x, labelno, mode) *** 10244,10251 **** if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long) high, (long) low); ! fprintf (file, "0x%lx%08lx\n", (long) high, (long) low); return; } else --- 10248,10257 ---- if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc ID_%lx_%lx[TC],", ! (long) high & 0xffffffff, (long) low & 0xffffffff); ! fprintf (file, "0x%lx%08lx\n", ! (long) high & 0xffffffff, (long) low & 0xffffffff); return; } else *************** output_toc (file, x, labelno, mode) *** 10256,10271 **** fputs ("\t.long ", file); else fprintf (file, "\t.tc ID_%lx_%lx[TC],", ! (long) high, (long) low); ! fprintf (file, "0x%lx,0x%lx\n", (long) high, (long) low); } else { if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc IS_%lx[TC],", (long) low); ! fprintf (file, "0x%lx\n", (long) low); } return; } --- 10262,10278 ---- fputs ("\t.long ", file); else fprintf (file, "\t.tc ID_%lx_%lx[TC],", ! (long) high & 0xffffffff, (long) low & 0xffffffff); ! fprintf (file, "0x%lx,0x%lx\n", ! (long) high & 0xffffffff, (long) low & 0xffffffff); } else { if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff); ! fprintf (file, "0x%lx\n", (long) low & 0xffffffff); } return; } diff -Nrc3pad gcc-3.1/gcc/config/rs6000/rs6000.h gcc-3.1.1/gcc/config/rs6000/rs6000.h *** gcc-3.1/gcc/config/rs6000/rs6000.h Fri May 10 06:25:31 2002 --- gcc-3.1.1/gcc/config/rs6000/rs6000.h Wed May 29 17:17:02 2002 *************** Boston, MA 02111-1307, USA. */ *** 105,112 **** %{mcpu=rsc: -mpwr} \ %{mcpu=rsc1: -mpwr} \ %{mcpu=401: -mppc} \ ! %{mcpu=403: -mppc} \ ! %{mcpu=405: -mppc} \ %{mcpu=505: -mppc} \ %{mcpu=601: -m601} \ %{mcpu=602: -mppc} \ --- 105,112 ---- %{mcpu=rsc: -mpwr} \ %{mcpu=rsc1: -mpwr} \ %{mcpu=401: -mppc} \ ! %{mcpu=403: -m403} \ ! %{mcpu=405: -m405} \ %{mcpu=505: -mppc} \ %{mcpu=601: -m601} \ %{mcpu=602: -mppc} \ *************** extern int toc_initialized; *** 2439,2450 **** do \ { \ fputs ("\t.weak\t", (FILE)); \ ! assemble_name ((FILE), (NAME)); \ if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL \ && DEFAULT_ABI == ABI_AIX) \ { \ fputs ("\n\t.weak\t.", (FILE)); \ ! assemble_name ((FILE), (NAME)); \ } \ fputc ('\n', (FILE)); \ if (VAL) \ --- 2439,2452 ---- do \ { \ fputs ("\t.weak\t", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL \ && DEFAULT_ABI == ABI_AIX) \ { \ + if (TARGET_XCOFF) \ + fputs ("[DS]", (FILE)); \ fputs ("\n\t.weak\t.", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ } \ fputc ('\n', (FILE)); \ if (VAL) \ *************** extern int toc_initialized; *** 2454,2462 **** && DEFAULT_ABI == ABI_AIX) \ { \ fputs ("\t.set\t.", (FILE)); \ ! assemble_name ((FILE), (NAME)); \ fputs (",.", (FILE)); \ ! assemble_name ((FILE), (VAL)); \ fputc ('\n', (FILE)); \ } \ } \ --- 2456,2464 ---- && DEFAULT_ABI == ABI_AIX) \ { \ fputs ("\t.set\t.", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ fputs (",.", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (VAL)); \ fputc ('\n', (FILE)); \ } \ } \ *************** extern int toc_initialized; *** 2479,2498 **** if (!RS6000_WEAK || !DECL_WEAK (DECL)) \ { \ fputs ("\t.globl\t.", FILE); \ ! assemble_name (FILE, alias); \ putc ('\n', FILE); \ } \ } \ else if (TARGET_XCOFF) \ { \ fputs ("\t.lglobl\t.", FILE); \ ! assemble_name (FILE, alias); \ putc ('\n', FILE); \ } \ fputs ("\t.set\t.", FILE); \ ! assemble_name (FILE, alias); \ fputs (",.", FILE); \ ! assemble_name (FILE, name); \ fputc ('\n', FILE); \ } \ ASM_OUTPUT_DEF (FILE, alias, name); \ --- 2481,2500 ---- if (!RS6000_WEAK || !DECL_WEAK (DECL)) \ { \ fputs ("\t.globl\t.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, alias); \ putc ('\n', FILE); \ } \ } \ else if (TARGET_XCOFF) \ { \ fputs ("\t.lglobl\t.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, alias); \ putc ('\n', FILE); \ } \ fputs ("\t.set\t.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, alias); \ fputs (",.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, name); \ fputc ('\n', FILE); \ } \ ASM_OUTPUT_DEF (FILE, alias, name); \ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/rs6000.md gcc-3.1.1/gcc/config/rs6000/rs6000.md *** gcc-3.1/gcc/config/rs6000/rs6000.md Sat May 4 23:12:24 2002 --- gcc-3.1.1/gcc/config/rs6000/rs6000.md Mon Jul 15 05:29:43 2002 *************** *** 5271,5279 **** (clobber (match_dup 4)) (clobber (match_dup 5)) (clobber (match_dup 6))])] ! "! TARGET_POWERPC64 && TARGET_HARD_FLOAT" " { operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503601774854144\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); --- 5271,5288 ---- (clobber (match_dup 4)) (clobber (match_dup 5)) (clobber (match_dup 6))])] ! "TARGET_HARD_FLOAT" " { + if (TARGET_POWERPC64) + { + rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); + rtx t1 = gen_reg_rtx (DImode); + rtx t2 = gen_reg_rtx (DImode); + emit_insn (gen_floatsidf_ppc64 (operands[0], operands[1], mem, t1, t2)); + DONE; + } + operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503601774854144\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); *************** *** 5338,5346 **** (use (match_dup 3)) (clobber (match_dup 4)) (clobber (match_dup 5))])] ! "! TARGET_POWERPC64 && TARGET_HARD_FLOAT" " { operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503599627370496\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); --- 5347,5365 ---- (use (match_dup 3)) (clobber (match_dup 4)) (clobber (match_dup 5))])] ! "TARGET_HARD_FLOAT" " { + if (TARGET_POWERPC64) + { + rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); + rtx t1 = gen_reg_rtx (DImode); + rtx t2 = gen_reg_rtx (DImode); + emit_insn (gen_floatunssidf_ppc64 (operands[0], operands[1], mem, + t1, t2)); + DONE; + } + operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503599627370496\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); *************** *** 5407,5413 **** (define_insn "*fix_truncdfsi2_internal" [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))) ! (clobber (match_operand:DI 2 "gpc_reg_operand" "=f")) (clobber (match_operand:DI 3 "memory_operand" "=o"))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "#" --- 5426,5432 ---- (define_insn "*fix_truncdfsi2_internal" [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))) ! (clobber (match_operand:DI 2 "gpc_reg_operand" "=*f")) (clobber (match_operand:DI 3 "memory_operand" "=o"))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "#" *************** *** 5443,5449 **** ; because the first makes it clear that operand 0 is not live ; before the instruction. (define_insn "fctiwz" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=f") (unspec:DI [(fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))] 10))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "{fcirz|fctiwz} %0,%1" --- 5462,5468 ---- ; because the first makes it clear that operand 0 is not live ; before the instruction. (define_insn "fctiwz" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=*f") (unspec:DI [(fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))] 10))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "{fcirz|fctiwz} %0,%1" *************** *** 5451,5463 **** (define_insn "floatdidf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") ! (float:DF (match_operand:DI 1 "gpc_reg_operand" "f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fcfid %0,%1" [(set_attr "type" "fp")]) (define_insn "fix_truncdfdi2" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=f") (fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fctidz %0,%1" --- 5470,5512 ---- (define_insn "floatdidf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") ! (float:DF (match_operand:DI 1 "gpc_reg_operand" "*f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fcfid %0,%1" [(set_attr "type" "fp")]) + (define_insn_and_split "floatsidf_ppc64" + [(set (match_operand:DF 0 "gpc_reg_operand" "=f") + (float:DF (match_operand:SI 1 "gpc_reg_operand" "r"))) + (clobber (match_operand:DI 2 "memory_operand" "=o")) + (clobber (match_operand:DI 3 "gpc_reg_operand" "=r")) + (clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))] + "TARGET_POWERPC64 && TARGET_HARD_FLOAT" + "#" + "" + [(set (match_dup 3) (sign_extend:DI (match_dup 1))) + (set (match_dup 2) (match_dup 3)) + (set (match_dup 4) (match_dup 2)) + (set (match_dup 0) (float:DF (match_dup 4)))] + "") + + (define_insn_and_split "floatunssidf_ppc64" + [(set (match_operand:DF 0 "gpc_reg_operand" "=f") + (unsigned_float:DF (match_operand:SI 1 "gpc_reg_operand" "r"))) + (clobber (match_operand:DI 2 "memory_operand" "=o")) + (clobber (match_operand:DI 3 "gpc_reg_operand" "=r")) + (clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))] + "TARGET_POWERPC64 && TARGET_HARD_FLOAT" + "#" + "" + [(set (match_dup 3) (zero_extend:DI (match_dup 1))) + (set (match_dup 2) (match_dup 3)) + (set (match_dup 4) (match_dup 2)) + (set (match_dup 0) (float:DF (match_dup 4)))] + "") + (define_insn "fix_truncdfdi2" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=*f") (fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fctidz %0,%1" *************** *** 13255,13269 **** (define_insn "*ctrdi_internal1" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13304,13318 ---- (define_insn "*ctrdi_internal1" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13275,13293 **** return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) (define_insn "*ctrdi_internal2" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13324,13342 ---- return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) (define_insn "*ctrdi_internal2" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13299,13305 **** return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) ;; Similar, but we can use GE since we have a REG_NONNEG. --- 13348,13354 ---- return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) ;; Similar, but we can use GE since we have a REG_NONNEG. *************** *** 13353,13367 **** (define_insn "*ctrdi_internal3" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 0)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { --- 13402,13416 ---- (define_insn "*ctrdi_internal3" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 0)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { *************** *** 13373,13391 **** return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) (define_insn "*ctrdi_internal4" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 0)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { --- 13422,13440 ---- return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) (define_insn "*ctrdi_internal4" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 0)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { *************** *** 13397,13403 **** return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) ;; Similar but use EQ --- 13446,13452 ---- return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) ;; Similar but use EQ *************** *** 13451,13465 **** (define_insn "*ctrdi_internal5" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13500,13514 ---- (define_insn "*ctrdi_internal5" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13471,13489 **** return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) (define_insn "*ctrdi_internal6" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13520,13538 ---- return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) (define_insn "*ctrdi_internal6" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13495,13501 **** return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) ;; Now the splitters if we could not allocate the CTR register --- 13544,13550 ---- return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) ;; Now the splitters if we could not allocate the CTR register *************** *** 13566,13572 **** (const_int -1))) (clobber (match_scratch:CC 3 "")) (clobber (match_scratch:DI 4 ""))] ! "TARGET_POWERPC64 && reload_completed && INT_REGNO_P (REGNO (operands[0]))" [(parallel [(set (match_dup 3) (compare:CC (plus:DI (match_dup 1) (const_int -1)) --- 13615,13621 ---- (const_int -1))) (clobber (match_scratch:CC 3 "")) (clobber (match_scratch:DI 4 ""))] ! "TARGET_POWERPC64 && reload_completed" [(parallel [(set (match_dup 3) (compare:CC (plus:DI (match_dup 1) (const_int -1)) *************** *** 13610,13653 **** { operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3], const0_rtx); }") - (define_split - [(set (pc) - (if_then_else (match_operator 2 "comparison_operator" - [(match_operand:DI 1 "gpc_reg_operand" "") - (const_int 1)]) - (match_operand 5 "" "") - (match_operand 6 "" ""))) - (set (match_operand:DI 0 "gpc_reg_operand" "") - (plus:DI (match_dup 1) - (const_int -1))) - (clobber (match_scratch:CC 3 "")) - (clobber (match_scratch:DI 4 ""))] - "TARGET_POWERPC64 && reload_completed && FP_REGNO_P (REGNO (operands[0]))" - [(set (match_dup 8) - (match_dup 1)) - (set (match_dup 4) - (match_dup 8)) - (parallel [(set (match_dup 3) - (compare:CC (plus:DI (match_dup 4) - (const_int -1)) - (const_int 0))) - (set (match_dup 4) - (plus:DI (match_dup 4) - (const_int -1)))]) - (set (match_dup 8) - (match_dup 4)) - (set (match_dup 0) - (match_dup 8)) - (set (pc) (if_then_else (match_dup 7) - (match_dup 5) - (match_dup 6)))] - " - { - operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3], - const0_rtx); - operands[8] = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); - }") - (define_insn "trap" [(trap_if (const_int 1) (const_int 0))] --- 13659,13664 ---- diff -Nrc3pad gcc-3.1/gcc/config/rs6000/xcoff.h gcc-3.1.1/gcc/config/rs6000/xcoff.h *** gcc-3.1/gcc/config/rs6000/xcoff.h Mon Mar 18 19:16:18 2002 --- gcc-3.1.1/gcc/config/rs6000/xcoff.h Fri May 24 19:27:09 2002 *************** toc_section () \ *** 457,462 **** --- 457,471 ---- /* This is how we tell the assembler that two symbols have the same value. */ #define SET_ASM_OP "\t.set " + /* This is how we tell the assembler to equate two values. */ + #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \ + do { fprintf ((FILE), "%s", SET_ASM_OP); \ + RS6000_OUTPUT_BASENAME (FILE, LABEL1); \ + fprintf (FILE, ","); \ + RS6000_OUTPUT_BASENAME (FILE, LABEL2); \ + fprintf (FILE, "\n"); \ + } while (0) + /* Used by rs6000_assemble_integer, among others. */ #define DOUBLE_INT_ASM_OP "\t.llong\t" diff -Nrc3pad gcc-3.1/gcc/config/s390/s390-protos.h gcc-3.1.1/gcc/config/s390/s390-protos.h *** gcc-3.1/gcc/config/s390/s390-protos.h Tue Apr 16 06:15:57 2002 --- gcc-3.1.1/gcc/config/s390/s390-protos.h Tue Jun 11 14:06:35 2002 *************** extern void s390_function_profiler PARAM *** 32,37 **** --- 32,38 ---- #ifdef RTX_CODE extern int const0_operand PARAMS ((rtx, enum machine_mode)); + extern int consttable_operand PARAMS ((rtx, enum machine_mode)); extern int larl_operand PARAMS ((rtx, enum machine_mode)); extern int fp_operand PARAMS ((rtx, enum machine_mode)); extern int s_operand PARAMS ((rtx, enum machine_mode)); *************** extern void s390_output_symbolic_const P *** 65,72 **** extern void print_operand_address PARAMS ((FILE *, rtx)); extern void print_operand PARAMS ((FILE *, rtx, int)); extern void s390_output_constant_pool PARAMS ((FILE *)); - extern int s390_stop_dump_lit_p PARAMS ((rtx)); - extern void s390_dump_literal_pool PARAMS ((rtx, rtx)); extern void s390_trampoline_template PARAMS ((FILE *)); extern void s390_initialize_trampoline PARAMS ((rtx, rtx, rtx)); extern rtx s390_gen_rtx_const_DI PARAMS ((int, int)); --- 66,71 ---- *************** extern rtx s390_simplify_dwarf_addr PARA *** 74,80 **** #endif /* RTX_CODE */ #ifdef TREE_CODE - extern void s390_asm_output_pool_prologue PARAMS ((FILE *, const char *, tree, int)); extern int s390_function_arg_pass_by_reference PARAMS ((enum machine_mode, tree)); extern void s390_function_arg_advance PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int)); extern tree s390_build_va_list PARAMS ((void)); --- 73,78 ---- diff -Nrc3pad gcc-3.1/gcc/config/s390/s390.c gcc-3.1.1/gcc/config/s390/s390.c *** gcc-3.1/gcc/config/s390/s390.c Thu Apr 25 20:06:51 2002 --- gcc-3.1.1/gcc/config/s390/s390.c Tue Jun 11 14:06:36 2002 *************** static int s390_decompose_address PARAMS *** 131,136 **** --- 131,138 ---- static int reg_used_in_mem_p PARAMS ((int, rtx)); static int addr_generation_dependency_p PARAMS ((rtx, rtx)); static void s390_split_branches PARAMS ((void)); + static void find_constant_pool_ref PARAMS ((rtx, rtx *)); + static void replace_constant_pool_ref PARAMS ((rtx *, rtx, rtx)); static void s390_chunkify_pool PARAMS ((void)); static int save_fprs_p PARAMS ((void)); static int find_unused_clobbered_reg PARAMS ((void)); *************** const0_operand (op, mode) *** 626,631 **** --- 628,645 ---- return op == CONST0_RTX (mode); } + /* Return true if OP is constant. + OP is the current operation. + MODE is the current operation mode. */ + + int + consttable_operand (op, mode) + rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; + { + return CONSTANT_P (op); + } + /* Return true if the mode of operand OP matches MODE. If MODE is set to VOIDmode, set it to the mode of OP. */ *************** legitimate_pic_operand_p (op) *** 996,1005 **** if (!SYMBOLIC_CONST (op)) return 1; - /* Accept immediate LARL operands. */ - if (TARGET_64BIT) - return larl_operand (op, VOIDmode); - /* Reject everything else; must be handled via emit_pic_move. */ return 0; --- 1010,1015 ---- *************** s390_decompose_address (addr, out, stric *** 1390,1395 **** --- 1400,1425 ---- pointer = TRUE; } + /* Accept chunkfied literal pool symbol references. */ + else if (GET_CODE (disp) == CONST + && GET_CODE (XEXP (disp, 0)) == MINUS + && GET_CODE (XEXP (XEXP (disp, 0), 0)) == LABEL_REF + && GET_CODE (XEXP (XEXP (disp, 0), 1)) == LABEL_REF) + { + pointer = TRUE; + } + + /* Likewise if a constant offset is present. */ + else if (GET_CODE (disp) == CONST + && GET_CODE (XEXP (disp, 0)) == PLUS + && GET_CODE (XEXP (XEXP (disp, 0), 1)) == CONST_INT + && GET_CODE (XEXP (XEXP (disp, 0), 0)) == MINUS + && GET_CODE (XEXP (XEXP (XEXP (disp, 0), 0), 0)) == LABEL_REF + && GET_CODE (XEXP (XEXP (XEXP (disp, 0), 0), 1)) == LABEL_REF) + { + pointer = TRUE; + } + /* We can convert literal pool addresses to displacements by basing them off the base register. */ else *************** s390_output_symbolic_const (file, x) *** 1939,1956 **** break; case CONST_INT: - output_addr_const (file, x); - break; - case LABEL_REF: case CODE_LABEL: - output_addr_const (file, x); - break; - case SYMBOL_REF: output_addr_const (file, x); - if (CONSTANT_POOL_ADDRESS_P (x) && s390_pool_count != 0) - fprintf (file, "_%X", s390_pool_count); break; case UNSPEC: --- 1969,1978 ---- *************** s390_output_symbolic_const (file, x) *** 1960,1967 **** { case 100: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "-.LT%X_%X", ! s390_function_count, s390_pool_count); break; case 110: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); --- 1982,1988 ---- { case 100: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "-.LT%X", s390_function_count); break; case 110: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); *************** s390_output_symbolic_const (file, x) *** 1981,1988 **** break; case 114: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "@PLT-.LT%X_%X", ! s390_function_count, s390_pool_count); break; default: output_operand_lossage ("invalid UNSPEC as operand (2)"); --- 2002,2008 ---- break; case 114: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "@PLT-.LT%X", s390_function_count); break; default: output_operand_lossage ("invalid UNSPEC as operand (2)"); *************** print_operand_address (file, addr) *** 2027,2034 **** 'C': print opcode suffix for branch condition. 'D': print opcode suffix for inverse branch condition. - 'Y': print current constant pool address (pc-relative). - 'y': print current constant pool address (absolute). 'O': print only the displacement of a memory reference. 'R': print only the base register of a memory reference. 'N': print the second word of a DImode operand. --- 2047,2052 ---- *************** print_operand (file, x, code) *** 2054,2067 **** fprintf (file, s390_branch_condition_mnemonic (x, TRUE)); return; - case 'Y': - fprintf (file, ".LT%X_%X-.", s390_function_count, s390_pool_count); - return; - - case 'y': - fprintf (file, ".LT%X_%X", s390_function_count, s390_pool_count); - return; - case 'O': { struct s390_address ad; --- 2072,2077 ---- *************** s390_adjust_priority (insn, priority) *** 2379,2438 **** } - /* Pool concept for Linux 390: - - Function prologue saves used register - - literal pool is dumped in prologue and jump across with bras - - If function has more than 4 k literals, at about every - S390_CHUNK_MAX offset in the function a literal pool will be - dumped - - in this case, a branch from one chunk to other chunk needs - a reload of base register at the code label branched to. */ - - /* Index of constant pool chunk that is currently being processed. - Set to -1 before function output has started. */ - int s390_pool_count = -1; - - /* First insn using the constant pool chunk that is currently being - processed. */ - rtx s390_pool_start_insn = NULL_RTX; - - /* Called from the ASM_OUTPUT_POOL_PROLOGUE macro to - prepare for printing a literal pool chunk to stdio stream FILE. - - FNAME and FNDECL specify the name and type of the current function. - SIZE is the size in bytes of the current literal pool. */ - - void - s390_asm_output_pool_prologue (file, fname, fndecl, size) - FILE *file; - const char *fname ATTRIBUTE_UNUSED; - tree fndecl; - int size ATTRIBUTE_UNUSED; - { - - if (s390_pool_count>0) { - /* - * We are in an internal pool, branch over - */ - if (TARGET_64BIT) - { - fprintf (file, "\tlarl\t%s,.LT%X_%X\n", - reg_names[BASE_REGISTER], - s390_function_count, s390_pool_count); - readonly_data_section (); - ASM_OUTPUT_ALIGN (file, floor_log2 (3)); - fprintf (file, ".LT%X_%X:\t# Pool %d\n", - s390_function_count, s390_pool_count, s390_pool_count); - } - else - fprintf (file,"\t.align 4\n\tbras\t%s,0f\n.LT%X_%X:\t# Pool %d \n", - reg_names[BASE_REGISTER], - s390_function_count, s390_pool_count, s390_pool_count); - } - if (!TARGET_64BIT) - function_section (fndecl); - } - /* Split all branches that exceed the maximum distance. */ static void --- 2389,2394 ---- *************** s390_split_branches (void) *** 2511,2572 **** } } /* Chunkify the literal pool if required. */ static void s390_chunkify_pool (void) { ! int *ltorg_uids, max_ltorg, chunk, last_addr, next_addr; rtx insn; /* Do we need to chunkify the literal pool? */ ! if (get_pool_size () <= S390_POOL_MAX) return; ! /* Find all insns where a literal pool chunk must be inserted. */ ! ! ltorg_uids = alloca (insn_current_address / 1024 + 1024); ! max_ltorg = 0; - last_addr = 0; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! if (INSN_ADDRESSES (INSN_UID (insn)) - last_addr < S390_CHUNK_MAX) continue; - if (INSN_ADDRESSES (INSN_UID (insn)) - last_addr > S390_CHUNK_OV) - abort (); ! if (GET_CODE (insn) == CODE_LABEL ! && !(GET_CODE (NEXT_INSN (insn)) == JUMP_INSN ! && (GET_CODE (PATTERN (NEXT_INSN (insn))) == ADDR_VEC ! || GET_CODE (PATTERN (NEXT_INSN (insn))) == ADDR_DIFF_VEC))) { ! ltorg_uids[max_ltorg++] = INSN_UID (prev_real_insn (insn)); ! last_addr = INSN_ADDRESSES (ltorg_uids[max_ltorg-1]); ! continue; ! } ! if (GET_CODE (insn) == CALL_INSN) { ! ltorg_uids[max_ltorg++] = INSN_UID (insn); ! last_addr = INSN_ADDRESSES (ltorg_uids[max_ltorg-1]); ! continue; } } ! ltorg_uids[max_ltorg] = -1; ! /* Find and mark all labels that are branched into from an insn belonging to a different chunk. */ ! chunk = last_addr = 0; ! next_addr = ltorg_uids[chunk] == -1 ? insn_current_address + 1 ! : INSN_ADDRESSES (ltorg_uids[chunk]); for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! if (GET_CODE (insn) == JUMP_INSN) { rtx pat = PATTERN (insn); if (GET_CODE (pat) == SET) --- 2467,2956 ---- } } + + /* Find a literal pool symbol referenced in RTX X, and store + it at REF. Will abort if X contains references to more than + one such pool symbol; multiple references to the same symbol + are allowed, however. + + The rtx pointed to by REF must be initialized to NULL_RTX + by the caller before calling this routine. */ + + static void + find_constant_pool_ref (x, ref) + rtx x; + rtx *ref; + { + int i, j; + const char *fmt; + + if (GET_CODE (x) == SYMBOL_REF + && CONSTANT_POOL_ADDRESS_P (x)) + { + if (*ref == NULL_RTX) + *ref = x; + else if (*ref != x) + abort(); + } + + fmt = GET_RTX_FORMAT (GET_CODE (x)); + for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) + { + if (fmt[i] == 'e') + { + find_constant_pool_ref (XEXP (x, i), ref); + } + else if (fmt[i] == 'E') + { + for (j = 0; j < XVECLEN (x, i); j++) + find_constant_pool_ref (XVECEXP (x, i, j), ref); + } + } + } + + /* Replace every reference to the literal pool symbol REF + in X by the address ADDR. Fix up MEMs as required. */ + + static void + replace_constant_pool_ref (x, ref, addr) + rtx *x; + rtx ref; + rtx addr; + { + int i, j; + const char *fmt; + + if (*x == ref) + abort (); + + /* Literal pool references can only occur inside a MEM ... */ + if (GET_CODE (*x) == MEM) + { + rtx memref = XEXP (*x, 0); + + if (memref == ref) + { + *x = replace_equiv_address (*x, addr); + return; + } + + if (GET_CODE (memref) == CONST + && GET_CODE (XEXP (memref, 0)) == PLUS + && GET_CODE (XEXP (XEXP (memref, 0), 1)) == CONST_INT + && XEXP (XEXP (memref, 0), 0) == ref) + { + HOST_WIDE_INT off = INTVAL (XEXP (XEXP (memref, 0), 1)); + *x = replace_equiv_address (*x, plus_constant (addr, off)); + return; + } + } + + /* ... or a load-address type pattern. */ + if (GET_CODE (*x) == SET) + { + rtx addrref = SET_SRC (*x); + + if (addrref == ref) + { + SET_SRC (*x) = addr; + return; + } + + if (GET_CODE (addrref) == CONST + && GET_CODE (XEXP (addrref, 0)) == PLUS + && GET_CODE (XEXP (XEXP (addrref, 0), 1)) == CONST_INT + && XEXP (XEXP (addrref, 0), 0) == ref) + { + HOST_WIDE_INT off = INTVAL (XEXP (XEXP (addrref, 0), 1)); + SET_SRC (*x) = plus_constant (addr, off); + return; + } + } + + fmt = GET_RTX_FORMAT (GET_CODE (*x)); + for (i = GET_RTX_LENGTH (GET_CODE (*x)) - 1; i >= 0; i--) + { + if (fmt[i] == 'e') + { + replace_constant_pool_ref (&XEXP (*x, i), ref, addr); + } + else if (fmt[i] == 'E') + { + for (j = 0; j < XVECLEN (*x, i); j++) + replace_constant_pool_ref (&XVECEXP (*x, i, j), ref, addr); + } + } + } + + /* We keep a list of constants we which we have to add to internal + constant tables in the middle of large functions. */ + + #define NR_C_MODES 6 + enum machine_mode constant_modes[NR_C_MODES] = + { + DFmode, DImode, + SFmode, SImode, + HImode, + QImode + }; + + rtx (*gen_consttable[NR_C_MODES])(rtx) = + { + gen_consttable_df, gen_consttable_di, + gen_consttable_sf, gen_consttable_si, + gen_consttable_hi, + gen_consttable_qi + }; + + struct constant + { + struct constant *next; + rtx value; + rtx label; + }; + + struct constant_pool + { + struct constant_pool *next; + rtx first_insn; + rtx last_insn; + + struct constant *constants[NR_C_MODES]; + rtx label; + int size; + }; + + static struct constant_pool *s390_start_pool PARAMS ((struct constant_pool **, rtx)); + static void s390_end_pool PARAMS ((struct constant_pool *, rtx)); + static struct constant_pool *s390_find_pool PARAMS ((struct constant_pool *, rtx)); + static rtx s390_add_pool PARAMS ((struct constant_pool *, rtx, enum machine_mode)); + static rtx s390_dump_pool PARAMS ((struct constant_pool *)); + static void s390_free_pool PARAMS ((struct constant_pool *)); + + /* Create new constant pool covering instructions starting at INSN + and chain it to the end of POOL_LIST. */ + + static struct constant_pool * + s390_start_pool (pool_list, insn) + struct constant_pool **pool_list; + rtx insn; + { + struct constant_pool *pool, **prev; + int i; + + pool = (struct constant_pool *) xmalloc (sizeof *pool); + pool->next = NULL; + for (i = 0; i < NR_C_MODES; i++) + pool->constants[i] = NULL; + + pool->label = gen_label_rtx (); + pool->first_insn = insn; + pool->last_insn = NULL_RTX; + pool->size = 0; + + for (prev = pool_list; *prev; prev = &(*prev)->next) + ; + *prev = pool; + + return pool; + } + + /* End range of instructions covered by POOL at INSN. */ + + static void + s390_end_pool (pool, insn) + struct constant_pool *pool; + rtx insn; + { + pool->last_insn = insn; + } + + /* Return pool out of POOL_LIST that covers INSN. */ + + static struct constant_pool * + s390_find_pool (pool_list, insn) + struct constant_pool *pool_list; + rtx insn; + { + int addr = INSN_ADDRESSES (INSN_UID (insn)); + struct constant_pool *pool; + + if (addr == -1) + return NULL; + + for (pool = pool_list; pool; pool = pool->next) + if (INSN_ADDRESSES (INSN_UID (pool->first_insn)) <= addr + && (pool->last_insn == NULL_RTX + || INSN_ADDRESSES (INSN_UID (pool->last_insn)) > addr)) + break; + + return pool; + } + + /* Add constant VAL of mode MODE to the constant pool POOL. + Return an RTX describing the distance from the start of + the pool to the location of the new constant. */ + + static rtx + s390_add_pool (pool, val, mode) + struct constant_pool *pool; + rtx val; + enum machine_mode mode; + { + struct constant *c; + rtx offset; + int i; + + for (i = 0; i < NR_C_MODES; i++) + if (constant_modes[i] == mode) + break; + if (i == NR_C_MODES) + abort (); + + for (c = pool->constants[i]; c != NULL; c = c->next) + if (rtx_equal_p (val, c->value)) + break; + + if (c == NULL) + { + c = (struct constant *) xmalloc (sizeof *c); + c->value = val; + c->label = gen_label_rtx (); + c->next = pool->constants[i]; + pool->constants[i] = c; + pool->size += GET_MODE_SIZE (mode); + } + + offset = gen_rtx_MINUS (Pmode, gen_rtx_LABEL_REF (Pmode, c->label), + gen_rtx_LABEL_REF (Pmode, pool->label)); + offset = gen_rtx_CONST (Pmode, offset); + return offset; + } + + /* Dump out the constants in POOL. */ + + static rtx + s390_dump_pool (pool) + struct constant_pool *pool; + { + struct constant *c; + rtx insn; + int i; + + /* Select location to put literal pool. */ + if (TARGET_64BIT) + insn = get_last_insn (); + else + insn = pool->last_insn? pool->last_insn : get_last_insn (); + + /* Pool start insn switches to proper section + and guarantees necessary alignment. */ + if (TARGET_64BIT) + insn = emit_insn_after (gen_pool_start_64 (), insn); + else + insn = emit_insn_after (gen_pool_start_31 (), insn); + INSN_ADDRESSES_NEW (insn, -1); + + insn = emit_label_after (pool->label, insn); + INSN_ADDRESSES_NEW (insn, -1); + + /* Dump constants in descending alignment requirement order, + ensuring proper alignment for every constant. */ + for (i = 0; i < NR_C_MODES; i++) + for (c = pool->constants[i]; c; c = c->next) + { + insn = emit_label_after (c->label, insn); + INSN_ADDRESSES_NEW (insn, -1); + insn = emit_insn_after (gen_consttable[i] (c->value), insn); + INSN_ADDRESSES_NEW (insn, -1); + } + + /* Pool end insn switches back to previous section + and guarantees necessary alignment. */ + if (TARGET_64BIT) + insn = emit_insn_after (gen_pool_end_64 (), insn); + else + insn = emit_insn_after (gen_pool_end_31 (), insn); + INSN_ADDRESSES_NEW (insn, -1); + + insn = emit_barrier_after (insn); + INSN_ADDRESSES_NEW (insn, -1); + + return insn; + } + + /* Free all memory used by POOL. */ + + static void + s390_free_pool (pool) + struct constant_pool *pool; + { + int i; + + for (i = 0; i < NR_C_MODES; i++) + { + struct constant *c = pool->constants[i]; + while (c != NULL) + { + struct constant *next = c->next; + free (c); + c = next; + } + } + + free (pool); + } + + /* Used in s390.md for branch length calculation. */ + int s390_pool_overflow = 0; + /* Chunkify the literal pool if required. */ + #define S390_POOL_CHUNK_MIN 0xc00 + #define S390_POOL_CHUNK_MAX 0xe00 + static void s390_chunkify_pool (void) { ! rtx base_reg = gen_rtx_REG (Pmode, ! TARGET_64BIT? BASE_REGISTER : RETURN_REGNUM); ! ! struct constant_pool *curr_pool = NULL, *pool_list = NULL; ! int extra_size = 0; ! bitmap far_labels; rtx insn; /* Do we need to chunkify the literal pool? */ ! if (get_pool_size () < S390_POOL_CHUNK_MAX) return; ! /* Scan all insns and move literals to pool chunks. ! Replace all occurrances of literal pool references ! by explicit references to pool chunk entries. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! if (GET_CODE (insn) == INSN) ! { ! rtx addr, pool_ref = NULL_RTX; ! find_constant_pool_ref (PATTERN (insn), &pool_ref); ! if (pool_ref) ! { ! if (!curr_pool) ! curr_pool = s390_start_pool (&pool_list, insn); ! ! addr = s390_add_pool (curr_pool, get_pool_constant (pool_ref), ! get_pool_mode (pool_ref)); ! ! addr = gen_rtx_PLUS (Pmode, base_reg, addr); ! replace_constant_pool_ref (&PATTERN (insn), pool_ref, addr); ! INSN_CODE (insn) = -1; ! } ! } ! ! if (!curr_pool ! || INSN_ADDRESSES_SIZE () <= (size_t) INSN_UID (insn) ! || INSN_ADDRESSES (INSN_UID (insn)) == -1) continue; ! if (TARGET_64BIT) { ! if (curr_pool->size < S390_POOL_CHUNK_MAX) ! continue; ! s390_end_pool (curr_pool, insn); ! curr_pool = NULL; ! } ! else { ! int chunk_size = INSN_ADDRESSES (INSN_UID (insn)) ! - INSN_ADDRESSES (INSN_UID (curr_pool->first_insn)) ! + extra_size; ! ! /* We will later have to insert base register reload insns. ! Those will have an effect on code size, which we need to ! consider here. This calculation makes rather pessimistic ! worst-case assumptions. */ ! if (GET_CODE (insn) == CODE_LABEL ! || GET_CODE (insn) == JUMP_INSN) ! extra_size += 6; ! else if (GET_CODE (insn) == CALL_INSN) ! extra_size += 4; ! ! if (chunk_size < S390_POOL_CHUNK_MIN ! && curr_pool->size < S390_POOL_CHUNK_MIN) ! continue; ! ! /* Pool chunks can only be inserted after BARRIERs ... */ ! if (GET_CODE (insn) == BARRIER) ! { ! s390_end_pool (curr_pool, insn); ! curr_pool = NULL; ! extra_size = 0; ! } ! ! /* ... so if we don't find one in time, create one. */ ! else if ((chunk_size > S390_POOL_CHUNK_MAX ! || curr_pool->size > S390_POOL_CHUNK_MAX) ! && (GET_CODE (insn) == INSN || GET_CODE (insn) == CALL_INSN)) ! { ! int addr = INSN_ADDRESSES (INSN_UID (insn)); ! rtx label, jump, barrier; ! ! label = gen_label_rtx (); ! jump = emit_jump_insn_after (gen_jump (label), insn); ! barrier = emit_barrier_after (jump); ! insn = emit_label_after (label, barrier); ! JUMP_LABEL (jump) = label; ! LABEL_NUSES (label) = 1; ! ! INSN_ADDRESSES_NEW (jump, addr+1); ! INSN_ADDRESSES_NEW (barrier, addr+1); ! INSN_ADDRESSES_NEW (insn, -1); ! ! s390_end_pool (curr_pool, barrier); ! curr_pool = NULL; ! extra_size = 0; ! } } } ! /* Dump out all literal pools. */ ! for (curr_pool = pool_list; curr_pool; curr_pool = curr_pool->next) ! s390_dump_pool (curr_pool); ! ! ! /* Find all labels that are branched into from an insn belonging to a different chunk. */ ! far_labels = BITMAP_XMALLOC (); for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! /* Labels marked with LABEL_PRESERVE_P can be target ! of non-local jumps, so we have to mark them. ! The same holds for named labels. ! ! Don't do that, however, if it is the label before ! a jump table. */ ! ! if (GET_CODE (insn) == CODE_LABEL ! && (LABEL_PRESERVE_P (insn) || LABEL_NAME (insn))) ! { ! rtx vec_insn = next_real_insn (insn); ! rtx vec_pat = vec_insn && GET_CODE (vec_insn) == JUMP_INSN ? ! PATTERN (vec_insn) : NULL_RTX; ! if (!vec_pat ! || !(GET_CODE (vec_pat) == ADDR_VEC ! || GET_CODE (vec_pat) == ADDR_DIFF_VEC)) ! bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (insn)); ! } ! ! /* If we have a direct jump (conditional or unconditional) ! or a casesi jump, check all potential targets. */ ! else if (GET_CODE (insn) == JUMP_INSN) { rtx pat = PATTERN (insn); if (GET_CODE (pat) == SET) *************** s390_chunkify_pool (void) *** 2587,2698 **** if (label) { ! if (INSN_ADDRESSES (INSN_UID (label)) <= last_addr ! || INSN_ADDRESSES (INSN_UID (label)) > next_addr) ! SYMBOL_REF_USED (label) = 1; } } ! else if (GET_CODE (pat) == ADDR_VEC ! || GET_CODE (pat) == ADDR_DIFF_VEC) ! { ! int i, diff_p = GET_CODE (pat) == ADDR_DIFF_VEC; ! ! for (i = 0; i < XVECLEN (pat, diff_p); i++) ! { ! rtx label = XEXP (XVECEXP (pat, diff_p, i), 0); ! if (INSN_ADDRESSES (INSN_UID (label)) <= last_addr ! || INSN_ADDRESSES (INSN_UID (label)) > next_addr) ! SYMBOL_REF_USED (label) = 1; ! } ! } ! } ! if (INSN_UID (insn) == ltorg_uids[chunk]) ! { ! last_addr = INSN_ADDRESSES (ltorg_uids[chunk++]); ! next_addr = ltorg_uids[chunk] == -1 ? insn_current_address + 1 ! : INSN_ADDRESSES (ltorg_uids[chunk]); } } ! /* Insert literal pools and base register reload insns. */ - chunk = 0; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! { ! if (INSN_UID (insn) == ltorg_uids[chunk]) ! { ! rtx new_insn = gen_ltorg (GEN_INT (chunk++)); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } - if (GET_CODE (insn) == CODE_LABEL && SYMBOL_REF_USED (insn)) - { - rtx new_insn = gen_reload_base (insn); - INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); - } - } /* Recompute insn addresses. */ init_insn_lengths (); shorten_branches (get_insns ()); ! } ! ! /* Return true if INSN is a 'ltorg' insn. */ ! ! int ! s390_stop_dump_lit_p (insn) ! rtx insn; ! { ! rtx body=PATTERN (insn); ! if (GET_CODE (body) == PARALLEL ! && GET_CODE (XVECEXP (body, 0, 0)) == SET ! && GET_CODE (XVECEXP (body, 0, 1)) == USE ! && GET_CODE (XEXP ((XVECEXP (body, 0, 1)),0)) == CONST_INT ! && GET_CODE (SET_DEST (XVECEXP (body, 0, 0))) == REG ! && REGNO (SET_DEST (XVECEXP (body, 0, 0))) == BASE_REGISTER ! && SET_SRC (XVECEXP (body, 0, 0)) == pc_rtx) { ! return 1; ! } ! else ! return 0; ! } ! /* Output literal pool chunk to be used for insns ! between insn ACT_INSN and the insn with UID STOP. */ ! void ! s390_dump_literal_pool (act_insn, stop) ! rtx act_insn; ! rtx stop; ! { ! s390_pool_start_insn = act_insn; ! s390_pool_count++; ! output_constant_pool (current_function_name, current_function_decl); ! function_section (current_function_decl); ! } - /* Number of elements of current constant pool. */ - int s390_nr_constants; ! /* Return true if floating point registers need to be saved. */ ! static int ! save_fprs_p () ! { ! int i; ! if (!TARGET_64BIT) ! return 0; ! for (i=24; i<=31; i++) { ! if (regs_ever_live[i] == 1) ! return 1; } ! return 0; } /* Output main constant pool to stdio stream FILE. */ void --- 2971,3110 ---- if (label) { ! if (s390_find_pool (pool_list, label) ! != s390_find_pool (pool_list, insn)) ! bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label)); } } ! else if (GET_CODE (pat) == PARALLEL ! && XVECLEN (pat, 0) == 2 ! && GET_CODE (XVECEXP (pat, 0, 0)) == SET ! && GET_CODE (XVECEXP (pat, 0, 1)) == USE ! && GET_CODE (XEXP (XVECEXP (pat, 0, 1), 0)) == LABEL_REF) ! { ! /* Find the jump table used by this casesi jump. */ ! rtx vec_label = XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0); ! rtx vec_insn = next_real_insn (vec_label); ! rtx vec_pat = vec_insn && GET_CODE (vec_insn) == JUMP_INSN ? ! PATTERN (vec_insn) : NULL_RTX; ! if (vec_pat ! && (GET_CODE (vec_pat) == ADDR_VEC ! || GET_CODE (vec_pat) == ADDR_DIFF_VEC)) ! { ! int i, diff_p = GET_CODE (vec_pat) == ADDR_DIFF_VEC; ! for (i = 0; i < XVECLEN (vec_pat, diff_p); i++) ! { ! rtx label = XEXP (XVECEXP (vec_pat, diff_p, i), 0); ! if (s390_find_pool (pool_list, label) ! != s390_find_pool (pool_list, insn)) ! bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label)); ! } ! } ! } } } ! /* Insert base register reload insns before every pool. */ ! ! for (curr_pool = pool_list; curr_pool; curr_pool = curr_pool->next) ! if (TARGET_64BIT) ! { ! rtx pool_ref = gen_rtx_LABEL_REF (Pmode, curr_pool->label); ! rtx new_insn = gen_rtx_SET (Pmode, base_reg, pool_ref); ! rtx insn = curr_pool->first_insn; ! INSN_ADDRESSES_NEW (emit_insn_before (new_insn, insn), -1); ! } ! else ! { ! rtx new_insn = gen_reload_base (base_reg, curr_pool->label); ! rtx insn = curr_pool->first_insn; ! INSN_ADDRESSES_NEW (emit_insn_before (new_insn, insn), -1); ! } ! ! /* Insert base register reload insns at every far label. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! if (GET_CODE (insn) == CODE_LABEL ! && bitmap_bit_p (far_labels, CODE_LABEL_NUMBER (insn))) ! { ! struct constant_pool *pool = s390_find_pool (pool_list, insn); ! if (pool) ! { ! if (TARGET_64BIT) ! { ! rtx pool_ref = gen_rtx_LABEL_REF (Pmode, pool->label); ! rtx new_insn = gen_rtx_SET (Pmode, base_reg, pool_ref); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! else ! { ! rtx new_insn = gen_reload_base (base_reg, pool->label); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! } ! } ! ! /* Insert base register reload insns after every call if necessary. */ ! ! if (REGNO (base_reg) == RETURN_REGNUM) ! for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! if (GET_CODE (insn) == CALL_INSN) ! { ! struct constant_pool *pool = s390_find_pool (pool_list, insn); ! if (pool) ! { ! rtx new_insn = gen_reload_base2 (base_reg, pool->label); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! } /* Recompute insn addresses. */ + s390_pool_overflow = 1; init_insn_lengths (); shorten_branches (get_insns ()); ! s390_pool_overflow = 0; ! /* Insert base register reload insns after far branches. */ ! if (!TARGET_64BIT) ! for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! if (GET_CODE (insn) == JUMP_INSN ! && GET_CODE (PATTERN (insn)) == SET ! && get_attr_length (insn) >= 12) ! { ! struct constant_pool *pool = s390_find_pool (pool_list, insn); ! if (pool) ! { ! rtx new_insn = gen_reload_base (base_reg, pool->label); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! } ! /* Free all memory. */ ! while (pool_list) { ! struct constant_pool *next = pool_list->next; ! s390_free_pool (pool_list); ! pool_list = next; } ! ! BITMAP_XFREE (far_labels); } + + /* Index of constant pool chunk that is currently being processed. + Set to -1 before function output has started. */ + int s390_pool_count = -1; + + /* Number of elements of current constant pool. */ + int s390_nr_constants; + /* Output main constant pool to stdio stream FILE. */ void *************** s390_output_constant_pool (file) *** 2702,2729 **** /* Output constant pool. */ if (s390_nr_constants) { - s390_pool_count = 0; if (TARGET_64BIT) { ! fprintf (file, "\tlarl\t%s,.LT%X_%X\n", reg_names[BASE_REGISTER], ! s390_function_count, s390_pool_count); readonly_data_section (); ! ASM_OUTPUT_ALIGN (file, floor_log2 (3)); } else { ! fprintf (file, "\tbras\t%s,.LTN%X_%X\n", reg_names[BASE_REGISTER], ! s390_function_count, s390_pool_count); } ! fprintf (file, ".LT%X_%X:\n", s390_function_count, s390_pool_count); output_constant_pool (current_function_name, current_function_decl); ! fprintf (file, ".LTN%X_%X:\n", s390_function_count, ! s390_pool_count); if (TARGET_64BIT) function_section (current_function_decl); } } /* Find first call clobbered register unsused in a function. This could be used as base register in a leaf function or for holding the return address before epilogue. */ --- 3114,3161 ---- /* Output constant pool. */ if (s390_nr_constants) { if (TARGET_64BIT) { ! fprintf (file, "\tlarl\t%s,.LT%X\n", reg_names[BASE_REGISTER], ! s390_function_count); readonly_data_section (); ! ASM_OUTPUT_ALIGN (file, 3); } else { ! fprintf (file, "\tbras\t%s,.LTN%X\n", reg_names[BASE_REGISTER], ! s390_function_count); } ! fprintf (file, ".LT%X:\n", s390_function_count); ! ! s390_pool_count = 0; output_constant_pool (current_function_name, current_function_decl); ! s390_pool_count = -1; ! if (TARGET_64BIT) function_section (current_function_decl); + else + fprintf (file, ".LTN%X:\n", s390_function_count); } } + + /* Return true if floating point registers need to be saved. */ + + static int + save_fprs_p () + { + int i; + if (!TARGET_64BIT) + return 0; + for (i=24; i<=31; i++) + { + if (regs_ever_live[i] == 1) + return 1; + } + return 0; + } + /* Find first call clobbered register unsused in a function. This could be used as base register in a leaf function or for holding the return address before epilogue. */ *************** s390_frame_info (frame) *** 2769,2774 **** --- 3201,3212 ---- if (frame->frame_size > 0) regs_ever_live[STACK_POINTER_REGNUM] = 1; + /* If the literal pool might overflow, the return register might + be used as temp literal pointer. */ + + if (!TARGET_64BIT && get_pool_size () >= S390_POOL_CHUNK_MAX / 2) + regs_ever_live[RETURN_REGNUM] = 1; + /* If there is (possibly) any pool entry, we need to load base register. */ *************** s390_function_epilogue (file, lsize) *** 2890,2897 **** HOST_WIDE_INT lsize ATTRIBUTE_UNUSED; { current_function_uses_pic_offset_table = 0; - s390_pool_start_insn = NULL_RTX; - s390_pool_count = -1; s390_function_count++; } --- 3328,3333 ---- *************** s390_emit_prologue () *** 2912,2918 **** /* Choose best register to use for temp use within prologue. */ if (frame.return_reg_saved_p ! && !has_hard_reg_initial_val (Pmode, RETURN_REGNUM)) temp_reg = gen_rtx_REG (Pmode, RETURN_REGNUM); else temp_reg = gen_rtx_REG (Pmode, 1); --- 3348,3355 ---- /* Choose best register to use for temp use within prologue. */ if (frame.return_reg_saved_p ! && !has_hard_reg_initial_val (Pmode, RETURN_REGNUM) ! && get_pool_size () < S390_POOL_CHUNK_MAX / 2) temp_reg = gen_rtx_REG (Pmode, RETURN_REGNUM); else temp_reg = gen_rtx_REG (Pmode, 1); *************** s390_emit_epilogue () *** 3208,3220 **** frame_off = force_const_mem (Pmode, frame_off); insn = emit_insn (gen_add2_insn (frame_pointer, frame_off)); - RTX_FRAME_RELATED_P (insn) = 1; - REG_NOTES (insn) = - gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, - gen_rtx_SET (VOIDmode, frame_pointer, - gen_rtx_PLUS (Pmode, frame_pointer, - GEN_INT (frame.frame_size - offset))), - REG_NOTES (insn)); } /* Restore call saved fprs. */ --- 3645,3650 ---- diff -Nrc3pad gcc-3.1/gcc/config/s390/s390.h gcc-3.1.1/gcc/config/s390/s390.h *** gcc-3.1/gcc/config/s390/s390.h Tue Apr 16 06:15:58 2002 --- gcc-3.1.1/gcc/config/s390/s390.h Tue Jun 11 14:06:37 2002 *************** extern struct rtx_def *s390_compare_op0, *** 1309,1314 **** --- 1309,1316 ---- {"load_multiple_operation", {PARALLEL}}, \ {"store_multiple_operation", {PARALLEL}}, \ {"const0_operand", { CONST_INT, CONST_DOUBLE }}, \ + {"consttable_operand", { SYMBOL_REF, LABEL_REF, CONST, \ + CONST_INT, CONST_DOUBLE }}, \ {"s390_plus_operand", { PLUS }}, *************** extern struct rtx_def *s390_compare_op0, *** 1327,1346 **** /* Constant Pool for all symbols operands which are changed with force_const_mem during insn generation (expand_insn). */ - extern struct rtx_def *s390_pool_start_insn; extern int s390_pool_count; extern int s390_nr_constants; ! ! /* Function is splitted in chunk, if literal pool could overflow ! Value need to be lowered, if problems with displacement overflow. */ ! ! #define S390_CHUNK_MAX 0xe00 ! #define S390_CHUNK_OV 0x1000 ! #define S390_POOL_MAX 0xe00 #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, fndecl, size) \ { \ - register rtx insn; \ struct pool_constant *pool; \ \ if (s390_pool_count == -1) \ --- 1329,1340 ---- /* Constant Pool for all symbols operands which are changed with force_const_mem during insn generation (expand_insn). */ extern int s390_pool_count; extern int s390_nr_constants; ! extern int s390_pool_overflow; #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, fndecl, size) \ { \ struct pool_constant *pool; \ \ if (s390_pool_count == -1) \ *************** extern int s390_nr_constants; *** 1350,1402 **** if (pool->mark) s390_nr_constants++; \ return; \ } \ - if (first_pool == 0) { \ - s390_asm_output_pool_prologue (FILE, FUNNAME, fndecl, size); \ - return; \ - } \ - for (pool = first_pool; pool; pool = pool->next) \ - pool->mark = 0; \ - \ - insn = s390_pool_start_insn; \ - \ - if (insn==NULL_RTX) \ - insn = get_insns (); \ - else \ - insn = NEXT_INSN (insn); \ - for (; insn; insn = NEXT_INSN (insn)) { \ - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') { \ - if (s390_stop_dump_lit_p (insn)) { \ - mark_constants (PATTERN (insn)); \ - break; \ - } else \ - mark_constants (PATTERN (insn)); \ - } \ - } \ - \ - /* Mark entries referenced by other entries */ \ - for (pool = first_pool; pool; pool = pool->next) \ - if (pool->mark) \ - mark_constants (pool->constant); \ - \ - s390_asm_output_pool_prologue (FILE, FUNNAME, fndecl, size); \ } - /* We need to return, because otherwise the pool is deleted of the - constant pool after the first output. */ - - #define ASM_OUTPUT_POOL_EPILOGUE(FILE, FUNNAME, fndecl, size) return; - #define ASM_OUTPUT_SPECIAL_POOL_ENTRY(FILE, EXP, MODE, ALIGN, LABELNO, WIN) \ { \ ! if ((s390_pool_count == 0) || (s390_pool_count > 0 && LABELNO >= 0)) \ ! { \ ! fprintf (FILE, ".LC%d:\n", LABELNO); \ ! LABELNO = ~LABELNO; \ ! } \ ! if (s390_pool_count > 0) \ ! { \ ! fprintf (FILE, ".LC%d_%X:\n", ~LABELNO, s390_pool_count); \ ! } \ \ /* Output the value of the constant itself. */ \ switch (GET_MODE_CLASS (MODE)) \ --- 1344,1354 ---- if (pool->mark) s390_nr_constants++; \ return; \ } \ } #define ASM_OUTPUT_SPECIAL_POOL_ENTRY(FILE, EXP, MODE, ALIGN, LABELNO, WIN) \ { \ ! fprintf (FILE, ".LC%d:\n", LABELNO); \ \ /* Output the value of the constant itself. */ \ switch (GET_MODE_CLASS (MODE)) \ diff -Nrc3pad gcc-3.1/gcc/config/s390/s390.md gcc-3.1.1/gcc/config/s390/s390.md *** gcc-3.1/gcc/config/s390/s390.md Tue Apr 16 12:35:43 2002 --- gcc-3.1.1/gcc/config/s390/s390.md Tue Jun 11 14:49:17 2002 *************** *** 947,954 **** (set_attr "atype" "mem")]) (define_insn "*movdi_64" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,m,f,f,m") ! (match_operand:DI 1 "general_operand" "d,m,d,f,m,f"))] "TARGET_64BIT" "@ lgr\\t%0,%1 --- 947,954 ---- (set_attr "atype" "mem")]) (define_insn "*movdi_64" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m") ! (match_operand:DI 1 "general_operand" "d,m,d,*f,m,*f"))] "TARGET_64BIT" "@ lgr\\t%0,%1 *************** *** 961,968 **** (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdi_31" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,Q,d,m,f,f,m") ! (match_operand:DI 1 "general_operand" "Q,d,dKm,d,f,m,f"))] "!TARGET_64BIT" "@ lm\\t%0,%N0,%1 --- 961,968 ---- (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdi_31" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,Q,d,m,!*f,!*f,!m") ! (match_operand:DI 1 "general_operand" "Q,d,dKm,d,*f,m,*f"))] "!TARGET_64BIT" "@ lm\\t%0,%N0,%1 *************** *** 1100,1107 **** (set_attr "atype" "mem")]) (define_insn "*movsi" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,m,f,f,m") ! (match_operand:SI 1 "general_operand" "d,m,d,f,m,f"))] "" "@ lr\\t%0,%1 --- 1100,1107 ---- (set_attr "atype" "mem")]) (define_insn "*movsi" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m") ! (match_operand:SI 1 "general_operand" "d,m,d,*f,m,*f"))] "" "@ lr\\t%0,%1 *************** *** 5672,5677 **** --- 5672,5680 ---- (const_int 4) (ne (symbol_ref "TARGET_64BIT") (const_int 0)) (const_int 6) + (ne (symbol_ref "s390_pool_overflow") (const_int 0)) + (if_then_else (eq (symbol_ref "flag_pic") (const_int 0)) + (const_int 12) (const_int 14)) (eq (symbol_ref "flag_pic") (const_int 0)) (const_int 6)] (const_int 8)))]) *************** *** 5721,5726 **** --- 5724,5732 ---- (const_int 4) (ne (symbol_ref "TARGET_64BIT") (const_int 0)) (const_int 6) + (ne (symbol_ref "s390_pool_overflow") (const_int 0)) + (if_then_else (eq (symbol_ref "flag_pic") (const_int 0)) + (const_int 12) (const_int 14)) (eq (symbol_ref "flag_pic") (const_int 0)) (const_int 6)] (const_int 8)))]) *************** *** 6380,6412 **** ; Special literal pool access instruction pattern(s). ; ! (define_insn "reload_base" ! [(parallel [(set (reg 13) (pc)) ! (use (label_ref (match_operand 0 "" "")))])] "" "* { ! if (TARGET_64BIT) ! return \"larl\\t13,%y0\"; ! else ! return \"basr\\t13,0\;ahi\\t13,%Y0\"; }" ! [(set_attr "op_type" "NN") ! (set_attr "type" "la") ! (set_attr "length" "8")]) ! (define_insn "ltorg" ! [(parallel [(set (reg 13) (pc)) ! (use (match_operand:SI 0 "const_int_operand" ""))])] "" "* { ! s390_dump_literal_pool (insn, operands[0]); ! return \"0:\"; }" [(set_attr "op_type" "NN") ! (set_attr "type" "other") ! (set_attr "length" "4096")]) ;; ;; Insns related to generating the function prologue and epilogue. --- 6386,6518 ---- ; Special literal pool access instruction pattern(s). ; ! (define_insn "consttable_qi" ! [(unspec_volatile [(match_operand:QI 0 "consttable_operand" "X")] 200)] "" "* { ! assemble_integer (operands[0], 1, BITS_PER_UNIT, 1); ! return \"\"; }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "1")]) ! (define_insn "consttable_hi" ! [(unspec_volatile [(match_operand:HI 0 "consttable_operand" "X")] 201)] "" "* { ! assemble_integer (operands[0], 2, 2*BITS_PER_UNIT, 1); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "2")]) ! ! (define_insn "consttable_si" ! [(unspec_volatile [(match_operand:SI 0 "consttable_operand" "X")] 202)] ! "" ! "* ! { ! if (!TARGET_64BIT && flag_pic && SYMBOLIC_CONST (operands[0])) ! return \".long\\t%0\"; ! ! assemble_integer (operands[0], 4, 4*BITS_PER_UNIT, 1); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "4")]) ! ! (define_insn "consttable_di" ! [(unspec_volatile [(match_operand:DI 0 "consttable_operand" "X")] 203)] ! "" ! "* ! { ! assemble_integer (operands[0], 8, 8*BITS_PER_UNIT, 1); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "8")]) ! ! (define_insn "consttable_sf" ! [(unspec_volatile [(match_operand:SF 0 "consttable_operand" "X")] 204)] ! "" ! "* ! { ! REAL_VALUE_TYPE r; ! ! if (GET_CODE (operands[0]) != CONST_DOUBLE) ! abort (); ! ! REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]); ! assemble_real (r, SFmode, 4*BITS_PER_UNIT); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "4")]) ! ! (define_insn "consttable_df" ! [(unspec_volatile [(match_operand:DF 0 "consttable_operand" "X")] 205)] ! "" ! "* ! { ! REAL_VALUE_TYPE r; ! ! if (GET_CODE (operands[0]) != CONST_DOUBLE) ! abort (); ! ! REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]); ! assemble_real (r, DFmode, 8*BITS_PER_UNIT); ! return \"\"; }" + [(set_attr "op_type" "NN") + (set_attr "length" "8")]) + + (define_insn "pool_start_31" + [(unspec_volatile [(const_int 0)] 206)] + "!TARGET_64BIT" + ".align\\t4" + [(set_attr "op_type" "NN") + (set_attr "length" "2")]) + + (define_insn "pool_end_31" + [(unspec_volatile [(const_int 0)] 207)] + "!TARGET_64BIT" + ".align\\t2" + [(set_attr "op_type" "NN") + (set_attr "length" "2")]) + + (define_insn "pool_start_64" + [(unspec_volatile [(const_int 0)] 206)] + "TARGET_64BIT" + ".section\\t.rodata\;.align\\t8" + [(set_attr "op_type" "NN") + (set_attr "length" "0")]) + + (define_insn "pool_end_64" + [(unspec_volatile [(const_int 0)] 207)] + "TARGET_64BIT" + ".previous" + [(set_attr "op_type" "NN") + (set_attr "length" "0")]) + + (define_insn "reload_base" + [(set (match_operand:SI 0 "register_operand" "=a") + (unspec:SI [(label_ref (match_operand 1 "" ""))] 210))] + "!TARGET_64BIT" + "basr\\t%0,0\;la\\t%0,%1-.(%0)" [(set_attr "op_type" "NN") ! (set_attr "type" "la") ! (set_attr "length" "6")]) ! ! (define_insn "reload_base2" ! [(set (match_operand:SI 0 "register_operand" "=a") ! (unspec:SI [(label_ref (match_operand 1 "" ""))] 211))] ! "!TARGET_64BIT" ! "la\\t%0,%1-.(%0)" ! [(set_attr "op_type" "NN") ! (set_attr "type" "la") ! (set_attr "length" "4")]) ! ;; ;; Insns related to generating the function prologue and epilogue. diff -Nrc3pad gcc-3.1/gcc/config/sparc/netbsd-elf.h gcc-3.1.1/gcc/config/sparc/netbsd-elf.h *** gcc-3.1/gcc/config/sparc/netbsd-elf.h Wed Apr 17 14:23:51 2002 --- gcc-3.1.1/gcc/config/sparc/netbsd-elf.h Tue Jul 16 00:36:52 2002 *************** Boston, MA 02111-1307, USA. */ *** 31,42 **** /* CPP defines used for 64 bit code. */ #undef CPP_SUBTARGET_SPEC64 #define CPP_SUBTARGET_SPEC64 \ ! "-D__sparc64__ -D__arch64__ -D__sparc_v9__ %{posix:-D_POSIX_SOURCE}" /* CPP defines used for 32 bit code. */ #undef CPP_SUBTARGET_SPEC32 #define CPP_SUBTARGET_SPEC32 "-D__sparc %{posix:-D_POSIX_SOURCE}" /* SIZE_TYPE and PTRDIFF_TYPE are wrong from sparc/sparc.h. */ #undef SIZE_TYPE #define SIZE_TYPE "long unsigned int" --- 31,58 ---- /* CPP defines used for 64 bit code. */ #undef CPP_SUBTARGET_SPEC64 #define CPP_SUBTARGET_SPEC64 \ ! "-D__sparc64__ -D__sparc_v9__ -D_LP64 %{posix:-D_POSIX_SOURCE}" /* CPP defines used for 32 bit code. */ #undef CPP_SUBTARGET_SPEC32 #define CPP_SUBTARGET_SPEC32 "-D__sparc %{posix:-D_POSIX_SOURCE}" + /* CPP_ARCH32_SPEC and CPP_ARCH64_SPEC are wrong from sparc/sparc.h; we + always want the non-SPARC_BI_ARCH versions, since the SPARC_BI_ARCH + versions define __SIZE_TYPE__ and __PTRDIFF_TYPE__ incorrectly for + NetBSD. */ + #undef CPP_ARCH32_SPEC + #define CPP_ARCH32_SPEC "-D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc" + + #undef CPP_ARCH64_SPEC + #define CPP_ARCH64_SPEC "-D__arch64__ -Acpu=sparc64 -Amachine=sparc64" + + /* sparc/sparc.h defines NO_BUILTIN_SIZE_TYPE and NO_BUILTIN_PTRDIFF_TYPE + if SPARC_BI_ARCH is defined. This is wrong for NetBSD; size_t and + ptrdiff_t do not change for 32-bit vs. 64-bit. */ + #undef NO_BUILTIN_PTRDIFF_TYPE + #undef NO_BUILTIN_SIZE_TYPE + /* SIZE_TYPE and PTRDIFF_TYPE are wrong from sparc/sparc.h. */ #undef SIZE_TYPE #define SIZE_TYPE "long unsigned int" *************** Boston, MA 02111-1307, USA. */ *** 99,107 **** * Clean up afterwards generic SPARC ELF configuration. */ - #undef TRANSFER_FROM_TRAMPOLINE - #define TRANSFER_FROM_TRAMPOLINE - /* FIXME: Aren't these supposed to be available for SPARC ELF? */ #undef MULDI3_LIBCALL #undef DIVDI3_LIBCALL --- 115,120 ---- diff -Nrc3pad gcc-3.1/gcc/config/sparc/openbsd1-64.h gcc-3.1.1/gcc/config/sparc/openbsd1-64.h *** gcc-3.1/gcc/config/sparc/openbsd1-64.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/config/sparc/openbsd1-64.h Thu May 30 20:42:33 2002 *************** *** 0 **** --- 1,24 ---- + /* Configuration file for sparc64 OpenBSD target. + Copyright (C) 1999 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + + #define OBSD_HAS_DECLARE_FUNCTION_NAME + #define OBSD_HAS_DECLARE_FUNCTION_SIZE + #define OBSD_HAS_DECLARE_OBJECT + diff -Nrc3pad gcc-3.1/gcc/config/sparc/openbsd64.h gcc-3.1.1/gcc/config/sparc/openbsd64.h *** gcc-3.1/gcc/config/sparc/openbsd64.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/config/sparc/openbsd64.h Thu May 30 20:42:33 2002 *************** *** 0 **** --- 1,75 ---- + /* Configuration file for sparc64 OpenBSD target. + Copyright (C) 1999 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + + #undef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (sparc64 OpenBSD ELF)") + + /* XXX - do we really want HARD_QUAD? */ + #undef TARGET_DEFAULT + #define TARGET_DEFAULT \ + (MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \ + + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128) + + #undef SPARC_DEFAULT_CMODEL + #define SPARC_DEFAULT_CMODEL CM_MEDMID + + /* Run-time target specifications. */ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-D__unix__ -D__sparc__ -D__sparc64__ -D__sparcv9__ -D__sparc_v9__ -D__arch64__ -D__ELF__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(sparc) -Amachine(sparc)" + + #undef CPP_SUBTARGET_SPEC + #define CPP_SUBTARGET_SPEC "" + + #undef MD_EXEC_PREFIX + #undef MD_STARTFILE_PREFIX + + #undef ASM_SPEC + #define ASM_SPEC "\ + %{v:-V} -s %{fpic:-K PIC} %{fPIC:-K PIC} \ + %{mlittle-endian:-EL} \ + %(asm_cpu) %(asm_arch) \ + " + + /* Layout of source language data types. */ + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 + + #undef LONG_DOUBLE_TYPE_SIZE + #define LONG_DOUBLE_TYPE_SIZE 128 + + #undef LINK_SPEC + #define LINK_SPEC \ + "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \ + %{shared:-shared} %{R*} \ + %{static:-Bstatic} \ + %{!static:-Bdynamic} \ + %{assert*} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" + + /* As an elf system, we need crtbegin/crtend stuff. */ + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "\ + %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \ + crtbegin%O%s} %{shared:crtbeginS%O%s}" + #undef ENDFILE_SPEC + #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" diff -Nrc3pad gcc-3.1/gcc/config/sparc/sol2.h gcc-3.1.1/gcc/config/sparc/sol2.h *** gcc-3.1/gcc/config/sparc/sol2.h Fri Apr 12 22:46:28 2002 --- gcc-3.1.1/gcc/config/sparc/sol2.h Thu May 16 11:08:37 2002 *************** Boston, MA 02111-1307, USA. */ *** 71,87 **** --- 71,91 ---- /* This is here rather than in sparc.h because it's not known what other assemblers will accept. */ + #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 #undef ASM_CPU_DEFAULT_SPEC #define ASM_CPU_DEFAULT_SPEC "-xarch=v8plus" #endif + #if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc #undef ASM_CPU_DEFAULT_SPEC #define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusa" #endif + #undef ASM_CPU_SPEC #define ASM_CPU_SPEC "\ %{mcpu=v8plus:-xarch=v8plus} \ + %{mcpu=v9:-xarch=v8plus} \ %{mcpu=ultrasparc:-xarch=v8plusa} \ %{!mcpu*:%(asm_cpu_default)} \ " *************** Boston, MA 02111-1307, USA. */ *** 227,232 **** --- 231,242 ---- #define MODDI3_LIBCALL "__rem64" #define UMODDI3_LIBCALL "__urem64" + /* Solaris's _Qp_* library routine implementation clobbers the output + memory before the inputs are fully consumed. */ + + #undef TARGET_BUGGY_QP_LIB + #define TARGET_BUGGY_QP_LIB 1 + #undef INIT_SUBTARGET_OPTABS #define INIT_SUBTARGET_OPTABS \ fixsfdi_libfunc \ diff -Nrc3pad gcc-3.1/gcc/config/sparc/sparc-protos.h gcc-3.1.1/gcc/config/sparc/sparc-protos.h *** gcc-3.1/gcc/config/sparc/sparc-protos.h Tue Apr 30 19:10:02 2002 --- gcc-3.1.1/gcc/config/sparc/sparc-protos.h Sun May 26 02:42:21 2002 *************** extern rtx gen_df_reg PARAMS ((rtx, int) *** 123,126 **** --- 123,128 ---- extern int sparc_extra_constraint_check PARAMS ((rtx, int, int)); #endif /* RTX_CODE */ + extern void sparc_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT, tree)); + #endif /* __SPARC_PROTOS_H__ */ diff -Nrc3pad gcc-3.1/gcc/config/sparc/sparc.c gcc-3.1.1/gcc/config/sparc/sparc.c *** gcc-3.1/gcc/config/sparc/sparc.c Fri May 3 20:46:20 2002 --- gcc-3.1.1/gcc/config/sparc/sparc.c Sun May 26 02:42:21 2002 *************** emit_soft_tfmode_libcall (func_name, nar *** 2489,2497 **** /* TFmode arguments and return values are passed by reference. */ if (GET_MODE (this_arg) == TFmode) { ! if (GET_CODE (this_arg) == MEM) this_arg = XEXP (this_arg, 0); ! else if (CONSTANT_P (this_arg)) { this_slot = force_const_mem (TFmode, this_arg); this_arg = XEXP (this_slot, 0); --- 2489,2505 ---- /* TFmode arguments and return values are passed by reference. */ if (GET_MODE (this_arg) == TFmode) { ! int force_stack_temp; ! ! force_stack_temp = 0; ! if (TARGET_BUGGY_QP_LIB && i == 0) ! force_stack_temp = 1; ! ! if (GET_CODE (this_arg) == MEM ! && ! force_stack_temp) this_arg = XEXP (this_arg, 0); ! else if (CONSTANT_P (this_arg) ! && ! force_stack_temp) { this_slot = force_const_mem (TFmode, this_arg); this_arg = XEXP (this_slot, 0); *************** sparc_extra_constraint_check (op, c, str *** 8993,8995 **** --- 9001,9070 ---- return reload_ok_mem; } + + /* Output code to add DELTA to the first argument, and then jump to FUNCTION. + Used for C++ multiple inheritance. */ + + void + sparc_output_mi_thunk (file, thunk_fndecl, delta, function) + FILE *file; + tree thunk_fndecl ATTRIBUTE_UNUSED; + HOST_WIDE_INT delta; + tree function; + { + rtx this, insn, funexp, delta_rtx, tmp; + + reload_completed = 1; + no_new_pseudos = 1; + current_function_uses_only_leaf_regs = 1; + + emit_note (NULL, NOTE_INSN_PROLOGUE_END); + + /* Find the "this" pointer. Normally in %o0, but in ARCH64 if the function + returns a structure, the structure return pointer is there instead. */ + if (TARGET_ARCH64 && aggregate_value_p (TREE_TYPE (TREE_TYPE (function)))) + this = gen_rtx_REG (Pmode, SPARC_INCOMING_INT_ARG_FIRST + 1); + else + this = gen_rtx_REG (Pmode, SPARC_INCOMING_INT_ARG_FIRST); + + /* Add DELTA. When possible use a plain add, otherwise load it into + a register first. */ + delta_rtx = GEN_INT (delta); + if (!SPARC_SIMM13_P (delta)) + { + rtx scratch = gen_rtx_REG (Pmode, 1); + if (TARGET_ARCH64) + sparc_emit_set_const64 (scratch, delta_rtx); + else + sparc_emit_set_const32 (scratch, delta_rtx); + delta_rtx = scratch; + } + + tmp = gen_rtx_PLUS (Pmode, this, delta_rtx); + emit_insn (gen_rtx_SET (VOIDmode, this, tmp)); + + /* Generate a tail call to the target function. */ + if (! TREE_USED (function)) + { + assemble_external (function); + TREE_USED (function) = 1; + } + funexp = XEXP (DECL_RTL (function), 0); + funexp = gen_rtx_MEM (FUNCTION_MODE, funexp); + insn = emit_call_insn (gen_sibcall (funexp)); + SIBLING_CALL_P (insn) = 1; + emit_barrier (); + + /* Run just enough of rest_of_compilation to get the insns emitted. + There's not really enough bulk here to make other passes such as + instruction scheduling worth while. Note that use_thunk calls + assemble_start_function and assemble_end_function. */ + insn = get_insns (); + shorten_branches (insn); + final_start_function (insn, file, 1); + final (insn, file, 1, 0); + final_end_function (); + + reload_completed = 0; + no_new_pseudos = 0; + } diff -Nrc3pad gcc-3.1/gcc/config/sparc/sparc.h gcc-3.1.1/gcc/config/sparc/sparc.h *** gcc-3.1/gcc/config/sparc/sparc.h Fri May 3 20:46:20 2002 --- gcc-3.1.1/gcc/config/sparc/sparc.h Mon Jun 24 16:50:44 2002 *************** extern char leaf_reg_remap[]; *** 1414,1419 **** --- 1414,1421 ---- #define PREFERRED_RELOAD_CLASS(X,CLASS) \ (CONSTANT_P (X) \ ? ((FP_REG_CLASS_P (CLASS) \ + || (CLASS) == GENERAL_OR_FP_REGS \ + || (CLASS) == GENERAL_OR_EXTRA_FP_REGS \ || (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ && ! TARGET_FPU) \ || (GET_MODE (X) == TFmode \ *************** do { \ *** 1958,1964 **** return an rtx for the address of the word in the frame that holds the dynamic chain--the previous frame's address. ??? -mflat support? */ ! #define DYNAMIC_CHAIN_ADDRESS(frame) plus_constant (frame, 14 * UNITS_PER_WORD) /* The return address isn't on the stack, it is in a register, so we can't access it from the current frame pointer. We can access it from the --- 1960,1967 ---- return an rtx for the address of the word in the frame that holds the dynamic chain--the previous frame's address. ??? -mflat support? */ ! #define DYNAMIC_CHAIN_ADDRESS(frame) \ ! plus_constant (frame, 14 * UNITS_PER_WORD + SPARC_STACK_BIAS) /* The return address isn't on the stack, it is in a register, so we can't access it from the current frame pointer. We can access it from the *************** do { *** 2568,2573 **** --- 2571,2581 ---- #define LTTF2_LIBCALL "_Q_flt" #define LETF2_LIBCALL "_Q_fle" + /* Assume by default that the _Qp_* 64-bit libcalls are implemented such + that the inputs are fully consumed before the output memory is clobbered. */ + + #define TARGET_BUGGY_QP_LIB 0 + /* We can define the TFmode sqrt optab only if TARGET_FPU. This is because with soft-float, the SFmode and DFmode sqrt instructions will be absent, and the compiler will notice and try to use the TFmode sqrt instruction *************** do { *** 2604,2609 **** --- 2612,2628 ---- sqrt_optab->handlers[(int) TFmode].libfunc \ = init_one_libfunc ("_Q_sqrt"); \ } \ + if (TARGET_ARCH64) \ + { \ + /* In the SPARC 64bit ABI, these libfuncs do not exist in the \ + library. Make sure the compiler does not emit calls to them \ + by accident. */ \ + sdiv_optab->handlers[(int) SImode].libfunc = NULL; \ + udiv_optab->handlers[(int) SImode].libfunc = NULL; \ + smod_optab->handlers[(int) SImode].libfunc = NULL; \ + umod_optab->handlers[(int) SImode].libfunc = NULL; \ + smul_optab->handlers[(int) SImode].libfunc = NULL; \ + } \ INIT_SUBTARGET_OPTABS; \ } while (0) *************** do { \ *** 2903,2926 **** /* Output code to add DELTA to the first argument, and then jump to FUNCTION. Used for C++ multiple inheritance. */ ! #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ ! do { \ ! int reg = 0; \ ! \ ! if (TARGET_ARCH64 \ ! && aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION)))) \ ! reg = 1; \ ! if ((DELTA) >= 4096 || (DELTA) < -4096) \ ! fprintf (FILE, "\tset\t%d, %%g1\n\tadd\t%%o%d, %%g1, %%o%d\n", \ ! (int)(DELTA), reg, reg); \ ! else \ ! fprintf (FILE, "\tadd\t%%o%d, %d, %%o%d\n", reg, (int)(DELTA), reg);\ ! fprintf (FILE, "\tor\t%%o7, %%g0, %%g1\n"); \ ! fprintf (FILE, "\tcall\t"); \ ! assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ ! fprintf (FILE, ", 0\n"); \ ! fprintf (FILE, "\t or\t%%g1, %%g0, %%o7\n"); \ ! } while (0) #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \ ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '^' || (CHAR) == '(' || (CHAR) == '_') --- 2922,2929 ---- /* Output code to add DELTA to the first argument, and then jump to FUNCTION. Used for C++ multiple inheritance. */ ! #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ ! sparc_output_mi_thunk (FILE, THUNK_FNDECL, DELTA, FUNCTION) #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \ ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '^' || (CHAR) == '(' || (CHAR) == '_') diff -Nrc3pad gcc-3.1/gcc/config/sparc/t-crtfm gcc-3.1.1/gcc/config/sparc/t-crtfm *** gcc-3.1/gcc/config/sparc/t-crtfm Fri Apr 5 07:42:44 2002 --- gcc-3.1.1/gcc/config/sparc/t-crtfm Fri Jun 21 11:25:58 2002 *************** *** 1,4 **** EXTRA_PARTS += crtfastmath.o ! crtfastmath.o: $(srcdir)/config/sparc/crtfastmath.c $(GCC_PASSES) ! $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crtfastmath.o $(srcdir)/config/sparc/crtfastmath.c --- 1,4 ---- EXTRA_PARTS += crtfastmath.o ! $(T)crtfastmath.o: $(srcdir)/config/sparc/crtfastmath.c $(GCC_PASSES) ! $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) $(LIBGCC2_CFLAGS) -c -o $(T)crtfastmath.o $(srcdir)/config/sparc/crtfastmath.c diff -Nrc3pad gcc-3.1/gcc/config/sparc/t-linux64 gcc-3.1.1/gcc/config/sparc/t-linux64 *** gcc-3.1/gcc/config/sparc/t-linux64 Wed May 8 23:23:20 2002 --- gcc-3.1.1/gcc/config/sparc/t-linux64 Fri Jun 21 11:25:58 2002 *************** MULTILIB_EXCLUSIONS = m32/!m64/mno-app-r *** 7,13 **** LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o SHLIB_SLIBDIR_SUFFIXES = 64:64 32: --- 7,14 ---- LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ ! crtfastmath.o SHLIB_SLIBDIR_SUFFIXES = 64:64 32: diff -Nrc3pad gcc-3.1/gcc/config/sparc/t-sol2-64 gcc-3.1.1/gcc/config/sparc/t-sol2-64 *** gcc-3.1/gcc/config/sparc/t-sol2-64 Wed May 8 23:18:34 2002 --- gcc-3.1.1/gcc/config/sparc/t-sol2-64 Fri Jun 21 11:25:58 2002 *************** MULTILIB_MATCHES = *** 5,10 **** LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o gmon.o crt1.o crti.o crtn.o gcrt1.o SHLIB_SLIBDIR_SUFFIXES = sparcv9:/sparcv9 sparcv7: --- 5,11 ---- LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o gmon.o crt1.o crti.o crtn.o gcrt1.o \ ! crtfastmath.o SHLIB_SLIBDIR_SUFFIXES = sparcv9:/sparcv9 sparcv7: diff -Nrc3pad gcc-3.1/gcc/config/vax/vax.h gcc-3.1.1/gcc/config/vax/vax.h *** gcc-3.1/gcc/config/vax/vax.h Wed Jan 16 02:37:37 2002 --- gcc-3.1.1/gcc/config/vax/vax.h Tue May 21 23:45:13 2002 *************** enum reg_class { NO_REGS, ALL_REGS, LIM_ *** 453,478 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ fprintf (FILE, "\tmovab LP%d,r0\n\tjsb mcount\n", (LABELNO)); - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\ttstl LPBX0\n\tjneq LPI%d\n\tpushal LPBX0\n\tcalls $1,__bb_init_func\nLPI%d:\n", \ - LABELNO, LABELNO); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. This is a real pain in the - sphincter on a VAX, since we do not want to change any of the bits in the - processor status word. The way it is done here, it is pushed onto the stack - before any flags have changed, and then the stack is fixed up to account for - the fact that the instruction to restore the flags only reads a word. - It may seem a bit clumsy, but at least it works. - */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \ - 4 * BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 453,458 ---- diff -Nrc3pad gcc-3.1/gcc/config/vax/vax.md gcc-3.1.1/gcc/config/vax/vax.md *** gcc-3.1/gcc/config/vax/vax.md Tue Jan 15 22:37:00 2002 --- gcc-3.1.1/gcc/config/vax/vax.md Mon Jul 15 16:19:39 2002 *************** *** 1933,1941 **** (define_expand "casesi" [(set (pc) (if_then_else ! (leu (minus:SI (match_operand:SI 0 "general_operand" "g") ! (match_operand:SI 1 "general_operand" "g")) ! (match_operand:SI 2 "general_operand" "g")) (plus:SI (sign_extend:SI (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0) (match_dup 1)) --- 1933,1941 ---- (define_expand "casesi" [(set (pc) (if_then_else ! (leu (minus:SI (match_operand:SI 0 "general_operand" "") ! (match_operand:SI 1 "general_operand" "")) ! (match_operand:SI 2 "general_operand" "")) (plus:SI (sign_extend:SI (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0) (match_dup 1)) *************** *** 1946,1952 **** (match_operand 4 "" "")] "" " ! emit_insn (gen_casesi1 (operands[0], operands[1], operands[2], operands[3])); DONE; ") --- 1946,1952 ---- (match_operand 4 "" "")] "" " ! emit_jump_insn (gen_casesi1 (operands[0], operands[1], operands[2], operands[3])); DONE; ") diff -Nrc3pad gcc-3.1/gcc/config/we32k/we32k.h gcc-3.1.1/gcc/config/we32k/we32k.h *** gcc-3.1/gcc/config/we32k/we32k.h Wed Jan 16 02:37:37 2002 --- gcc-3.1.1/gcc/config/we32k/we32k.h Tue May 21 23:45:18 2002 *************** enum reg_class { NO_REGS, GENERAL_REGS, *** 402,420 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ fprintf (FILE, "\tmovw &.LP%d,%%r0\n\tjsb _mcount\n", (LABELNO)) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\tcmpw .LPBX0,&0\n\tjne .LPI%d\n\tpushw &.LPBX0\n\tcall &1,__bb_init_func\n.LPI%d:\n", \ - LABELNO, LABELNO); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "\taddw2 &1,.LPBX2+%d\n", 4 * BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 402,407 ---- diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa-protos.h gcc-3.1.1/gcc/config/xtensa/xtensa-protos.h *** gcc-3.1/gcc/config/xtensa/xtensa-protos.h Fri Mar 22 22:46:46 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa-protos.h Fri Jun 28 19:40:31 2002 *************** extern void print_operand_address PARAMS *** 86,91 **** --- 86,92 ---- extern void xtensa_output_literal PARAMS ((FILE *, rtx, enum machine_mode, int labelno)); extern void xtensa_reorg PARAMS ((rtx)); + extern rtx xtensa_return_addr PARAMS ((int, rtx)); extern rtx xtensa_builtin_saveregs PARAMS ((void)); extern enum reg_class xtensa_preferred_reload_class PARAMS ((rtx, enum reg_class)); diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa.c gcc-3.1.1/gcc/config/xtensa/xtensa.c *** gcc-3.1/gcc/config/xtensa/xtensa.c Mon Apr 1 20:05:45 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa.c Fri Jun 28 19:40:31 2002 *************** xtensa_function_epilogue (file, size) *** 2294,2299 **** --- 2294,2326 ---- } + rtx + xtensa_return_addr (count, frame) + int count; + rtx frame; + { + rtx result, retaddr; + + if (count == -1) + retaddr = gen_rtx_REG (Pmode, 0); + else + { + rtx addr = plus_constant (frame, -4 * UNITS_PER_WORD); + addr = memory_address (Pmode, addr); + retaddr = gen_reg_rtx (Pmode); + emit_move_insn (retaddr, gen_rtx_MEM (Pmode, addr)); + } + + /* The 2 most-significant bits of the return address on Xtensa hold + the register window size. To get the real return address, these + bits must be replaced with the high bits from the current PC. */ + + result = gen_reg_rtx (Pmode); + emit_insn (gen_fix_return_addr (result, retaddr)); + return result; + } + + /* Create the va_list data type. This structure is set up by __builtin_saveregs. The __va_reg field points to a stack-allocated region holding the contents of the diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa.h gcc-3.1.1/gcc/config/xtensa/xtensa.h *** gcc-3.1/gcc/config/xtensa/xtensa.h Fri Mar 22 22:46:46 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa.h Fri Jun 28 19:40:31 2002 *************** typedef struct xtensa_args { *** 934,962 **** && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \ || TREE_ADDRESSABLE (TYPE))) ! /* Output assembler code to FILE to increment profiler label LABELNO ! for profiling a function entry. ! ! The mcount code in glibc doesn't seem to use this LABELNO stuff. ! Some ports (e.g., MIPS) don't even bother to pass the label ! address, and even those that do (e.g., i386) don't seem to use it. ! The information needed by mcount() is the current PC and the ! current return address, so that mcount can identify an arc in the ! call graph. For Xtensa, we pass the current return address as ! the first argument to mcount, and the current PC is available as ! a0 in mcount's register window. Both of these values contain ! window size information in the two most significant bits; we assume ! that the mcount code will mask off those bits. The call to mcount ! uses a window size of 8 to make sure that mcount doesn't clobber any incoming argument values. */ ! #define FUNCTION_PROFILER(FILE, LABELNO) \ do { \ ! fprintf (FILE, "\taddi\t%s, %s, 0\t# save current return address\n", \ ! reg_names[GP_REG_FIRST+10], \ ! reg_names[GP_REG_FIRST+0]); \ ! fprintf (FILE, "\tcall8\t_mcount\n"); \ ! } while (0); /* Stack pointer value doesn't matter at exit. */ #define EXIT_IGNORE_STACK 1 --- 934,966 ---- && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \ || TREE_ADDRESSABLE (TYPE))) ! /* Profiling Xtensa code is typically done with the built-in profiling ! feature of Tensilica's instruction set simulator, which does not ! require any compiler support. Profiling code on a real (i.e., ! non-simulated) Xtensa processor is currently only supported by ! GNU/Linux with glibc. The glibc version of _mcount doesn't require ! counter variables. The _mcount function needs the current PC and ! the current return address to identify an arc in the call graph. ! Pass the current return address as the first argument; the current ! PC is available as a0 in _mcount's register window. Both of these ! values contain window size information in the two most significant ! bits; we assume that _mcount will mask off those bits. The call to ! _mcount uses a window size of 8 to make sure that it doesn't clobber any incoming argument values. */ ! #define NO_PROFILE_COUNTERS ! ! #define FUNCTION_PROFILER(FILE, LABELNO) \ do { \ ! fprintf (FILE, "\t%s\ta10, a0\n", TARGET_DENSITY ? "mov.n" : "mov"); \ ! if (flag_pic) \ ! { \ ! fprintf (FILE, "\tmovi\ta8, _mcount@PLT\n"); \ ! fprintf (FILE, "\tcallx8\ta8\n"); \ ! } \ ! else \ ! fprintf (FILE, "\tcall8\t_mcount\n"); \ ! } while (0) /* Stack pointer value doesn't matter at exit. */ #define EXIT_IGNORE_STACK 1 *************** typedef struct xtensa_args { *** 1069,1076 **** we currently need to ensure that there is a frame pointer when these builtin functions are used. */ ! #define SETUP_FRAME_ADDRESSES() \ ! xtensa_setup_frame_addresses () /* A C expression whose value is RTL representing the address in a stack frame where the pointer to the caller's frame is stored. --- 1073,1079 ---- we currently need to ensure that there is a frame pointer when these builtin functions are used. */ ! #define SETUP_FRAME_ADDRESSES xtensa_setup_frame_addresses /* A C expression whose value is RTL representing the address in a stack frame where the pointer to the caller's frame is stored. *************** typedef struct xtensa_args { *** 1094,1115 **** /* A C expression whose value is RTL representing the value of the return address for the frame COUNT steps up from the current ! frame, after the prologue. FRAMEADDR is the frame pointer of the ! COUNT frame, or the frame pointer of the COUNT - 1 frame if ! 'RETURN_ADDR_IN_PREVIOUS_FRAME' is defined. ! ! The 2 most-significant bits of the return address on Xtensa hold ! the register window size. To get the real return address, these bits ! must be masked off and replaced with the high bits from the current ! PC. Since it is unclear how the __builtin_return_address function ! is used, the current code does not do this masking and simply returns ! the raw return address from the a0 register. */ ! #define RETURN_ADDR_RTX(count, frame) \ ! ((count) == -1 \ ! ? gen_rtx_REG (Pmode, 0) \ ! : gen_rtx_MEM (Pmode, memory_address \ ! (Pmode, plus_constant (frame, -4 * UNITS_PER_WORD)))) ! /* Addressing modes, and classification of registers for them. */ --- 1097,1104 ---- /* A C expression whose value is RTL representing the value of the return address for the frame COUNT steps up from the current ! frame, after the prologue. */ ! #define RETURN_ADDR_RTX xtensa_return_addr /* Addressing modes, and classification of registers for them. */ *************** typedef struct xtensa_args { *** 1665,1671 **** #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, FUNDECL, SIZE) \ do { \ tree fnsection; \ ! resolve_unique_section ((FUNDECL), 0); \ fnsection = DECL_SECTION_NAME (FUNDECL); \ if (fnsection != NULL_TREE) \ { \ --- 1654,1660 ---- #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, FUNDECL, SIZE) \ do { \ tree fnsection; \ ! resolve_unique_section ((FUNDECL), 0, flag_function_sections); \ fnsection = DECL_SECTION_NAME (FUNDECL); \ if (fnsection != NULL_TREE) \ { \ diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa.md gcc-3.1.1/gcc/config/xtensa/xtensa.md *** gcc-3.1/gcc/config/xtensa/xtensa.md Fri Mar 22 22:46:46 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa.md Fri Jun 28 19:40:32 2002 *************** *** 34,39 **** --- 34,40 ---- (UNSPEC_NSAU 1) (UNSPEC_NOP 2) (UNSPEC_PLT 3) + (UNSPEC_RET_ADDR 4) (UNSPECV_SET_FP 1) ]) *************** *** 1370,1375 **** --- 1371,1377 ---- (set_attr "mode" "SI") (set_attr "length" "6,6")]) + ;; ;; .................... ;; *************** *** 2432,2437 **** --- 2434,2456 ---- (set_attr "mode" "none") (set_attr "length" "0")]) + ;; The fix_return_addr pattern sets the high 2 bits of an address in a + ;; register to match the high bits of the current PC. + + (define_insn "fix_return_addr" + [(set (match_operand:SI 0 "register_operand" "=a") + (unspec:SI [(match_operand:SI 1 "register_operand" "r")] + UNSPEC_RET_ADDR)) + (clobber (match_scratch:SI 2 "=r")) + (clobber (match_scratch:SI 3 "=r"))] + "" + "mov\\t%2, a0\;call0\\t0f\;.align\\t4\;0:\;mov\\t%3, a0\;mov\\ta0, %2\;\ + srli\\t%3, %3, 30\;slli\\t%0, %1, 2\;ssai\\t2\;src\\t%0, %3, %0" + [(set_attr "type" "multi") + (set_attr "mode" "SI") + (set_attr "length" "24")]) + + ;; ;; .................... ;; diff -Nrc3pad gcc-3.1/gcc/config.gcc gcc-3.1.1/gcc/config.gcc *** gcc-3.1/gcc/config.gcc Thu May 2 21:28:49 2002 --- gcc-3.1.1/gcc/config.gcc Fri Jun 7 23:35:31 2002 *************** alpha*-*-netbsd*) *** 572,578 **** tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h" target_cpu_default="MASK_GAS" tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" ;; alpha*-*-openbsd*) --- 572,577 ---- *************** mips*-*-netbsd*) # NetBSD/mips, either *** 2379,2384 **** --- 2378,2384 ---- tm_file="mips/little.h $tm_file" ;; esac + tmake_file="${tmake_file} mips/t-netbsd" ;; mips*-*-linux*) # Linux MIPS, either endian. tm_file="dbxelf.h elfos.h svr4.h linux.h mips/linux.h" *************** sparc-*-openbsd*) *** 3087,3092 **** --- 3087,3099 ---- # we need collect2 until our bug is fixed... use_collect2=yes ;; + sparc64-*-openbsd*) + tm_file="sparc/openbsd1-64.h sparc/sparc.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h" + xm_file=sparc/xm-sp64.h + gas=yes gnu_ld=yes + with_cpu=ultrasparc + float_format=i128 + ;; sparc-*-bsd*) tm_file="${tm_file} sparc/bsd.h" ;; diff -Nrc3pad gcc-3.1/gcc/config.in gcc-3.1.1/gcc/config.in *** gcc-3.1/gcc/config.in Wed May 15 02:40:17 2002 --- gcc-3.1.1/gcc/config.in Thu Jul 25 23:50:38 2002 *************** *** 296,301 **** --- 296,307 ---- every opportunity. This is extremely expensive. */ #undef ENABLE_GC_ALWAYS_COLLECT + /* Define if you want to use __cxa_atexit, rather than atexit, to + register C++ destructors for local statics and global objects. + This is essential for fully standards-compliant handling of + destructors, but requires __cxa_atexit in libc. */ + #undef DEFAULT_USE_CXA_ATEXIT + /* Define if you want the C and C++ compilers to support multibyte character sets for source code. */ #undef MULTIBYTE_CHARS diff -Nrc3pad gcc-3.1/gcc/configure gcc-3.1.1/gcc/configure *** gcc-3.1/gcc/configure Wed May 8 00:26:47 2002 --- gcc-3.1.1/gcc/configure Sat Jun 29 00:20:11 2002 *************** ac_help="$ac_help *** 43,48 **** --- 43,50 ---- install the user visible C preprocessor in DIR (relative to PREFIX) as well as PREFIX/bin" ac_help="$ac_help + --enable-__cxa_atexit enable __cxa_atexit for C++" + ac_help="$ac_help --enable-c-mbchar enable multibyte characters for C and C++" ac_help="$ac_help --enable-threads enable thread usage for target GCC *************** program_suffix=NONE *** 107,112 **** --- 109,115 ---- program_transform_name=s,x,x, silent= site= + sitefile= srcdir= target=NONE verbose= *************** Configuration: *** 221,226 **** --- 224,230 ---- --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX *************** EOF *** 391,396 **** --- 395,405 ---- -site=* | --site=* | --sit=*) site="$ac_optarg" ;; + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) *************** fi *** 556,567 **** srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then --- 565,580 ---- srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$sitefile"; then ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ! fi fi + else + CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then *************** copy=cp *** 616,622 **** # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6 ! echo "configure:620: checking LIBRARY_PATH variable" >&5 case ${LIBRARY_PATH} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) library_path_setting="contains current directory" --- 629,635 ---- # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6 ! echo "configure:633: checking LIBRARY_PATH variable" >&5 case ${LIBRARY_PATH} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) library_path_setting="contains current directory" *************** fi *** 641,647 **** # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6 ! echo "configure:645: checking GCC_EXEC_PREFIX variable" >&5 case ${GCC_EXEC_PREFIX} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) gcc_exec_prefix_setting="contains current directory" --- 654,660 ---- # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6 ! echo "configure:658: checking GCC_EXEC_PREFIX variable" >&5 case ${GCC_EXEC_PREFIX} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) gcc_exec_prefix_setting="contains current directory" *************** fi *** 773,779 **** if test x${gcc_gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_include_dir='${libsubdir}/include/g++' else topsrcdir=${srcdir}/.. . ${srcdir}/../config.if gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir} --- 786,792 ---- if test x${gcc_gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_include_dir='${libsubdir}/include/c++' else topsrcdir=${srcdir}/.. . ${srcdir}/../config.if gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir} *************** fi *** 874,879 **** --- 887,906 ---- fi + # Enable __cxa_atexit for C++. + # Check whether --enable-__cxa_atexit or --disable-__cxa_atexit was given. + if test "${enable___cxa_atexit+set}" = set; then + enableval="$enable___cxa_atexit" + : + fi + + if test x$enable___cxa_atexit = xyes; then + cat >> confdefs.h <<\EOF + #define DEFAULT_USE_CXA_ATEXIT 1 + EOF + + fi + # Enable Multibyte Characters for C/C++ # Check whether --enable-c-mbchar or --disable-c-mbchar was given. if test "${enable_c_mbchar+set}" = set; then *************** else { echo "configure: error: can not r *** 1014,1020 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:1018: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 1041,1047 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:1045: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 1035,1041 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:1039: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 1062,1068 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:1066: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 1053,1059 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:1057: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 1080,1086 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:1084: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** test "$program_transform_name" = "" && p *** 1101,1107 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1105: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1128,1134 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1132: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$CC"; then *** 1131,1137 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1135: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1158,1164 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1162: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1182,1188 **** # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1186: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1209,1215 ---- # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1213: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1214,1220 **** fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1218: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 1241,1247 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1245: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** cross_compiling=$ac_cv_prog_cc_cross *** 1225,1236 **** cat > conftest.$ac_ext << EOF ! #line 1229 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:1234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 1252,1263 ---- cat > conftest.$ac_ext << EOF ! #line 1256 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:1261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** if test $ac_cv_prog_cc_works = no; then *** 1256,1267 **** { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1260: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1265: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1283,1294 ---- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1287: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1292: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1270,1276 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1297,1303 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1301: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** ac_test_CFLAGS="${CFLAGS+set}" *** 1289,1295 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1293: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1316,1322 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1320: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1322,1331 **** if test "x$CC" != xcc; then echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 ! echo "configure:1326: checking whether $CC and cc understand -c and -o together" >&5 else echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 ! echo "configure:1329: checking whether cc understands -c and -o together" >&5 fi set dummy $CC; ac_cc="`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" --- 1349,1358 ---- if test "x$CC" != xcc; then echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 ! echo "configure:1353: checking whether $CC and cc understand -c and -o together" >&5 else echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 ! echo "configure:1356: checking whether cc understands -c and -o together" >&5 fi set dummy $CC; ac_cc="`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" *************** else *** 1337,1352 **** # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. ! if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then ac_try='cc -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then # cc works too. : --- 1364,1379 ---- # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1368: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1369: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. ! if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then ac_try='cc -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then # cc works too. : *************** fi *** 1392,1398 **** # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1396: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1419,1425 ---- # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1423: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1424,1430 **** # Extract the first word of "gnatbind", so it can be a program name with args. set dummy gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1428: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1451,1457 ---- # Extract the first word of "gnatbind", so it can be a program name with args. set dummy gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1455: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1457,1463 **** fi echo $ac_n "checking for compiler driver that understands Ada""... $ac_c" 1>&6 ! echo "configure:1461: checking for compiler driver that understands Ada" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_adac'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1484,1490 ---- fi echo $ac_n "checking for compiler driver that understands Ada""... $ac_c" 1>&6 ! echo "configure:1488: checking for compiler driver that understands Ada" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_adac'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1502,1522 **** echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1506: checking whether ${CC-cc} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else save_CFLAGS="$CFLAGS" CFLAGS="-Wno-long-long" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_prog_cc_no_long_long=yes else --- 1529,1549 ---- echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1533: checking whether ${CC-cc} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else save_CFLAGS="$CFLAGS" CFLAGS="-Wno-long-long" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_prog_cc_no_long_long=yes else *************** echo "$ac_t""$ac_cv_prog_cc_no_long_long *** 1533,1539 **** if test x$have_gnat != xno ; then echo $ac_n "checking whether ${ADAC} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1537: checking whether ${ADAC} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_adac_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1560,1566 ---- if test x$have_gnat != xno ; then echo $ac_n "checking whether ${ADAC} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1564: checking whether ${ADAC} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_adac_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1561,1567 **** echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1565: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 1588,1594 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1592: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 1576,1588 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1603,1615 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 1593,1605 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1620,1632 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 1610,1622 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1620: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1637,1649 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** fi *** 1641,1661 **** echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for inline""... $ac_c" 1>&6 ! echo "configure:1645: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else --- 1668,1688 ---- echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for inline""... $ac_c" 1>&6 ! echo "configure:1672: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else *************** EOF *** 1681,1699 **** esac echo $ac_n "checking for volatile""... $ac_c" 1>&6 ! echo "configure:1685: checking for volatile" >&5 if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_volatile=yes else --- 1708,1726 ---- esac echo $ac_n "checking for volatile""... $ac_c" 1>&6 ! echo "configure:1712: checking for volatile" >&5 if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_volatile=yes else *************** fi *** 1715,1721 **** echo $ac_n "checking for long double""... $ac_c" 1>&6 ! echo "configure:1719: checking for long double" >&5 if eval "test \"`echo '$''{'gcc_cv_c_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1742,1748 ---- echo $ac_n "checking for long double""... $ac_c" 1>&6 ! echo "configure:1746: checking for long double" >&5 if eval "test \"`echo '$''{'gcc_cv_c_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1723,1729 **** gcc_cv_c_long_double=yes else cat > conftest.$ac_ext < conftest.$ac_ext <= sizeof(double)):; ; return 0; } EOF ! if { (eval echo configure:1737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_long_double=yes else --- 1760,1766 ---- switch (0) case 0: case (sizeof(long double) >= sizeof(double)):; ; return 0; } EOF ! if { (eval echo configure:1764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_long_double=yes else *************** EOF *** 1755,1773 **** fi echo $ac_n "checking for long long int""... $ac_c" 1>&6 ! echo "configure:1759: checking for long long int" >&5 if eval "test \"`echo '$''{'ac_cv_c_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_long_long=yes else --- 1782,1800 ---- fi echo $ac_n "checking for long long int""... $ac_c" 1>&6 ! echo "configure:1786: checking for long long int" >&5 if eval "test \"`echo '$''{'ac_cv_c_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_long_long=yes else *************** EOF *** 1787,1805 **** fi echo $ac_n "checking for __int64""... $ac_c" 1>&6 ! echo "configure:1791: checking for __int64" >&5 if eval "test \"`echo '$''{'ac_cv_c___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c___int64=yes else --- 1814,1832 ---- fi echo $ac_n "checking for __int64""... $ac_c" 1>&6 ! echo "configure:1818: checking for __int64" >&5 if eval "test \"`echo '$''{'ac_cv_c___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c___int64=yes else *************** EOF *** 1820,1838 **** fi echo $ac_n "checking for built-in _Bool""... $ac_c" 1>&6 ! echo "configure:1824: checking for built-in _Bool" >&5 if eval "test \"`echo '$''{'gcc_cv_c__bool'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c__bool=yes else --- 1847,1865 ---- fi echo $ac_n "checking for built-in _Bool""... $ac_c" 1>&6 ! echo "configure:1851: checking for built-in _Bool" >&5 if eval "test \"`echo '$''{'gcc_cv_c__bool'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c__bool=yes else *************** fi *** 1856,1868 **** # sizeof(char) is 1 by definition. echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:1860: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 1883,1895 ---- # sizeof(char) is 1 by definition. echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:1887: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1872,1878 **** switch (0) case 0: case (sizeof (short) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_short=$ac_size else --- 1899,1905 ---- switch (0) case 0: case (sizeof (short) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1903: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_short=$ac_size else *************** EOF *** 1895,1907 **** echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:1899: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 1922,1934 ---- echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:1926: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1911,1917 **** switch (0) case 0: case (sizeof (int) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_int=$ac_size else --- 1938,1944 ---- switch (0) case 0: case (sizeof (int) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_int=$ac_size else *************** EOF *** 1934,1946 **** echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:1938: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 1961,1973 ---- echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:1965: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1950,1956 **** switch (0) case 0: case (sizeof (long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long=$ac_size else --- 1977,1983 ---- switch (0) case 0: case (sizeof (long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1981: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long=$ac_size else *************** EOF *** 1974,1986 **** if test $ac_cv_c_long_long = yes; then echo $ac_n "checking size of long long""... $ac_c" 1>&6 ! echo "configure:1978: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 2001,2013 ---- if test $ac_cv_c_long_long = yes; then echo $ac_n "checking size of long long""... $ac_c" 1>&6 ! echo "configure:2005: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1990,1996 **** switch (0) case 0: case (sizeof (long long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long_long=$ac_size else --- 2017,2023 ---- switch (0) case 0: case (sizeof (long long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:2021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long_long=$ac_size else *************** EOF *** 2015,2027 **** fi if test $ac_cv_c___int64 = yes; then echo $ac_n "checking size of __int64""... $ac_c" 1>&6 ! echo "configure:2019: checking size of __int64" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 2042,2054 ---- fi if test $ac_cv_c___int64 = yes; then echo $ac_n "checking size of __int64""... $ac_c" 1>&6 ! echo "configure:2046: checking size of __int64" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 2031,2037 **** switch (0) case 0: case (sizeof (__int64) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:2035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof___int64=$ac_size else --- 2058,2064 ---- switch (0) case 0: case (sizeof (__int64) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:2062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof___int64=$ac_size else *************** EOF *** 2056,2067 **** fi echo $ac_n "checking execution character set""... $ac_c" 1>&6 ! echo "configure:2060: checking execution character set" >&5 if eval "test \"`echo '$''{'ac_cv_c_charset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:2087: checking execution character set" >&5 if eval "test \"`echo '$''{'ac_cv_c_charset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&6 ! echo "configure:2142: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2165,2171 ---- echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:2169: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** fi *** 2166,2172 **** echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6 ! echo "configure:2170: checking whether a default assembler was specified" >&5 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then if test x"$gas_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6 --- 2193,2199 ---- echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6 ! echo "configure:2197: checking whether a default assembler was specified" >&5 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then if test x"$gas_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6 *************** else *** 2178,2184 **** fi echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6 ! echo "configure:2182: checking whether a default linker was specified" >&5 if test x"${DEFAULT_LINKER+set}" = x"set"; then if test x"$gnu_ld_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6 --- 2205,2211 ---- fi echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6 ! echo "configure:2209: checking whether a default linker was specified" >&5 if test x"${DEFAULT_LINKER+set}" = x"set"; then if test x"$gnu_ld_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6 *************** else *** 2190,2201 **** fi echo $ac_n "checking for GNU C library""... $ac_c" 1>&6 ! echo "configure:2194: checking for GNU C library" >&5 if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { --- 2217,2228 ---- fi echo $ac_n "checking for GNU C library""... $ac_c" 1>&6 ! echo "configure:2221: checking for GNU C library" >&5 if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { *************** int main() { *** 2205,2211 **** #endif ; return 0; } EOF ! if { (eval echo configure:2209: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_glibc=yes else --- 2232,2238 ---- #endif ; return 0; } EOF ! if { (eval echo configure:2236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_glibc=yes else *************** EOF *** 2226,2237 **** fi # Find some useful tools ! for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2235: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2253,2264 ---- fi # Find some useful tools ! for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2262: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$AWK" && break *** 2261,2267 **** done echo $ac_n "checking whether ln works""... $ac_c" 1>&6 ! echo "configure:2265: checking whether ln works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2288,2294 ---- done echo $ac_n "checking whether ln works""... $ac_c" 1>&6 ! echo "configure:2292: checking whether ln works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 2293,2299 **** fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:2297: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2320,2326 ---- fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:2324: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2327,2333 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2331: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2354,2360 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2358: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2365,2371 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2369: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2392,2398 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2396: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_DATA" && INSTALL_DATA= *** 2416,2427 **** echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2420: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2443,2454 ---- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2447: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** else *** 2429,2435 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2456,2462 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** rm -f conftest* *** 2446,2452 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2473,2479 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** fi *** 2464,2470 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2491,2497 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** if test "$cross_compiling" = yes; then *** 2485,2491 **** : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 2512,2518 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** if (XOR (islower (i), ISLOWER (i)) || to *** 2496,2502 **** exit (0); } EOF ! if { (eval echo configure:2500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else --- 2523,2529 ---- exit (0); } EOF ! if { (eval echo configure:2527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else *************** EOF *** 2520,2531 **** fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:2524: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2547,2558 ---- fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:2551: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** int main() { *** 2534,2540 **** struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:2538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else --- 2561,2567 ---- struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:2565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else *************** EOF *** 2555,2573 **** fi echo $ac_n "checking for working stdbool.h""... $ac_c" 1>&6 ! echo "configure:2559: checking for working stdbool.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdbool_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { bool foo = false; ; return 0; } EOF ! if { (eval echo configure:2571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_stdbool_h=yes else --- 2582,2600 ---- fi echo $ac_n "checking for working stdbool.h""... $ac_c" 1>&6 ! echo "configure:2586: checking for working stdbool.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdbool_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { bool foo = false; ; return 0; } EOF ! if { (eval echo configure:2598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_stdbool_h=yes else *************** EOF *** 2588,2599 **** fi echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6 ! echo "configure:2592: checking whether string.h and strings.h may both be included" >&5 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2615,2626 ---- fi echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6 ! echo "configure:2619: checking whether string.h and strings.h may both be included" >&5 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** int main() { *** 2601,2607 **** ; return 0; } EOF ! if { (eval echo configure:2605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_string=yes else --- 2628,2634 ---- ; return 0; } EOF ! if { (eval echo configure:2632: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_string=yes else *************** EOF *** 2622,2633 **** fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:2626: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2649,2660 ---- fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:2653: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** wait (&s); *** 2643,2649 **** s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:2647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else --- 2670,2676 ---- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:2674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else *************** for ac_hdr in limits.h stddef.h string.h *** 2670,2686 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2674: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2697,2713 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2701: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 2710,2726 **** # Check for thread headers. ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for thread.h""... $ac_c" 1>&6 ! echo "configure:2714: checking for thread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2724: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2737,2753 ---- # Check for thread headers. ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for thread.h""... $ac_c" 1>&6 ! echo "configure:2741: checking for thread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2744,2760 **** ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for pthread.h""... $ac_c" 1>&6 ! echo "configure:2748: checking for pthread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2758: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2771,2787 ---- ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for pthread.h""... $ac_c" 1>&6 ! echo "configure:2775: checking for pthread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2779,2790 **** # These tests can't be done till we know if we have limits.h. echo $ac_n "checking for CHAR_BIT""... $ac_c" 1>&6 ! echo "configure:2783: checking for CHAR_BIT" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_char_bit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 2806,2817 ---- # These tests can't be done till we know if we have limits.h. echo $ac_n "checking for CHAR_BIT""... $ac_c" 1>&6 ! echo "configure:2810: checking for CHAR_BIT" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_char_bit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** fi *** 2809,2815 **** echo "$ac_t""$gcc_cv_decl_char_bit" 1>&6 if test $gcc_cv_decl_char_bit = no; then echo $ac_n "checking number of bits in a byte""... $ac_c" 1>&6 ! echo "configure:2813: checking number of bits in a byte" >&5 if eval "test \"`echo '$''{'gcc_cv_c_nbby'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2836,2842 ---- echo "$ac_t""$gcc_cv_decl_char_bit" 1>&6 if test $gcc_cv_decl_char_bit = no; then echo $ac_n "checking number of bits in a byte""... $ac_c" 1>&6 ! echo "configure:2840: checking number of bits in a byte" >&5 if eval "test \"`echo '$''{'gcc_cv_c_nbby'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 2817,2823 **** gcc_cv_c_nbby= while test $i -lt 65; do cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_nbby=$i; break else --- 2854,2860 ---- ; } ; return 0; } EOF ! if { (eval echo configure:2858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_nbby=$i; break else *************** EOF *** 2852,2858 **** fi fi echo $ac_n "checking byte ordering""... $ac_c" 1>&6 ! echo "configure:2856: checking byte ordering" >&5 if eval "test \"`echo '$''{'ac_cv_c_compile_endian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2879,2885 ---- fi fi echo $ac_n "checking byte ordering""... $ac_c" 1>&6 ! echo "configure:2883: checking byte ordering" >&5 if eval "test \"`echo '$''{'ac_cv_c_compile_endian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2866,2872 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g --- 2913,2919 ---- 'X', '\n' }; EOF ! if { (eval echo configure:2917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g *************** EOF *** 2925,2931 **** fi echo $ac_n "checking floating point format""... $ac_c" 1>&6 ! echo "configure:2929: checking floating point format" >&5 if eval "test \"`echo '$''{'ac_cv_c_float_format'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2952,2958 ---- fi echo $ac_n "checking floating point format""... $ac_c" 1>&6 ! echo "configure:2956: checking floating point format" >&5 if eval "test \"`echo '$''{'ac_cv_c_float_format'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2938,2944 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g --- 2987,2993 ---- C(-5.22995989424860458374e+10) /* IBMHEXFP - s/390 format, EBCDIC */ }; EOF ! if { (eval echo configure:2991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g *************** fi *** 3049,3055 **** # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3053: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_have_mktemp_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3076,3082 ---- # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3080: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_have_mktemp_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3088,3094 **** # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3092: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3115,3121 ---- # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3119: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3117,3129 **** if test -n "$MAKEINFO"; then # Found it, now check the version. echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6 ! echo "configure:3121: checking for modern makeinfo" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` ! echo "configure:3127: version of makeinfo is $ac_prog_version" >&5 case $ac_prog_version in '') gcc_cv_prog_makeinfo_modern=no;; 4.[1-9]*) --- 3144,3156 ---- if test -n "$MAKEINFO"; then # Found it, now check the version. echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6 ! echo "configure:3148: checking for modern makeinfo" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` ! echo "configure:3154: version of makeinfo is $ac_prog_version" >&5 case $ac_prog_version in '') gcc_cv_prog_makeinfo_modern=no;; 4.[1-9]*) *************** fi *** 3151,3157 **** # Is pod2man recent enough to regenerate manpages? echo $ac_n "checking for recent Pod::Man""... $ac_c" 1>&6 ! echo "configure:3155: checking for recent Pod::Man" >&5 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then echo "$ac_t""yes" 1>&6 GENERATED_MANPAGES=generated-manpages --- 3178,3184 ---- # Is pod2man recent enough to regenerate manpages? echo $ac_n "checking for recent Pod::Man""... $ac_c" 1>&6 ! echo "configure:3182: checking for recent Pod::Man" >&5 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then echo "$ac_t""yes" 1>&6 GENERATED_MANPAGES=generated-manpages *************** else *** 3167,3173 **** # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3171: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3194,3200 ---- # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3198: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3204,3210 **** # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3208: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3231,3237 ---- # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3235: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3236,3242 **** # These libraries may be used by collect2. # We may need a special search path to get them linked. echo $ac_n "checking for collect2 libraries""... $ac_c" 1>&6 ! echo "configure:3240: checking for collect2 libraries" >&5 if eval "test \"`echo '$''{'gcc_cv_collect2_libs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3263,3269 ---- # These libraries may be used by collect2. # We may need a special search path to get them linked. echo $ac_n "checking for collect2 libraries""... $ac_c" 1>&6 ! echo "configure:3267: checking for collect2 libraries" >&5 if eval "test \"`echo '$''{'gcc_cv_collect2_libs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** for libs in '' -lld -lmld \ *** 3247,3253 **** do LIBS="$libs" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gcc_cv_collect2_libs="$libs"; break else --- 3285,3291 ---- ldopen() ; return 0; } EOF ! if { (eval echo configure:3289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gcc_cv_collect2_libs="$libs"; break else *************** save_LIBS="$LIBS" *** 3284,3297 **** LIBS= echo $ac_n "checking for library containing exc_resume""... $ac_c" 1>&6 ! echo "configure:3288: checking for library containing exc_resume" >&5 if eval "test \"`echo '$''{'ac_cv_search_exc_resume'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_exc_resume="no" cat > conftest.$ac_ext <&6 ! echo "configure:3315: checking for library containing exc_resume" >&5 if eval "test \"`echo '$''{'ac_cv_search_exc_resume'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_exc_resume="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="none required" else --- 3329,3335 ---- exc_resume() ; return 0; } EOF ! if { (eval echo configure:3333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="none required" else *************** rm -f conftest* *** 3313,3319 **** test "$ac_cv_search_exc_resume" = "no" && for i in exc; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="-l$i" break --- 3351,3357 ---- exc_resume() ; return 0; } EOF ! if { (eval echo configure:3355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="-l$i" break *************** LIBS="$save_LIBS" *** 3353,3364 **** echo $ac_n "checking for preprocessor stringizing operator""... $ac_c" 1>&6 ! echo "configure:3357: checking for preprocessor stringizing operator" >&5 if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3384: checking for preprocessor stringizing operator" >&5 if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 *** 3391,3402 **** # Use only if it exists, # doesn't clash with , and declares intmax_t. echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 ! echo "configure:3395: checking for inttypes.h" >&5 if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3418,3429 ---- # Use only if it exists, # doesn't clash with , and declares intmax_t. echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 ! echo "configure:3422: checking for inttypes.h" >&5 if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** int main() { *** 3404,3410 **** intmax_t i = -1; ; return 0; } EOF ! if { (eval echo configure:3408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_inttypes_h=yes else --- 3431,3437 ---- intmax_t i = -1; ; return 0; } EOF ! if { (eval echo configure:3435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_inttypes_h=yes else *************** for ac_func in times clock dup2 kill get *** 3430,3441 **** fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3434: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3461: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3485,3491 ---- ; return 0; } EOF ! if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 3484,3495 **** echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 ! echo "configure:3488: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 3511,3522 ---- echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 ! echo "configure:3515: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** fi *** 3520,3531 **** # Try to determine the array type of the second argument of getgroups # for the target system (int or gid_t). echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:3524: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF --- 3547,3558 ---- # Try to determine the array type of the second argument of getgroups # for the target system (int or gid_t). echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:3551: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF *************** EOF *** 3554,3560 **** fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 ! echo "configure:3558: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3581,3587 ---- fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 ! echo "configure:3585: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3562,3568 **** ac_cv_type_getgroups=cross else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else --- 3614,3620 ---- } EOF ! if { (eval echo configure:3618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else *************** fi *** 3601,3607 **** if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext < EOF --- 3628,3634 ---- if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext < EOF *************** fi *** 3642,3648 **** echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6 ! echo "configure:3646: checking whether the printf functions support %p" >&5 if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3669,3675 ---- echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6 ! echo "configure:3673: checking whether the printf functions support %p" >&5 if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3650,3656 **** gcc_cv_func_printf_ptr=no else cat > conftest.$ac_ext < --- 3677,3683 ---- gcc_cv_func_printf_ptr=no else cat > conftest.$ac_ext < *************** int main() *** 3663,3669 **** return (p != q); } EOF ! if { (eval echo configure:3667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then gcc_cv_func_printf_ptr=yes else --- 3690,3696 ---- return (p != q); } EOF ! if { (eval echo configure:3694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then gcc_cv_func_printf_ptr=yes else *************** case "${host}" in *** 3701,3712 **** ;; esac echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:3705: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 3728,3739 ---- ;; esac echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:3732: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** fi *** 3735,3751 **** ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 ! echo "configure:3739: checking for vfork.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3762,3778 ---- ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 ! echo "configure:3766: checking for vfork.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** else *** 3770,3787 **** fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 ! echo "configure:3774: checking for working vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then echo $ac_n "checking for vfork""... $ac_c" 1>&6 ! echo "configure:3780: checking for vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3801: checking for working vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then echo $ac_n "checking for vfork""... $ac_c" 1>&6 ! echo "configure:3807: checking for vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else --- 3831,3837 ---- ; return 0; } EOF ! if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else *************** fi *** 3826,3832 **** ac_cv_func_vfork_works=$ac_cv_func_vfork else cat > conftest.$ac_ext < --- 3853,3859 ---- ac_cv_func_vfork_works=$ac_cv_func_vfork else cat > conftest.$ac_ext < *************** main() { *** 3921,3927 **** } } EOF ! if { (eval echo configure:3925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_vfork_works=yes else --- 3948,3954 ---- } } EOF ! if { (eval echo configure:3952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_vfork_works=yes else *************** fi *** 3946,3957 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3950: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3977: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4001,4007 ---- ; return 0; } EOF ! if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** main () *** 4245,4251 **** EOF echo $ac_n "checking for working mmap from /dev/zero""... $ac_c" 1>&6 ! echo "configure:4249: checking for working mmap from /dev/zero" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_dev_zero'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4272,4278 ---- EOF echo $ac_n "checking for working mmap from /dev/zero""... $ac_c" 1>&6 ! echo "configure:4276: checking for working mmap from /dev/zero" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_dev_zero'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 4261,4271 **** esac else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_dev_zero=yes else --- 4288,4298 ---- esac else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_dev_zero=yes else *************** EOF *** 4292,4298 **** fi echo $ac_n "checking for working mmap with MAP_ANON(YMOUS)""... $ac_c" 1>&6 ! echo "configure:4296: checking for working mmap with MAP_ANON(YMOUS)" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_anon'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4319,4325 ---- fi echo $ac_n "checking for working mmap with MAP_ANON(YMOUS)""... $ac_c" 1>&6 ! echo "configure:4323: checking for working mmap with MAP_ANON(YMOUS)" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_anon'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 4302,4313 **** ac_cv_func_mmap_anon=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_anon=yes else --- 4329,4340 ---- ac_cv_func_mmap_anon=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_anon=yes else *************** fi *** 4335,4341 **** rm -f ct-mmap.inc echo $ac_n "checking for working mmap of a file""... $ac_c" 1>&6 ! echo "configure:4339: checking for working mmap of a file" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_file'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4362,4368 ---- rm -f ct-mmap.inc echo $ac_n "checking for working mmap of a file""... $ac_c" 1>&6 ! echo "configure:4366: checking for working mmap of a file" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_file'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test "$cross_compiling" = yes; then *** 4350,4356 **** ac_cv_func_mmap_file=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_file=yes else --- 4414,4420 ---- exit(0); } EOF ! if { (eval echo configure:4418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_file=yes else *************** fi *** 4426,4432 **** echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:4430: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4453,4459 ---- echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:4457: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 4434,4440 **** am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include --- 4461,4467 ---- am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 4444,4450 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else --- 4471,4477 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else *************** rm -f conftest* *** 4456,4462 **** am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include --- 4483,4489 ---- am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 4466,4472 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes --- 4493,4499 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes *************** echo "$ac_t""$am_cv_func_iconv" 1>&6 *** 4487,4499 **** EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:4491: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4514,4526 ---- EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:4518: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** int main() { *** 4512,4518 **** ; return 0; } EOF ! if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else --- 4539,4545 ---- ; return 0; } EOF ! if { (eval echo configure:4543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else *************** for ac_func in getenv atol sbrk abort at *** 4550,4561 **** do ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6 ! echo "configure:4554: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4581: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else --- 4596,4602 ---- #endif ; return 0; } EOF ! if { (eval echo configure:4600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else *************** for ac_func in getrlimit setrlimit getru *** 4668,4679 **** do ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6 ! echo "configure:4672: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4699: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else --- 4718,4724 ---- #endif ; return 0; } EOF ! if { (eval echo configure:4722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else *************** for ac_func in times *** 4733,4744 **** do ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6 ! echo "configure:4737: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4764: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else --- 4783,4789 ---- #endif ; return 0; } EOF ! if { (eval echo configure:4787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else *************** fi *** 4790,4802 **** # More time-related stuff. echo $ac_n "checking for struct tms""... $ac_c" 1>&6 ! echo "configure:4794: checking for struct tms" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tms'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4821: checking for struct tms" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tms'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tms=yes else --- 4836,4842 ---- struct tms tms; ; return 0; } EOF ! if { (eval echo configure:4840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tms=yes else *************** fi *** 4832,4844 **** # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE. # revisit after autoconf 2.50. echo $ac_n "checking for clock_t""... $ac_c" 1>&6 ! echo "configure:4836: checking for clock_t" >&5 if eval "test \"`echo '$''{'gcc_cv_type_clock_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4863: checking for clock_t" >&5 if eval "test \"`echo '$''{'gcc_cv_type_clock_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_type_clock_t=yes else --- 4875,4881 ---- clock_t x; ; return 0; } EOF ! if { (eval echo configure:4879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_type_clock_t=yes else *************** CFLAGS="$saved_CFLAGS" *** 4873,4884 **** # mkdir takes a single argument on some systems. echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6 ! echo "configure:4877: checking if mkdir takes one argument" >&5 if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4900,4911 ---- # mkdir takes a single argument on some systems. echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6 ! echo "configure:4904: checking if mkdir takes one argument" >&5 if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** int main() { *** 4895,4901 **** mkdir ("foo", 0); ; return 0; } EOF ! if { (eval echo configure:4899: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_mkdir_takes_one_arg=no else --- 4922,4928 ---- mkdir ("foo", 0); ; return 0; } EOF ! if { (eval echo configure:4926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_mkdir_takes_one_arg=no else *************** fi *** 5163,5176 **** echo $ac_n "checking for library containing strerror""... $ac_c" 1>&6 ! echo "configure:5167: checking for library containing strerror" >&5 if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_strerror="no" cat > conftest.$ac_ext <&6 ! echo "configure:5194: checking for library containing strerror" >&5 if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_strerror="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="none required" else --- 5208,5214 ---- strerror() ; return 0; } EOF ! if { (eval echo configure:5212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="none required" else *************** rm -f conftest* *** 5192,5198 **** test "$ac_cv_search_strerror" = "no" && for i in cposix; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="-l$i" break --- 5230,5236 ---- strerror() ; return 0; } EOF ! if { (eval echo configure:5234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="-l$i" break *************** fi *** 5226,5237 **** echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:5230: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5257: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else --- 5307,5313 ---- ; return 0; } EOF ! if { (eval echo configure:5311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else *************** EOF *** 5301,5312 **** fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:5305: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5328,5339 ---- fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:5332: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** EOF *** 5334,5345 **** fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:5338: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5361,5372 ---- fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:5365: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** fi *** 5369,5387 **** # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:5373: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF ! if { (eval echo configure:5385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else --- 5396,5414 ---- # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:5400: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF ! if { (eval echo configure:5412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else *************** EOF *** 5402,5413 **** fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 ! echo "configure:5406: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5433: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else --- 5462,5468 ---- char *p = (char *) alloca(1); ; return 0; } EOF ! if { (eval echo configure:5466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else *************** EOF *** 5467,5478 **** echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ! echo "configure:5471: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5498: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 *** 5497,5508 **** if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5501: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5528: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5552,5558 ---- ; return 0; } EOF ! if { (eval echo configure:5556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5552,5558 **** fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:5556: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5579,5585 ---- fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:5583: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 5560,5566 **** ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else --- 5606,5612 ---- exit (find_stack_direction() < 0); } EOF ! if { (eval echo configure:5610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else *************** fi *** 5602,5613 **** echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 ! echo "configure:5606: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 5629,5640 ---- echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 ! echo "configure:5633: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** stdlib.h string.h unistd.h sys/param.h *** 5643,5659 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5647: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5670,5686 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5674: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** getgid getuid mempcpy munmap putenv sete *** 5684,5695 **** strdup strtoul tsearch __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5688: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5715: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5739,5745 ---- ; return 0; } EOF ! if { (eval echo configure:5743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 5753,5759 **** echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:5757: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5780,5786 ---- echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:5784: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 5761,5767 **** am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include --- 5788,5794 ---- am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 5771,5777 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else --- 5798,5804 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else *************** rm -f conftest* *** 5783,5789 **** am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include --- 5810,5816 ---- am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 5793,5799 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes --- 5820,5826 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes *************** echo "$ac_t""$am_cv_func_iconv" 1>&6 *** 5814,5826 **** EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:5818: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 5841,5853 ---- EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:5845: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** int main() { *** 5839,5845 **** ; return 0; } EOF ! if { (eval echo configure:5843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else --- 5866,5872 ---- ; return 0; } EOF ! if { (eval echo configure:5870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else *************** EOF *** 5868,5886 **** echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 ! echo "configure:5872: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF ! if { (eval echo configure:5884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else --- 5895,5913 ---- echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 ! echo "configure:5899: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF ! if { (eval echo configure:5911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else *************** EOF *** 5903,5921 **** if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:5907: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:5919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else --- 5930,5948 ---- if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:5934: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:5946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else *************** EOF *** 5936,5942 **** fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 ! echo "configure:5940: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" --- 5963,5969 ---- fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 ! echo "configure:5967: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" *************** fi *** 5959,5965 **** EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 ! echo "configure:5963: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" --- 5986,5992 ---- EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 ! echo "configure:5990: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" *************** fi *** 5979,5995 **** ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 ! echo "configure:5983: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5993: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6006,6022 ---- ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 ! echo "configure:6010: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** if eval "test \"`echo '$ac_cv_header_'$a *** 6010,6021 **** EOF echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 ! echo "configure:6014: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; --- 6037,6048 ---- EOF echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 ! echo "configure:6041: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; *************** bindtextdomain ("", ""); *** 6024,6030 **** return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else --- 6051,6057 ---- return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else *************** echo "$ac_t""$gt_cv_func_gnugettext1_lib *** 6040,6053 **** if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 ! echo "configure:6044: checking for GNU gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; --- 6067,6080 ---- if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 ! echo "configure:6071: checking for GNU gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; *************** bindtextdomain ("", ""); *** 6056,6062 **** return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libintl=yes else --- 6083,6089 ---- return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libintl=yes else *************** EOF *** 6089,6100 **** for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6093: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6120: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6144,6150 ---- ; return 0; } EOF ! if { (eval echo configure:6148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6146,6152 **** # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6150: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6173,6179 ---- # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6177: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6180,6186 **** # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6184: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6207,6213 ---- # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6211: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6217,6223 **** # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6221: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6244,6250 ---- # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6248: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6267,6273 **** # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6271: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6294,6300 ---- # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6298: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6301,6307 **** # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6305: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6328,6334 ---- # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6332: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6337,6343 **** # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6341: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6364,6370 ---- # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6368: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** do *** 6409,6415 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6413: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6436,6442 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6440: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** done *** 6442,6448 **** ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 ! echo "configure:6446: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; --- 6469,6475 ---- ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 ! echo "configure:6473: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; *************** EOF *** 6487,6493 **** if test "x$CATOBJEXT" != x; then echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 ! echo "configure:6491: checking for catalogs to be installed" >&5 # Look for .po and .gmo files in the source directory. CATALOGS= XLINGUAS= --- 6514,6520 ---- if test "x$CATOBJEXT" != x; then echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 ! echo "configure:6518: checking for catalogs to be installed" >&5 # Look for .po and .gmo files in the source directory. CATALOGS= XLINGUAS= *************** fi *** 6545,6551 **** case $host_os in win32 | pe | cygwin* | mingw32* | uwin*) echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6 ! echo "configure:6549: checking whether windows registry support is requested" >&5 if test "x$enable_win32_registry" != xno; then cat >> confdefs.h <<\EOF #define ENABLE_WIN32_REGISTRY 1 --- 6572,6578 ---- case $host_os in win32 | pe | cygwin* | mingw32* | uwin*) echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6 ! echo "configure:6576: checking whether windows registry support is requested" >&5 if test "x$enable_win32_registry" != xno; then cat >> confdefs.h <<\EOF #define ENABLE_WIN32_REGISTRY 1 *************** EOF *** 6554,6567 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6 ! echo "configure:6558: checking for library containing RegOpenKeyExA" >&5 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_RegOpenKeyExA="no" cat > conftest.$ac_ext <&6 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6 ! echo "configure:6585: checking for library containing RegOpenKeyExA" >&5 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_RegOpenKeyExA="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="none required" else --- 6599,6605 ---- RegOpenKeyExA() ; return 0; } EOF ! if { (eval echo configure:6603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="none required" else *************** rm -f conftest* *** 6583,6589 **** test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="-l$i" break --- 6621,6627 ---- RegOpenKeyExA() ; return 0; } EOF ! if { (eval echo configure:6625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="-l$i" break *************** esac *** 6636,6642 **** if test "x$enable_win32_registry" != xno; then echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6 ! echo "configure:6640: checking registry key on windows hosts" >&5 cat >> confdefs.h <&6 ! echo "configure:6667: checking registry key on windows hosts" >&5 cat >> confdefs.h <&6 ! echo "configure:6845: checking what assembler to use" >&5 gcc_cv_as= gcc_cv_gas_major_version= gcc_cv_gas_minor_version= --- 6868,6874 ---- # Figure out what assembler we will be using. echo $ac_n "checking what assembler to use""... $ac_c" 1>&6 ! echo "configure:6872: checking what assembler to use" >&5 gcc_cv_as= gcc_cv_gas_major_version= gcc_cv_gas_minor_version= *************** fi *** 6935,6941 **** # Figure out what linker we will be using. echo $ac_n "checking what linker to use""... $ac_c" 1>&6 ! echo "configure:6939: checking what linker to use" >&5 gcc_cv_ld= gcc_cv_gld_major_version= gcc_cv_gld_minor_version= --- 6962,6968 ---- # Figure out what linker we will be using. echo $ac_n "checking what linker to use""... $ac_c" 1>&6 ! echo "configure:6966: checking what linker to use" >&5 gcc_cv_ld= gcc_cv_gld_major_version= gcc_cv_gld_minor_version= *************** fi *** 7028,7034 **** # Figure out what nm we will be using. echo $ac_n "checking what nm to use""... $ac_c" 1>&6 ! echo "configure:7032: checking what nm to use" >&5 if test -x nm$host_exeext; then gcc_cv_nm=./nm$host_exeext elif test "x$program_prefix" != xNONE; then --- 7055,7061 ---- # Figure out what nm we will be using. echo $ac_n "checking what nm to use""... $ac_c" 1>&6 ! echo "configure:7059: checking what nm to use" >&5 if test -x nm$host_exeext; then gcc_cv_nm=./nm$host_exeext elif test "x$program_prefix" != xNONE; then *************** echo "$ac_t""$gcc_cv_nm" 1>&6 *** 7040,7046 **** # Figure out what objdump we will be using. echo $ac_n "checking what objdump to use""... $ac_c" 1>&6 ! echo "configure:7044: checking what objdump to use" >&5 if test -x objdump$host_exeext; then gcc_cv_objdump=./objdump$host_exeext elif test "x$program_prefix" != xNONE; then --- 7067,7073 ---- # Figure out what objdump we will be using. echo $ac_n "checking what objdump to use""... $ac_c" 1>&6 ! echo "configure:7071: checking what objdump to use" >&5 if test -x objdump$host_exeext; then gcc_cv_objdump=./objdump$host_exeext elif test "x$program_prefix" != xNONE; then *************** echo "$ac_t""$gcc_cv_objdump" 1>&6 *** 7052,7058 **** # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 ! echo "configure:7056: checking assembler alignment features" >&5 gcc_cv_as_alignment_features=none if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then # Gas version 2.6 and later support for .balign and .p2align. --- 7079,7085 ---- # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 ! echo "configure:7083: checking assembler alignment features" >&5 gcc_cv_as_alignment_features=none if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then # Gas version 2.6 and later support for .balign and .p2align. *************** fi *** 7100,7106 **** echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 ! echo "configure:7104: checking assembler subsection support" >&5 gcc_cv_as_subsections=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7127,7133 ---- echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 ! echo "configure:7131: checking assembler subsection support" >&5 gcc_cv_as_subsections=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** fi *** 7140,7146 **** echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6 ! echo "configure:7144: checking assembler weak support" >&5 gcc_cv_as_weak=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then --- 7167,7173 ---- echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6 ! echo "configure:7171: checking assembler weak support" >&5 gcc_cv_as_weak=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then *************** fi *** 7163,7169 **** echo "$ac_t""$gcc_cv_as_weak" 1>&6 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6 ! echo "configure:7167: checking assembler hidden support" >&5 gcc_cv_as_hidden=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 \ --- 7190,7196 ---- echo "$ac_t""$gcc_cv_as_weak" 1>&6 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6 ! echo "configure:7194: checking assembler hidden support" >&5 gcc_cv_as_hidden=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 \ *************** elif test x$gcc_cv_as != x; then *** 7189,7197 **** # the date string after the version number. ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` if test 0"$ld_date" -lt 20020404; then ! gcc_cv_as_hidden="no" fi fi fi --- 7216,7244 ---- # the date string after the version number. ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then + ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'` ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` if test 0"$ld_date" -lt 20020404; then ! if test -n "$ld_date"; then ! # If there was date string, but was earlier than 2002-04-04, fail ! gcc_cv_as_hidden="no" ! elif test -z "$ld_vers"; then ! # If there was no date string nor ld version number, something is wrong ! gcc_cv_as_hidden="no" ! else ! ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ! ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ! ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` ! test -z "$ld_vers_patch" && ld_vers_patch=0 ! if test "$ld_vers_major" -lt 2; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \ ! -a "$ld_vers_patch" -eq 0; then ! gcc_cv_as_hidden="no" ! fi ! fi fi fi fi *************** libgcc_visibility=$gcc_cv_as_hidden *** 7207,7213 **** echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 ! echo "configure:7211: checking assembler leb128 support" >&5 gcc_cv_as_leb128=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7254,7260 ---- echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 ! echo "configure:7258: checking assembler leb128 support" >&5 gcc_cv_as_leb128=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** fi *** 7252,7258 **** echo "$ac_t""$gcc_cv_as_leb128" 1>&6 echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6 ! echo "configure:7256: checking assembler eh_frame optimization" >&5 gcc_cv_as_eh_frame=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7299,7305 ---- echo "$ac_t""$gcc_cv_as_leb128" 1>&6 echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6 ! echo "configure:7303: checking assembler eh_frame optimization" >&5 gcc_cv_as_eh_frame=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** fi *** 7333,7339 **** echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6 echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6 ! echo "configure:7337: checking assembler section merging support" >&5 gcc_cv_as_shf_merge=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7380,7386 ---- echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6 echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6 ! echo "configure:7384: checking assembler section merging support" >&5 gcc_cv_as_shf_merge=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** case "$target" in *** 7359,7365 **** # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6 ! echo "configure:7363: checking assembler supports explicit relocations" >&5 if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7406,7412 ---- # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6 ! echo "configure:7410: checking assembler supports explicit relocations" >&5 if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7409,7415 **** ;; sparc*-*-*) echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6 ! echo "configure:7413: checking assembler .register pseudo-op support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7456,7462 ---- ;; sparc*-*-*) echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6 ! echo "configure:7460: checking assembler .register pseudo-op support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7437,7443 **** fi echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6 ! echo "configure:7441: checking assembler supports -relax" >&5 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7484,7490 ---- fi echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6 ! echo "configure:7488: checking assembler supports -relax" >&5 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7465,7471 **** fi echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6 ! echo "configure:7469: checking assembler and linker support unaligned pc related relocs" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7512,7518 ---- fi echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6 ! echo "configure:7516: checking assembler and linker support unaligned pc related relocs" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7492,7498 **** fi echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6 ! echo "configure:7496: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7539,7545 ---- fi echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6 ! echo "configure:7543: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7533,7539 **** if test "x$gcc_cv_as_flags64" != xno; then echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 ! echo "configure:7537: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7580,7586 ---- if test "x$gcc_cv_as_flags64" != xno; then echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 ! echo "configure:7584: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7573,7579 **** i[34567]86-*-* | x86_64-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 ! echo "configure:7577: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then --- 7620,7626 ---- i[34567]86-*-* | x86_64-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 ! echo "configure:7624: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then *************** EOF *** 7600,7606 **** echo "$ac_t""$gcc_cv_as_instructions" 1>&6 echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6 ! echo "configure:7604: checking assembler GOTOFF in data directives" >&5 gcc_cv_as_gotoff_in_data=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x then --- 7647,7653 ---- echo "$ac_t""$gcc_cv_as_instructions" 1>&6 echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6 ! echo "configure:7651: checking assembler GOTOFF in data directives" >&5 gcc_cv_as_gotoff_in_data=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x then *************** EOF *** 7630,7636 **** esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 ! echo "configure:7634: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any --- 7677,7683 ---- esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 ! echo "configure:7681: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any *************** fi *** 7686,7692 **** echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6 ! echo "configure:7690: checking assembler --gdwarf2 support" >&5 gcc_cv_as_gdwarf2_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then --- 7733,7739 ---- echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6 ! echo "configure:7737: checking assembler --gdwarf2 support" >&5 gcc_cv_as_gdwarf2_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then *************** fi *** 7715,7721 **** echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6 ! echo "configure:7719: checking assembler --gstabs support" >&5 gcc_cv_as_gstabs_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then --- 7762,7768 ---- echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6 ! echo "configure:7766: checking assembler --gstabs support" >&5 gcc_cv_as_gstabs_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then *************** fi *** 7743,7749 **** echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6 ! echo "configure:7747: checking linker PT_GNU_EH_FRAME support" >&5 gcc_cv_ld_eh_frame_hdr=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then --- 7790,7796 ---- echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6 ! echo "configure:7794: checking linker PT_GNU_EH_FRAME support" >&5 gcc_cv_ld_eh_frame_hdr=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then *************** fi *** 7758,7764 **** echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then echo $ac_n "checking whether linker eh_frame optimizations work properly""... $ac_c" 1>&6 ! echo "configure:7762: checking whether linker eh_frame optimizations work properly" >&5 gcc_cv_ld_eh_frame_hdr_works=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then --- 7805,7811 ---- echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then echo $ac_n "checking whether linker eh_frame optimizations work properly""... $ac_c" 1>&6 ! echo "configure:7809: checking whether linker eh_frame optimizations work properly" >&5 gcc_cv_ld_eh_frame_hdr_works=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then *************** fi *** 7988,7994 **** echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:7992: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" --- 8035,8041 ---- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:8039: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" diff -Nrc3pad gcc-3.1/gcc/configure.in gcc-3.1.1/gcc/configure.in *** gcc-3.1/gcc/configure.in Wed May 8 00:26:47 2002 --- gcc-3.1.1/gcc/configure.in Sat Jun 29 00:20:11 2002 *************** esac]) *** 167,173 **** if test x${gcc_gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_include_dir='${libsubdir}/include/g++' else topsrcdir=${srcdir}/.. . ${srcdir}/../config.if changequote(<<, >>)dnl --- 167,173 ---- if test x${gcc_gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_include_dir='${libsubdir}/include/c++' else topsrcdir=${srcdir}/.. . ${srcdir}/../config.if changequote(<<, >>)dnl *************** elif test x$withval != xno; then *** 259,264 **** --- 259,276 ---- cpp_install_dir=$withval fi]) + # Enable __cxa_atexit for C++. + AC_ARG_ENABLE(__cxa_atexit, + [ --enable-__cxa_atexit enable __cxa_atexit for C++], + [], []) + if test x$enable___cxa_atexit = xyes; then + AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1, + [Define if you want to use __cxa_atexit, rather than atexit, to + register C++ destructors for local statics and global objects. + This is essential for fully standards-compliant handling of + destructors, but requires __cxa_atexit in libc.]) + fi + # Enable Multibyte Characters for C/C++ AC_ARG_ENABLE(c-mbchar, [ --enable-c-mbchar enable multibyte characters for C and C++], *************** elif test x$gcc_cv_as != x; then *** 1525,1535 **** ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then changequote(,)dnl ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` - changequote([,])dnl if test 0"$ld_date" -lt 20020404; then ! gcc_cv_as_hidden="no" fi fi fi --- 1537,1567 ---- ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then changequote(,)dnl + ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'` ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` if test 0"$ld_date" -lt 20020404; then ! if test -n "$ld_date"; then ! # If there was date string, but was earlier than 2002-04-04, fail ! gcc_cv_as_hidden="no" ! elif test -z "$ld_vers"; then ! # If there was no date string nor ld version number, something is wrong ! gcc_cv_as_hidden="no" ! else ! ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ! ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ! ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` ! test -z "$ld_vers_patch" && ld_vers_patch=0 ! if test "$ld_vers_major" -lt 2; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \ ! -a "$ld_vers_patch" -eq 0; then ! gcc_cv_as_hidden="no" ! fi ! fi fi + changequote([,])dnl fi fi diff -Nrc3pad gcc-3.1/gcc/convert.c gcc-3.1.1/gcc/convert.c *** gcc-3.1/gcc/convert.c Thu Oct 11 03:15:25 2001 --- gcc-3.1.1/gcc/convert.c Sat Jun 15 00:42:25 2002 *************** convert_to_integer (type, expr) *** 227,235 **** case LSHIFT_EXPR: /* We can pass truncation down through left shifting ! when the shift count is a nonnegative constant. */ if (TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST && tree_int_cst_sgn (TREE_OPERAND (expr, 1)) >= 0 && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST) { /* If shift count is less than the width of the truncated type, --- 227,237 ---- case LSHIFT_EXPR: /* We can pass truncation down through left shifting ! when the shift count is a nonnegative constant and ! the target type is unsigned. */ if (TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST && tree_int_cst_sgn (TREE_OPERAND (expr, 1)) >= 0 + && TREE_UNSIGNED (type) && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST) { /* If shift count is less than the width of the truncated type, *************** convert_to_integer (type, expr) *** 311,322 **** /* Don't do unsigned arithmetic where signed was wanted, or vice versa. Exception: if both of the original operands were ! unsigned then can safely do the work as unsigned. And we may need to do it as unsigned if we truncate to the original size. */ typex = ((TREE_UNSIGNED (TREE_TYPE (expr)) || (TREE_UNSIGNED (TREE_TYPE (arg0)) ! && TREE_UNSIGNED (TREE_TYPE (arg1)))) ? unsigned_type (typex) : signed_type (typex)); return convert (type, fold (build (ex_form, typex, --- 313,327 ---- /* Don't do unsigned arithmetic where signed was wanted, or vice versa. Exception: if both of the original operands were ! unsigned then we can safely do the work as unsigned; ! if we are distributing through a LSHIFT_EXPR, we must ! do the work as unsigned to avoid a signed overflow. And we may need to do it as unsigned if we truncate to the original size. */ typex = ((TREE_UNSIGNED (TREE_TYPE (expr)) || (TREE_UNSIGNED (TREE_TYPE (arg0)) ! && TREE_UNSIGNED (TREE_TYPE (arg1))) ! || ex_form == LSHIFT_EXPR) ? unsigned_type (typex) : signed_type (typex)); return convert (type, fold (build (ex_form, typex, diff -Nrc3pad gcc-3.1/gcc/cp/ChangeLog gcc-3.1.1/gcc/cp/ChangeLog *** gcc-3.1/gcc/cp/ChangeLog Wed May 15 02:19:33 2002 --- gcc-3.1.1/gcc/cp/ChangeLog Thu Jul 25 23:35:12 2002 *************** *** 1,6 **** ! 2002-05-14 Release Manager ! * GCC 3.1 Released. 2002-05-14 Release Manager --- 1,153 ---- ! 2002-07-25 Release Manager ! * GCC 3.1.1 Released. ! ! 2002-07-12 Mark Mitchell ! ! * class.c (add_method): Correct handling of conversion operators. ! ! 2002-07-11 Mark Mitchell ! ! PR c++/7224 ! * class.c (add_method): Simplify. ! ! 2002-07-11 Jason Merrill ! ! PR c++/7279 ! * tree.c (cp_copy_res_decl_for_inlining): Also copy ! TREE_ADDRESSABLE. ! ! 2002-07-10 Jason Merrill ! ! PR c++/6255 ! * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than ! modifying the old one. ! ! 2002-07-08 Kriang Lerdsuwanakij ! ! * pt.c (can_complete_type_without_circularity): Add static to ! function definition. ! ! 2002-07-05 Jim Wilson ! ! * decl.c (mark_named_label_lists): Add missing & in call to ! mark_binding_level. ! ! 2002-07-05 Jason Merrill ! ! * cvt.c (cp_convert_to_pointer): Call force_fit_type for null ! pointers. ! ! PR optimization/7145 ! * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. ! ! 2002-05-18 Jason Merrill ! ! PR c++/6611 ! * decl2.c (import_export_decl): If we clear ! DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. ! ! 2002-07-03 Kriang Lerdsuwanakij ! ! PR c++/6944 ! * init.c (build_aggr_init): Remove qualifiers of init before calling ! build_vec_init. ! (build_vec_init): Flatten multi-dimensional array during cleanup. ! (build_vec_delete_1): Abort if the type of each element is array. ! ! 2002-07-02 Kriang Lerdsuwanakij ! ! PR c++/6716 ! * pt.c (can_complete_type_without_circularity): New function. ! (instantiate_class_template): Use it. ! * typeck2.c (incomplete_type_error): Improve error message ! due to incomplete fields. ! ! 2002-07-01 Mark Mitchell ! ! PR c++/7112 ! * mangle.c (write_expression): Add mangling for sizeof when ! applied to a type. ! * operators.def: Remove stale comment. ! ! 2002-06-27 Mark Mitchell ! ! PR c++/6695 ! * pt.c (tsubst_friend_class): Substitute into the context of the ! friend before using it. ! ! 2002-06-23 Matt Thomas ! ! * decl.c (finish_function): Change "#ifdef VMS_TARGET" to ! "#if VMS_TARGET". ! ! 2002-06-20 Richard Henderson ! ! PR c++/6747 ! * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. ! Call put_var_into_stack. ! ! 2002-06-20 Kriang Lerdsuwanakij ! ! PR c++/6892 ! * pt.c (tsubst_expr): Handle FILE_STMT. ! ! 2002-06-20 Kriang Lerdsuwanakij ! ! PR c++/6723 ! * pt.c (lookup_template_class): Don't build complete argument of ! BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template ! argument. ! ! 2002-06-16 Richard Henderson ! ! PR opt/6793 ! * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test ! after template instantiation. ! ! 2002-06-07 H.J. Lu (hjl@gnu.org) ! ! * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. ! ! 2002-05-23 Neil Booth ! ! * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. ! * cp-tree.h (cxx_post_options): Kill. ! * cp-lex.c (cxx_post_options): Kill. ! ! 2002-05-19 Kriang Lerdsuwanakij ! ! * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. ! ! 2002-05-19 Kriang Lerdsuwanakij ! ! PR c++/186, DR 259 ! * pt.c (do_decl_instantiation): Don't complain explicit ! instantiation after explicit specialization. ! (do_type_instantiation): Likewise. ! ! 2002-05-09 Jason Merrill ! ! * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. ! ! 2002-05-15 Alexandre Oliva ! ! * cp-tree.h (struct lang_type): Added non_zero_init. ! (CLASSTYPE_NON_ZERO_INIT_P): New macro. ! (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. ! * class.c (check_field_decls): Test non_zero_init. ! * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for ! zero-to-NULL conversions. ! * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a ! type that needs zero-initialization without zeros. ! (check_initializer_decl): Compute zero-initializer for types ! that require a non-trivial one. ! * init.c (build_forced_zero_init): New function. ! (build_default_init): Use it. ! * tree.c (zero_init_p): New function. ! * typeck2.c (force_store_init_value): New function. ! (process_init_constructor): Create non-trivial zero-initializers ! for array members and class fields. 2002-05-14 Release Manager *************** *** 34,39 **** --- 181,187 ---- 2002-04-30 Jason Merrill + PR debug/6436 * decl.c (grokdeclarator): Don't override TYPE_NAME of an anonymous class with a typedef if there are attributes. *************** *** 171,182 **** 2002-04-11 Andrew Haley ! * typeck.c (type_after_usual_arithmetic_conversions): ! If two types have the same variant, return immediately. ! When two floating-point operands are the same precision: ! convert to float if one of the operands is float; ! if neither operand is one of the standard types, return the type ! of the first operand. 2002-04-12 Richard Sandiford --- 319,330 ---- 2002-04-11 Andrew Haley ! * typeck.c (type_after_usual_arithmetic_conversions): ! If two types have the same variant, return immediately. ! When two floating-point operands are the same precision: ! convert to float if one of the operands is float; ! if neither operand is one of the standard types, return the type ! of the first operand. 2002-04-12 Richard Sandiford diff -Nrc3pad gcc-3.1/gcc/cp/Make-lang.in gcc-3.1.1/gcc/cp/Make-lang.in *** gcc-3.1/gcc/cp/Make-lang.in Sat Mar 16 00:59:04 2002 --- gcc-3.1.1/gcc/cp/Make-lang.in Thu May 23 17:57:42 2002 *************** cp/spew.o: cp/spew.c $(CXX_TREE_H) cp/pa *** 251,257 **** cp/lex.o: cp/lex.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h c-pragma.h \ toplev.h output.h mbchar.h $(GGC_H) input.h diagnostic.h cp/operators.def \ $(TM_P_H) ! cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h langhooks-def.h \ c-common.h cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \ output.h $(EXPR_H) except.h toplev.h hash.h $(GGC_H) $(RTL_H) \ --- 251,257 ---- cp/lex.o: cp/lex.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h c-pragma.h \ toplev.h output.h mbchar.h $(GGC_H) input.h diagnostic.h cp/operators.def \ $(TM_P_H) ! cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h $(LANGHOOKS_DEF_H) \ c-common.h cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \ output.h $(EXPR_H) except.h toplev.h hash.h $(GGC_H) $(RTL_H) \ diff -Nrc3pad gcc-3.1/gcc/cp/class.c gcc-3.1.1/gcc/cp/class.c *** gcc-3.1/gcc/cp/class.c Tue Apr 30 21:53:02 2002 --- gcc-3.1.1/gcc/cp/class.c Fri Jul 12 07:55:28 2002 *************** add_method (type, method, error_p) *** 973,1041 **** fns = OVL_NEXT (fns)) { tree fn = OVL_CURRENT (fns); ! if (TREE_CODE (fn) != TREE_CODE (method)) continue; ! if (TREE_CODE (method) != TEMPLATE_DECL) ! { ! /* [over.load] Member function declarations with the ! same name and the same parameter types cannot be ! overloaded if any of them is a static member ! function declaration. ! [namespace.udecl] When a using-declaration brings names ! from a base class into a derived class scope, member ! functions in the derived class override and/or hide member ! functions with the same name and parameter types in a base ! class (rather than conflicting). */ ! if ((DECL_STATIC_FUNCTION_P (fn) ! != DECL_STATIC_FUNCTION_P (method)) ! || using) ! { ! tree parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn)); ! tree parms2 = TYPE_ARG_TYPES (TREE_TYPE (method)); ! int same = 1; ! /* Compare the quals on the 'this' parm. Don't compare ! the whole types, as used functions are treated as ! coming from the using class in overload resolution. */ ! if (using ! && ! DECL_STATIC_FUNCTION_P (fn) ! && ! DECL_STATIC_FUNCTION_P (method) ! && (TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms1))) ! != TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms2))))) ! same = 0; ! if (! DECL_STATIC_FUNCTION_P (fn)) ! parms1 = TREE_CHAIN (parms1); ! if (! DECL_STATIC_FUNCTION_P (method)) ! parms2 = TREE_CHAIN (parms2); ! if (same && compparms (parms1, parms2)) ! { ! if (using && DECL_CONTEXT (fn) == type) ! /* Defer to the local function. */ ! return; ! else ! error ("`%#D' and `%#D' cannot be overloaded", ! fn, method); ! } } } - - if (!decls_match (fn, method)) - continue; - - /* There has already been a declaration of this method - or member template. */ - cp_error_at ("`%D' has already been declared in `%T'", - method, type); - - /* We don't call duplicate_decls here to merge the - declarations because that will confuse things if the - methods have inline definitions. In particular, we - will crash while processing the definitions. */ - return; } } --- 973,1032 ---- fns = OVL_NEXT (fns)) { tree fn = OVL_CURRENT (fns); ! tree parms1; ! tree parms2; ! bool same = 1; ! if (TREE_CODE (fn) != TREE_CODE (method)) continue; ! /* [over.load] Member function declarations with the ! same name and the same parameter types cannot be ! overloaded if any of them is a static member ! function declaration. ! [namespace.udecl] When a using-declaration brings names ! from a base class into a derived class scope, member ! functions in the derived class override and/or hide member ! functions with the same name and parameter types in a base ! class (rather than conflicting). */ ! parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn)); ! parms2 = TYPE_ARG_TYPES (TREE_TYPE (method)); ! /* Compare the quals on the 'this' parm. Don't compare ! the whole types, as used functions are treated as ! coming from the using class in overload resolution. */ ! if (! DECL_STATIC_FUNCTION_P (fn) ! && ! DECL_STATIC_FUNCTION_P (method) ! && (TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms1))) ! != TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms2))))) ! same = 0; ! if (! DECL_STATIC_FUNCTION_P (fn)) ! parms1 = TREE_CHAIN (parms1); ! if (! DECL_STATIC_FUNCTION_P (method)) ! parms2 = TREE_CHAIN (parms2); ! if (same && compparms (parms1, parms2) ! && (!DECL_CONV_FN_P (fn) ! || same_type_p (TREE_TYPE (TREE_TYPE (fn)), ! TREE_TYPE (TREE_TYPE (method))))) ! { ! if (using && DECL_CONTEXT (fn) == type) ! /* Defer to the local function. */ ! return; ! else ! { ! cp_error_at ("`%#D' and `%#D' cannot be overloaded", ! method, fn, method); ! ! /* We don't call duplicate_decls here to merge ! the declarations because that will confuse ! things if the methods have inline ! definitions. In particular, we will crash ! while processing the definitions. */ ! return; } } } } *************** check_field_decls (t, access_decls, empt *** 3410,3415 **** --- 3401,3409 ---- to be allowed in POD structs. */ CLASSTYPE_NON_POD_P (t) = 1; + if (! zero_init_p (type)) + CLASSTYPE_NON_ZERO_INIT_P (t) = 1; + /* If any field is const, the structure type is pseudo-const. */ if (CP_TYPE_CONST_P (type)) { diff -Nrc3pad gcc-3.1/gcc/cp/cp-lang.c gcc-3.1.1/gcc/cp/cp-lang.c *** gcc-3.1/gcc/cp/cp-lang.c Wed Dec 5 23:48:14 2001 --- gcc-3.1.1/gcc/cp/cp-lang.c Thu May 23 17:57:42 2002 *************** *** 1,5 **** /* Language-dependent hooks for C++. ! Copyright 2001 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GNU CC. --- 1,5 ---- /* Language-dependent hooks for C++. ! Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GNU CC. *************** static HOST_WIDE_INT cxx_get_alias_set P *** 43,49 **** #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION cxx_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS cxx_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET cxx_get_alias_set #undef LANG_HOOKS_EXPAND_CONSTANT --- 43,49 ---- #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION cxx_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET cxx_get_alias_set #undef LANG_HOOKS_EXPAND_CONSTANT diff -Nrc3pad gcc-3.1/gcc/cp/cp-tree.h gcc-3.1.1/gcc/cp/cp-tree.h *** gcc-3.1/gcc/cp/cp-tree.h Tue Apr 23 21:51:13 2002 --- gcc-3.1.1/gcc/cp/cp-tree.h Thu May 23 17:57:42 2002 *************** struct lang_type *** 1245,1250 **** --- 1245,1252 ---- unsigned is_partial_instantiation : 1; unsigned java_interface : 1; + unsigned non_zero_init : 1; + /* When adding a flag here, consider whether or not it ought to apply to a template instance if it applies to the template. If so, make sure to copy it in instantiate_class_template! */ *************** struct lang_type *** 1252,1258 **** /* There are some bits left to fill out a 32-bit word. Keep track of this by updating the size of this bitfield whenever you add or remove a flag. */ ! unsigned dummy : 8; int vsize; --- 1254,1260 ---- /* There are some bits left to fill out a 32-bit word. Keep track of this by updating the size of this bitfield whenever you add or remove a flag. */ ! unsigned dummy : 7; int vsize; *************** struct lang_type *** 1500,1508 **** #define CLASSTYPE_HAS_MUTABLE(NODE) (TYPE_LANG_SPECIFIC (NODE)->has_mutable) #define TYPE_HAS_MUTABLE_P(NODE) (cp_has_mutable_p (NODE)) ! /* Nonzero means that this class type is a non-POD class. */ #define CLASSTYPE_NON_POD_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->non_pod_class) /* Nonzero if this class is "nearly empty", i.e., contains only a virtual function table pointer. */ #define CLASSTYPE_NEARLY_EMPTY_P(NODE) \ --- 1502,1515 ---- #define CLASSTYPE_HAS_MUTABLE(NODE) (TYPE_LANG_SPECIFIC (NODE)->has_mutable) #define TYPE_HAS_MUTABLE_P(NODE) (cp_has_mutable_p (NODE)) ! /* Nonzero means that this class type is a non-POD class. */ #define CLASSTYPE_NON_POD_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->non_pod_class) + /* Nonzero means that this class contains pod types whose default + initialization is not a zero initialization (namely, pointers to + data members). */ + #define CLASSTYPE_NON_ZERO_INIT_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->non_zero_init) + /* Nonzero if this class is "nearly empty", i.e., contains only a virtual function table pointer. */ #define CLASSTYPE_NEARLY_EMPTY_P(NODE) \ *************** extern tree build_aggr_init PARAMS ((t *** 3900,3905 **** --- 3907,3913 ---- extern int is_aggr_type PARAMS ((tree, int)); extern tree get_aggr_from_typedef PARAMS ((tree, int)); extern tree get_type_value PARAMS ((tree)); + extern tree build_forced_zero_init PARAMS ((tree)); extern tree build_member_call PARAMS ((tree, tree, tree)); extern tree build_offset_ref PARAMS ((tree, tree)); extern tree resolve_offset_ref PARAMS ((tree)); *************** extern int cp_type_qual_from_rid *** 3953,3959 **** extern const char *cxx_init PARAMS ((const char *)); extern void cxx_finish PARAMS ((void)); extern void cxx_init_options PARAMS ((void)); - extern void cxx_post_options PARAMS ((void)); /* in method.c */ extern void init_method PARAMS ((void)); --- 3961,3966 ---- *************** extern void end_input PARAMS ((void)) *** 4212,4217 **** --- 4219,4225 ---- /* in tree.c */ extern void init_tree PARAMS ((void)); extern int pod_type_p PARAMS ((tree)); + extern int zero_init_p PARAMS ((tree)); extern tree canonical_type_variant PARAMS ((tree)); extern void unshare_base_binfos PARAMS ((tree)); extern int member_p PARAMS ((tree)); *************** extern int abstract_virtuals_error PARA *** 4357,4362 **** --- 4365,4371 ---- #define my_friendly_assert(EXP, N) (void) \ (((EXP) == 0) ? (fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0) : 0) + extern tree force_store_init_value PARAMS ((tree, tree)); extern tree store_init_value PARAMS ((tree, tree)); extern tree digest_init PARAMS ((tree, tree, tree *)); extern tree build_scoped_ref PARAMS ((tree, tree)); diff -Nrc3pad gcc-3.1/gcc/cp/cvt.c gcc-3.1.1/gcc/cp/cvt.c *** gcc-3.1/gcc/cp/cvt.c Wed Apr 24 22:40:59 2002 --- gcc-3.1.1/gcc/cp/cvt.c Fri Jul 5 22:11:38 2002 *************** *** 1,6 **** /* Language-level data type conversion for GNU C++. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Language-level data type conversion for GNU C++. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** cp_convert_to_pointer (type, expr, force *** 249,254 **** --- 249,256 ---- else expr = build_int_2 (0, 0); TREE_TYPE (expr) = type; + /* Fix up the representation of -1 if appropriate. */ + force_fit_type (expr, 0); return expr; } *************** convert_to_pointer_force (type, expr) *** 285,297 **** register tree intype = TREE_TYPE (expr); register enum tree_code form = TREE_CODE (intype); - if (integer_zerop (expr)) - { - expr = build_int_2 (0, 0); - TREE_TYPE (expr) = type; - return expr; - } - if (form == POINTER_TYPE) { intype = TYPE_MAIN_VARIANT (intype); --- 287,292 ---- diff -Nrc3pad gcc-3.1/gcc/cp/decl.c gcc-3.1.1/gcc/cp/decl.c *** gcc-3.1/gcc/cp/decl.c Fri May 3 18:55:23 2002 --- gcc-3.1.1/gcc/cp/decl.c Tue Jul 9 23:46:07 2002 *************** mark_named_label_lists (labs, uses) *** 1970,1976 **** for (; l; l = l->next) { ggc_mark (l); ! mark_binding_level (l->binding_level); ggc_mark_tree (l->old_value); ggc_mark_tree (l->label_decl); ggc_mark_tree (l->bad_decls); --- 1970,1976 ---- for (; l; l = l->next) { ggc_mark (l); ! mark_binding_level (&l->binding_level); ggc_mark_tree (l->old_value); ggc_mark_tree (l->label_decl); ggc_mark_tree (l->bad_decls); *************** lookup_name_real (name, prefer_type, non *** 6101,6107 **** if (got_scope && got_scope != type && val && TREE_CODE (val) == TYPE_DECL && TREE_CODE (TREE_TYPE (val)) == TYPENAME_TYPE) ! TYPE_CONTEXT (TREE_TYPE (val)) = got_scope; } } else --- 6101,6113 ---- if (got_scope && got_scope != type && val && TREE_CODE (val) == TYPE_DECL && TREE_CODE (TREE_TYPE (val)) == TYPENAME_TYPE) ! { ! val = TREE_TYPE (val); ! val = build_typename_type (got_scope, name, ! TYPENAME_TYPE_FULLNAME (val), ! TREE_TYPE (val)); ! val = TYPE_STUB_DECL (val); ! } } } else *************** obscure_complex_init (decl, init) *** 7605,7611 **** NULL_TREE); else #endif ! DECL_INITIAL (decl) = error_mark_node; return init; } --- 7611,7623 ---- NULL_TREE); else #endif ! { ! if (zero_init_p (TREE_TYPE (decl))) ! DECL_INITIAL (decl) = error_mark_node; ! /* Otherwise, force_store_init_value will have already stored a ! zero-init initializer in DECL_INITIAL, that should be ! retained. */ ! } return init; } *************** check_initializer (decl, init) *** 7851,7858 **** --- 7863,7878 ---- if (init) init = obscure_complex_init (decl, init); } + else if (!DECL_EXTERNAL (decl) && !zero_init_p (type)) + { + force_store_init_value (decl, build_forced_zero_init (type)); + + if (init) + goto process_init; + } else if (init) { + process_init: if (TYPE_HAS_CONSTRUCTOR (type) || TYPE_NEEDS_CONSTRUCTING (type)) { if (TREE_CODE (type) == ARRAY_TYPE) *************** finish_function (flags) *** 14222,14228 **** if (DECL_MAIN_P (current_function_decl)) { /* Make it so that `main' always returns 0 by default. */ ! #ifdef VMS_TARGET finish_return_stmt (integer_one_node); #else finish_return_stmt (integer_zero_node); --- 14242,14248 ---- if (DECL_MAIN_P (current_function_decl)) { /* Make it so that `main' always returns 0 by default. */ ! #if VMS_TARGET finish_return_stmt (integer_one_node); #else finish_return_stmt (integer_zero_node); diff -Nrc3pad gcc-3.1/gcc/cp/decl2.c gcc-3.1.1/gcc/cp/decl2.c *** gcc-3.1/gcc/cp/decl2.c Wed Apr 17 17:13:39 2002 --- gcc-3.1.1/gcc/cp/decl2.c Thu Jul 4 10:57:18 2002 *************** int flag_weak = 1; *** 376,382 **** /* Nonzero to use __cxa_atexit, rather than atexit, to register destructors for local statics and global objects. */ ! int flag_use_cxa_atexit; /* Maximum template instantiation depth. This limit is rather arbitrary, but it exists to limit the time it takes to notice --- 376,382 ---- /* Nonzero to use __cxa_atexit, rather than atexit, to register destructors for local statics and global objects. */ ! int flag_use_cxa_atexit = DEFAULT_USE_CXA_ATEXIT; /* Maximum template instantiation depth. This limit is rather arbitrary, but it exists to limit the time it takes to notice *************** import_export_decl (decl) *** 2497,2503 **** comdat_linkage (decl); } else ! DECL_NOT_REALLY_EXTERN (decl) = 0; } else if (DECL_FUNCTION_MEMBER_P (decl)) { --- 2497,2506 ---- comdat_linkage (decl); } else ! { ! DECL_EXTERNAL (decl) = 1; ! DECL_NOT_REALLY_EXTERN (decl) = 0; ! } } else if (DECL_FUNCTION_MEMBER_P (decl)) { *************** import_export_decl (decl) *** 2513,2518 **** --- 2516,2524 ---- && ! flag_implement_inlines && !DECL_VINDEX (decl))); + if (!DECL_NOT_REALLY_EXTERN (decl)) + DECL_EXTERNAL (decl) = 1; + /* Always make artificials weak. */ if (DECL_ARTIFICIAL (decl) && flag_weak) comdat_linkage (decl); diff -Nrc3pad gcc-3.1/gcc/cp/error.c gcc-3.1.1/gcc/cp/error.c *** gcc-3.1/gcc/cp/error.c Wed May 1 16:29:27 2002 --- gcc-3.1.1/gcc/cp/error.c Sun May 19 11:04:37 2002 *************** dump_type (t, flags) *** 474,480 **** case TYPEOF_TYPE: output_add_string (scratch_buffer, "__typeof ("); dump_expr (TYPE_FIELDS (t), flags & ~TFF_EXPR_IN_PARENS); ! print_left_paren (scratch_buffer); break; default: --- 474,480 ---- case TYPEOF_TYPE: output_add_string (scratch_buffer, "__typeof ("); dump_expr (TYPE_FIELDS (t), flags & ~TFF_EXPR_IN_PARENS); ! print_right_paren (scratch_buffer); break; default: diff -Nrc3pad gcc-3.1/gcc/cp/init.c gcc-3.1.1/gcc/cp/init.c *** gcc-3.1/gcc/cp/init.c Thu May 2 20:02:41 2002 --- gcc-3.1.1/gcc/cp/init.c Wed Jul 3 15:02:09 2002 *************** *** 1,6 **** /* Handle initialization things in C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Handle initialization things in C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** initialize_vtbl_ptrs (addr) *** 176,181 **** --- 176,219 ---- dfs_marked_real_bases_queue_p, type); } + /* Types containing pointers to data members cannot be + zero-initialized with zeros, because the NULL value for such + pointers is -1. + + TYPE is a type that requires such zero initialization. The + returned value is the initializer. */ + + tree + build_forced_zero_init (type) + tree type; + { + tree init = NULL; + + if (AGGREGATE_TYPE_P (type) && !TYPE_PTRMEMFUNC_P (type)) + { + /* This is a default initialization of an aggregate, but not one of + non-POD class type. We cleverly notice that the initialization + rules in such a case are the same as for initialization with an + empty brace-initialization list. */ + init = build (CONSTRUCTOR, NULL_TREE, NULL_TREE, NULL_TREE); + } + else if (TREE_CODE (type) == REFERENCE_TYPE) + /* --if T is a reference type, no initialization is performed. */ + return NULL_TREE; + else + { + init = integer_zero_node; + + if (TREE_CODE (type) == ENUMERAL_TYPE) + /* We must make enumeral types the right type. */ + init = fold (build1 (NOP_EXPR, type, init)); + } + + init = digest_init (type, init, 0); + + return init; + } + /* [dcl.init]: To default-initialize an object of type T means: *************** build_default_init (type) *** 202,229 **** anything with a CONSTRUCTOR for arrays here, as that would imply copy-initialization. */ return NULL_TREE; - else if (AGGREGATE_TYPE_P (type) && !TYPE_PTRMEMFUNC_P (type)) - { - /* This is a default initialization of an aggregate, but not one of - non-POD class type. We cleverly notice that the initialization - rules in such a case are the same as for initialization with an - empty brace-initialization list. */ - init = build (CONSTRUCTOR, NULL_TREE, NULL_TREE, NULL_TREE); - } - else if (TREE_CODE (type) == REFERENCE_TYPE) - /* --if T is a reference type, no initialization is performed. */ - return NULL_TREE; - else - { - init = integer_zero_node; - - if (TREE_CODE (type) == ENUMERAL_TYPE) - /* We must make enumeral types the right type. */ - init = fold (build1 (NOP_EXPR, type, init)); - } ! init = digest_init (type, init, 0); ! return init; } /* Subroutine of emit_base_init. */ --- 240,247 ---- anything with a CONSTRUCTOR for arrays here, as that would imply copy-initialization. */ return NULL_TREE; ! return build_forced_zero_init (type); } /* Subroutine of emit_base_init. */ *************** build_aggr_init (exp, init, flags) *** 1165,1175 **** return error_mark_node; } if (cp_type_quals (type) != TYPE_UNQUALIFIED) ! { ! TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type); ! if (init) ! TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype); ! } stmt_expr = build_vec_init (exp, init, init && same_type_p (TREE_TYPE (init), TREE_TYPE (exp))); --- 1183,1191 ---- return error_mark_node; } if (cp_type_quals (type) != TYPE_UNQUALIFIED) ! TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type); ! if (itype && cp_type_quals (itype) != TYPE_UNQUALIFIED) ! TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype); stmt_expr = build_vec_init (exp, init, init && same_type_p (TREE_TYPE (init), TREE_TYPE (exp))); *************** build_vec_delete_1 (base, maxindex, type *** 2575,2580 **** --- 2591,2600 ---- This is also the containing expression returned by this function. */ tree controller = NULL_TREE; + /* We should only have 1-D arrays here. */ + if (TREE_CODE (type) == ARRAY_TYPE) + abort (); + if (! IS_AGGR_TYPE (type) || TYPE_HAS_TRIVIAL_DESTRUCTOR (type)) { loop = integer_zero_node; *************** build_vec_init (base, init, from_array) *** 2988,2999 **** && from_array != 2) { tree e; finish_compound_stmt (/*has_no_scope=*/1, try_body); finish_cleanup_try_block (try_block); ! e = build_vec_delete_1 (rval, ! cp_build_binary_op (MINUS_EXPR, maxindex, ! iterator), type, sfk_base_destructor, /*use_global_delete=*/0); --- 3008,3027 ---- && from_array != 2) { tree e; + tree m = cp_build_binary_op (MINUS_EXPR, maxindex, iterator); + + /* Flatten multi-dimensional array since build_vec_delete only + expects one-dimensional array. */ + if (TREE_CODE (type) == ARRAY_TYPE) + { + m = cp_build_binary_op (MULT_EXPR, m, + array_type_nelts_total (type)); + type = strip_array_types (type); + } finish_compound_stmt (/*has_no_scope=*/1, try_body); finish_cleanup_try_block (try_block); ! e = build_vec_delete_1 (rval, m, type, sfk_base_destructor, /*use_global_delete=*/0); diff -Nrc3pad gcc-3.1/gcc/cp/lex.c gcc-3.1.1/gcc/cp/lex.c *** gcc-3.1/gcc/cp/lex.c Fri Mar 29 20:30:55 2002 --- gcc-3.1.1/gcc/cp/lex.c Thu May 23 17:57:44 2002 *************** *** 1,6 **** /* Separate lexical analyzer for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Separate lexical analyzer for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** static const char *const cplus_tree_code *** 237,249 **** }; #undef DEFTREECODE - /* Post-switch processing. */ - void - cxx_post_options () - { - c_common_post_options (); - } - /* Initialization before switch parsing. */ void cxx_init_options () --- 237,242 ---- diff -Nrc3pad gcc-3.1/gcc/cp/mangle.c gcc-3.1.1/gcc/cp/mangle.c *** gcc-3.1/gcc/cp/mangle.c Thu Apr 25 01:04:55 2002 --- gcc-3.1.1/gcc/cp/mangle.c Tue Jul 2 03:14:24 2002 *************** write_expression (expr) *** 1818,1823 **** --- 1818,1829 ---- write_mangled_name (expr); write_char ('E'); } + else if (TREE_CODE (expr) == SIZEOF_EXPR + && TYPE_P (TREE_OPERAND (expr, 0))) + { + write_string ("st"); + write_type (TREE_OPERAND (expr, 0)); + } else { int i; *************** write_expression (expr) *** 1856,1861 **** --- 1862,1868 ---- write_expression (TREE_OPERAND (expr, 0)); break; + /* Handle pointers-to-members specially. */ case SCOPE_REF: write_type (TREE_OPERAND (expr, 0)); diff -Nrc3pad gcc-3.1/gcc/cp/operators.def gcc-3.1.1/gcc/cp/operators.def *** gcc-3.1/gcc/cp/operators.def Sun Dec 16 16:07:00 2001 --- gcc-3.1.1/gcc/cp/operators.def Tue Jul 2 03:14:24 2002 *************** *** 5,11 **** non-overloadable operators (like the `?:' ternary operator). Writtey by Mark Mitchell ! Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. --- 5,11 ---- non-overloadable operators (like the `?:' ternary operator). Writtey by Mark Mitchell ! Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 46,55 **** mangled under the new ABI. For `operator +', for example, this would be "pl". - OLD_MANGLING - - Analogous, but for the old ABI. - ARITY The arity of the operator, or -1 if any arity is allowed. (As --- 46,51 ---- diff -Nrc3pad gcc-3.1/gcc/cp/pt.c gcc-3.1.1/gcc/cp/pt.c *** gcc-3.1/gcc/cp/pt.c Tue Apr 30 19:43:56 2002 --- gcc-3.1.1/gcc/cp/pt.c Mon Jul 8 15:09:44 2002 *************** static tree build_template_decl PARAMS ( *** 134,139 **** --- 134,140 ---- static int mark_template_parm PARAMS ((tree, void *)); static tree tsubst_friend_function PARAMS ((tree, tree)); static tree tsubst_friend_class PARAMS ((tree, tree)); + static int can_complete_type_without_circularity PARAMS ((tree)); static tree get_bindings_real PARAMS ((tree, tree, tree, int, int, int)); static int template_decl_level PARAMS ((tree)); static tree maybe_get_template_decl_from_type_decl PARAMS ((tree)); *************** lookup_template_class (d1, arglist, in_d *** 3942,3951 **** The template parameter level of T and U are one level larger than of TT. To proper process the default argument of U, say when an instantiation `TT' is seen, we need to build the full ! arguments containing {int} as the innermost level. Outer levels ! can be obtained from `current_template_args ()'. */ ! if (processing_template_decl) arglist = add_to_template_args (current_template_args (), arglist); arglist2 = coerce_template_parms (parmlist, arglist, template, --- 3943,3958 ---- The template parameter level of T and U are one level larger than of TT. To proper process the default argument of U, say when an instantiation `TT' is seen, we need to build the full ! arguments containing {int} as the innermost level. Outer levels, ! available when not appearing as default template argument, can be ! obtained from `current_template_args ()'. ! Suppose that TT is later substituted with std::vector. The above ! instantiation is `TT >' with TT at ! level 1, and T at level 2, while the template arguments at level 1 ! becomes {std::vector} and the inner level 2 is {int}. */ ! ! if (current_template_parms) arglist = add_to_template_args (current_template_args (), arglist); arglist2 = coerce_template_parms (parmlist, arglist, template, *************** tsubst_friend_class (friend_tmpl, args) *** 4805,4811 **** if (TREE_CODE (context) == NAMESPACE_DECL) push_nested_namespace (context); else ! push_nested_class (context, 2); } /* First, we look for a class template. */ --- 4812,4818 ---- if (TREE_CODE (context) == NAMESPACE_DECL) push_nested_namespace (context); else ! push_nested_class (tsubst (context, args, tf_none, NULL_TREE), 2); } /* First, we look for a class template. */ *************** tsubst_friend_class (friend_tmpl, args) *** 4877,4882 **** --- 4884,4908 ---- return friend_type; } + /* Returns zero if TYPE cannot be completed later due to circularity. + Otherwise returns one. */ + + static int + can_complete_type_without_circularity (type) + tree type; + { + if (type == NULL_TREE || type == error_mark_node) + return 0; + else if (COMPLETE_TYPE_P (type)) + return 1; + else if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type)) + return can_complete_type_without_circularity (TREE_TYPE (type)); + else if (CLASS_TYPE_P (type) && TYPE_BEING_DEFINED (TYPE_MAIN_VARIANT (type))) + return 0; + else + return 1; + } + tree instantiate_class_template (type) tree type; *************** instantiate_class_template (type) *** 5197,5203 **** if (DECL_INITIALIZED_IN_CLASS_P (r)) check_static_variable_definition (r, TREE_TYPE (r)); } ! /* R will have a TREE_CHAIN if and only if it has already been processed by finish_member_declaration. This can happen if, for example, it is a TYPE_DECL for a class-scoped --- 5223,5242 ---- if (DECL_INITIALIZED_IN_CLASS_P (r)) check_static_variable_definition (r, TREE_TYPE (r)); } ! else if (TREE_CODE (r) == FIELD_DECL) ! { ! /* Determine whether R has a valid type and can be ! completed later. If R is invalid, then it is replaced ! by error_mark_node so that it will not be added to ! TYPE_FIELDS. */ ! tree rtype = TREE_TYPE (r); ! if (!can_complete_type_without_circularity (rtype)) ! { ! incomplete_type_error (r, rtype); ! r = error_mark_node; ! } ! } ! /* R will have a TREE_CHAIN if and only if it has already been processed by finish_member_declaration. This can happen if, for example, it is a TYPE_DECL for a class-scoped *************** instantiate_class_template (type) *** 5278,5283 **** --- 5317,5324 ---- --processing_template_decl; } + /* Now that TYPE_FIELDS and TYPE_METHODS are set up. We can + instantiate templates used by this class. */ for (t = TYPE_FIELDS (type); t; t = TREE_CHAIN (t)) if (TREE_CODE (t) == FIELD_DECL) { *************** tsubst_expr (t, args, complain, in_decl) *** 7487,7492 **** --- 7528,7538 ---- finish_label_stmt (DECL_NAME (LABEL_STMT_LABEL (t))); break; + case FILE_STMT: + input_filename = FILE_STMT_FILENAME (t); + add_stmt (build_nt (FILE_STMT, FILE_STMT_FILENAME_NODE (t))); + break; + case GOTO_STMT: prep_stmt (t); tmp = GOTO_DESTINATION (t); *************** tsubst_expr (t, args, complain, in_decl) *** 7502,7513 **** case ASM_STMT: prep_stmt (t); ! finish_asm_stmt (ASM_CV_QUAL (t), ! tsubst_expr (ASM_STRING (t), args, complain, in_decl), ! tsubst_expr (ASM_OUTPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_INPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_CLOBBERS (t), args, complain, ! in_decl)); break; case TRY_BLOCK: --- 7548,7560 ---- case ASM_STMT: prep_stmt (t); ! tmp = finish_asm_stmt ! (ASM_CV_QUAL (t), ! tsubst_expr (ASM_STRING (t), args, complain, in_decl), ! tsubst_expr (ASM_OUTPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_INPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_CLOBBERS (t), args, complain, in_decl)); ! ASM_INPUT_P (tmp) = ASM_INPUT_P (t); break; case TRY_BLOCK: *************** do_decl_instantiation (declspecs, declar *** 9501,9512 **** if (DECL_TEMPLATE_SPECIALIZATION (result)) { ! /* [temp.spec] ! No program shall both explicitly instantiate and explicitly ! specialize a template. */ ! pedwarn ("explicit instantiation of `%#D' after", result); ! cp_pedwarn_at ("explicit specialization here", result); return; } else if (DECL_EXPLICIT_INSTANTIATION (result)) --- 9548,9563 ---- if (DECL_TEMPLATE_SPECIALIZATION (result)) { ! /* DR 259 [temp.spec]. ! Both an explicit instantiation and a declaration of an explicit ! specialization shall not appear in a program unless the explicit ! instantiation follows a declaration of the explicit specialization. ! ! For a given set of template parameters, if an explicit ! instantiation of a template appears after a declaration of an ! explicit specialization for that template, the explicit ! instantiation has no effect. */ return; } else if (DECL_EXPLICIT_INSTANTIATION (result)) *************** do_type_instantiation (t, storage, compl *** 9636,9650 **** if (CLASSTYPE_TEMPLATE_SPECIALIZATION (t)) { ! /* [temp.spec] ! No program shall both explicitly instantiate and explicitly ! specialize a template. */ ! if (complain & tf_error) ! { ! error ("explicit instantiation of `%#T' after", t); ! cp_error_at ("explicit specialization here", t); ! } return; } else if (CLASSTYPE_EXPLICIT_INSTANTIATION (t)) --- 9687,9702 ---- if (CLASSTYPE_TEMPLATE_SPECIALIZATION (t)) { ! /* DR 259 [temp.spec]. ! Both an explicit instantiation and a declaration of an explicit ! specialization shall not appear in a program unless the explicit ! instantiation follows a declaration of the explicit specialization. ! ! For a given set of template parameters, if an explicit ! instantiation of a template appears after a declaration of an ! explicit specialization for that template, the explicit ! instantiation has no effect. */ return; } else if (CLASSTYPE_EXPLICIT_INSTANTIATION (t)) diff -Nrc3pad gcc-3.1/gcc/cp/tree.c gcc-3.1.1/gcc/cp/tree.c *** gcc-3.1/gcc/cp/tree.c Thu Apr 25 00:14:25 2002 --- gcc-3.1.1/gcc/cp/tree.c Thu Jul 11 21:13:08 2002 *************** *** 1,6 **** /* Language-dependent node constructors for parse phase of GNU compiler. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Language-dependent node constructors for parse phase of GNU compiler. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** pod_type_p (t) *** 1898,1903 **** --- 1898,1924 ---- return 1; } + /* Returns 1 iff zero initialization of type T means actually storing + zeros in it. */ + + int + zero_init_p (t) + tree t; + { + t = strip_array_types (t); + + /* NULL pointers to data members are initialized with -1. */ + if (TYPE_PTRMEM_P (t)) + return 0; + + /* Classes that contain types that can't be zero-initialized, cannot + be zero-initialized themselves. */ + if (CLASS_TYPE_P (t) && CLASSTYPE_NON_ZERO_INIT_P (t)) + return 0; + + return 1; + } + /* Table of valid C++ attributes. */ const struct attribute_spec cp_attribute_table[] = { *************** cp_cannot_inline_tree_fn (fnp) *** 2147,2153 **** && TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn))) { fn = *fnp = instantiate_decl (fn, /*defer_ok=*/0); ! return TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn)); } if (varargs_function_p (fn)) --- 2168,2175 ---- && TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn))) { fn = *fnp = instantiate_decl (fn, /*defer_ok=*/0); ! if (TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn))) ! return 1; } if (varargs_function_p (fn)) *************** cp_copy_res_decl_for_inlining (result, f *** 2262,2267 **** --- 2284,2294 ---- DECL_SOURCE_FILE (var) = DECL_SOURCE_FILE (nrv); DECL_SOURCE_LINE (var) = DECL_SOURCE_LINE (nrv); DECL_ABSTRACT_ORIGIN (var) = DECL_ORIGIN (nrv); + /* Don't lose initialization info. */ + DECL_INITIAL (var) = DECL_INITIAL (nrv); + /* Don't forget that it needs to go in the stack. */ + TREE_ADDRESSABLE (var) = TREE_ADDRESSABLE (nrv); + splay_tree_insert (decl_map, (splay_tree_key) nrv, (splay_tree_value) var); diff -Nrc3pad gcc-3.1/gcc/cp/typeck.c gcc-3.1.1/gcc/cp/typeck.c *** gcc-3.1/gcc/cp/typeck.c Thu Apr 25 00:14:24 2002 --- gcc-3.1.1/gcc/cp/typeck.c Thu Jun 20 23:25:11 2002 *************** mark_addressable (exp) *** 4806,4814 **** { register tree x = exp; - if (TREE_ADDRESSABLE (x) == 1) - return 1; - while (1) switch (TREE_CODE (x)) { --- 4806,4811 ---- *************** mark_addressable (exp) *** 4827,4832 **** --- 4824,4831 ---- TREE_ADDRESSABLE (x) = 1; /* so compiler doesn't die later */ return 1; } + /* FALLTHRU */ + case VAR_DECL: /* Caller should not be trying to mark initialized constant fields addressable. */ *************** mark_addressable (exp) *** 4834,4839 **** --- 4833,4839 ---- || DECL_IN_AGGR_P (x) == 0 || TREE_STATIC (x) || DECL_EXTERNAL (x), 314); + /* FALLTHRU */ case CONST_DECL: case RESULT_DECL: *************** mark_addressable (exp) *** 4842,4847 **** --- 4842,4848 ---- warning ("address requested for `%D', which is declared `register'", x); TREE_ADDRESSABLE (x) = 1; + put_var_into_stack (x); return 1; case FUNCTION_DECL: diff -Nrc3pad gcc-3.1/gcc/cp/typeck2.c gcc-3.1.1/gcc/cp/typeck2.c *** gcc-3.1/gcc/cp/typeck2.c Wed Feb 13 17:32:24 2002 --- gcc-3.1.1/gcc/cp/typeck2.c Tue Jul 2 15:50:35 2002 *************** *** 1,7 **** /* Report error messages, build initializers, and perform some front-end optimizations for C++ compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,7 ---- /* Report error messages, build initializers, and perform some front-end optimizations for C++ compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** incomplete_type_error (value, type) *** 196,202 **** return; if (value != 0 && (TREE_CODE (value) == VAR_DECL ! || TREE_CODE (value) == PARM_DECL)) { cp_error_at ("`%D' has incomplete type", value); decl = 1; --- 196,203 ---- return; if (value != 0 && (TREE_CODE (value) == VAR_DECL ! || TREE_CODE (value) == PARM_DECL ! || TREE_CODE (value) == FIELD_DECL)) { cp_error_at ("`%D' has incomplete type", value); decl = 1; *************** retry: *** 211,217 **** case ENUMERAL_TYPE: if (!decl) error ("invalid use of undefined type `%#T'", type); ! cp_error_at ("forward declaration of `%#T'", type); break; case VOID_TYPE: --- 212,221 ---- case ENUMERAL_TYPE: if (!decl) error ("invalid use of undefined type `%#T'", type); ! if (!TYPE_TEMPLATE_INFO (type)) ! cp_error_at ("forward declaration of `%#T'", type); ! else ! cp_error_at ("declaration of `%#T'", type); break; case VOID_TYPE: *************** store_init_value (decl, init) *** 420,425 **** --- 424,451 ---- DECL_INITIAL (decl) = value; return NULL_TREE; } + + /* Same as store_init_value, but used for known-to-be-valid static + initializers. Used to introduce a static initializer even in data + structures that may require dynamic initialization. */ + + tree + force_store_init_value (decl, init) + tree decl, init; + { + tree type = TREE_TYPE (decl); + int needs_constructing = TYPE_NEEDS_CONSTRUCTING (type); + + TYPE_NEEDS_CONSTRUCTING (type) = 0; + + init = store_init_value (decl, init); + if (init) + abort (); + + TYPE_NEEDS_CONSTRUCTING (type) = needs_constructing; + + return init; + } /* Digest the parser output INIT as an initializer for type TYPE. Return a C expression of type TYPE to represent the initial value. *************** process_init_constructor (type, init, el *** 732,737 **** --- 758,765 ---- next1 = build (CONSTRUCTOR, NULL_TREE, NULL_TREE, NULL_TREE); next1 = digest_init (TREE_TYPE (type), next1, 0); } + else if (! zero_init_p (TREE_TYPE (type))) + next1 = build_forced_zero_init (TREE_TYPE (type)); else /* The default zero-initialization is fine for us; don't add anything to the CONSTRUCTOR. */ *************** process_init_constructor (type, init, el *** 848,856 **** && (!init || TREE_HAS_CONSTRUCTOR (init))) warning ("missing initializer for member `%D'", field); ! /* The default zero-initialization is fine for us; don't ! add anything to the CONSTRUCTOR. */ ! continue; } if (next1 == error_mark_node) --- 876,887 ---- && (!init || TREE_HAS_CONSTRUCTOR (init))) warning ("missing initializer for member `%D'", field); ! if (! zero_init_p (TREE_TYPE (field))) ! next1 = build_forced_zero_init (TREE_TYPE (field)); ! else ! /* The default zero-initialization is fine for us; don't ! add anything to the CONSTRUCTOR. */ ! continue; } if (next1 == error_mark_node) diff -Nrc3pad gcc-3.1/gcc/cppinit.c gcc-3.1.1/gcc/cppinit.c *** gcc-3.1/gcc/cppinit.c Wed May 1 20:04:46 2002 --- gcc-3.1.1/gcc/cppinit.c Fri May 24 09:26:48 2002 *************** static void path_include PARAMS ((cpp_r *** 99,104 **** --- 99,105 ---- char *, int)); static void init_library PARAMS ((void)); static void init_builtins PARAMS ((cpp_reader *)); + static void mark_named_operators PARAMS ((cpp_reader *)); static void append_include_chain PARAMS ((cpp_reader *, char *, int, int)); static struct search_path * remove_dup_dir PARAMS ((cpp_reader *, *************** cpp_destroy (pfile) *** 612,639 **** Two values are not compile time constants, so we tag them in the FLAGS field instead: VERS value is the global version_string, quoted ! ULP value is the global user_label_prefix ! ! Also, macros with CPLUS set in the flags field are entered only for C++. */ struct builtin { const U_CHAR *name; const char *value; unsigned char builtin; - unsigned char operator; unsigned short flags; unsigned short len; }; #define VERS 0x01 #define ULP 0x02 - #define CPLUS 0x04 #define BUILTIN 0x08 - #define OPERATOR 0x10 ! #define B(n, t) { U n, 0, t, 0, BUILTIN, sizeof n - 1 } ! #define C(n, v) { U n, v, 0, 0, 0, sizeof n - 1 } ! #define X(n, f) { U n, 0, 0, 0, f, sizeof n - 1 } ! #define O(n, c, f) { U n, 0, 0, c, OPERATOR | f, sizeof n - 1 } static const struct builtin builtin_array[] = { B("__TIME__", BT_TIME), --- 613,634 ---- Two values are not compile time constants, so we tag them in the FLAGS field instead: VERS value is the global version_string, quoted ! ULP value is the global user_label_prefix */ struct builtin { const U_CHAR *name; const char *value; unsigned char builtin; unsigned short flags; unsigned short len; }; #define VERS 0x01 #define ULP 0x02 #define BUILTIN 0x08 ! #define B(n, t) { U n, 0, t, BUILTIN, sizeof n - 1 } ! #define C(n, v) { U n, v, 0, 0, sizeof n - 1 } ! #define X(n, f) { U n, 0, 0, f, sizeof n - 1 } static const struct builtin builtin_array[] = { B("__TIME__", BT_TIME), *************** static const struct builtin builtin_arra *** 669,698 **** #else C("__STDC__", "1"), #endif - - /* Named operators known to the preprocessor. These cannot be #defined - and always have their stated meaning. They are treated like normal - identifiers except for the type code and the meaning. Most of them - are only for C++ (but see iso646.h). */ - O("and", CPP_AND_AND, CPLUS), - O("and_eq", CPP_AND_EQ, CPLUS), - O("bitand", CPP_AND, CPLUS), - O("bitor", CPP_OR, CPLUS), - O("compl", CPP_COMPL, CPLUS), - O("not", CPP_NOT, CPLUS), - O("not_eq", CPP_NOT_EQ, CPLUS), - O("or", CPP_OR_OR, CPLUS), - O("or_eq", CPP_OR_EQ, CPLUS), - O("xor", CPP_XOR, CPLUS), - O("xor_eq", CPP_XOR_EQ, CPLUS) }; #undef B #undef C #undef X - #undef O #define builtin_array_end \ builtin_array + sizeof(builtin_array)/sizeof(struct builtin) /* Subroutine of cpp_read_main_file; reads the builtins table above and enters them, and language-specific macros, into the hash table. */ static void --- 664,718 ---- #else C("__STDC__", "1"), #endif }; #undef B #undef C #undef X #define builtin_array_end \ builtin_array + sizeof(builtin_array)/sizeof(struct builtin) + /* Named operators known to the preprocessor. These cannot be + #defined and always have their stated meaning. They are treated + like normal identifiers except for the type code and the meaning. + Most of them are only for C++ (but see iso646.h). */ + #define B(n, t) { DSC(n), t } + static const struct named_op + { + const U_CHAR *name; + unsigned int len; + enum cpp_ttype value; + } operator_array[] = { + B("and", CPP_AND_AND), + B("and_eq", CPP_AND_EQ), + B("bitand", CPP_AND), + B("bitor", CPP_OR), + B("compl", CPP_COMPL), + B("not", CPP_NOT), + B("not_eq", CPP_NOT_EQ), + B("or", CPP_OR_OR), + B("or_eq", CPP_OR_EQ), + B("xor", CPP_XOR), + B("xor_eq", CPP_XOR_EQ) + }; + #undef B + + /* Mark the C++ named operators in the hash table. */ + static void + mark_named_operators (pfile) + cpp_reader *pfile; + { + const struct named_op *b; + + for (b = operator_array; + b < (operator_array + ARRAY_SIZE (operator_array)); + b++) + { + cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); + hp->flags |= NODE_OPERATOR; + hp->value.operator = b->value; + } + } + /* Subroutine of cpp_read_main_file; reads the builtins table above and enters them, and language-specific macros, into the hash table. */ static void *************** init_builtins (pfile) *** 703,728 **** for(b = builtin_array; b < builtin_array_end; b++) { ! if ((b->flags & CPLUS) && ! CPP_OPTION (pfile, cplusplus)) ! continue; ! ! if ((b->flags & OPERATOR) && ! CPP_OPTION (pfile, operator_names)) ! continue; ! ! if (b->flags & (OPERATOR | BUILTIN)) { cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); ! if (b->flags & OPERATOR) ! { ! hp->flags |= NODE_OPERATOR; ! hp->value.operator = b->operator; ! } ! else ! { ! hp->type = NT_MACRO; ! hp->flags |= NODE_BUILTIN | NODE_WARN; ! hp->value.builtin = b->builtin; ! } } else /* A standard macro of some kind. */ { --- 723,734 ---- for(b = builtin_array; b < builtin_array_end; b++) { ! if (b->flags & BUILTIN) { cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); ! hp->type = NT_MACRO; ! hp->flags |= NODE_BUILTIN | NODE_WARN; ! hp->value.builtin = b->builtin; } else /* A standard macro of some kind. */ { *************** init_builtins (pfile) *** 781,787 **** #undef OPERATOR #undef VERS #undef ULP - #undef CPLUS #undef builtin_array_end /* And another subroutine. This one sets up the standard include path. */ --- 787,792 ---- *************** void *** 1001,1006 **** --- 1006,1015 ---- cpp_finish_options (pfile) cpp_reader *pfile; { + /* Mark named operators before handling command line macros. */ + if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names)) + mark_named_operators (pfile); + /* Install builtins and process command line macros etc. in the order they appeared, but only if not already preprocessed. */ if (! CPP_OPTION (pfile, preprocessed)) diff -Nrc3pad gcc-3.1/gcc/cppmacro.c gcc-3.1.1/gcc/cppmacro.c *** gcc-3.1/gcc/cppmacro.c Sun Apr 21 10:50:51 2002 --- gcc-3.1.1/gcc/cppmacro.c Wed May 29 19:26:00 2002 *************** enter_macro_context (pfile, node) *** 673,678 **** --- 673,680 ---- /* The presence of a macro invalidates a file's controlling macro. */ pfile->mi_valid = false; + pfile->state.angled_headers = false; + /* Handle standard macros. */ if (! (node->flags & NODE_BUILTIN)) { *************** cpp_macro_definition (pfile, node) *** 1529,1535 **** } /* Calculate length. */ ! len = NODE_LEN (node) + 1; /* ' ' */ if (macro->fun_like) { len += 4; /* "()" plus possible final ".." of named --- 1531,1537 ---- } /* Calculate length. */ ! len = NODE_LEN (node) + 2; /* ' ' and NUL. */ if (macro->fun_like) { len += 4; /* "()" plus possible final ".." of named diff -Nrc3pad gcc-3.1/gcc/cse.c gcc-3.1.1/gcc/cse.c *** gcc-3.1/gcc/cse.c Tue Feb 19 02:53:23 2002 --- gcc-3.1.1/gcc/cse.c Mon Jun 10 22:12:04 2002 *************** canon_hash (x, mode) *** 2254,2263 **** case REG: { unsigned int regno = REGNO (x); /* On some machines, we can't record any non-fixed hard register, because extending its life will cause reload problems. We ! consider ap, fp, and sp to be fixed for this purpose. We also consider CCmode registers to be fixed for this purpose; failure to do so leads to failure to simplify 0<100 type of --- 2254,2264 ---- case REG: { unsigned int regno = REGNO (x); + bool record; /* On some machines, we can't record any non-fixed hard register, because extending its life will cause reload problems. We ! consider ap, fp, sp, gp to be fixed for this purpose. We also consider CCmode registers to be fixed for this purpose; failure to do so leads to failure to simplify 0<100 type of *************** canon_hash (x, mode) *** 2267,2282 **** Nor should we record any register that is in a small class, as defined by CLASS_LIKELY_SPILLED_P. */ ! if (regno < FIRST_PSEUDO_REGISTER ! && (global_regs[regno] ! || CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (regno)) ! || (SMALL_REGISTER_CLASSES ! && ! fixed_regs[regno] ! && x != frame_pointer_rtx ! && x != hard_frame_pointer_rtx ! && x != arg_pointer_rtx ! && x != stack_pointer_rtx ! && GET_MODE_CLASS (GET_MODE (x)) != MODE_CC))) { do_not_record = 1; return 0; --- 2268,2295 ---- Nor should we record any register that is in a small class, as defined by CLASS_LIKELY_SPILLED_P. */ ! if (regno >= FIRST_PSEUDO_REGISTER) ! record = true; ! else if (x == frame_pointer_rtx ! || x == hard_frame_pointer_rtx ! || x == arg_pointer_rtx ! || x == stack_pointer_rtx ! || x == pic_offset_table_rtx) ! record = true; ! else if (global_regs[regno]) ! record = false; ! else if (fixed_regs[regno]) ! record = true; ! else if (GET_MODE_CLASS (GET_MODE (x)) == MODE_CC) ! record = true; ! else if (SMALL_REGISTER_CLASSES) ! record = false; ! else if (CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (regno))) ! record = false; ! else ! record = true; ! ! if (!record) { do_not_record = 1; return 0; *************** fold_rtx (x, insn) *** 3464,3470 **** && GET_CODE (elt->exp) != SIGN_EXTEND && GET_CODE (elt->exp) != ZERO_EXTEND && GET_CODE (XEXP (elt->exp, 0)) == SUBREG ! && GET_MODE (SUBREG_REG (XEXP (elt->exp, 0))) == mode) { rtx op0 = SUBREG_REG (XEXP (elt->exp, 0)); --- 3477,3485 ---- && GET_CODE (elt->exp) != SIGN_EXTEND && GET_CODE (elt->exp) != ZERO_EXTEND && GET_CODE (XEXP (elt->exp, 0)) == SUBREG ! && GET_MODE (SUBREG_REG (XEXP (elt->exp, 0))) == mode ! && (GET_MODE_CLASS (mode) ! == GET_MODE_CLASS (GET_MODE (XEXP (elt->exp, 0))))) { rtx op0 = SUBREG_REG (XEXP (elt->exp, 0)); *************** cse_insn (insn, libcall_insn) *** 4906,4912 **** && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0 && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)) || GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)) ! src_eqv = canon_reg (XEXP (tem, 0), NULL_RTX); /* Canonicalize sources and addresses of destinations. We do this in a separate pass to avoid problems when a MATCH_DUP is --- 4921,4930 ---- && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0 && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)) || GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)) ! { ! src_eqv = fold_rtx (canon_reg (XEXP (tem, 0), NULL_RTX), insn); ! XEXP (tem, 0) = src_eqv; ! } /* Canonicalize sources and addresses of destinations. We do this in a separate pass to avoid problems when a MATCH_DUP is *************** cse_insn (insn, libcall_insn) *** 5010,5016 **** eqvmode = GET_MODE (SUBREG_REG (XEXP (dest, 0))); do_not_record = 0; hash_arg_in_memory = 0; - src_eqv = fold_rtx (src_eqv, insn); src_eqv_hash = HASH (src_eqv, eqvmode); /* Find the equivalence class for the equivalent expression. */ --- 5028,5033 ---- diff -Nrc3pad gcc-3.1/gcc/cselib.c gcc-3.1.1/gcc/cselib.c *** gcc-3.1/gcc/cselib.c Tue Feb 19 02:53:22 2002 --- gcc-3.1.1/gcc/cselib.c Fri May 24 07:06:29 2002 *************** static int n_useless_values; *** 104,109 **** --- 104,113 ---- static varray_type reg_values; #define REG_VALUES(I) VARRAY_ELT_LIST (reg_values, (I)) + /* The largest number of hard regs used by any entry added to the + REG_VALUES table. Cleared on each clear_table() invocation. */ + static unsigned int max_value_regs; + /* Here the set of indices I with REG_VALUES(I) != 0 is saved. This is used in clear_table() for fast emptying. */ static varray_type used_regs; *************** clear_table (clear_all) *** 227,232 **** --- 231,238 ---- for (i = 0; i < VARRAY_ACTIVE_SIZE (used_regs); i++) REG_VALUES (VARRAY_UINT (used_regs, i)) = 0; + max_value_regs = 0; + VARRAY_POP_ALL (used_regs); htab_empty (hash_table); *************** cselib_lookup (x, mode, create) *** 897,902 **** --- 903,916 ---- if (! create) return 0; + if (i < FIRST_PSEUDO_REGISTER) + { + unsigned int n = HARD_REGNO_NREGS (i, mode); + + if (n > max_value_regs) + max_value_regs = n; + } + e = new_cselib_val (++next_unknown_value, GET_MODE (x)); e->locs = new_elt_loc_list (e->locs, x); if (REG_VALUES (i) == 0) *************** cselib_invalidate_regno (regno, mode) *** 957,967 **** pseudos, only REGNO is affected. For hard regs, we must take MODE into account, and we must also invalidate lower register numbers if they contain values that overlap REGNO. */ - endregno = regno + 1; if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode) ! endregno = regno + HARD_REGNO_NREGS (regno, mode); ! for (i = 0; i < endregno; i++) { struct elt_list **l = ®_VALUES (i); --- 971,992 ---- pseudos, only REGNO is affected. For hard regs, we must take MODE into account, and we must also invalidate lower register numbers if they contain values that overlap REGNO. */ if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode) ! { ! if (regno < max_value_regs) ! i = 0; ! else ! i = regno - max_value_regs; ! endregno = regno + HARD_REGNO_NREGS (regno, mode); ! } ! else ! { ! i = regno; ! endregno = regno + 1; ! } ! ! for (; i < endregno; i++) { struct elt_list **l = ®_VALUES (i); *************** cselib_record_set (dest, src_elt, dest_a *** 1171,1176 **** --- 1196,1209 ---- if (REG_VALUES (dreg) == 0) VARRAY_PUSH_UINT (used_regs, dreg); + if (dreg < FIRST_PSEUDO_REGISTER) + { + unsigned int n = HARD_REGNO_NREGS (dreg, GET_MODE (dest)); + + if (n > max_value_regs) + max_value_regs = n; + } + REG_VALUES (dreg) = new_elt_list (REG_VALUES (dreg), src_elt); if (src_elt->locs == 0) n_useless_values--; diff -Nrc3pad gcc-3.1/gcc/defaults.h gcc-3.1.1/gcc/defaults.h *** gcc-3.1/gcc/defaults.h Fri May 3 12:07:04 2002 --- gcc-3.1.1/gcc/defaults.h Fri Jun 7 17:11:34 2002 *************** You Lose! You must define PREFERRED_DEB *** 462,465 **** --- 462,471 ---- #define MODE_BASE_REG_CLASS(MODE) BASE_REG_CLASS #endif + /* Determine whether __cxa_atexit, rather than atexit, is used to + register C++ destructors for local statics and global objects. */ + #ifndef DEFAULT_USE_CXA_ATEXIT + #define DEFAULT_USE_CXA_ATEXIT 0 + #endif + #endif /* ! GCC_DEFAULTS_H */ diff -Nrc3pad gcc-3.1/gcc/doc/contrib.texi gcc-3.1.1/gcc/doc/contrib.texi *** gcc-3.1/gcc/doc/contrib.texi Tue Apr 30 13:29:22 2002 --- gcc-3.1.1/gcc/doc/contrib.texi Sun May 19 19:59:08 2002 *************** Alasdair Baird for various bugfixes. *** 38,44 **** Gerald Baumgartner added the signature extension to the C++ front end. @item ! Neil Booth for various work on cpplib. @item Per Bothner for his direction via the steering committee and various --- 38,45 ---- Gerald Baumgartner added the signature extension to the C++ front end. @item ! Neil Booth for work on cpplib, lang hooks, debug hooks and other ! miscellaneous clean-ups. @item Per Bothner for his direction via the steering committee and various diff -Nrc3pad gcc-3.1/gcc/doc/cpp.1 gcc-3.1.1/gcc/doc/cpp.1 *** gcc-3.1/gcc/doc/cpp.1 Wed May 15 02:45:54 2002 --- gcc-3.1.1/gcc/doc/cpp.1 Thu Jul 25 23:56:20 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:54 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:20 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor --- 138,144 ---- .\" ====================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor diff -Nrc3pad gcc-3.1/gcc/doc/fsf-funding.7 gcc-3.1.1/gcc/doc/fsf-funding.7 *** gcc-3.1/gcc/doc/fsf-funding.7 Wed May 15 02:46:00 2002 --- gcc-3.1.1/gcc/doc/fsf-funding.7 Thu Jul 25 23:56:26 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:00 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "fsf-funding 7" ! .TH fsf-funding 7 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" fsf-funding \- Funding Free Software --- 138,144 ---- .\" ====================================================================== .\" .IX Title "fsf-funding 7" ! .TH fsf-funding 7 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" fsf-funding \- Funding Free Software diff -Nrc3pad gcc-3.1/gcc/doc/gcc.1 gcc-3.1.1/gcc/doc/gcc.1 *** gcc-3.1/gcc/doc/gcc.1 Wed May 15 02:45:59 2002 --- gcc-3.1.1/gcc/doc/gcc.1 Thu Jul 25 23:56:25 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:55 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:21 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler *************** Control whether \s-1GCC\s0 aligns \f(CW\ *** 6770,6775 **** --- 6770,6779 ---- boundary. Aligning \f(CW\*(C`double\*(C'\fR variables on a two word boundary will produce code that runs somewhat faster on a \fBPentium\fR at the expense of more memory. + .Sp + \&\fBWarning:\fR if you use the \fB\-malign-double\fR switch, + structures containing the above types will be aligned differently than + the published application binary interface specifications for the 386. .Ip "\fB\-m128bit-long-double\fR" 4 .IX Item "-m128bit-long-double" Control the size of \f(CW\*(C`long double\*(C'\fR type. i386 application binary interface diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info gcc-3.1.1/gcc/doc/gcc.info *** gcc-3.1/gcc/doc/gcc.info Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info Thu Jul 25 23:56:18 2002 *************** gcc.info-5: 158275 *** 42,62 **** gcc.info-6: 191512 gcc.info-7: 237573 gcc.info-8: 283645 ! gcc.info-9: 331405 ! gcc.info-10: 368072 ! gcc.info-11: 417572 ! gcc.info-12: 456793 ! gcc.info-13: 504747 ! gcc.info-14: 548578 ! gcc.info-15: 598062 ! gcc.info-16: 607714 ! gcc.info-17: 664649 ! gcc.info-18: 713890 ! gcc.info-19: 761979 ! gcc.info-20: 810867 ! gcc.info-21: 841831 ! gcc.info-22: 879463 ! gcc.info-23: 948635  Tag Table: (Indirect) --- 42,62 ---- gcc.info-6: 191512 gcc.info-7: 237573 gcc.info-8: 283645 ! gcc.info-9: 331614 ! gcc.info-10: 368281 ! gcc.info-11: 417781 ! gcc.info-12: 457002 ! gcc.info-13: 504956 ! gcc.info-14: 548787 ! gcc.info-15: 598270 ! gcc.info-16: 607922 ! gcc.info-17: 664857 ! gcc.info-18: 714098 ! gcc.info-19: 762187 ! gcc.info-20: 811075 ! gcc.info-21: 842039 ! gcc.info-22: 879727 ! gcc.info-23: 948899  Tag Table: (Indirect) *************** Node: RS/6000 and PowerPC Options262048 *** 98,265 **** Node: RT Options281942 Node: MIPS Options283645 Node: i386 and x86-64 Options295326 ! Node: HPPA Options308526 ! Node: Intel 960 Options312602 ! Node: DEC Alpha Options315544 ! Node: DEC Alpha/VMS Options326560 ! Node: Clipper Options326938 ! Node: H8/300 Options327342 ! Node: SH Options328271 ! Node: System V Options330587 ! Node: TMS320C3x/C4x Options331405 ! Node: V850 Options336917 ! Node: ARC Options338926 ! Node: NS32K Options340127 ! Node: AVR Options344376 ! Node: MCore Options346177 ! Node: IA-64 Options347321 ! Node: D30V Options349709 ! Node: S/390 and zSeries Options350952 ! Node: CRIS Options352885 ! Node: MMIX Options356919 ! Node: PDP-11 Options359259 ! Node: Xstormy16 Options361085 ! Node: Xtensa Options361361 ! Node: Code Gen Options368072 ! Node: Environment Variables382251 ! Ref: DEPENDENCIES_OUTPUT388568 ! Node: Running Protoize389563 ! Node: C Implementation395920 ! Node: Translation implementation396854 ! Node: Environment implementation397222 ! Node: Identifiers implementation397515 ! Node: Characters implementation397918 ! Node: Integers implementation399775 ! Node: Floating point implementation400627 ! Node: Arrays and pointers implementation402476 ! Ref: Arrays and pointers implementation-Footnote-1403779 ! Node: Hints implementation403905 ! Node: Structures unions enumerations and bit-fields implementation404334 ! Node: Qualifiers implementation405143 ! Node: Preprocessing directives implementation405454 ! Node: Library functions implementation407071 ! Node: Architecture implementation407396 ! Node: Locale-specific behavior implementation407961 ! Node: C Extensions408259 ! Node: Statement Exprs412415 ! Node: Local Labels415507 ! Node: Labels as Values417572 ! Ref: Labels as Values-Footnote-1419631 ! Node: Nested Functions419816 ! Node: Constructing Calls423655 ! Node: Naming Types425742 ! Node: Typeof426836 ! Node: Lvalues428712 ! Node: Conditionals431152 ! Node: Long Long432043 ! Node: Complex433542 ! Node: Hex Floats436210 ! Node: Zero Length437239 ! Node: Variable Length440283 ! Node: Variadic Macros443045 ! Node: Escaped Newlines445435 ! Node: Multi-line Strings446318 ! Node: Subscripting446922 ! Node: Pointer Arith447650 ! Node: Initializers448215 ! Node: Compound Literals448698 ! Node: Designated Inits450861 ! Node: Case Ranges454535 ! Node: Cast to Union455215 ! Node: Mixed Declarations456298 ! Node: Function Attributes456793 ! Node: Attribute Syntax478771 ! Node: Function Prototypes489148 ! Node: C++ Comments490941 ! Node: Dollar Signs491536 ! Node: Character Escapes491994 ! Node: Alignment492281 ! Node: Variable Attributes493601 ! Node: Type Attributes504747 ! Node: Inline515277 ! Node: Extended Asm519986 ! Node: Constraints537103 ! Node: Simple Constraints537946 ! Node: Multi-Alternative544435 ! Node: Modifiers546146 ! Node: Machine Constraints548578 ! Node: Asm Labels565166 ! Node: Explicit Reg Vars566842 ! Node: Global Reg Vars568296 ! Node: Local Reg Vars572861 ! Node: Alternate Keywords574661 ! Node: Incomplete Enums576348 ! Node: Function Names577104 ! Node: Return Address579541 ! Node: Vector Extensions582120 ! Node: Other Builtins585005 ! Node: Target Builtins597561 ! Node: X86 Built-in Functions598062 ! Node: PowerPC AltiVec Built-in Functions607714 ! Node: Pragmas664649 ! Node: ARM Pragmas665115 ! Node: Darwin Pragmas665709 ! Node: Solaris Pragmas666748 ! Node: Tru64 Pragmas667311 ! Node: Unnamed Fields668040 ! Node: C++ Extensions669111 ! Node: Min and Max670672 ! Node: Volatiles672078 ! Node: Restricted Pointers675448 ! Node: Vague Linkage677018 ! Node: C++ Interface680676 ! Ref: C++ Interface-Footnote-1685764 ! Node: Template Instantiation685903 ! Node: Bound member functions694734 ! Node: C++ Attributes696285 ! Node: Java Exceptions697889 ! Node: Deprecated Features699286 ! Node: Backwards Compatibility701252 ! Node: Objective-C702600 ! Node: Executing code before main703170 ! Node: What you can and what you cannot do in +load705808 ! Node: Type encoding707974 ! Node: Garbage Collection711226 ! Node: Constant string objects713890 ! Node: compatibility_alias715524 ! Node: Gcov716403 ! Node: Gcov Intro716870 ! Node: Invoking Gcov719545 ! Node: Gcov and Optimization725619 ! Node: Gcov Data Files727036 ! Node: Trouble730601 ! Node: Actual Bugs732195 ! Node: Cross-Compiler Problems733103 ! Node: Interoperation734613 ! Node: External Bugs747200 ! Node: Incompatibilities748692 ! Node: Fixed Headers758300 ! Node: Standard Libraries760609 ! Node: Disappointments761979 ! Node: C++ Misunderstandings766701 ! Node: Static Definitions767427 ! Node: Temporaries768474 ! Node: Copy Assignment770451 ! Node: Protoize Caveats772269 ! Node: Non-bugs776224 ! Node: Warnings and Errors786116 ! Node: Bugs787876 ! Node: Bug Criteria789229 ! Node: Bug Lists791653 ! Node: Bug Reporting792212 ! Node: gccbug804315 ! Node: Service805135 ! Node: Contributing805881 ! Node: VMS806620 ! Node: Include Files and VMS807002 ! Node: Global Declarations810867 ! Node: VMS Misc815171 ! Node: Funding819474 ! Node: GNU Project821969 ! Node: Copying822620 ! Node: GNU Free Documentation License841831 ! Node: Contributors861715 ! Node: Option Index879463 ! Node: Index948635  End Tag Table --- 98,265 ---- Node: RT Options281942 Node: MIPS Options283645 Node: i386 and x86-64 Options295326 ! Node: HPPA Options308735 ! Node: Intel 960 Options312811 ! Node: DEC Alpha Options315753 ! Node: DEC Alpha/VMS Options326769 ! Node: Clipper Options327147 ! Node: H8/300 Options327551 ! Node: SH Options328480 ! Node: System V Options330796 ! Node: TMS320C3x/C4x Options331614 ! Node: V850 Options337126 ! Node: ARC Options339135 ! Node: NS32K Options340336 ! Node: AVR Options344585 ! Node: MCore Options346386 ! Node: IA-64 Options347530 ! Node: D30V Options349918 ! Node: S/390 and zSeries Options351161 ! Node: CRIS Options353094 ! Node: MMIX Options357128 ! Node: PDP-11 Options359468 ! Node: Xstormy16 Options361294 ! Node: Xtensa Options361570 ! Node: Code Gen Options368281 ! Node: Environment Variables382460 ! Ref: DEPENDENCIES_OUTPUT388777 ! Node: Running Protoize389772 ! Node: C Implementation396129 ! Node: Translation implementation397063 ! Node: Environment implementation397431 ! Node: Identifiers implementation397724 ! Node: Characters implementation398127 ! Node: Integers implementation399984 ! Node: Floating point implementation400836 ! Node: Arrays and pointers implementation402685 ! Ref: Arrays and pointers implementation-Footnote-1403988 ! Node: Hints implementation404114 ! Node: Structures unions enumerations and bit-fields implementation404543 ! Node: Qualifiers implementation405352 ! Node: Preprocessing directives implementation405663 ! Node: Library functions implementation407280 ! Node: Architecture implementation407605 ! Node: Locale-specific behavior implementation408170 ! Node: C Extensions408468 ! Node: Statement Exprs412624 ! Node: Local Labels415716 ! Node: Labels as Values417781 ! Ref: Labels as Values-Footnote-1419840 ! Node: Nested Functions420025 ! Node: Constructing Calls423864 ! Node: Naming Types425951 ! Node: Typeof427045 ! Node: Lvalues428921 ! Node: Conditionals431361 ! Node: Long Long432252 ! Node: Complex433751 ! Node: Hex Floats436419 ! Node: Zero Length437448 ! Node: Variable Length440492 ! Node: Variadic Macros443254 ! Node: Escaped Newlines445644 ! Node: Multi-line Strings446527 ! Node: Subscripting447131 ! Node: Pointer Arith447859 ! Node: Initializers448424 ! Node: Compound Literals448907 ! Node: Designated Inits451070 ! Node: Case Ranges454744 ! Node: Cast to Union455424 ! Node: Mixed Declarations456507 ! Node: Function Attributes457002 ! Node: Attribute Syntax478980 ! Node: Function Prototypes489357 ! Node: C++ Comments491150 ! Node: Dollar Signs491745 ! Node: Character Escapes492203 ! Node: Alignment492490 ! Node: Variable Attributes493810 ! Node: Type Attributes504956 ! Node: Inline515486 ! Node: Extended Asm520195 ! Node: Constraints537312 ! Node: Simple Constraints538155 ! Node: Multi-Alternative544644 ! Node: Modifiers546355 ! Node: Machine Constraints548787 ! Node: Asm Labels565374 ! Node: Explicit Reg Vars567050 ! Node: Global Reg Vars568504 ! Node: Local Reg Vars573069 ! Node: Alternate Keywords574869 ! Node: Incomplete Enums576556 ! Node: Function Names577312 ! Node: Return Address579749 ! Node: Vector Extensions582328 ! Node: Other Builtins585213 ! Node: Target Builtins597769 ! Node: X86 Built-in Functions598270 ! Node: PowerPC AltiVec Built-in Functions607922 ! Node: Pragmas664857 ! Node: ARM Pragmas665323 ! Node: Darwin Pragmas665917 ! Node: Solaris Pragmas666956 ! Node: Tru64 Pragmas667519 ! Node: Unnamed Fields668248 ! Node: C++ Extensions669319 ! Node: Min and Max670880 ! Node: Volatiles672286 ! Node: Restricted Pointers675656 ! Node: Vague Linkage677226 ! Node: C++ Interface680884 ! Ref: C++ Interface-Footnote-1685972 ! Node: Template Instantiation686111 ! Node: Bound member functions694942 ! Node: C++ Attributes696493 ! Node: Java Exceptions698097 ! Node: Deprecated Features699494 ! Node: Backwards Compatibility701460 ! Node: Objective-C702808 ! Node: Executing code before main703378 ! Node: What you can and what you cannot do in +load706016 ! Node: Type encoding708182 ! Node: Garbage Collection711434 ! Node: Constant string objects714098 ! Node: compatibility_alias715732 ! Node: Gcov716611 ! Node: Gcov Intro717078 ! Node: Invoking Gcov719753 ! Node: Gcov and Optimization725827 ! Node: Gcov Data Files727244 ! Node: Trouble730809 ! Node: Actual Bugs732403 ! Node: Cross-Compiler Problems733311 ! Node: Interoperation734821 ! Node: External Bugs747408 ! Node: Incompatibilities748900 ! Node: Fixed Headers758508 ! Node: Standard Libraries760817 ! Node: Disappointments762187 ! Node: C++ Misunderstandings766909 ! Node: Static Definitions767635 ! Node: Temporaries768682 ! Node: Copy Assignment770659 ! Node: Protoize Caveats772477 ! Node: Non-bugs776432 ! Node: Warnings and Errors786324 ! Node: Bugs788084 ! Node: Bug Criteria789437 ! Node: Bug Lists791861 ! Node: Bug Reporting792420 ! Node: gccbug804523 ! Node: Service805343 ! Node: Contributing806089 ! Node: VMS806828 ! Node: Include Files and VMS807210 ! Node: Global Declarations811075 ! Node: VMS Misc815379 ! Node: Funding819682 ! Node: GNU Project822177 ! Node: Copying822828 ! Node: GNU Free Documentation License842039 ! Node: Contributors861923 ! Node: Option Index879727 ! Node: Index948899  End Tag Table diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info-14 gcc-3.1.1/gcc/doc/gcc.info-14 *** gcc-3.1/gcc/doc/gcc.info-14 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info-14 Thu Jul 25 23:56:18 2002 *************** _SPARC--`sparc.h'_ *** 606,613 **** `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bits range are all zero. Must be used ! instead of `K' for modes wider than `SImode' `G' Floating-point zero --- 606,613 ---- `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bit range are all zero. Must be used instead ! of `K' for modes wider than `SImode' `G' Floating-point zero diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info-21 gcc-3.1.1/gcc/doc/gcc.info-21 *** gcc-3.1/gcc/doc/gcc.info-21 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info-21 Thu Jul 25 23:56:18 2002 *************** of contributors, such as the C++ library *** 448,454 **** * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for various work on cpplib. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new --- 448,455 ---- * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for work on cpplib, lang hooks, debug hooks and other ! miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info-8 gcc-3.1.1/gcc/doc/gcc.info-8 *** gcc-3.1/gcc/doc/gcc.info-8 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info-8 Thu Jul 25 23:56:18 2002 *************** computers: *** 454,459 **** --- 454,463 ---- code that runs somewhat faster on a `Pentium' at the expense of more memory. + *Warning:* if you use the `-malign-double' switch, structures + containing the above types will be aligned differently than the + published application binary interface specifications for the 386. + `-m128bit-long-double' Control the size of `long double' type. i386 application binary interface specify the size to be 12 bytes, while modern diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info gcc-3.1.1/gcc/doc/gccint.info *** gcc-3.1/gcc/doc/gccint.info Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info Thu Jul 25 23:56:18 2002 *************** gccint.info-4: 127284 *** 41,62 **** gccint.info-5: 172740 gccint.info-6: 222159 gccint.info-7: 261135 ! gccint.info-8: 301614 ! gccint.info-9: 342720 ! gccint.info-10: 359311 ! gccint.info-11: 405963 ! gccint.info-12: 453115 ! gccint.info-13: 488183 ! gccint.info-14: 537185 ! gccint.info-15: 586254 ! gccint.info-16: 634301 ! gccint.info-17: 675005 ! gccint.info-18: 722909 ! gccint.info-19: 767985 ! gccint.info-20: 815173 ! gccint.info-21: 864609 ! gccint.info-22: 906870 ! gccint.info-23: 926421  Tag Table: (Indirect) --- 41,62 ---- gccint.info-5: 172740 gccint.info-6: 222159 gccint.info-7: 261135 ! gccint.info-8: 301808 ! gccint.info-9: 342914 ! gccint.info-10: 359504 ! gccint.info-11: 406156 ! gccint.info-12: 453308 ! gccint.info-13: 488376 ! gccint.info-14: 537378 ! gccint.info-15: 586442 ! gccint.info-16: 634489 ! gccint.info-17: 675193 ! gccint.info-18: 723097 ! gccint.info-19: 768173 ! gccint.info-20: 815361 ! gccint.info-21: 864797 ! gccint.info-22: 907058 ! gccint.info-23: 926665  Tag Table: (Indirect) *************** Node: Reading RTL291634 *** 130,242 **** Node: Machine Desc292620 Node: Overview294899 Node: Patterns296941 ! Node: Example300180 ! Node: RTL Template301614 ! Node: Output Template314081 ! Node: Output Statement318066 ! Node: Constraints322040 ! Node: Simple Constraints322974 ! Node: Multi-Alternative335338 ! Node: Class Preferences338176 ! Node: Modifiers339059 ! Node: Machine Constraints342720 ! Node: Standard Names359311 ! Ref: prologue instruction pattern398694 ! Ref: epilogue instruction pattern399187 ! Node: Pattern Ordering401915 ! Node: Dependent Patterns403145 ! Node: Jump Patterns405963 ! Node: Looping Patterns411713 ! Node: Insn Canonicalizations416319 ! Node: Expander Definitions419820 ! Node: Insn Splitting427955 ! Node: Including Patterns437573 ! Node: Peephole Definitions439351 ! Node: define_peephole440601 ! Node: define_peephole2446950 ! Node: Insn Attributes450014 ! Node: Defining Attributes451100 ! Node: Expressions453115 ! Node: Tagging Insns459707 ! Node: Attr Example464072 ! Node: Insn Lengths466451 ! Node: Constant Attributes469713 ! Node: Delay Slots470876 ! Node: Function Units474090 ! Node: Conditional Execution479763 ! Node: Constant Definitions482622 ! Node: Target Macros484203 ! Node: Target Structure486892 ! Node: Driver488183 ! Node: Run-time Target507516 ! Node: Per-Function Data515006 ! Node: Storage Layout518270 ! Node: Type Layout537185 ! Node: Escape Sequences547537 ! Node: Registers548452 ! Node: Register Basics549375 ! Node: Allocation Order554979 ! Node: Values in Registers556395 ! Node: Leaf Functions561230 ! Node: Stack Registers564019 ! Node: Register Classes564819 ! Node: Stack and Calling585758 ! Node: Frame Layout586254 ! Node: Exception Handling593119 ! Node: Stack Checking597621 ! Node: Frame Registers601178 ! Node: Elimination606629 ! Node: Stack Arguments610602 ! Node: Register Arguments618191 ! Node: Scalar Return630060 ! Node: Aggregate Return634301 ! Node: Caller Saves638018 ! Node: Function Entry639558 ! Node: Profiling651647 ! Node: Tail Calls653979 ! Node: Varargs654570 ! Node: Trampolines662248 ! Node: Library Calls669483 ! Node: Addressing Modes675005 ! Node: Condition Code686282 ! Node: Costs693608 ! Node: Scheduling705367 ! Node: Sections710883 ! Node: PIC719038 ! Node: Assembler Format721839 ! Node: File Framework722909 ! Node: Data Output727769 ! Node: Uninitialized Data735642 ! Node: Label Output741042 ! Node: Initialization755835 ! Node: Macros for Initialization761816 ! Node: Instruction Output767985 ! Node: Dispatch Tables777025 ! Node: Exception Region Output779580 ! Node: Alignment Output782933 ! Node: Debugging Info786805 ! Node: All Debuggers787469 ! Node: DBX Options790352 ! Node: DBX Hooks795727 ! Node: File Names and DBX799376 ! Node: SDB and DWARF801352 ! Node: VMS Debug804793 ! Node: Cross-compilation805341 ! Node: Mode Switching811920 ! Node: Target Attributes815173 ! Node: Misc819010 ! Node: Host Config847491 ! Node: Fragments853527 ! Node: Target Fragment854670 ! Node: Host Fragment859165 ! Node: Collect2860601 ! Node: Header Dirs863158 ! Node: Funding864609 ! Node: GNU Project867115 ! Node: Copying867769 ! Node: GNU Free Documentation License886983 ! Node: Contributors906870 ! Node: Option Index924621 ! Node: Index926421  End Tag Table --- 130,242 ---- Node: Machine Desc292620 Node: Overview294899 Node: Patterns296941 ! Node: Example300374 ! Node: RTL Template301808 ! Node: Output Template314275 ! Node: Output Statement318260 ! Node: Constraints322234 ! Node: Simple Constraints323168 ! Node: Multi-Alternative335532 ! Node: Class Preferences338370 ! Node: Modifiers339253 ! Node: Machine Constraints342914 ! Node: Standard Names359504 ! Ref: prologue instruction pattern398887 ! Ref: epilogue instruction pattern399380 ! Node: Pattern Ordering402108 ! Node: Dependent Patterns403338 ! Node: Jump Patterns406156 ! Node: Looping Patterns411906 ! Node: Insn Canonicalizations416512 ! Node: Expander Definitions420013 ! Node: Insn Splitting428148 ! Node: Including Patterns437766 ! Node: Peephole Definitions439544 ! Node: define_peephole440794 ! Node: define_peephole2447143 ! Node: Insn Attributes450207 ! Node: Defining Attributes451293 ! Node: Expressions453308 ! Node: Tagging Insns459900 ! Node: Attr Example464265 ! Node: Insn Lengths466644 ! Node: Constant Attributes469906 ! Node: Delay Slots471069 ! Node: Function Units474283 ! Node: Conditional Execution479956 ! Node: Constant Definitions482815 ! Node: Target Macros484396 ! Node: Target Structure487085 ! Node: Driver488376 ! Node: Run-time Target507709 ! Node: Per-Function Data515199 ! Node: Storage Layout518463 ! Node: Type Layout537378 ! Node: Escape Sequences547730 ! Node: Registers548645 ! Node: Register Basics549568 ! Node: Allocation Order555172 ! Node: Values in Registers556588 ! Node: Leaf Functions561423 ! Node: Stack Registers564212 ! Node: Register Classes565012 ! Node: Stack and Calling585946 ! Node: Frame Layout586442 ! Node: Exception Handling593307 ! Node: Stack Checking597809 ! Node: Frame Registers601366 ! Node: Elimination606817 ! Node: Stack Arguments610790 ! Node: Register Arguments618379 ! Node: Scalar Return630248 ! Node: Aggregate Return634489 ! Node: Caller Saves638206 ! Node: Function Entry639746 ! Node: Profiling651835 ! Node: Tail Calls654167 ! Node: Varargs654758 ! Node: Trampolines662436 ! Node: Library Calls669671 ! Node: Addressing Modes675193 ! Node: Condition Code686470 ! Node: Costs693796 ! Node: Scheduling705555 ! Node: Sections711071 ! Node: PIC719226 ! Node: Assembler Format722027 ! Node: File Framework723097 ! Node: Data Output727957 ! Node: Uninitialized Data735830 ! Node: Label Output741230 ! Node: Initialization756023 ! Node: Macros for Initialization762004 ! Node: Instruction Output768173 ! Node: Dispatch Tables777213 ! Node: Exception Region Output779768 ! Node: Alignment Output783121 ! Node: Debugging Info786993 ! Node: All Debuggers787657 ! Node: DBX Options790540 ! Node: DBX Hooks795915 ! Node: File Names and DBX799564 ! Node: SDB and DWARF801540 ! Node: VMS Debug804981 ! Node: Cross-compilation805529 ! Node: Mode Switching812108 ! Node: Target Attributes815361 ! Node: Misc819198 ! Node: Host Config847679 ! Node: Fragments853715 ! Node: Target Fragment854858 ! Node: Host Fragment859353 ! Node: Collect2860789 ! Node: Header Dirs863346 ! Node: Funding864797 ! Node: GNU Project867303 ! Node: Copying867957 ! Node: GNU Free Documentation License887171 ! Node: Contributors907058 ! Node: Option Index924865 ! Node: Index926665  End Tag Table diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-14 gcc-3.1.1/gcc/doc/gccint.info-14 *** gcc-3.1/gcc/doc/gccint.info-14 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-14 Thu Jul 25 23:56:18 2002 *************** return. *** 1029,1046 **** `CLASS_CANNOT_CHANGE_MODE', the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects ! into floating-point registers on the Alpha extends them to 64-bits. Therefore loading a 64-bit object and then storing it as a 32-bit ! object does not store the low-order 32-bits, as would be the case for a normal register. Therefore, `alpha.h' defines `CLASS_CANNOT_CHANGE_MODE' as `FLOAT_REGS' and `CLASS_CANNOT_CHANGE_MODE_P' restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to ! 82-bits, and stores 64-bit integers in a different format than ! 64-bit doubles. Therefore `CLASS_CANNOT_CHANGE_MODE_P' is always ! true. Three other special macros describe which operands fit which constraint letters. --- 1029,1045 ---- `CLASS_CANNOT_CHANGE_MODE', the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects ! into floating-point registers on the Alpha extends them to 64 bits. Therefore loading a 64-bit object and then storing it as a 32-bit ! object does not store the low-order 32 bits, as would be the case for a normal register. Therefore, `alpha.h' defines `CLASS_CANNOT_CHANGE_MODE' as `FLOAT_REGS' and `CLASS_CANNOT_CHANGE_MODE_P' restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to 82 ! bits, and stores 64-bit integers in a different format than 64-bit ! doubles. Therefore `CLASS_CANNOT_CHANGE_MODE_P' is always true. Three other special macros describe which operands fit which constraint letters. diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-22 gcc-3.1.1/gcc/doc/gccint.info-22 *** gcc-3.1/gcc/doc/gccint.info-22 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-22 Thu Jul 25 23:56:18 2002 *************** of contributors, such as the C++ library *** 63,69 **** * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for various work on cpplib. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new --- 63,70 ---- * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for work on cpplib, lang hooks, debug hooks and other ! miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-7 gcc-3.1.1/gcc/doc/gccint.info-7 *** gcc-3.1/gcc/doc/gccint.info-7 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-7 Thu Jul 25 23:56:18 2002 *************** operands: *** 862,868 **** For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found ! in the vector `operands'. 4. The "output template": a string that says how to output matching insns as assembler code. `%' in this string specifies where to --- 862,871 ---- For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found ! in the vector `operands'. For an insn where the condition has ! once matched, it can't be used to control register allocation, for ! example by excluding certain hard registers or hard register ! combinations. 4. The "output template": a string that says how to output matching insns as assembler code. `%' in this string specifies where to diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-9 gcc-3.1.1/gcc/doc/gccint.info-9 *** gcc-3.1/gcc/doc/gccint.info-9 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-9 Thu Jul 25 23:56:18 2002 *************** _SPARC--`sparc.h'_ *** 606,613 **** `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bits range are all zero. Must be used ! instead of `K' for modes wider than `SImode' `G' Floating-point zero --- 606,613 ---- `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bit range are all zero. Must be used instead ! of `K' for modes wider than `SImode' `G' Floating-point zero diff -Nrc3pad gcc-3.1/gcc/doc/gcov.1 gcc-3.1.1/gcc/doc/gcov.1 *** gcc-3.1/gcc/doc/gcov.1 Wed May 15 02:45:53 2002 --- gcc-3.1.1/gcc/doc/gcov.1 Thu Jul 25 23:56:20 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:53 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:20 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gcov \- coverage testing tool --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gcov \- coverage testing tool diff -Nrc3pad gcc-3.1/gcc/doc/gfdl.7 gcc-3.1.1/gcc/doc/gfdl.7 *** gcc-3.1/gcc/doc/gfdl.7 Wed May 15 02:45:59 2002 --- gcc-3.1.1/gcc/doc/gfdl.7 Thu Jul 25 23:56:26 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:59 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "gfdl 7" ! .TH gfdl 7 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gfdl \- \s-1GNU\s0 Free Documentation License --- 138,144 ---- .\" ====================================================================== .\" .IX Title "gfdl 7" ! .TH gfdl 7 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gfdl \- \s-1GNU\s0 Free Documentation License diff -Nrc3pad gcc-3.1/gcc/doc/gpl.7 gcc-3.1.1/gcc/doc/gpl.7 *** gcc-3.1/gcc/doc/gpl.7 Wed May 15 02:46:00 2002 --- gcc-3.1.1/gcc/doc/gpl.7 Thu Jul 25 23:56:26 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:59 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "gpl 7" ! .TH gpl 7 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gpl \- \s-1GNU\s0 General Public License --- 138,144 ---- .\" ====================================================================== .\" .IX Title "gpl 7" ! .TH gpl 7 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gpl \- \s-1GNU\s0 General Public License diff -Nrc3pad gcc-3.1/gcc/doc/install.texi gcc-3.1.1/gcc/doc/install.texi *** gcc-3.1/gcc/doc/install.texi Sun May 5 11:34:42 2002 --- gcc-3.1.1/gcc/doc/install.texi Thu Jun 27 19:11:31 2002 *************** Free Documentation License}''. *** 123,131 **** @node Installing GCC, Binaries, , Top @end ifnothtml @ifset indexhtml - @html -

        Installing GCC

        - @end html @ifnothtml @chapter Installing GCC @end ifnothtml --- 123,128 ---- *************** not yet been merged into the main part o *** 214,222 **** @node Downloading the source, Configuration, , Installing GCC @end ifnothtml @ifset downloadhtml - @html -

        Downloading GCC

        - @end html @ifnothtml @chapter Downloading GCC @end ifnothtml --- 211,216 ---- *************** components of the binutils you intend to *** 269,277 **** @node Configuration, Building, Downloading the source, Installing GCC @end ifnothtml @ifset configurehtml - @html -

        Installing GCC: Configuration

        - @end html @ifnothtml @chapter Installing GCC: Configuration @end ifnothtml --- 263,268 ---- *************** corresponding @option{--without} option. *** 864,872 **** @node Building, Testing, Configuration, Installing GCC @end ifnothtml @ifset buildhtml - @html -

        Installing GCC: Building

        - @end html @ifnothtml @chapter Building @end ifnothtml --- 855,860 ---- *************** build feature described in the previous *** 1106,1114 **** @node Testing, Final install, Building, Installing GCC @end ifnothtml @ifset testhtml - @html -

        Installing GCC: Testing

        - @end html @ifnothtml @chapter Installing GCC: Testing @end ifnothtml --- 1094,1099 ---- *************** The testing process will try to test as *** 1167,1172 **** --- 1152,1162 ---- distribution as possible, including the C, C++, Objective-C and Fortran compilers as well as the C++ and Java runtime libraries. + While running the testsuite, DejaGnu might emit messages resembling + @samp{WARNING: Couldn't find the global config file.} or + @samp{WARNING: Couldn't find tool init file}. + These messages are harmless and do not affect the validity of the tests. + @section How can I run the test suite on selected tests? As a first possibility to cut down the number of tests that are run it is *************** should look here first if you think your *** 1262,1270 **** @node Final install, , Testing, Installing GCC @end ifnothtml @ifset finalinstallhtml - @html -

        Installing GCC: Final installation

        - @end html @ifnothtml @chapter Installing GCC: Final installation @end ifnothtml --- 1252,1257 ---- *************** Now that GCC has been built (and optiona *** 1274,1279 **** --- 1261,1269 ---- cd @var{objdir}; make install @end example + We strongly recommend to install into a target directory where there is + no previous version of GCC present. + That step completes the installation of GCC; user level binaries can be found in @file{@var{prefix}/bin} where @var{prefix} is the value you specified with the @option{--prefix} to configure (or @file{/usr/local} *************** recent version of GCC@. *** 1376,1384 **** @node Binaries, Specific, Installing GCC, Top @end ifnothtml @ifset binarieshtml - @html -

        Installing GCC: Binaries

        - @end html @ifnothtml @chapter Installing GCC: Binaries @end ifnothtml --- 1366,1371 ---- *************** AIX: *** 1402,1412 **** @uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX}; @item ! @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}; @end itemize @item ! DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}; @item HP-UX: --- 1389,1403 ---- @uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX}; @item ! @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}. @end itemize @item ! DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}. ! ! @item ! Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU ! Development Tools for the Hitachi H8/300[HS] Series}. @item HP-UX: *************** HP-UX: *** 1420,1432 **** @item @uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO ! OpenServer/Unixware}; @item ! Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}; @item ! SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}; @item Windows 95, 98, and NT: --- 1411,1426 ---- @item @uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO ! OpenServer/Unixware}. @item ! Sinix/Reliant Unix---@uref{ftp://ftp.siemens.de/sni/mr/pd/gnu/gcc,,Siemens}. ! ! @item ! Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}. @item ! SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}. @item Windows 95, 98, and NT: *************** Windows 95, 98, and NT: *** 1434,1441 **** @item The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project; @item ! @uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/,,GNU Win32} ! related projects by Mumit Khan. @end itemize @item --- 1428,1434 ---- @item The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project; @item ! The @uref{http://www.mingw.org/,,MinGW} project. @end itemize @item *************** related projects by Mumit Khan. *** 1443,1452 **** Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel, IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00. - @item - Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU - Development Tools for the Hitachi H8/300[HS] Series} - @end itemize In addition to those specific offerings, you can get a binary --- 1436,1441 ---- *************** works. *** 1473,1481 **** @node Specific, Old, Binaries, Top @end ifnothtml @ifset specifichtml - @html -

        Host/target specific installation notes for GCC

        - @end html @ifnothtml @chapter Host/target specific installation notes for GCC @end ifnothtml --- 1462,1467 ---- *************** then your version of @command{cc} uses t *** 3195,3200 **** --- 3181,3207 ---- should set the environment variable @env{CC} to @samp{cc -n32} before configuring GCC@. + If you want the resulting @command{gcc} to run on old 32-bit systems + with the MIPS R4400 CPU, you need to ensure that only code for the mips3 + instruction set architecture (ISA) is generated. While GCC 3.x does + this correctly, both GCC 2.95 and SGI's MIPSpro @command{cc} may change + the ISA depending on the machine where GCC is built. Using one of them + as the bootstrap compiler may result in mips4 code, which won't run at + all on mips3-only systems. For the test program above, you should see: + + @example + test.o: ELF N32 MSB mips-3 @dots{} + @end example + + If you get: + + @example + test.o: ELF N32 MSB mips-4 @dots{} + @end example + + instead, you should set the environment variable @env{CC} to @samp{cc + -n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. + GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If you build GCC on a system that doesn't have the N64 libraries installed, you need to configure with @option{--disable-multilib} so GCC doesn't *************** its maximum of 262144 bytes. If you hav *** 3226,3232 **** GCC does not correctly pass/return structures which are smaller than 16 bytes and which are not 8 bytes. The problem is very involved and difficult to fix. It affects a number of other targets also, ! but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte structures are common. The exact problem is that structures are being padded at the wrong end, e.g.@: a 4 byte structure is loaded into the lower 4 bytes of the register when it should be loaded into the upper 4 bytes of the --- 3233,3239 ---- GCC does not correctly pass/return structures which are smaller than 16 bytes and which are not 8 bytes. The problem is very involved and difficult to fix. It affects a number of other targets also, ! but IRIX 6 is affected the most, because it is a 64-bit target, and 4 byte structures are common. The exact problem is that structures are being padded at the wrong end, e.g.@: a 4 byte structure is loaded into the lower 4 bytes of the register when it should be loaded into the upper 4 bytes of the *************** S/390 system running Linux for S/390@. *** 3442,3448 ****
        @end html @heading @anchor{s390x-*-linux*}s390x-*-linux* ! zSeries system (64 Bit) running Linux for zSeries@. @html

        --- 3449,3455 ----
        @end html @heading @anchor{s390x-*-linux*}s390x-*-linux* ! zSeries system (64-bit) running Linux for zSeries@. @html

        *************** GCC you first have to install a pre-buil *** 3461,3469 **** The Solaris 2 @command{/bin/sh} will often fail to configure @file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to ! @command{/bin/ksh} in your environment and run @command{make bootstrap} again. ! Another possibility that sometimes helps is to remove ! @file{*-*-solaris2*/config.cache}. Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely @code{SUNWarc}, --- 3468,3474 ---- The Solaris 2 @command{/bin/sh} will often fail to configure @file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to ! @command{/bin/ksh} in your environment before running @command{configure}. Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely @code{SUNWarc}, *************** respects, this target is the same as the *** 3764,3770 ****


        @end html ! @heading @anchor{windows}Microsoft Windows (32 bit) A port of GCC 2.95.x is included with the @uref{http://www.cygwin.com/,,Cygwin environment}. --- 3769,3775 ----


        @end html ! @heading @anchor{windows}Microsoft Windows (32-bit) A port of GCC 2.95.x is included with the @uref{http://www.cygwin.com/,,Cygwin environment}. diff -Nrc3pad gcc-3.1/gcc/doc/invoke.texi gcc-3.1.1/gcc/doc/invoke.texi *** gcc-3.1/gcc/doc/invoke.texi Thu Apr 25 22:33:21 2002 --- gcc-3.1.1/gcc/doc/invoke.texi Thu May 16 10:55:55 2002 *************** boundary. Aligning @code{double} variab *** 7415,7420 **** --- 7415,7424 ---- produce code that runs somewhat faster on a @samp{Pentium} at the expense of more memory. + @strong{Warning:} if you use the @samp{-malign-double} switch, + structures containing the above types will be aligned differently than + the published application binary interface specifications for the 386. + @item -m128bit-long-double @opindex m128bit-long-double Control the size of @code{long double} type. i386 application binary interface diff -Nrc3pad gcc-3.1/gcc/doc/md.texi gcc-3.1.1/gcc/doc/md.texi *** gcc-3.1/gcc/doc/md.texi Mon Apr 8 17:17:18 2002 --- gcc-3.1.1/gcc/doc/md.texi Thu Jun 27 17:48:18 2002 *************** available in a particular run. *** 158,164 **** For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found in the vector ! @code{operands}. @item The @dfn{output template}: a string that says how to output matching --- 158,166 ---- For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found in the vector ! @code{operands}. For an insn where the condition has once matched, it ! can't be used to control register allocation, for example by excluding ! certain hard registers or hard register combinations. @item The @dfn{output template}: a string that says how to output matching *************** A constant in the range supported by @co *** 1867,1873 **** @item N Same as @samp{K}, except that it verifies that bits that are not in the ! lower 32-bits range are all zero. Must be used instead of @samp{K} for modes wider than @code{SImode} @item G --- 1869,1875 ---- @item N Same as @samp{K}, except that it verifies that bits that are not in the ! lower 32-bit range are all zero. Must be used instead of @samp{K} for modes wider than @code{SImode} @item G diff -Nrc3pad gcc-3.1/gcc/doc/tm.texi gcc-3.1.1/gcc/doc/tm.texi *** gcc-3.1/gcc/doc/tm.texi Fri May 3 13:13:37 2002 --- gcc-3.1.1/gcc/doc/tm.texi Thu Jun 27 17:48:17 2002 *************** A C expression that is true if, for a re *** 2454,2467 **** @code{CLASS_CANNOT_CHANGE_MODE}, the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects into ! floating-point registers on the Alpha extends them to 64-bits. Therefore loading a 64-bit object and then storing it as a 32-bit object ! does not store the low-order 32-bits, as would be the case for a normal register. Therefore, @file{alpha.h} defines @code{CLASS_CANNOT_CHANGE_MODE} as @code{FLOAT_REGS} and @code{CLASS_CANNOT_CHANGE_MODE_P} restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to 82-bits, and stores 64-bit integers in a different format than 64-bit doubles. Therefore @code{CLASS_CANNOT_CHANGE_MODE_P} is always true. @end table --- 2454,2467 ---- @code{CLASS_CANNOT_CHANGE_MODE}, the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects into ! floating-point registers on the Alpha extends them to 64 bits. Therefore loading a 64-bit object and then storing it as a 32-bit object ! does not store the low-order 32 bits, as would be the case for a normal register. Therefore, @file{alpha.h} defines @code{CLASS_CANNOT_CHANGE_MODE} as @code{FLOAT_REGS} and @code{CLASS_CANNOT_CHANGE_MODE_P} restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to 82 bits, and stores 64-bit integers in a different format than 64-bit doubles. Therefore @code{CLASS_CANNOT_CHANGE_MODE_P} is always true. @end table diff -Nrc3pad gcc-3.1/gcc/dwarf2out.c gcc-3.1.1/gcc/dwarf2out.c *** gcc-3.1/gcc/dwarf2out.c Tue May 7 17:27:30 2002 --- gcc-3.1.1/gcc/dwarf2out.c Sun Jun 16 20:54:30 2002 *************** expand_builtin_init_dwarf_reg_sizes (add *** 417,432 **** rtx addr = expand_expr (address, NULL_RTX, VOIDmode, 0); rtx mem = gen_rtx_MEM (BLKmode, addr); ! for (i = 0; i < DWARF_FRAME_REGISTERS; i++) ! { ! HOST_WIDE_INT offset = DWARF_FRAME_REGNUM (i) * GET_MODE_SIZE (mode); ! HOST_WIDE_INT size = GET_MODE_SIZE (reg_raw_mode[i]); ! if (offset < 0) ! continue; ! emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size)); ! } } /* Convert a DWARF call frame info. operation to its string name */ --- 417,433 ---- rtx addr = expand_expr (address, NULL_RTX, VOIDmode, 0); rtx mem = gen_rtx_MEM (BLKmode, addr); ! for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) ! if (DWARF_FRAME_REGNUM (i) < DWARF_FRAME_REGISTERS) ! { ! HOST_WIDE_INT offset = DWARF_FRAME_REGNUM (i) * GET_MODE_SIZE (mode); ! HOST_WIDE_INT size = GET_MODE_SIZE (reg_raw_mode[i]); ! if (offset < 0) ! continue; ! emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size)); ! } } /* Convert a DWARF call frame info. operation to its string name */ *************** output_call_frame_info (for_eh) *** 1943,1949 **** fde = &fde_table[i]; /* Don't emit EH unwind info for leaf functions that don't need it. */ ! if (for_eh && fde->nothrow && ! fde->uses_eh_lsda) continue; ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, FDE_LABEL, for_eh + i * 2); --- 1944,1951 ---- fde = &fde_table[i]; /* Don't emit EH unwind info for leaf functions that don't need it. */ ! if (!flag_asynchronous_unwind_tables && for_eh && fde->nothrow ! && ! fde->uses_eh_lsda) continue; ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, FDE_LABEL, for_eh + i * 2); *************** modified_type_die (type, is_const_type, *** 7571,7581 **** } /* We want to equate the qualified type to the die below. */ ! if (qualified_type) ! type = qualified_type; } ! equate_type_number_to_die (type, mod_type_die); if (item_type) /* We must do this after the equate_type_number_to_die call, in case this is a recursive type. This ensures that the modified_type_die --- 7573,7583 ---- } /* We want to equate the qualified type to the die below. */ ! type = qualified_type; } ! if (type) ! equate_type_number_to_die (type, mod_type_die); if (item_type) /* We must do this after the equate_type_number_to_die call, in case this is a recursive type. This ensures that the modified_type_die *************** rtl_for_decl_location (decl) *** 8941,8961 **** == strlen (TREE_STRING_POINTER (init)) + 1)) rtl = gen_rtx_CONST_STRING (VOIDmode, TREE_STRING_POINTER (init)); } ! ! #if 0 ! /* We mustn't actually emit anything here, as we might not get a ! chance to emit any symbols we refer to. For the release, don't ! try to get this right. */ ! if (rtl == NULL) { rtl = expand_expr (DECL_INITIAL (decl), NULL_RTX, VOIDmode, EXPAND_INITIALIZER); ! /* If expand_expr returned a MEM, we cannot use it, since ! it won't be output, leading to unresolved symbol. */ if (rtl && GET_CODE (rtl) == MEM) ! rtl = NULL; } - #endif } #ifdef ASM_SIMPLIFY_DWARF_ADDR --- 8943,8960 ---- == strlen (TREE_STRING_POINTER (init)) + 1)) rtl = gen_rtx_CONST_STRING (VOIDmode, TREE_STRING_POINTER (init)); } ! /* If the initializer is something that we know will expand into an ! immediate RTL constant, expand it now. Expanding anything else ! tends to produce unresolved symbols; see debug/5770 and c++/6381. */ ! else if (TREE_CODE (DECL_INITIAL (decl)) == INTEGER_CST ! || TREE_CODE (DECL_INITIAL (decl)) == REAL_CST) { rtl = expand_expr (DECL_INITIAL (decl), NULL_RTX, VOIDmode, EXPAND_INITIALIZER); ! /* If expand_expr returns a MEM, it wasn't immediate. */ if (rtl && GET_CODE (rtl) == MEM) ! abort (); } } #ifdef ASM_SIMPLIFY_DWARF_ADDR diff -Nrc3pad gcc-3.1/gcc/dwarfout.c gcc-3.1.1/gcc/dwarfout.c *** gcc-3.1/gcc/dwarfout.c Tue Jan 22 21:58:41 2002 --- gcc-3.1.1/gcc/dwarfout.c Fri Jul 5 16:37:41 2002 *************** output_reg_number (rtl) *** 2086,2092 **** if (regno >= DWARF_FRAME_REGISTERS) { ! warning_with_decl (dwarf_last_decl, "internal regno botch: regno = %d\n", regno); regno = 0; } --- 2086,2093 ---- if (regno >= DWARF_FRAME_REGISTERS) { ! warning_with_decl (dwarf_last_decl, ! "internal regno botch: `%s' has regno = %d\n", regno); regno = 0; } *************** output_bound_representation (bound, dim_ *** 2303,2309 **** || TREE_CODE (bound) == CONVERT_EXPR) bound = TREE_OPERAND (bound, 0); ! if (TREE_CODE (bound) == SAVE_EXPR) output_loc_descriptor (eliminate_regs (SAVE_EXPR_RTL (bound), 0, NULL_RTX)); } --- 2304,2311 ---- || TREE_CODE (bound) == CONVERT_EXPR) bound = TREE_OPERAND (bound, 0); ! if (TREE_CODE (bound) == SAVE_EXPR ! && SAVE_EXPR_RTL (bound)) output_loc_descriptor (eliminate_regs (SAVE_EXPR_RTL (bound), 0, NULL_RTX)); } diff -Nrc3pad gcc-3.1/gcc/emit-rtl.c gcc-3.1.1/gcc/emit-rtl.c *** gcc-3.1/gcc/emit-rtl.c Fri Apr 12 12:13:26 2002 --- gcc-3.1.1/gcc/emit-rtl.c Mon Jul 1 21:50:14 2002 *************** gen_rtx_CONST_INT (mode, arg) *** 355,360 **** --- 355,368 ---- return (rtx) *slot; } + rtx + gen_int_mode (c, mode) + HOST_WIDE_INT c; + enum machine_mode mode; + { + return GEN_INT (trunc_int_for_mode (c, mode)); + } + /* CONST_DOUBLEs needs special handling because their length is known only at run-time. */ *************** gen_lowpart_common (mode, x) *** 831,836 **** --- 839,849 ---- > ((xsize + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD))) return 0; + /* Don't allow generating paradoxical FLOAT_MODE subregs. */ + if (GET_MODE_CLASS (mode) == MODE_FLOAT + && GET_MODE (x) != VOIDmode && msize > xsize) + return 0; + offset = subreg_lowpart_offset (mode, GET_MODE (x)); if ((GET_CODE (x) == ZERO_EXTEND || GET_CODE (x) == SIGN_EXTEND) *************** widen_memory_access (memref, mode, offse *** 2161,2166 **** --- 2174,2180 ---- /* Similarly for the decl. */ else if (DECL_P (expr) && DECL_SIZE_UNIT (expr) + && TREE_CODE (DECL_SIZE_UNIT (expr)) == INTEGER_CST && compare_tree_int (DECL_SIZE_UNIT (expr), size) >= 0 && (! memoffset || INTVAL (memoffset) >= 0)) break; *************** init_emit_once (line_numbers) *** 5023,5029 **** tries to use these variables. */ for (i = - MAX_SAVED_CONST_INT; i <= MAX_SAVED_CONST_INT; i++) const_int_rtx[i + MAX_SAVED_CONST_INT] = ! gen_rtx_raw_CONST_INT (VOIDmode, i); ggc_add_rtx_root (const_int_rtx, 2 * MAX_SAVED_CONST_INT + 1); if (STORE_FLAG_VALUE >= - MAX_SAVED_CONST_INT --- 5037,5043 ---- tries to use these variables. */ for (i = - MAX_SAVED_CONST_INT; i <= MAX_SAVED_CONST_INT; i++) const_int_rtx[i + MAX_SAVED_CONST_INT] = ! gen_rtx_raw_CONST_INT (VOIDmode, (HOST_WIDE_INT) i); ggc_add_rtx_root (const_int_rtx, 2 * MAX_SAVED_CONST_INT + 1); if (STORE_FLAG_VALUE >= - MAX_SAVED_CONST_INT diff -Nrc3pad gcc-3.1/gcc/expmed.c gcc-3.1.1/gcc/expmed.c *** gcc-3.1/gcc/expmed.c Wed Mar 13 02:05:27 2002 --- gcc-3.1.1/gcc/expmed.c Mon Jun 24 16:50:42 2002 *************** expand_divmod (rem_flag, code, mode, op0 *** 3049,3057 **** not straightforward to generalize this. Maybe we should make an array of possible modes in init_expmed? Save this for GCC 2.7. */ ! optab1 = (op1_is_pow2 ? (unsignedp ? lshr_optab : ashr_optab) : (unsignedp ? udiv_optab : sdiv_optab)); ! optab2 = (op1_is_pow2 ? optab1 : (unsignedp ? udivmod_optab : sdivmod_optab)); for (compute_mode = mode; compute_mode != VOIDmode; compute_mode = GET_MODE_WIDER_MODE (compute_mode)) --- 3049,3060 ---- not straightforward to generalize this. Maybe we should make an array of possible modes in init_expmed? Save this for GCC 2.7. */ ! optab1 = ((op1_is_pow2 && op1 != const0_rtx) ! ? (unsignedp ? lshr_optab : ashr_optab) : (unsignedp ? udiv_optab : sdiv_optab)); ! optab2 = ((op1_is_pow2 && op1 != const0_rtx) ! ? optab1 ! : (unsignedp ? udivmod_optab : sdivmod_optab)); for (compute_mode = mode; compute_mode != VOIDmode; compute_mode = GET_MODE_WIDER_MODE (compute_mode)) *************** make_tree (type, x) *** 4136,4141 **** --- 4139,4150 ---- build (TRUNC_DIV_EXPR, t, make_tree (t, XEXP (x, 0)), make_tree (t, XEXP (x, 1))))); + + case SIGN_EXTEND: + case ZERO_EXTEND: + t = type_for_mode (GET_MODE (XEXP (x, 0)), GET_CODE (x) == ZERO_EXTEND); + return fold (convert (type, make_tree (t, XEXP (x, 0)))); + default: t = make_node (RTL_EXPR); TREE_TYPE (t) = type; diff -Nrc3pad gcc-3.1/gcc/f/ChangeLog gcc-3.1.1/gcc/f/ChangeLog *** gcc-3.1/gcc/f/ChangeLog Wed May 15 02:19:40 2002 --- gcc-3.1.1/gcc/f/ChangeLog Thu Jul 25 23:35:17 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-06-30 Toon Moene + + * news.texi: Mention 2 Gbyte limit on 32-bit targets + for arrays explicitly in news on g77-3.1. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/f/NEWS gcc-3.1.1/gcc/f/NEWS *** gcc-3.1/gcc/f/NEWS Wed May 15 03:48:01 2002 --- gcc-3.1.1/gcc/f/NEWS Fri Jul 26 01:01:09 2002 *************** somewhat more difficult. *** 49,55 **** the mainline, development version of `g77' within `gcc') is available at `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'. ! The following information was last updated on 2002-04-13: In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= --- 49,55 ---- the mainline, development version of `g77' within `gcc') is available at `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'. ! The following information was last updated on 2002-06-30: In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= *************** In `GCC' 3.1 (formerly known as g77-0.5. *** 105,115 **** DIMENSION A(140 000 000) ^ Array `a' at (^) is too large to handle ! because 140 000 000 reals is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets have been converted to byte addresses. ! Therefore this check has been removed. Note: On GNU/Linux systems ! one has to compile programs that occupy more than 1 Gbyte statically, i.e. `g77 -static ...'. * Based on work done by Juergen Pfeifer () --- 105,116 ---- DIMENSION A(140 000 000) ^ Array `a' at (^) is too large to handle ! because 140 000 000 REALs is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets have been converted to byte addresses. ! Therefore this check has been removed, and the limit is now 2 ! Gbyte of memory (around 530 000 000 REALs). Note: On GNU/Linux ! systems one has to compile programs that occupy more than 1 Gbyte statically, i.e. `g77 -static ...'. * Based on work done by Juergen Pfeifer () diff -Nrc3pad gcc-3.1/gcc/f/g77.1 gcc-3.1.1/gcc/f/g77.1 *** gcc-3.1/gcc/f/g77.1 Wed May 15 02:46:01 2002 --- gcc-3.1.1/gcc/f/g77.1 Thu Jul 25 23:56:27 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:00 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" g77 \- \s-1GNU\s0 project Fortran 77 compiler --- 138,144 ---- .\" ====================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" g77 \- \s-1GNU\s0 project Fortran 77 compiler diff -Nrc3pad gcc-3.1/gcc/f/g77.info gcc-3.1.1/gcc/f/g77.info *** gcc-3.1/gcc/f/g77.info Wed May 15 02:45:53 2002 --- gcc-3.1.1/gcc/f/g77.info Thu Jul 25 23:56:19 2002 *************** g77.info-1: 1458 *** 41,63 **** g77.info-2: 49505 g77.info-3: 98812 g77.info-4: 124628 ! g77.info-5: 176483 ! g77.info-6: 224666 ! g77.info-7: 269669 ! g77.info-8: 319073 ! g77.info-9: 368533 ! g77.info-10: 418100 ! g77.info-11: 462500 ! g77.info-12: 512048 ! g77.info-13: 562039 ! g77.info-14: 609063 ! g77.info-15: 653227 ! g77.info-16: 700908 ! g77.info-17: 750456 ! g77.info-18: 798820 ! g77.info-19: 841365 ! g77.info-20: 885118 ! g77.info-21: 904108  Tag Table: (Indirect) --- 41,63 ---- g77.info-2: 49505 g77.info-3: 98812 g77.info-4: 124628 ! g77.info-5: 176555 ! g77.info-6: 224810 ! g77.info-7: 269813 ! g77.info-8: 319217 ! g77.info-9: 368677 ! g77.info-10: 418244 ! g77.info-11: 462644 ! g77.info-12: 512192 ! g77.info-13: 562183 ! g77.info-14: 609207 ! g77.info-15: 653371 ! g77.info-16: 701052 ! g77.info-17: 750600 ! g77.info-18: 798964 ! g77.info-19: 841509 ! g77.info-20: 885262 ! g77.info-21: 904252  Tag Table: (Indirect) *************** Node: Directory Options107954 *** 84,765 **** Node: Code Gen Options109266 Node: Environment Variables124173 Node: News124628 ! Node: Changes176483 ! Node: Language201768 ! Node: Direction of Language Development203971 ! Node: Standard Support210210 ! Node: No Passing External Assumed-length210931 ! Node: No Passing Dummy Assumed-length211408 ! Node: No Pathological Implied-DO211923 ! Node: No Useless Implied-DO212610 ! Node: Conformance213341 ! Node: Notation Used215364 ! Node: Terms and Concepts219570 ! Node: Syntactic Items220082 ! Node: Statements Comments Lines220764 ! Node: Scope of Names and Labels222629 ! Node: Characters Lines Sequence223059 ! Node: Character Set223665 ! Node: Lines224666 ! Node: Continuation Line227142 ! Node: Statements228097 ! Node: Statement Labels229053 ! Node: Order229745 ! Node: INCLUDE230630 ! Node: Cpp-style directives233402 ! Node: Data Types and Constants233857 ! Node: Types237378 ! Node: Double Notation238467 ! Node: Star Notation239539 ! Node: Kind Notation242484 ! Node: Constants250904 ! Node: Integer Type252420 ! Node: Character Type253018 ! Node: Expressions253782 ! Node: %LOC()254198 ! Node: Specification Statements256928 ! Node: NAMELIST257385 ! Node: DOUBLE COMPLEX258136 ! Node: Control Statements258390 ! Node: DO WHILE258882 ! Node: END DO259187 ! Node: Construct Names260194 ! Node: CYCLE and EXIT260934 ! Node: Functions and Subroutines263698 ! Node: %VAL()264344 ! Node: %REF()265708 ! Node: %DESCR()267536 ! Node: Generics and Specifics269669 ! Node: REAL() and AIMAG() of Complex276871 ! Node: CMPLX() of DOUBLE PRECISION278704 ! Node: MIL-STD 1753280430 ! Node: f77/f2c Intrinsics280772 ! Node: Table of Intrinsic Functions281342 ! Node: Abort Intrinsic298054 ! Node: Abs Intrinsic298318 ! Node: Access Intrinsic299181 ! Node: AChar Intrinsic300017 ! Node: ACos Intrinsic300539 ! Node: AdjustL Intrinsic301000 ! Node: AdjustR Intrinsic301325 ! Node: AImag Intrinsic301651 ! Node: AInt Intrinsic302456 ! Node: Alarm Intrinsic303084 ! Node: All Intrinsic303916 ! Node: Allocated Intrinsic304228 ! Node: ALog Intrinsic304557 ! Node: ALog10 Intrinsic304947 ! Node: AMax0 Intrinsic305345 ! Node: AMax1 Intrinsic305830 ! Node: AMin0 Intrinsic306283 ! Node: AMin1 Intrinsic306767 ! Node: AMod Intrinsic307219 ! Node: And Intrinsic307645 ! Node: ANInt Intrinsic308151 ! Node: Any Intrinsic308915 ! Node: ASin Intrinsic309222 ! Node: Associated Intrinsic309680 ! Node: ATan Intrinsic310014 ! Node: ATan2 Intrinsic310480 ! Node: BesJ0 Intrinsic311031 ! Node: BesJ1 Intrinsic311492 ! Node: BesJN Intrinsic311953 ! Node: BesY0 Intrinsic312484 ! Node: BesY1 Intrinsic312946 ! Node: BesYN Intrinsic313408 ! Node: Bit_Size Intrinsic313943 ! Node: BTest Intrinsic314602 ! Node: CAbs Intrinsic315322 ! Node: CCos Intrinsic315709 ! Node: Ceiling Intrinsic316101 ! Node: CExp Intrinsic316423 ! Node: Char Intrinsic316815 ! Node: ChDir Intrinsic (subroutine)318069 ! Node: ChMod Intrinsic (subroutine)319073 ! Node: CLog Intrinsic320344 ! Node: Cmplx Intrinsic320748 ! Node: Complex Intrinsic321549 ! Node: Conjg Intrinsic322995 ! Node: Cos Intrinsic323419 ! Node: CosH Intrinsic323882 ! Node: Count Intrinsic324257 ! Node: CPU_Time Intrinsic324575 ! Node: CShift Intrinsic325366 ! Node: CSin Intrinsic325688 ! Node: CSqRt Intrinsic326080 ! Node: CTime Intrinsic (subroutine)326490 ! Node: CTime Intrinsic (function)327245 ! Node: DAbs Intrinsic327879 ! Node: DACos Intrinsic328275 ! Node: DASin Intrinsic328666 ! Node: DATan Intrinsic329058 ! Node: DATan2 Intrinsic329451 ! Node: Date_and_Time Intrinsic329906 ! Node: DbesJ0 Intrinsic331270 ! Node: DbesJ1 Intrinsic331663 ! Node: DbesJN Intrinsic332049 ! Node: DbesY0 Intrinsic332505 ! Node: DbesY1 Intrinsic332891 ! Node: DbesYN Intrinsic333277 ! Node: Dble Intrinsic333731 ! Node: DCos Intrinsic334437 ! Node: DCosH Intrinsic334821 ! Node: DDiM Intrinsic335211 ! Node: DErF Intrinsic335643 ! Node: DErFC Intrinsic336012 ! Node: DExp Intrinsic336387 ! Node: Digits Intrinsic336773 ! Node: DiM Intrinsic337090 ! Node: DInt Intrinsic337589 ! Node: DLog Intrinsic337973 ! Node: DLog10 Intrinsic338358 ! Node: DMax1 Intrinsic338756 ! Node: DMin1 Intrinsic339210 ! Node: DMod Intrinsic339662 ! Node: DNInt Intrinsic340090 ! Node: Dot_Product Intrinsic340489 ! Node: DProd Intrinsic340829 ! Node: DSign Intrinsic341211 ! Node: DSin Intrinsic341650 ! Node: DSinH Intrinsic342035 ! Node: DSqRt Intrinsic342426 ! Node: DTan Intrinsic342817 ! Node: DTanH Intrinsic343202 ! Node: DTime Intrinsic (subroutine)343606 ! Node: EOShift Intrinsic344877 ! Node: Epsilon Intrinsic345216 ! Node: ErF Intrinsic345540 ! Node: ErFC Intrinsic345946 ! Node: ETime Intrinsic (subroutine)346506 ! Node: ETime Intrinsic (function)347669 ! Node: Exit Intrinsic348709 ! Node: Exp Intrinsic349218 ! Node: Exponent Intrinsic349680 ! Node: FDate Intrinsic (subroutine)350019 ! Node: FDate Intrinsic (function)350929 ! Node: FGet Intrinsic (subroutine)351701 ! Node: FGetC Intrinsic (subroutine)352538 ! Node: Float Intrinsic353415 ! Node: Floor Intrinsic353815 ! Node: Flush Intrinsic354131 ! Node: FNum Intrinsic354710 ! Node: FPut Intrinsic (subroutine)355158 ! Node: FPutC Intrinsic (subroutine)355955 ! Node: Fraction Intrinsic356802 ! Node: FSeek Intrinsic357143 ! Node: FStat Intrinsic (subroutine)357868 ! Node: FStat Intrinsic (function)359393 ! Node: FTell Intrinsic (subroutine)360683 ! Node: FTell Intrinsic (function)361356 ! Node: GError Intrinsic361873 ! Node: GetArg Intrinsic362247 ! Node: GetCWD Intrinsic (subroutine)362915 ! Node: GetCWD Intrinsic (function)363771 ! Node: GetEnv Intrinsic364391 ! Node: GetGId Intrinsic364978 ! Node: GetLog Intrinsic365284 ! Node: GetPId Intrinsic365822 ! Node: GetUId Intrinsic366130 ! Node: GMTime Intrinsic366435 ! Node: HostNm Intrinsic (subroutine)367443 ! Node: HostNm Intrinsic (function)368533 ! Node: Huge Intrinsic369376 ! Node: IAbs Intrinsic369699 ! Node: IAChar Intrinsic370090 ! Node: IAnd Intrinsic370630 ! Node: IArgC Intrinsic371118 ! Node: IBClr Intrinsic371494 ! Node: IBits Intrinsic372005 ! Node: IBSet Intrinsic372719 ! Node: IChar Intrinsic373221 ! Node: IDate Intrinsic (UNIX)374440 ! Node: IDiM Intrinsic375243 ! Node: IDInt Intrinsic375692 ! Node: IDNInt Intrinsic376085 ! Node: IEOr Intrinsic376484 ! Node: IErrNo Intrinsic376982 ! Node: IFix Intrinsic377309 ! Node: Imag Intrinsic377697 ! Node: ImagPart Intrinsic378702 ! Node: Index Intrinsic379728 ! Node: Int Intrinsic380281 ! Node: Int2 Intrinsic380996 ! Node: Int8 Intrinsic381706 ! Node: IOr Intrinsic382416 ! Node: IRand Intrinsic382896 ! Node: IsaTty Intrinsic383816 ! Node: IShft Intrinsic384240 ! Node: IShftC Intrinsic385070 ! Node: ISign Intrinsic385999 ! Node: ITime Intrinsic386449 ! Node: Kill Intrinsic (subroutine)386851 ! Node: Kind Intrinsic387688 ! Node: LBound Intrinsic388013 ! Node: Len Intrinsic388330 ! Node: Len_Trim Intrinsic388966 ! Node: LGe Intrinsic389378 ! Node: LGt Intrinsic390791 ! Node: Link Intrinsic (subroutine)391696 ! Node: LLe Intrinsic392661 ! Node: LLt Intrinsic393566 ! Node: LnBlnk Intrinsic394460 ! Node: Loc Intrinsic394863 ! Node: Log Intrinsic395294 ! Node: Log10 Intrinsic395885 ! Node: Logical Intrinsic396427 ! Node: Long Intrinsic396750 ! Node: LShift Intrinsic397274 ! Node: LStat Intrinsic (subroutine)398310 ! Node: LStat Intrinsic (function)400122 ! Node: LTime Intrinsic401685 ! Node: MatMul Intrinsic402689 ! Node: Max Intrinsic403007 ! Node: Max0 Intrinsic403558 ! Node: Max1 Intrinsic404009 ! Node: MaxExponent Intrinsic404493 ! Node: MaxLoc Intrinsic404833 ! Node: MaxVal Intrinsic405160 ! Node: MClock Intrinsic405482 ! Node: MClock8 Intrinsic406380 ! Node: Merge Intrinsic407568 ! Node: Min Intrinsic407884 ! Node: Min0 Intrinsic408435 ! Node: Min1 Intrinsic408886 ! Node: MinExponent Intrinsic409370 ! Node: MinLoc Intrinsic409710 ! Node: MinVal Intrinsic410037 ! Node: Mod Intrinsic410356 ! Node: Modulo Intrinsic410879 ! Node: MvBits Intrinsic411198 ! Node: Nearest Intrinsic412064 ! Node: NInt Intrinsic412388 ! Node: Not Intrinsic413226 ! Node: Or Intrinsic413621 ! Node: Pack Intrinsic414119 ! Node: PError Intrinsic414429 ! Node: Precision Intrinsic414883 ! Node: Present Intrinsic415218 ! Node: Product Intrinsic415548 ! Node: Radix Intrinsic415874 ! Node: Rand Intrinsic416191 ! Node: Random_Number Intrinsic417078 ! Node: Random_Seed Intrinsic417431 ! Node: Range Intrinsic417779 ! Node: Real Intrinsic418100 ! Node: RealPart Intrinsic419106 ! Node: Rename Intrinsic (subroutine)420139 ! Node: Repeat Intrinsic421111 ! Node: Reshape Intrinsic421447 ! Node: RRSpacing Intrinsic421776 ! Node: RShift Intrinsic422111 ! Node: Scale Intrinsic423109 ! Node: Scan Intrinsic423425 ! Node: Second Intrinsic (function)423749 ! Node: Second Intrinsic (subroutine)424580 ! Node: Selected_Int_Kind Intrinsic425555 ! Node: Selected_Real_Kind Intrinsic425946 ! Node: Set_Exponent Intrinsic426333 ! Node: Shape Intrinsic426690 ! Node: Short Intrinsic427013 ! Node: Sign Intrinsic427709 ! Node: Signal Intrinsic (subroutine)428309 ! Node: Sin Intrinsic430523 ! Node: SinH Intrinsic430998 ! Node: Sleep Intrinsic431371 ! Node: Sngl Intrinsic431713 ! Node: Spacing Intrinsic432102 ! Node: Spread Intrinsic432426 ! Node: SqRt Intrinsic432747 ! Node: SRand Intrinsic433351 ! Node: Stat Intrinsic (subroutine)433728 ! Node: Stat Intrinsic (function)435343 ! Node: Sum Intrinsic436707 ! Node: SymLnk Intrinsic (subroutine)437039 ! Node: System Intrinsic (subroutine)438071 ! Node: System_Clock Intrinsic439010 ! Node: Tan Intrinsic440134 ! Node: TanH Intrinsic440594 ! Node: Time Intrinsic (UNIX)440976 ! Node: Time8 Intrinsic441961 ! Node: Tiny Intrinsic443140 ! Node: Transfer Intrinsic443455 ! Node: Transpose Intrinsic443786 ! Node: Trim Intrinsic444120 ! Node: TtyNam Intrinsic (subroutine)444450 ! Node: TtyNam Intrinsic (function)445152 ! Node: UBound Intrinsic445721 ! Node: UMask Intrinsic (subroutine)446066 ! Node: Unlink Intrinsic (subroutine)446763 ! Node: Unpack Intrinsic447661 ! Node: Verify Intrinsic447996 ! Node: XOr Intrinsic448315 ! Node: ZAbs Intrinsic448831 ! Node: ZCos Intrinsic449200 ! Node: ZExp Intrinsic449573 ! Node: ZLog Intrinsic449946 ! Node: ZSin Intrinsic450319 ! Node: ZSqRt Intrinsic450693 ! Node: Scope and Classes of Names451050 ! Node: Underscores in Symbol Names451532 ! Node: I/O451779 ! Node: Fortran 90 Features452552 ! Node: Other Dialects455354 ! Node: Source Form456513 ! Node: Carriage Returns457728 ! Node: Tabs458057 ! Node: Short Lines458930 ! Node: Long Lines459904 ! Node: Ampersands460515 ! Node: Trailing Comment460769 ! Node: Debug Line461545 ! Node: Dollar Signs462214 ! Node: Case Sensitivity462500 ! Node: VXT Fortran471116 ! Node: Double Quote Meaning472299 ! Node: Exclamation Point473227 ! Node: Fortran 90474270 ! Node: Pedantic Compilation475322 ! Node: Distensions479286 ! Node: Ugly Implicit Argument Conversion480250 ! Node: Ugly Assumed-Size Arrays480864 ! Node: Ugly Complex Part Extraction482585 ! Node: Ugly Null Arguments484207 ! Node: Ugly Conversion of Initializers485810 ! Node: Ugly Integer Conversions487575 ! Node: Ugly Assigned Labels488683 ! Node: Compiler490614 ! Node: Compiler Limits491252 ! Node: Run-time Environment Limits492143 ! Node: Timer Wraparounds494085 ! Node: Year 2000 (Y2K) Problems495364 ! Node: Array Size499870 ! Node: Character-variable Length501055 ! Node: Year 10000 (Y10K) Problems501564 ! Node: Compiler Types502110 ! Node: Compiler Constants506821 ! Node: Compiler Intrinsics507680 ! Node: Intrinsic Groups508607 ! Node: Other Intrinsics512048 ! Node: ACosD Intrinsic519646 ! Node: AIMax0 Intrinsic519927 ! Node: AIMin0 Intrinsic520236 ! Node: AJMax0 Intrinsic520546 ! Node: AJMin0 Intrinsic520856 ! Node: ASinD Intrinsic521165 ! Node: ATan2D Intrinsic521471 ! Node: ATanD Intrinsic521779 ! Node: BITest Intrinsic522085 ! Node: BJTest Intrinsic522394 ! Node: CDAbs Intrinsic522703 ! Node: CDCos Intrinsic523076 ! Node: CDExp Intrinsic523451 ! Node: CDLog Intrinsic523826 ! Node: CDSin Intrinsic524201 ! Node: CDSqRt Intrinsic524577 ! Node: ChDir Intrinsic (function)524970 ! Node: ChMod Intrinsic (function)525799 ! Node: CosD Intrinsic526913 ! Node: DACosD Intrinsic527225 ! Node: DASinD Intrinsic527533 ! Node: DATan2D Intrinsic527844 ! Node: DATanD Intrinsic528158 ! Node: Date Intrinsic528467 ! Node: DbleQ Intrinsic529186 ! Node: DCmplx Intrinsic529490 ! Node: DConjg Intrinsic531121 ! Node: DCosD Intrinsic531506 ! Node: DFloat Intrinsic531812 ! Node: DFlotI Intrinsic532184 ! Node: DFlotJ Intrinsic532494 ! Node: DImag Intrinsic532803 ! Node: DReal Intrinsic533180 ! Node: DSinD Intrinsic534327 ! Node: DTanD Intrinsic534631 ! Node: DTime Intrinsic (function)534946 ! Node: FGet Intrinsic (function)536176 ! Node: FGetC Intrinsic (function)536949 ! Node: FloatI Intrinsic537765 ! Node: FloatJ Intrinsic538085 ! Node: FPut Intrinsic (function)538404 ! Node: FPutC Intrinsic (function)539140 ! Node: IDate Intrinsic (VXT)539933 ! Node: IIAbs Intrinsic540977 ! Node: IIAnd Intrinsic541287 ! Node: IIBClr Intrinsic541592 ! Node: IIBits Intrinsic541901 ! Node: IIBSet Intrinsic542211 ! Node: IIDiM Intrinsic542520 ! Node: IIDInt Intrinsic542826 ! Node: IIDNnt Intrinsic543135 ! Node: IIEOr Intrinsic543444 ! Node: IIFix Intrinsic543749 ! Node: IInt Intrinsic544052 ! Node: IIOr Intrinsic544351 ! Node: IIQint Intrinsic544651 ! Node: IIQNnt Intrinsic544959 ! Node: IIShftC Intrinsic545270 ! Node: IISign Intrinsic545584 ! Node: IMax0 Intrinsic545894 ! Node: IMax1 Intrinsic546199 ! Node: IMin0 Intrinsic546503 ! Node: IMin1 Intrinsic546807 ! Node: IMod Intrinsic547110 ! Node: INInt Intrinsic547410 ! Node: INot Intrinsic547712 ! Node: IZExt Intrinsic548012 ! Node: JIAbs Intrinsic548315 ! Node: JIAnd Intrinsic548619 ! Node: JIBClr Intrinsic548924 ! Node: JIBits Intrinsic549233 ! Node: JIBSet Intrinsic549543 ! Node: JIDiM Intrinsic549852 ! Node: JIDInt Intrinsic550158 ! Node: JIDNnt Intrinsic550467 ! Node: JIEOr Intrinsic550776 ! Node: JIFix Intrinsic551081 ! Node: JInt Intrinsic551384 ! Node: JIOr Intrinsic551683 ! Node: JIQint Intrinsic551983 ! Node: JIQNnt Intrinsic552291 ! Node: JIShft Intrinsic552601 ! Node: JIShftC Intrinsic552912 ! Node: JISign Intrinsic553226 ! Node: JMax0 Intrinsic553536 ! Node: JMax1 Intrinsic553841 ! Node: JMin0 Intrinsic554145 ! Node: JMin1 Intrinsic554449 ! Node: JMod Intrinsic554752 ! Node: JNInt Intrinsic555052 ! Node: JNot Intrinsic555354 ! Node: JZExt Intrinsic555654 ! Node: Kill Intrinsic (function)555967 ! Node: Link Intrinsic (function)556649 ! Node: QAbs Intrinsic557461 ! Node: QACos Intrinsic557771 ! Node: QACosD Intrinsic558075 ! Node: QASin Intrinsic558383 ! Node: QASinD Intrinsic558689 ! Node: QATan Intrinsic558997 ! Node: QATan2 Intrinsic559303 ! Node: QATan2D Intrinsic559613 ! Node: QATanD Intrinsic559927 ! Node: QCos Intrinsic560236 ! Node: QCosD Intrinsic560537 ! Node: QCosH Intrinsic560840 ! Node: QDiM Intrinsic561143 ! Node: QExp Intrinsic561442 ! Node: QExt Intrinsic561740 ! Node: QExtD Intrinsic562039 ! Node: QFloat Intrinsic562343 ! Node: QInt Intrinsic562650 ! Node: QLog Intrinsic562950 ! Node: QLog10 Intrinsic563250 ! Node: QMax1 Intrinsic563557 ! Node: QMin1 Intrinsic563862 ! Node: QMod Intrinsic564165 ! Node: QNInt Intrinsic564465 ! Node: QSin Intrinsic564767 ! Node: QSinD Intrinsic565067 ! Node: QSinH Intrinsic565370 ! Node: QSqRt Intrinsic565674 ! Node: QTan Intrinsic565977 ! Node: QTanD Intrinsic566277 ! Node: QTanH Intrinsic566580 ! Node: Rename Intrinsic (function)566896 ! Node: Secnds Intrinsic567701 ! Node: Signal Intrinsic (function)568300 ! Node: SinD Intrinsic571129 ! Node: SnglQ Intrinsic571441 ! Node: SymLnk Intrinsic (function)571756 ! Node: System Intrinsic (function)572624 ! Node: TanD Intrinsic573951 ! Node: Time Intrinsic (VXT)574268 ! Node: UMask Intrinsic (function)575022 ! Node: Unlink Intrinsic (function)575630 ! Node: ZExt Intrinsic576359 ! Node: Other Compilers576647 ! Node: Dropping f2c Compatibility579167 ! Node: Compilers Other Than f2c582239 ! Node: Other Languages584037 ! Node: Interoperating with C and C++584302 ! Node: C Interfacing Tools585335 ! Node: C Access to Type Information586263 ! Node: f2c Skeletons and Prototypes586950 ! Ref: f2c Skeletons and Prototypes-Footnote-1588397 ! Node: C++ Considerations588651 ! Node: Startup Code589306 ! Node: Debugging and Interfacing594095 ! Node: Main Program Unit596782 ! Node: Procedures599276 ! Node: Functions601934 ! Node: Names603552 ! Node: Common Blocks606695 ! Node: Local Equivalence Areas606959 ! Node: Complex Variables607943 ! Node: Arrays609063 ! Node: Adjustable Arrays612397 ! Node: Alternate Entry Points615256 ! Node: Alternate Returns621958 ! Node: Assigned Statement Labels622859 ! Node: Run-time Library Errors624704 ! Node: Collected Fortran Wisdom626656 ! Node: Advantages Over f2c628092 ! Node: Language Extensions629073 ! Node: Diagnostic Abilities630247 ! Node: Compiler Options630638 ! Node: Compiler Speed631686 ! Node: Program Speed632396 ! Node: Ease of Debugging633981 ! Node: Character and Hollerith Constants636411 ! Node: Block Data and Libraries637383 ! Node: Loops640712 ! Node: Working Programs645938 ! Node: Not My Type646682 ! Node: Variables Assumed To Be Zero648613 ! Node: Variables Assumed To Be Saved649667 ! Node: Unwanted Variables651037 ! Node: Unused Arguments651917 ! Node: Surprising Interpretations of Code652380 ! Node: Aliasing Assumed To Work653227 ! Node: Output Assumed To Flush659424 ! Node: Large File Unit Numbers662197 ! Node: Floating-point precision664349 ! Node: Inconsistent Calling Sequences665610 ! Node: Overly Convenient Options666590 ! Node: Faster Programs669896 ! Node: Aligned Data670342 ! Node: Prefer Automatic Uninitialized Variables675219 ! Node: Avoid f2c Compatibility676585 ! Node: Use Submodel Options677053 ! Node: Trouble678057 ! Node: But-bugs679519 ! Node: Signal 11 and Friends681292 ! Node: Cannot Link Fortran Programs683372 ! Node: Large Common Blocks684655 ! Node: Debugger Problems685081 ! Node: NeXTStep Problems685796 ! Node: Stack Overflow687622 ! Node: Nothing Happens690511 ! Node: Strange Behavior at Run Time692125 ! Node: Floating-point Errors694614 ! Node: Known Bugs700908 ! Node: Missing Features708207 ! Node: Better Source Model710134 ! Node: Fortran 90 Support711903 ! Node: Intrinsics in PARAMETER Statements713004 ! Node: Arbitrary Concatenation713755 ! Node: SELECT CASE on CHARACTER Type714158 ! Node: RECURSIVE Keyword714445 ! Node: Increasing Precision/Range714872 ! Node: Popular Non-standard Types716410 ! Node: Full Support for Compiler Types716749 ! Node: Array Bounds Expressions717385 ! Node: POINTER Statements717832 ! Node: Sensible Non-standard Constructs718715 ! Node: READONLY Keyword721041 ! Node: FLUSH Statement721951 ! Node: Expressions in FORMAT Statements722321 ! Node: Explicit Assembler Code723496 ! Node: Q Edit Descriptor723785 ! Node: Old-style PARAMETER Statements724289 ! Node: TYPE and ACCEPT I/O Statements725023 ! Node: STRUCTURE UNION RECORD MAP725589 ! Node: OPEN CLOSE and INQUIRE Keywords726075 ! Node: ENCODE and DECODE727055 ! Node: AUTOMATIC Statement728150 ! Node: Suppressing Space Padding729397 ! Node: Fortran Preprocessor730624 ! Node: Bit Operations on Floating-point Data731197 ! Node: Really Ugly Character Assignments731730 ! Node: POSIX Standard732105 ! Node: Floating-point Exception Handling732345 ! Node: Nonportable Conversions733749 ! Node: Large Automatic Arrays734292 ! Node: Support for Threads734699 ! Node: Enabling Debug Lines735124 ! Node: Better Warnings735501 ! Node: Gracefully Handle Sensible Bad Code737137 ! Node: Non-standard Conversions737881 ! Node: Non-standard Intrinsics738224 ! Node: Modifying DO Variable738640 ! Node: Better Pedantic Compilation739316 ! Node: Warn About Implicit Conversions739944 ! Node: Invalid Use of Hollerith Constant740531 ! Node: Dummy Array Without Dimensioning Dummy741074 ! Node: Invalid FORMAT Specifiers741987 ! Node: Ambiguous Dialects742388 ! Node: Unused Labels742799 ! Node: Informational Messages743021 ! Node: Uninitialized Variables at Run Time743424 ! Node: Portable Unformatted Files744030 ! Ref: Portable Unformatted Files-Footnote-1746986 ! Node: Better List-directed I/O747014 ! Node: Default to Console I/O747919 ! Node: Labels Visible to Debugger748567 ! Node: Disappointments748968 ! Node: Mangling of Names749606 ! Node: Multiple Definitions of External Names750456 ! Node: Limitation on Implicit Declarations751819 ! Node: Non-bugs752103 ! Node: Backslash in Constants753228 ! Node: Initializing Before Specifying758117 ! Node: Context-Sensitive Intrinsicness759259 ! Node: Context-Sensitive Constants761155 ! Node: Equivalence Versus Equality764111 ! Node: Order of Side Effects767154 ! Node: Warnings and Errors768882 ! Node: Open Questions770280 ! Node: Bugs770749 ! Node: Bug Criteria772188 ! Node: Bug Lists778421 ! Node: Bug Reporting779210 ! Node: Service792826 ! Node: Adding Options793292 ! Node: Projects797885 ! Node: Efficiency798820 ! Node: Better Optimization801717 ! Node: Simplify Porting805087 ! Node: More Extensions806842 ! Node: Machine Model809930 ! Node: Internals Documentation811216 ! Node: Internals Improvements811523 ! Node: Better Diagnostics815067 ! Node: Front End815984 ! Node: Overview of Sources816771 ! Node: Overview of Translation Process824160 ! Node: g77stripcard828438 ! Node: lex.c830915 ! Node: sta.c840455 ! Node: sti.c840566 ! Node: stq.c840677 ! Node: stb.c840788 ! Node: expr.c840900 ! Node: stc.c841014 ! Node: std.c841126 ! Node: ste.c841237 ! Node: Gotchas (Transforming)841365 ! Node: TBD (Transforming)849484 ! Node: Philosophy of Code Generation852180 ! Node: Two-pass Design858084 ! Node: Two-pass Code859241 ! Node: Why Two Passes859974 ! Node: Challenges Posed866042 ! Node: Transforming Statements868526 ! Node: Statements Needing Temporaries869376 ! Node: Transforming DO WHILE872140 ! Node: Transforming Iterative DO873323 ! Node: Transforming Block IF874152 ! Node: Transforming SELECT CASE875517 ! Node: Transforming Expressions878739 ! Node: Internal Naming Conventions880728 ! Node: Diagnostics883728 ! Node: CMPAMBIG885118 ! Node: EXPIMP891535 ! Node: INTGLOB892771 ! Node: LEX895015 ! Node: GLOBALS900470 ! Node: LINKFAIL903134 ! Node: Y2KBAD903758 ! Node: Index904108  End Tag Table --- 84,765 ---- Node: Code Gen Options109266 Node: Environment Variables124173 Node: News124628 ! Node: Changes176555 ! Node: Language201912 ! Node: Direction of Language Development204115 ! Node: Standard Support210354 ! Node: No Passing External Assumed-length211075 ! Node: No Passing Dummy Assumed-length211552 ! Node: No Pathological Implied-DO212067 ! Node: No Useless Implied-DO212754 ! Node: Conformance213485 ! Node: Notation Used215508 ! Node: Terms and Concepts219714 ! Node: Syntactic Items220226 ! Node: Statements Comments Lines220908 ! Node: Scope of Names and Labels222773 ! Node: Characters Lines Sequence223203 ! Node: Character Set223809 ! Node: Lines224810 ! Node: Continuation Line227286 ! Node: Statements228241 ! Node: Statement Labels229197 ! Node: Order229889 ! Node: INCLUDE230774 ! Node: Cpp-style directives233546 ! Node: Data Types and Constants234001 ! Node: Types237522 ! Node: Double Notation238611 ! Node: Star Notation239683 ! Node: Kind Notation242628 ! Node: Constants251048 ! Node: Integer Type252564 ! Node: Character Type253162 ! Node: Expressions253926 ! Node: %LOC()254342 ! Node: Specification Statements257072 ! Node: NAMELIST257529 ! Node: DOUBLE COMPLEX258280 ! Node: Control Statements258534 ! Node: DO WHILE259026 ! Node: END DO259331 ! Node: Construct Names260338 ! Node: CYCLE and EXIT261078 ! Node: Functions and Subroutines263842 ! Node: %VAL()264488 ! Node: %REF()265852 ! Node: %DESCR()267680 ! Node: Generics and Specifics269813 ! Node: REAL() and AIMAG() of Complex277015 ! Node: CMPLX() of DOUBLE PRECISION278848 ! Node: MIL-STD 1753280574 ! Node: f77/f2c Intrinsics280916 ! Node: Table of Intrinsic Functions281486 ! Node: Abort Intrinsic298198 ! Node: Abs Intrinsic298462 ! Node: Access Intrinsic299325 ! Node: AChar Intrinsic300161 ! Node: ACos Intrinsic300683 ! Node: AdjustL Intrinsic301144 ! Node: AdjustR Intrinsic301469 ! Node: AImag Intrinsic301795 ! Node: AInt Intrinsic302600 ! Node: Alarm Intrinsic303228 ! Node: All Intrinsic304060 ! Node: Allocated Intrinsic304372 ! Node: ALog Intrinsic304701 ! Node: ALog10 Intrinsic305091 ! Node: AMax0 Intrinsic305489 ! Node: AMax1 Intrinsic305974 ! Node: AMin0 Intrinsic306427 ! Node: AMin1 Intrinsic306911 ! Node: AMod Intrinsic307363 ! Node: And Intrinsic307789 ! Node: ANInt Intrinsic308295 ! Node: Any Intrinsic309059 ! Node: ASin Intrinsic309366 ! Node: Associated Intrinsic309824 ! Node: ATan Intrinsic310158 ! Node: ATan2 Intrinsic310624 ! Node: BesJ0 Intrinsic311175 ! Node: BesJ1 Intrinsic311636 ! Node: BesJN Intrinsic312097 ! Node: BesY0 Intrinsic312628 ! Node: BesY1 Intrinsic313090 ! Node: BesYN Intrinsic313552 ! Node: Bit_Size Intrinsic314087 ! Node: BTest Intrinsic314746 ! Node: CAbs Intrinsic315466 ! Node: CCos Intrinsic315853 ! Node: Ceiling Intrinsic316245 ! Node: CExp Intrinsic316567 ! Node: Char Intrinsic316959 ! Node: ChDir Intrinsic (subroutine)318213 ! Node: ChMod Intrinsic (subroutine)319217 ! Node: CLog Intrinsic320488 ! Node: Cmplx Intrinsic320892 ! Node: Complex Intrinsic321693 ! Node: Conjg Intrinsic323139 ! Node: Cos Intrinsic323563 ! Node: CosH Intrinsic324026 ! Node: Count Intrinsic324401 ! Node: CPU_Time Intrinsic324719 ! Node: CShift Intrinsic325510 ! Node: CSin Intrinsic325832 ! Node: CSqRt Intrinsic326224 ! Node: CTime Intrinsic (subroutine)326634 ! Node: CTime Intrinsic (function)327389 ! Node: DAbs Intrinsic328023 ! Node: DACos Intrinsic328419 ! Node: DASin Intrinsic328810 ! Node: DATan Intrinsic329202 ! Node: DATan2 Intrinsic329595 ! Node: Date_and_Time Intrinsic330050 ! Node: DbesJ0 Intrinsic331414 ! Node: DbesJ1 Intrinsic331807 ! Node: DbesJN Intrinsic332193 ! Node: DbesY0 Intrinsic332649 ! Node: DbesY1 Intrinsic333035 ! Node: DbesYN Intrinsic333421 ! Node: Dble Intrinsic333875 ! Node: DCos Intrinsic334581 ! Node: DCosH Intrinsic334965 ! Node: DDiM Intrinsic335355 ! Node: DErF Intrinsic335787 ! Node: DErFC Intrinsic336156 ! Node: DExp Intrinsic336531 ! Node: Digits Intrinsic336917 ! Node: DiM Intrinsic337234 ! Node: DInt Intrinsic337733 ! Node: DLog Intrinsic338117 ! Node: DLog10 Intrinsic338502 ! Node: DMax1 Intrinsic338900 ! Node: DMin1 Intrinsic339354 ! Node: DMod Intrinsic339806 ! Node: DNInt Intrinsic340234 ! Node: Dot_Product Intrinsic340633 ! Node: DProd Intrinsic340973 ! Node: DSign Intrinsic341355 ! Node: DSin Intrinsic341794 ! Node: DSinH Intrinsic342179 ! Node: DSqRt Intrinsic342570 ! Node: DTan Intrinsic342961 ! Node: DTanH Intrinsic343346 ! Node: DTime Intrinsic (subroutine)343750 ! Node: EOShift Intrinsic345021 ! Node: Epsilon Intrinsic345360 ! Node: ErF Intrinsic345684 ! Node: ErFC Intrinsic346090 ! Node: ETime Intrinsic (subroutine)346650 ! Node: ETime Intrinsic (function)347813 ! Node: Exit Intrinsic348853 ! Node: Exp Intrinsic349362 ! Node: Exponent Intrinsic349824 ! Node: FDate Intrinsic (subroutine)350163 ! Node: FDate Intrinsic (function)351073 ! Node: FGet Intrinsic (subroutine)351845 ! Node: FGetC Intrinsic (subroutine)352682 ! Node: Float Intrinsic353559 ! Node: Floor Intrinsic353959 ! Node: Flush Intrinsic354275 ! Node: FNum Intrinsic354854 ! Node: FPut Intrinsic (subroutine)355302 ! Node: FPutC Intrinsic (subroutine)356099 ! Node: Fraction Intrinsic356946 ! Node: FSeek Intrinsic357287 ! Node: FStat Intrinsic (subroutine)358012 ! Node: FStat Intrinsic (function)359537 ! Node: FTell Intrinsic (subroutine)360827 ! Node: FTell Intrinsic (function)361500 ! Node: GError Intrinsic362017 ! Node: GetArg Intrinsic362391 ! Node: GetCWD Intrinsic (subroutine)363059 ! Node: GetCWD Intrinsic (function)363915 ! Node: GetEnv Intrinsic364535 ! Node: GetGId Intrinsic365122 ! Node: GetLog Intrinsic365428 ! Node: GetPId Intrinsic365966 ! Node: GetUId Intrinsic366274 ! Node: GMTime Intrinsic366579 ! Node: HostNm Intrinsic (subroutine)367587 ! Node: HostNm Intrinsic (function)368677 ! Node: Huge Intrinsic369520 ! Node: IAbs Intrinsic369843 ! Node: IAChar Intrinsic370234 ! Node: IAnd Intrinsic370774 ! Node: IArgC Intrinsic371262 ! Node: IBClr Intrinsic371638 ! Node: IBits Intrinsic372149 ! Node: IBSet Intrinsic372863 ! Node: IChar Intrinsic373365 ! Node: IDate Intrinsic (UNIX)374584 ! Node: IDiM Intrinsic375387 ! Node: IDInt Intrinsic375836 ! Node: IDNInt Intrinsic376229 ! Node: IEOr Intrinsic376628 ! Node: IErrNo Intrinsic377126 ! Node: IFix Intrinsic377453 ! Node: Imag Intrinsic377841 ! Node: ImagPart Intrinsic378846 ! Node: Index Intrinsic379872 ! Node: Int Intrinsic380425 ! Node: Int2 Intrinsic381140 ! Node: Int8 Intrinsic381850 ! Node: IOr Intrinsic382560 ! Node: IRand Intrinsic383040 ! Node: IsaTty Intrinsic383960 ! Node: IShft Intrinsic384384 ! Node: IShftC Intrinsic385214 ! Node: ISign Intrinsic386143 ! Node: ITime Intrinsic386593 ! Node: Kill Intrinsic (subroutine)386995 ! Node: Kind Intrinsic387832 ! Node: LBound Intrinsic388157 ! Node: Len Intrinsic388474 ! Node: Len_Trim Intrinsic389110 ! Node: LGe Intrinsic389522 ! Node: LGt Intrinsic390935 ! Node: Link Intrinsic (subroutine)391840 ! Node: LLe Intrinsic392805 ! Node: LLt Intrinsic393710 ! Node: LnBlnk Intrinsic394604 ! Node: Loc Intrinsic395007 ! Node: Log Intrinsic395438 ! Node: Log10 Intrinsic396029 ! Node: Logical Intrinsic396571 ! Node: Long Intrinsic396894 ! Node: LShift Intrinsic397418 ! Node: LStat Intrinsic (subroutine)398454 ! Node: LStat Intrinsic (function)400266 ! Node: LTime Intrinsic401829 ! Node: MatMul Intrinsic402833 ! Node: Max Intrinsic403151 ! Node: Max0 Intrinsic403702 ! Node: Max1 Intrinsic404153 ! Node: MaxExponent Intrinsic404637 ! Node: MaxLoc Intrinsic404977 ! Node: MaxVal Intrinsic405304 ! Node: MClock Intrinsic405626 ! Node: MClock8 Intrinsic406524 ! Node: Merge Intrinsic407712 ! Node: Min Intrinsic408028 ! Node: Min0 Intrinsic408579 ! Node: Min1 Intrinsic409030 ! Node: MinExponent Intrinsic409514 ! Node: MinLoc Intrinsic409854 ! Node: MinVal Intrinsic410181 ! Node: Mod Intrinsic410500 ! Node: Modulo Intrinsic411023 ! Node: MvBits Intrinsic411342 ! Node: Nearest Intrinsic412208 ! Node: NInt Intrinsic412532 ! Node: Not Intrinsic413370 ! Node: Or Intrinsic413765 ! Node: Pack Intrinsic414263 ! Node: PError Intrinsic414573 ! Node: Precision Intrinsic415027 ! Node: Present Intrinsic415362 ! Node: Product Intrinsic415692 ! Node: Radix Intrinsic416018 ! Node: Rand Intrinsic416335 ! Node: Random_Number Intrinsic417222 ! Node: Random_Seed Intrinsic417575 ! Node: Range Intrinsic417923 ! Node: Real Intrinsic418244 ! Node: RealPart Intrinsic419250 ! Node: Rename Intrinsic (subroutine)420283 ! Node: Repeat Intrinsic421255 ! Node: Reshape Intrinsic421591 ! Node: RRSpacing Intrinsic421920 ! Node: RShift Intrinsic422255 ! Node: Scale Intrinsic423253 ! Node: Scan Intrinsic423569 ! Node: Second Intrinsic (function)423893 ! Node: Second Intrinsic (subroutine)424724 ! Node: Selected_Int_Kind Intrinsic425699 ! Node: Selected_Real_Kind Intrinsic426090 ! Node: Set_Exponent Intrinsic426477 ! Node: Shape Intrinsic426834 ! Node: Short Intrinsic427157 ! Node: Sign Intrinsic427853 ! Node: Signal Intrinsic (subroutine)428453 ! Node: Sin Intrinsic430667 ! Node: SinH Intrinsic431142 ! Node: Sleep Intrinsic431515 ! Node: Sngl Intrinsic431857 ! Node: Spacing Intrinsic432246 ! Node: Spread Intrinsic432570 ! Node: SqRt Intrinsic432891 ! Node: SRand Intrinsic433495 ! Node: Stat Intrinsic (subroutine)433872 ! Node: Stat Intrinsic (function)435487 ! Node: Sum Intrinsic436851 ! Node: SymLnk Intrinsic (subroutine)437183 ! Node: System Intrinsic (subroutine)438215 ! Node: System_Clock Intrinsic439154 ! Node: Tan Intrinsic440278 ! Node: TanH Intrinsic440738 ! Node: Time Intrinsic (UNIX)441120 ! Node: Time8 Intrinsic442105 ! Node: Tiny Intrinsic443284 ! Node: Transfer Intrinsic443599 ! Node: Transpose Intrinsic443930 ! Node: Trim Intrinsic444264 ! Node: TtyNam Intrinsic (subroutine)444594 ! Node: TtyNam Intrinsic (function)445296 ! Node: UBound Intrinsic445865 ! Node: UMask Intrinsic (subroutine)446210 ! Node: Unlink Intrinsic (subroutine)446907 ! Node: Unpack Intrinsic447805 ! Node: Verify Intrinsic448140 ! Node: XOr Intrinsic448459 ! Node: ZAbs Intrinsic448975 ! Node: ZCos Intrinsic449344 ! Node: ZExp Intrinsic449717 ! Node: ZLog Intrinsic450090 ! Node: ZSin Intrinsic450463 ! Node: ZSqRt Intrinsic450837 ! Node: Scope and Classes of Names451194 ! Node: Underscores in Symbol Names451676 ! Node: I/O451923 ! Node: Fortran 90 Features452696 ! Node: Other Dialects455498 ! Node: Source Form456657 ! Node: Carriage Returns457872 ! Node: Tabs458201 ! Node: Short Lines459074 ! Node: Long Lines460048 ! Node: Ampersands460659 ! Node: Trailing Comment460913 ! Node: Debug Line461689 ! Node: Dollar Signs462358 ! Node: Case Sensitivity462644 ! Node: VXT Fortran471260 ! Node: Double Quote Meaning472443 ! Node: Exclamation Point473371 ! Node: Fortran 90474414 ! Node: Pedantic Compilation475466 ! Node: Distensions479430 ! Node: Ugly Implicit Argument Conversion480394 ! Node: Ugly Assumed-Size Arrays481008 ! Node: Ugly Complex Part Extraction482729 ! Node: Ugly Null Arguments484351 ! Node: Ugly Conversion of Initializers485954 ! Node: Ugly Integer Conversions487719 ! Node: Ugly Assigned Labels488827 ! Node: Compiler490758 ! Node: Compiler Limits491396 ! Node: Run-time Environment Limits492287 ! Node: Timer Wraparounds494229 ! Node: Year 2000 (Y2K) Problems495508 ! Node: Array Size500014 ! Node: Character-variable Length501199 ! Node: Year 10000 (Y10K) Problems501708 ! Node: Compiler Types502254 ! Node: Compiler Constants506965 ! Node: Compiler Intrinsics507824 ! Node: Intrinsic Groups508751 ! Node: Other Intrinsics512192 ! Node: ACosD Intrinsic519790 ! Node: AIMax0 Intrinsic520071 ! Node: AIMin0 Intrinsic520380 ! Node: AJMax0 Intrinsic520690 ! Node: AJMin0 Intrinsic521000 ! Node: ASinD Intrinsic521309 ! Node: ATan2D Intrinsic521615 ! Node: ATanD Intrinsic521923 ! Node: BITest Intrinsic522229 ! Node: BJTest Intrinsic522538 ! Node: CDAbs Intrinsic522847 ! Node: CDCos Intrinsic523220 ! Node: CDExp Intrinsic523595 ! Node: CDLog Intrinsic523970 ! Node: CDSin Intrinsic524345 ! Node: CDSqRt Intrinsic524721 ! Node: ChDir Intrinsic (function)525114 ! Node: ChMod Intrinsic (function)525943 ! Node: CosD Intrinsic527057 ! Node: DACosD Intrinsic527369 ! Node: DASinD Intrinsic527677 ! Node: DATan2D Intrinsic527988 ! Node: DATanD Intrinsic528302 ! Node: Date Intrinsic528611 ! Node: DbleQ Intrinsic529330 ! Node: DCmplx Intrinsic529634 ! Node: DConjg Intrinsic531265 ! Node: DCosD Intrinsic531650 ! Node: DFloat Intrinsic531956 ! Node: DFlotI Intrinsic532328 ! Node: DFlotJ Intrinsic532638 ! Node: DImag Intrinsic532947 ! Node: DReal Intrinsic533324 ! Node: DSinD Intrinsic534471 ! Node: DTanD Intrinsic534775 ! Node: DTime Intrinsic (function)535090 ! Node: FGet Intrinsic (function)536320 ! Node: FGetC Intrinsic (function)537093 ! Node: FloatI Intrinsic537909 ! Node: FloatJ Intrinsic538229 ! Node: FPut Intrinsic (function)538548 ! Node: FPutC Intrinsic (function)539284 ! Node: IDate Intrinsic (VXT)540077 ! Node: IIAbs Intrinsic541121 ! Node: IIAnd Intrinsic541431 ! Node: IIBClr Intrinsic541736 ! Node: IIBits Intrinsic542045 ! Node: IIBSet Intrinsic542355 ! Node: IIDiM Intrinsic542664 ! Node: IIDInt Intrinsic542970 ! Node: IIDNnt Intrinsic543279 ! Node: IIEOr Intrinsic543588 ! Node: IIFix Intrinsic543893 ! Node: IInt Intrinsic544196 ! Node: IIOr Intrinsic544495 ! Node: IIQint Intrinsic544795 ! Node: IIQNnt Intrinsic545103 ! Node: IIShftC Intrinsic545414 ! Node: IISign Intrinsic545728 ! Node: IMax0 Intrinsic546038 ! Node: IMax1 Intrinsic546343 ! Node: IMin0 Intrinsic546647 ! Node: IMin1 Intrinsic546951 ! Node: IMod Intrinsic547254 ! Node: INInt Intrinsic547554 ! Node: INot Intrinsic547856 ! Node: IZExt Intrinsic548156 ! Node: JIAbs Intrinsic548459 ! Node: JIAnd Intrinsic548763 ! Node: JIBClr Intrinsic549068 ! Node: JIBits Intrinsic549377 ! Node: JIBSet Intrinsic549687 ! Node: JIDiM Intrinsic549996 ! Node: JIDInt Intrinsic550302 ! Node: JIDNnt Intrinsic550611 ! Node: JIEOr Intrinsic550920 ! Node: JIFix Intrinsic551225 ! Node: JInt Intrinsic551528 ! Node: JIOr Intrinsic551827 ! Node: JIQint Intrinsic552127 ! Node: JIQNnt Intrinsic552435 ! Node: JIShft Intrinsic552745 ! Node: JIShftC Intrinsic553056 ! Node: JISign Intrinsic553370 ! Node: JMax0 Intrinsic553680 ! Node: JMax1 Intrinsic553985 ! Node: JMin0 Intrinsic554289 ! Node: JMin1 Intrinsic554593 ! Node: JMod Intrinsic554896 ! Node: JNInt Intrinsic555196 ! Node: JNot Intrinsic555498 ! Node: JZExt Intrinsic555798 ! Node: Kill Intrinsic (function)556111 ! Node: Link Intrinsic (function)556793 ! Node: QAbs Intrinsic557605 ! Node: QACos Intrinsic557915 ! Node: QACosD Intrinsic558219 ! Node: QASin Intrinsic558527 ! Node: QASinD Intrinsic558833 ! Node: QATan Intrinsic559141 ! Node: QATan2 Intrinsic559447 ! Node: QATan2D Intrinsic559757 ! Node: QATanD Intrinsic560071 ! Node: QCos Intrinsic560380 ! Node: QCosD Intrinsic560681 ! Node: QCosH Intrinsic560984 ! Node: QDiM Intrinsic561287 ! Node: QExp Intrinsic561586 ! Node: QExt Intrinsic561884 ! Node: QExtD Intrinsic562183 ! Node: QFloat Intrinsic562487 ! Node: QInt Intrinsic562794 ! Node: QLog Intrinsic563094 ! Node: QLog10 Intrinsic563394 ! Node: QMax1 Intrinsic563701 ! Node: QMin1 Intrinsic564006 ! Node: QMod Intrinsic564309 ! Node: QNInt Intrinsic564609 ! Node: QSin Intrinsic564911 ! Node: QSinD Intrinsic565211 ! Node: QSinH Intrinsic565514 ! Node: QSqRt Intrinsic565818 ! Node: QTan Intrinsic566121 ! Node: QTanD Intrinsic566421 ! Node: QTanH Intrinsic566724 ! Node: Rename Intrinsic (function)567040 ! Node: Secnds Intrinsic567845 ! Node: Signal Intrinsic (function)568444 ! Node: SinD Intrinsic571273 ! Node: SnglQ Intrinsic571585 ! Node: SymLnk Intrinsic (function)571900 ! Node: System Intrinsic (function)572768 ! Node: TanD Intrinsic574095 ! Node: Time Intrinsic (VXT)574412 ! Node: UMask Intrinsic (function)575166 ! Node: Unlink Intrinsic (function)575774 ! Node: ZExt Intrinsic576503 ! Node: Other Compilers576791 ! Node: Dropping f2c Compatibility579311 ! Node: Compilers Other Than f2c582383 ! Node: Other Languages584181 ! Node: Interoperating with C and C++584446 ! Node: C Interfacing Tools585479 ! Node: C Access to Type Information586407 ! Node: f2c Skeletons and Prototypes587094 ! Ref: f2c Skeletons and Prototypes-Footnote-1588541 ! Node: C++ Considerations588795 ! Node: Startup Code589450 ! Node: Debugging and Interfacing594239 ! Node: Main Program Unit596926 ! Node: Procedures599420 ! Node: Functions602078 ! Node: Names603696 ! Node: Common Blocks606839 ! Node: Local Equivalence Areas607103 ! Node: Complex Variables608087 ! Node: Arrays609207 ! Node: Adjustable Arrays612541 ! Node: Alternate Entry Points615400 ! Node: Alternate Returns622102 ! Node: Assigned Statement Labels623003 ! Node: Run-time Library Errors624848 ! Node: Collected Fortran Wisdom626800 ! Node: Advantages Over f2c628236 ! Node: Language Extensions629217 ! Node: Diagnostic Abilities630391 ! Node: Compiler Options630782 ! Node: Compiler Speed631830 ! Node: Program Speed632540 ! Node: Ease of Debugging634125 ! Node: Character and Hollerith Constants636555 ! Node: Block Data and Libraries637527 ! Node: Loops640856 ! Node: Working Programs646082 ! Node: Not My Type646826 ! Node: Variables Assumed To Be Zero648757 ! Node: Variables Assumed To Be Saved649811 ! Node: Unwanted Variables651181 ! Node: Unused Arguments652061 ! Node: Surprising Interpretations of Code652524 ! Node: Aliasing Assumed To Work653371 ! Node: Output Assumed To Flush659568 ! Node: Large File Unit Numbers662341 ! Node: Floating-point precision664493 ! Node: Inconsistent Calling Sequences665754 ! Node: Overly Convenient Options666734 ! Node: Faster Programs670040 ! Node: Aligned Data670486 ! Node: Prefer Automatic Uninitialized Variables675363 ! Node: Avoid f2c Compatibility676729 ! Node: Use Submodel Options677197 ! Node: Trouble678201 ! Node: But-bugs679663 ! Node: Signal 11 and Friends681436 ! Node: Cannot Link Fortran Programs683516 ! Node: Large Common Blocks684799 ! Node: Debugger Problems685225 ! Node: NeXTStep Problems685940 ! Node: Stack Overflow687766 ! Node: Nothing Happens690655 ! Node: Strange Behavior at Run Time692269 ! Node: Floating-point Errors694758 ! Node: Known Bugs701052 ! Node: Missing Features708351 ! Node: Better Source Model710278 ! Node: Fortran 90 Support712047 ! Node: Intrinsics in PARAMETER Statements713148 ! Node: Arbitrary Concatenation713899 ! Node: SELECT CASE on CHARACTER Type714302 ! Node: RECURSIVE Keyword714589 ! Node: Increasing Precision/Range715016 ! Node: Popular Non-standard Types716554 ! Node: Full Support for Compiler Types716893 ! Node: Array Bounds Expressions717529 ! Node: POINTER Statements717976 ! Node: Sensible Non-standard Constructs718859 ! Node: READONLY Keyword721185 ! Node: FLUSH Statement722095 ! Node: Expressions in FORMAT Statements722465 ! Node: Explicit Assembler Code723640 ! Node: Q Edit Descriptor723929 ! Node: Old-style PARAMETER Statements724433 ! Node: TYPE and ACCEPT I/O Statements725167 ! Node: STRUCTURE UNION RECORD MAP725733 ! Node: OPEN CLOSE and INQUIRE Keywords726219 ! Node: ENCODE and DECODE727199 ! Node: AUTOMATIC Statement728294 ! Node: Suppressing Space Padding729541 ! Node: Fortran Preprocessor730768 ! Node: Bit Operations on Floating-point Data731341 ! Node: Really Ugly Character Assignments731874 ! Node: POSIX Standard732249 ! Node: Floating-point Exception Handling732489 ! Node: Nonportable Conversions733893 ! Node: Large Automatic Arrays734436 ! Node: Support for Threads734843 ! Node: Enabling Debug Lines735268 ! Node: Better Warnings735645 ! Node: Gracefully Handle Sensible Bad Code737281 ! Node: Non-standard Conversions738025 ! Node: Non-standard Intrinsics738368 ! Node: Modifying DO Variable738784 ! Node: Better Pedantic Compilation739460 ! Node: Warn About Implicit Conversions740088 ! Node: Invalid Use of Hollerith Constant740675 ! Node: Dummy Array Without Dimensioning Dummy741218 ! Node: Invalid FORMAT Specifiers742131 ! Node: Ambiguous Dialects742532 ! Node: Unused Labels742943 ! Node: Informational Messages743165 ! Node: Uninitialized Variables at Run Time743568 ! Node: Portable Unformatted Files744174 ! Ref: Portable Unformatted Files-Footnote-1747130 ! Node: Better List-directed I/O747158 ! Node: Default to Console I/O748063 ! Node: Labels Visible to Debugger748711 ! Node: Disappointments749112 ! Node: Mangling of Names749750 ! Node: Multiple Definitions of External Names750600 ! Node: Limitation on Implicit Declarations751963 ! Node: Non-bugs752247 ! Node: Backslash in Constants753372 ! Node: Initializing Before Specifying758261 ! Node: Context-Sensitive Intrinsicness759403 ! Node: Context-Sensitive Constants761299 ! Node: Equivalence Versus Equality764255 ! Node: Order of Side Effects767298 ! Node: Warnings and Errors769026 ! Node: Open Questions770424 ! Node: Bugs770893 ! Node: Bug Criteria772332 ! Node: Bug Lists778565 ! Node: Bug Reporting779354 ! Node: Service792970 ! Node: Adding Options793436 ! Node: Projects798029 ! Node: Efficiency798964 ! Node: Better Optimization801861 ! Node: Simplify Porting805231 ! Node: More Extensions806986 ! Node: Machine Model810074 ! Node: Internals Documentation811360 ! Node: Internals Improvements811667 ! Node: Better Diagnostics815211 ! Node: Front End816128 ! Node: Overview of Sources816915 ! Node: Overview of Translation Process824304 ! Node: g77stripcard828582 ! Node: lex.c831059 ! Node: sta.c840599 ! Node: sti.c840710 ! Node: stq.c840821 ! Node: stb.c840932 ! Node: expr.c841044 ! Node: stc.c841158 ! Node: std.c841270 ! Node: ste.c841381 ! Node: Gotchas (Transforming)841509 ! Node: TBD (Transforming)849628 ! Node: Philosophy of Code Generation852324 ! Node: Two-pass Design858228 ! Node: Two-pass Code859385 ! Node: Why Two Passes860118 ! Node: Challenges Posed866186 ! Node: Transforming Statements868670 ! Node: Statements Needing Temporaries869520 ! Node: Transforming DO WHILE872284 ! Node: Transforming Iterative DO873467 ! Node: Transforming Block IF874296 ! Node: Transforming SELECT CASE875661 ! Node: Transforming Expressions878883 ! Node: Internal Naming Conventions880872 ! Node: Diagnostics883872 ! Node: CMPAMBIG885262 ! Node: EXPIMP891679 ! Node: INTGLOB892915 ! Node: LEX895159 ! Node: GLOBALS900614 ! Node: LINKFAIL903278 ! Node: Y2KBAD903902 ! Node: Index904252  End Tag Table diff -Nrc3pad gcc-3.1/gcc/f/g77.info-4 gcc-3.1.1/gcc/f/g77.info-4 *** gcc-3.1/gcc/f/g77.info-4 Wed May 15 02:45:53 2002 --- gcc-3.1.1/gcc/f/g77.info-4 Thu Jul 25 23:56:19 2002 *************** Known Bugs In GNU Fortran: Known Bugs. *** 82,88 **** the mainline, development version of `g77' within `gcc') is available at `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'. ! The following information was last updated on 2002-04-13: In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= --- 82,88 ---- the mainline, development version of `g77' within `gcc') is available at `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'. ! The following information was last updated on 2002-06-30: In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= *************** In `GCC' 3.1 (formerly known as g77-0.5. *** 138,148 **** DIMENSION A(140 000 000) ^ Array `a' at (^) is too large to handle ! because 140 000 000 reals is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets have been converted to byte addresses. ! Therefore this check has been removed. Note: On GNU/Linux systems ! one has to compile programs that occupy more than 1 Gbyte statically, i.e. `g77 -static ...'. * Based on work done by Juergen Pfeifer () --- 138,149 ---- DIMENSION A(140 000 000) ^ Array `a' at (^) is too large to handle ! because 140 000 000 REALs is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets have been converted to byte addresses. ! Therefore this check has been removed, and the limit is now 2 ! Gbyte of memory (around 530 000 000 REALs). Note: On GNU/Linux ! systems one has to compile programs that occupy more than 1 Gbyte statically, i.e. `g77 -static ...'. * Based on work done by Juergen Pfeifer () diff -Nrc3pad gcc-3.1/gcc/f/g77.info-5 gcc-3.1.1/gcc/f/g77.info-5 *** gcc-3.1/gcc/f/g77.info-5 Wed May 15 02:45:53 2002 --- gcc-3.1.1/gcc/f/g77.info-5 Thu Jul 25 23:56:19 2002 *************** somewhat more difficult. *** 62,68 **** For information on bugs in the GCC-3.1 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2002-04-13: In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= --- 62,68 ---- For information on bugs in the GCC-3.1 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2002-06-30: In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= *************** In `GCC' 3.1 (formerly known as g77-0.5. *** 118,128 **** DIMENSION A(140 000 000) ^ Array `a' at (^) is too large to handle ! because 140 000 000 reals is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets have been converted to byte addresses. ! Therefore this check has been removed. Note: On GNU/Linux systems ! one has to compile programs that occupy more than 1 Gbyte statically, i.e. `g77 -static ...'. * Based on work done by Juergen Pfeifer () --- 118,129 ---- DIMENSION A(140 000 000) ^ Array `a' at (^) is too large to handle ! because 140 000 000 REALs is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets have been converted to byte addresses. ! Therefore this check has been removed, and the limit is now 2 ! Gbyte of memory (around 530 000 000 REALs). Note: On GNU/Linux ! systems one has to compile programs that occupy more than 1 Gbyte statically, i.e. `g77 -static ...'. * Based on work done by Juergen Pfeifer () diff -Nrc3pad gcc-3.1/gcc/f/news.texi gcc-3.1.1/gcc/f/news.texi *** gcc-3.1/gcc/f/news.texi Sat Apr 13 16:44:44 2002 --- gcc-3.1.1/gcc/f/news.texi Sun Jun 30 11:00:17 2002 *************** *** 10,16 **** @c in the standalone derivations of this file (e.g. NEWS). @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002 ! @set last-update-news 2002-04-13 @include root.texi --- 10,16 ---- @c in the standalone derivations of this file (e.g. NEWS). @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002 ! @set last-update-news 2002-06-30 @include root.texi *************** prog.f:2: *** 203,211 **** ^ Array `a' at (^) is too large to handle @end smallexample ! because 140 000 000 reals is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets ! have been converted to byte addresses. Therefore this check has been removed. Note: On GNU/Linux systems one has to compile programs that occupy more than 1 Gbyte statically, i.e.@: @code{g77 -static ...}. --- 203,212 ---- ^ Array `a' at (^) is too large to handle @end smallexample ! because 140 000 000 REALs is larger than the largest bit-extent that can be expressed in 32 bits. However, bit-sizes never play a role after offsets ! have been converted to byte addresses. Therefore this check has been removed, ! and the limit is now 2 Gbyte of memory (around 530 000 000 REALs). Note: On GNU/Linux systems one has to compile programs that occupy more than 1 Gbyte statically, i.e.@: @code{g77 -static ...}. diff -Nrc3pad gcc-3.1/gcc/f/version.c gcc-3.1.1/gcc/f/version.c *** gcc-3.1/gcc/f/version.c Tue May 14 21:41:20 2002 --- gcc-3.1.1/gcc/f/version.c Thu Jul 25 23:40:35 2002 *************** *** 1,4 **** #include "ansidecl.h" #include "f/version.h" ! const char *const ffe_version_string = "3.1 20020514 (release)"; --- 1,4 ---- #include "ansidecl.h" #include "f/version.h" ! const char *const ffe_version_string = "3.1.1 20020725 (release)"; diff -Nrc3pad gcc-3.1/gcc/final.c gcc-3.1.1/gcc/final.c *** gcc-3.1/gcc/final.c Tue Apr 23 08:11:19 2002 --- gcc-3.1.1/gcc/final.c Fri May 24 21:26:50 2002 *************** get_mem_expr_from_op (op, paddressp) *** 3021,3026 **** --- 3021,3029 ---- *paddressp = 0; + if (op == NULL) + return 0; + if (GET_CODE (op) == REG && ORIGINAL_REGNO (op) >= FIRST_PSEUDO_REGISTER) return REGNO_DECL (ORIGINAL_REGNO (op)); else if (GET_CODE (op) != MEM) diff -Nrc3pad gcc-3.1/gcc/fixinc/README gcc-3.1.1/gcc/fixinc/README *** gcc-3.1/gcc/fixinc/README Sat May 26 17:40:44 2001 --- gcc-3.1.1/gcc/fixinc/README Fri May 24 01:51:51 2002 *************** *** 2,23 **** FIXINCLUDES OPERATION ===================== ! See also: http://autogen.SourceForge.net/fixincludes The set of fixes required was distilled down to just the data required to specify what needed to happen for each fix. Those data were edited ! into a file named gcc/fixinc/inclhack.def. A program called ! AutoGen (http://autogen.SourceForge.net, ver 4.x) uses these definitions ! to instantiate several different templates (gcc/fixinc/*.tpl) that then ! produces a fixincludes replacement shell script (inclhack.sh), a ! replacement binary program (fixincl.x). ! ! If there is no special purpose script, then mkfixinc.sh will try to ! compile, link and execute the fixincl program. Otherwise, it will ! install and use the current fixinc.* for that system instead. ! Also, on certain platforms (viz. those that do not have functional ! bidirectional pipes), the fixincl program is split into two. ! This should only concern you on DOS and BeOS. Regards, Bruce --- 2,18 ---- FIXINCLUDES OPERATION ===================== ! See also: http://autogen.SourceForge.net/fixinc.html The set of fixes required was distilled down to just the data required to specify what needed to happen for each fix. Those data were edited ! into a file named gcc/fixinc/inclhack.def. A program called AutoGen ! (http://autogen.SourceForge.net) uses these definitions to instantiate ! several different templates that then produces code for a fixinclude ! program (fixincl.x) and a shell script to test its functioning. On ! certain platforms (viz. those that do not have functional bidirectional ! pipes), the fixincl program is split into two. This should only concern ! you on DOS and BeOS. Regards, Bruce *************** definitions file, ``inclhack.def''. Ple *** 34,40 **** information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and, please, to me: bkorb@gnu.org. ! Here are the rules for making fixes in the inclhack.def file: 0. If you are not the fixincludes maintainer, please send that person email about any changes you may want to make. Thanks! --- 29,66 ---- information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and, please, to me: bkorb@gnu.org. ! To make your fix, you will need to do several things: ! ! 1. Obtain access to the AutoGen program on some platform. It does ! not have to be your build platform, but it is more convenient. ! ! 2. Edit "inclhack.def" to reflect the changes you need to make. ! See below for information on how to make those changes. ! ! 3. Run the "genfixes" shell script to produce a new copy of ! the "fixincl.x" file. ! ! 4. Rebuild the compiler and check the header causing the issue. ! Make sure it is now properly handled. Add tests to the ! "test_text" entry(ies) that validate your fix. This will ! help ensure that future fixes won't negate your work. ! ! 5. Go into the fixinc build directory and type, "make check". ! You are guaranteed to have issues printed out as a result. ! Look at the diffs produced. Make sure you have not clobbered ! the proper functioning of a different fix. Make sure your ! fix is properly tested and it does what it is supposed to do. ! ! 6. Now that you have the right things happening, syncronize the ! $(srcdir)/tests/base directory with the $(builddir)/tests/res ! directory. The output of "make check" will be some diffs that ! should give you some hints about what to do. ! ! 7. Rerun "make check" and verify that there are no issues left. ! ! ! MAKING CHANGES TO INCLHACK.DEF ! ============================== 0. If you are not the fixincludes maintainer, please send that person email about any changes you may want to make. Thanks! diff -Nrc3pad gcc-3.1/gcc/fold-const.c gcc-3.1.1/gcc/fold-const.c *** gcc-3.1/gcc/fold-const.c Tue Apr 23 23:20:00 2002 --- gcc-3.1.1/gcc/fold-const.c Sat Jun 15 00:42:25 2002 *************** extract_muldiv (t, c, code, wide_type) *** 4515,4531 **** break; case CONVERT_EXPR: case NON_LVALUE_EXPR: case NOP_EXPR: ! /* If op0 is an expression, and is unsigned, and the type is ! smaller than ctype, then we cannot widen the expression. */ if ((TREE_CODE_CLASS (TREE_CODE (op0)) == '<' || TREE_CODE_CLASS (TREE_CODE (op0)) == '1' || TREE_CODE_CLASS (TREE_CODE (op0)) == '2' || TREE_CODE_CLASS (TREE_CODE (op0)) == 'e') ! && TREE_UNSIGNED (TREE_TYPE (op0)) ! && ! (TREE_CODE (TREE_TYPE (op0)) == INTEGER_TYPE ! && TYPE_IS_SIZETYPE (TREE_TYPE (op0))) ! && (GET_MODE_SIZE (TYPE_MODE (ctype)) ! > GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0))))) break; /* Pass the constant down and see if we can make a simplification. If --- 4515,4536 ---- break; case CONVERT_EXPR: case NON_LVALUE_EXPR: case NOP_EXPR: ! /* If op0 is an expression... */ if ((TREE_CODE_CLASS (TREE_CODE (op0)) == '<' || TREE_CODE_CLASS (TREE_CODE (op0)) == '1' || TREE_CODE_CLASS (TREE_CODE (op0)) == '2' || TREE_CODE_CLASS (TREE_CODE (op0)) == 'e') ! /* ...and is unsigned, and its type is smaller than ctype, ! then we cannot pass through this widening. */ ! && ((TREE_UNSIGNED (TREE_TYPE (op0)) ! && ! (TREE_CODE (TREE_TYPE (op0)) == INTEGER_TYPE ! && TYPE_IS_SIZETYPE (TREE_TYPE (op0))) ! && (GET_MODE_SIZE (TYPE_MODE (ctype)) ! > GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0))))) ! /* ...and its type is larger than ctype, ! then we cannot pass through this truncation. */ ! || (GET_MODE_SIZE (TYPE_MODE (ctype)) ! < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0)))))) break; /* Pass the constant down and see if we can make a simplification. If *************** fold (expr) *** 6490,6496 **** } } ! /* Change X >= CST to X > (CST - 1) if CST is positive. */ if (TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (arg0) != INTEGER_CST && tree_int_cst_sgn (arg1) > 0) --- 6495,6619 ---- } } ! /* Comparisons with the highest or lowest possible integer of ! the specified size will have known values and an unsigned ! <= 0x7fffffff can be simplified. */ ! { ! int width = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (arg1))); ! ! if (TREE_CODE (arg1) == INTEGER_CST ! && ! TREE_CONSTANT_OVERFLOW (arg1) ! && width <= HOST_BITS_PER_WIDE_INT ! && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) ! || POINTER_TYPE_P (TREE_TYPE (arg1)))) ! { ! if (TREE_INT_CST_HIGH (arg1) == 0 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) ! && ! TREE_UNSIGNED (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case GT_EXPR: ! return omit_one_operand (type, ! convert (type, integer_zero_node), ! arg0); ! case GE_EXPR: ! TREE_SET_CODE (t, EQ_EXPR); ! break; ! ! case LE_EXPR: ! return omit_one_operand (type, ! convert (type, integer_one_node), ! arg0); ! case LT_EXPR: ! TREE_SET_CODE (t, NE_EXPR); ! break; ! ! default: ! break; ! } ! ! else if (TREE_INT_CST_HIGH (arg1) == -1 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1))) ! && ! TREE_UNSIGNED (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case LT_EXPR: ! return omit_one_operand (type, ! convert (type, integer_zero_node), ! arg0); ! case LE_EXPR: ! TREE_SET_CODE (t, EQ_EXPR); ! break; ! ! case GE_EXPR: ! return omit_one_operand (type, ! convert (type, integer_one_node), ! arg0); ! case GT_EXPR: ! TREE_SET_CODE (t, NE_EXPR); ! break; ! ! default: ! break; ! } ! ! else if (TREE_INT_CST_HIGH (arg1) == 0 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) ! && TREE_UNSIGNED (TREE_TYPE (arg1)) ! /* signed_type does not work on pointer types. */ ! && INTEGRAL_TYPE_P (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case LE_EXPR: ! return fold (build (GE_EXPR, type, ! convert (signed_type (TREE_TYPE (arg0)), ! arg0), ! convert (signed_type (TREE_TYPE (arg1)), ! integer_zero_node))); ! case GT_EXPR: ! return fold (build (LT_EXPR, type, ! convert (signed_type (TREE_TYPE (arg0)), ! arg0), ! convert (signed_type (TREE_TYPE (arg1)), ! integer_zero_node))); ! ! default: ! break; ! } ! ! else if (TREE_INT_CST_HIGH (arg1) == 0 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 2 << (width - 1)) - 1) ! && TREE_UNSIGNED (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case GT_EXPR: ! return omit_one_operand (type, ! convert (type, integer_zero_node), ! arg0); ! case GE_EXPR: ! TREE_SET_CODE (t, EQ_EXPR); ! break; ! ! case LE_EXPR: ! return omit_one_operand (type, ! convert (type, integer_one_node), ! arg0); ! case LT_EXPR: ! TREE_SET_CODE (t, NE_EXPR); ! break; ! ! default: ! break; ! } ! } ! } ! ! /* Change X >= CST to X > (CST - 1) and X < CST to X <= (CST - 1) ! if CST is positive. */ if (TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (arg0) != INTEGER_CST && tree_int_cst_sgn (arg1) > 0) *************** fold (expr) *** 6514,6519 **** --- 6637,6671 ---- } } + /* An unsigned comparison against 0 can be simplified. */ + if (integer_zerop (arg1) + && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) + || POINTER_TYPE_P (TREE_TYPE (arg1))) + && TREE_UNSIGNED (TREE_TYPE (arg1))) + { + switch (TREE_CODE (t)) + { + case GT_EXPR: + code = NE_EXPR; + TREE_SET_CODE (t, NE_EXPR); + break; + case LE_EXPR: + code = EQ_EXPR; + TREE_SET_CODE (t, EQ_EXPR); + break; + case GE_EXPR: + return omit_one_operand (type, + convert (type, integer_one_node), + arg0); + case LT_EXPR: + return omit_one_operand (type, + convert (type, integer_zero_node), + arg0); + default: + break; + } + } + /* If this is an EQ or NE comparison of a constant with a PLUS_EXPR or a MINUS_EXPR of a constant, we can convert it into a comparison with a revised constant as long as no overflow occurs. */ *************** fold (expr) *** 6702,6853 **** } } - /* An unsigned comparison against 0 can be simplified. */ - if (integer_zerop (arg1) - && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) - || POINTER_TYPE_P (TREE_TYPE (arg1))) - && TREE_UNSIGNED (TREE_TYPE (arg1))) - { - switch (TREE_CODE (t)) - { - case GT_EXPR: - code = NE_EXPR; - TREE_SET_CODE (t, NE_EXPR); - break; - case LE_EXPR: - code = EQ_EXPR; - TREE_SET_CODE (t, EQ_EXPR); - break; - case GE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case LT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - default: - break; - } - } - - /* Comparisons with the highest or lowest possible integer of - the specified size will have known values and an unsigned - <= 0x7fffffff can be simplified. */ - { - int width = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (arg1))); - - if (TREE_CODE (arg1) == INTEGER_CST - && ! TREE_CONSTANT_OVERFLOW (arg1) - && width <= HOST_BITS_PER_WIDE_INT - && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) - || POINTER_TYPE_P (TREE_TYPE (arg1)))) - { - if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) - && ! TREE_UNSIGNED (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case GT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - case GE_EXPR: - TREE_SET_CODE (t, EQ_EXPR); - break; - - case LE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case LT_EXPR: - TREE_SET_CODE (t, NE_EXPR); - break; - - default: - break; - } - - else if (TREE_INT_CST_HIGH (arg1) == -1 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1))) - && ! TREE_UNSIGNED (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case LT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - case LE_EXPR: - TREE_SET_CODE (t, EQ_EXPR); - break; - - case GE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case GT_EXPR: - TREE_SET_CODE (t, NE_EXPR); - break; - - default: - break; - } - - else if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) - && TREE_UNSIGNED (TREE_TYPE (arg1)) - /* signed_type does not work on pointer types. */ - && INTEGRAL_TYPE_P (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case LE_EXPR: - return fold (build (GE_EXPR, type, - convert (signed_type (TREE_TYPE (arg0)), - arg0), - convert (signed_type (TREE_TYPE (arg1)), - integer_zero_node))); - case GT_EXPR: - return fold (build (LT_EXPR, type, - convert (signed_type (TREE_TYPE (arg0)), - arg0), - convert (signed_type (TREE_TYPE (arg1)), - integer_zero_node))); - - default: - break; - } - - else if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 2 << (width - 1)) - 1) - && TREE_UNSIGNED (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case GT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - case GE_EXPR: - TREE_SET_CODE (t, EQ_EXPR); - break; - - case LE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case LT_EXPR: - TREE_SET_CODE (t, NE_EXPR); - break; - - default: - break; - } - } - } - /* If we are comparing an expression that just has comparisons of two integer values, arithmetic expressions of those comparisons, and constants, we can simplify it. There are only three cases --- 6854,6859 ---- diff -Nrc3pad gcc-3.1/gcc/function.c gcc-3.1.1/gcc/function.c *** gcc-3.1/gcc/function.c Tue Apr 23 08:11:19 2002 --- gcc-3.1.1/gcc/function.c Sat Jun 22 14:29:26 2002 *************** assign_stack_temp_for_type (mode, size, *** 666,671 **** --- 666,672 ---- { unsigned int align; struct temp_slot *p, *best_p = 0; + rtx slot; /* If SIZE is -1 it means that somebody tried to allocate a temporary of a variable size. */ *************** assign_stack_temp_for_type (mode, size, *** 811,839 **** p->keep = keep; } ! /* We may be reusing an old slot, so clear any MEM flags that may have been ! set from before. */ ! RTX_UNCHANGING_P (p->slot) = 0; ! MEM_IN_STRUCT_P (p->slot) = 0; ! MEM_SCALAR_P (p->slot) = 0; ! MEM_VOLATILE_P (p->slot) = 0; ! set_mem_alias_set (p->slot, 0); /* If we know the alias set for the memory that will be used, use it. If there's no TYPE, then we don't know anything about the alias set for the memory. */ ! set_mem_alias_set (p->slot, type ? get_alias_set (type) : 0); ! set_mem_align (p->slot, align); /* If a type is specified, set the relevant flags. */ if (type != 0) { ! RTX_UNCHANGING_P (p->slot) = TYPE_READONLY (type); ! MEM_VOLATILE_P (p->slot) = TYPE_VOLATILE (type); ! MEM_SET_IN_STRUCT_P (p->slot, AGGREGATE_TYPE_P (type)); } ! return p->slot; } /* Allocate a temporary stack slot and record it for possible later --- 812,837 ---- p->keep = keep; } ! ! /* Create a new MEM rtx to avoid clobbering MEM flags of old slots. */ ! slot = gen_rtx_MEM (mode, XEXP (p->slot, 0)); ! stack_slot_list = gen_rtx_EXPR_LIST (VOIDmode, slot, stack_slot_list); /* If we know the alias set for the memory that will be used, use it. If there's no TYPE, then we don't know anything about the alias set for the memory. */ ! set_mem_alias_set (slot, type ? get_alias_set (type) : 0); ! set_mem_align (slot, align); /* If a type is specified, set the relevant flags. */ if (type != 0) { ! RTX_UNCHANGING_P (slot) = TYPE_READONLY (type); ! MEM_VOLATILE_P (slot) = TYPE_VOLATILE (type); ! MEM_SET_IN_STRUCT_P (slot, AGGREGATE_TYPE_P (type)); } ! return slot; } /* Allocate a temporary stack slot and record it for possible later diff -Nrc3pad gcc-3.1/gcc/hooks.c gcc-3.1.1/gcc/hooks.c *** gcc-3.1/gcc/hooks.c Sat Feb 9 02:18:11 2002 --- gcc-3.1.1/gcc/hooks.c Thu May 23 17:57:27 2002 *************** Foundation, 59 Temple Place - Suite 330, *** 26,31 **** --- 26,37 ---- #include "system.h" #include "hooks.h" + /* Generic hook that does absolutely zappo. */ + void + hook_void_void () + { + } + /* Generic hook that takes no arguments and returns false. */ bool hook_void_bool_false () diff -Nrc3pad gcc-3.1/gcc/hooks.h gcc-3.1.1/gcc/hooks.h *** gcc-3.1/gcc/hooks.h Sat Feb 9 02:18:11 2002 --- gcc-3.1.1/gcc/hooks.h Thu May 23 17:57:27 2002 *************** Foundation, 59 Temple Place - Suite 330, *** 19,22 **** --- 19,28 ---- You are forbidden to forbid anyone else to use, share and improve what you give them. Help stamp out software-hoarding! */ + #ifndef GCC_HOOKS_H + #define GCC_HOOKS_H + bool hook_void_bool_false PARAMS ((void)); + void hook_void_void PARAMS ((void)); + + #endif diff -Nrc3pad gcc-3.1/gcc/ifcvt.c gcc-3.1.1/gcc/ifcvt.c *** gcc-3.1/gcc/ifcvt.c Fri May 3 20:24:01 2002 --- gcc-3.1.1/gcc/ifcvt.c Thu Jul 18 17:45:52 2002 *************** noce_try_abs (if_info) *** 1504,1548 **** return TRUE; } ! /* Look for the condition for the jump first. We'd prefer to avoid ! get_condition if we can -- it tries to look back for the contents ! of an original compare. On targets that use normal integers for ! comparisons, e.g. alpha, this is wasteful. */ static rtx noce_get_condition (jump, earliest) rtx jump; rtx *earliest; { ! rtx cond; ! rtx set; ! ! /* If the condition variable is a register and is MODE_INT, accept it. ! Otherwise, fall back on get_condition. */ if (! any_condjump_p (jump)) return NULL_RTX; set = pc_set (jump); cond = XEXP (SET_SRC (set), 0); ! if (GET_CODE (XEXP (cond, 0)) == REG ! && GET_MODE_CLASS (GET_MODE (XEXP (cond, 0))) == MODE_INT) { *earliest = jump; ! /* If this branches to JUMP_LABEL when the condition is false, ! reverse the condition. */ ! if (GET_CODE (XEXP (SET_SRC (set), 2)) == LABEL_REF ! && XEXP (XEXP (SET_SRC (set), 2), 0) == JUMP_LABEL (jump)) cond = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond)), ! GET_MODE (cond), XEXP (cond, 0), ! XEXP (cond, 1)); } - else - cond = get_condition (jump, earliest); ! return cond; } /* Return true if OP is ok for if-then-else processing. */ --- 1504,1576 ---- return TRUE; } ! /* Similar to get_condition, only the resulting condition must be ! valid at JUMP, instead of at EARLIEST. */ static rtx noce_get_condition (jump, earliest) rtx jump; rtx *earliest; { ! rtx cond, set, tmp, insn; ! bool reverse; if (! any_condjump_p (jump)) return NULL_RTX; set = pc_set (jump); + /* If this branches to JUMP_LABEL when the condition is false, + reverse the condition. */ + reverse = (GET_CODE (XEXP (SET_SRC (set), 2)) == LABEL_REF + && XEXP (XEXP (SET_SRC (set), 2), 0) == JUMP_LABEL (jump)); + + /* If the condition variable is a register and is MODE_INT, accept it. */ + cond = XEXP (SET_SRC (set), 0); ! tmp = XEXP (cond, 0); ! if (REG_P (tmp) && GET_MODE_CLASS (GET_MODE (tmp)) == MODE_INT) { *earliest = jump; ! if (reverse) cond = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond)), ! GET_MODE (cond), tmp, XEXP (cond, 1)); ! return cond; } ! /* Otherwise, fall back on canonicalize_condition to do the dirty ! work of manipulating MODE_CC values and COMPARE rtx codes. */ ! ! tmp = canonicalize_condition (jump, cond, reverse, earliest, NULL_RTX); ! if (!tmp) ! return NULL_RTX; ! ! /* We are going to insert code before JUMP, not before EARLIEST. ! We must therefore be certain that the given condition is valid ! at JUMP by virtue of not having been modified since. */ ! for (insn = *earliest; insn != jump; insn = NEXT_INSN (insn)) ! if (INSN_P (insn) && modified_in_p (tmp, insn)) ! break; ! if (insn == jump) ! return tmp; ! ! /* The condition was modified. See if we can get a partial result ! that doesn't follow all the reversals. Perhaps combine can fold ! them together later. */ ! tmp = XEXP (tmp, 0); ! if (!REG_P (tmp) || GET_MODE_CLASS (GET_MODE (tmp)) != MODE_INT) ! return NULL_RTX; ! tmp = canonicalize_condition (jump, cond, reverse, earliest, tmp); ! if (!tmp) ! return NULL_RTX; ! ! /* For sanity's sake, re-validate the new result. */ ! for (insn = *earliest; insn != jump; insn = NEXT_INSN (insn)) ! if (INSN_P (insn) && modified_in_p (tmp, insn)) ! return NULL_RTX; ! ! return tmp; } /* Return true if OP is ok for if-then-else processing. */ diff -Nrc3pad gcc-3.1/gcc/intl/ChangeLog gcc-3.1.1/gcc/intl/ChangeLog *** gcc-3.1/gcc/intl/ChangeLog Wed May 15 02:19:43 2002 --- gcc-3.1.1/gcc/intl/ChangeLog Thu Jul 25 23:35:20 2002 *************** *** 1,3 **** --- 1,11 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-25 Roman Lechtchinsky + + * gettextP.h (SWAP): Change parameter type to unsigned int. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/intl/gettextP.h gcc-3.1.1/gcc/intl/gettextP.h *** gcc-3.1/gcc/intl/gettextP.h Sun Oct 21 16:29:13 2001 --- gcc-3.1.1/gcc/intl/gettextP.h Sun May 26 19:06:44 2002 *************** *** 63,74 **** # include # define SWAP(i) bswap_32 (i) #else ! /* GCC LOCAL: Prototype first to avoid warnings. */ ! static inline nls_uint32 SWAP PARAMS ((nls_uint32)); static inline nls_uint32 ! SWAP (i) ! nls_uint32 i; { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif --- 63,76 ---- # include # define SWAP(i) bswap_32 (i) #else ! /* GCC LOCAL: Prototype first to avoid warnings; change argument to ! unsigned int to avoid K&R type promotion errors with 64-bit "int". */ ! static inline nls_uint32 SWAP PARAMS ((unsigned int)); static inline nls_uint32 ! SWAP (ii) ! unsigned int ii; { + nls_uint32 i = ii; return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif diff -Nrc3pad gcc-3.1/gcc/java/ChangeLog gcc-3.1.1/gcc/java/ChangeLog *** gcc-3.1/gcc/java/ChangeLog Wed May 15 02:23:16 2002 --- gcc-3.1.1/gcc/java/ChangeLog Thu Jul 25 23:39:32 2002 *************** *** 1,3 **** --- 1,54 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-06-25 Andreas Schwab + + * expr.c (JSR): Avoid undefined operation on PC. + + 2002-06-10 Bryce McKinlay + + Don't use RTL inlining. Fix for PR java/6820. + * lang.c (LANG_HOOKS_POST_OPTIONS): Define. + (flag_really_inline): New. + (java_decode_option): Set flag_really_inline if -finline-functions + is seen. + (java_post_options): New function. Turn off inlining unless + flag_really_inline is set. + + 2002-06-08 H.J. Lu (hjl@gnu.org) + + * jcf-path.c (jcf_path_init): Allocate 1 more byte for string. + + 2002-06-03 Mark Mitchell + + 2002-05-18 Mark Mitchell + * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition. + * jcf-io.c (dirent.h): Include it. + (fnmatch.h): Likewise. + (compare_path): New function. + (java_or_class_file): Likewise. + (memoized_dirlist_entry): New type. + (memoized_dirlist_lookup_eq): New function. + (memoized_dirlists): New variable. + (caching_stat): New function. + (memoized_class_lookup_eq): New function. + (memoized_class_lookups): Likewise. + (find_class): Use memoized_class_lookups and caching_stat. + * jcf.h (JCF_USE_SCANDIR): Define. + * parse.y (java_expand_classes): Write the class files in reverse + order. + + 2002-05-13 Mark Mitchell + * jcf-write.c (write_classfile): Unlink the temporary file if it + cannot be renamed. Use concat to build up the name of the + temporary file. + + 2002-05-13 Mark Mitchell + * jcf-write.c (write_classfile): Unlink the temporary file if it + cannot be renamed. Use concat to build up the name of the + temporary file. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/java/expr.c gcc-3.1.1/gcc/java/expr.c *** gcc-3.1/gcc/java/expr.c Wed Apr 24 22:16:08 2002 --- gcc-3.1.1/gcc/java/expr.c Tue Jun 25 13:26:04 2002 *************** process_jvm_instruction (PC, byte_ops, l *** 2981,2987 **** } #define JSR(OPERAND_TYPE, OPERAND_VALUE) \ ! build_java_jsr (oldpc+OPERAND_VALUE, PC); /* Push a constant onto the stack. */ #define PUSHC(OPERAND_TYPE, OPERAND_VALUE) \ --- 2981,2991 ---- } #define JSR(OPERAND_TYPE, OPERAND_VALUE) \ ! { \ ! /* OPERAND_VALUE may have side-effects on PC */ \ ! int opvalue = OPERAND_VALUE; \ ! build_java_jsr (oldpc + opvalue, PC); \ ! } /* Push a constant onto the stack. */ #define PUSHC(OPERAND_TYPE, OPERAND_VALUE) \ diff -Nrc3pad gcc-3.1/gcc/java/gcj.1 gcc-3.1.1/gcc/java/gcj.1 *** gcc-3.1/gcc/java/gcj.1 Wed May 15 02:46:01 2002 --- gcc-3.1.1/gcc/java/gcj.1 Thu Jul 25 23:56:28 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:01 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:27 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gcj \- Ahead-of-time compiler for the Java language --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gcj \- Ahead-of-time compiler for the Java language diff -Nrc3pad gcc-3.1/gcc/java/gcjh.1 gcc-3.1.1/gcc/java/gcjh.1 *** gcc-3.1/gcc/java/gcjh.1 Wed May 15 02:46:01 2002 --- gcc-3.1.1/gcc/java/gcjh.1 Thu Jul 25 23:56:28 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:01 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:28 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCJH 1" ! .TH GCJH 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gcjh \- generate header files from Java class files --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCJH 1" ! .TH GCJH 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gcjh \- generate header files from Java class files diff -Nrc3pad gcc-3.1/gcc/java/gij.1 gcc-3.1.1/gcc/java/gij.1 *** gcc-3.1/gcc/java/gij.1 Wed May 15 02:46:02 2002 --- gcc-3.1.1/gcc/java/gij.1 Thu Jul 25 23:56:29 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:02 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:29 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gij \- \s-1GNU\s0 interpreter for Java bytecode --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gij \- \s-1GNU\s0 interpreter for Java bytecode diff -Nrc3pad gcc-3.1/gcc/java/java-tree.h gcc-3.1.1/gcc/java/java-tree.h *** gcc-3.1/gcc/java/java-tree.h Wed Apr 24 22:16:08 2002 --- gcc-3.1.1/gcc/java/java-tree.h Tue Jun 4 16:45:52 2002 *************** extern tree *type_map; *** 1424,1434 **** layout of a class. */ #define CLASS_BEING_LAIDOUT(TYPE) TYPE_LANG_FLAG_6 (TYPE) - /* True if class TYPE is currently being laid out. Helps in detection - of inheritance cycle occurring as a side effect of performing the - layout of a class. */ - #define CLASS_BEING_LAIDOUT(TYPE) TYPE_LANG_FLAG_6 (TYPE) - /* True if class TYPE has a field initializer finit$ function */ #define CLASS_HAS_FINIT_P(TYPE) TYPE_FINIT_STMT_LIST (TYPE) --- 1424,1429 ---- diff -Nrc3pad gcc-3.1/gcc/java/jcf-dump.1 gcc-3.1.1/gcc/java/jcf-dump.1 *** gcc-3.1/gcc/java/jcf-dump.1 Wed May 15 02:46:02 2002 --- gcc-3.1.1/gcc/java/jcf-dump.1 Thu Jul 25 23:56:28 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:02 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:28 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" jcf-dump \- print information about Java class files --- 138,144 ---- .\" ====================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" jcf-dump \- print information about Java class files diff -Nrc3pad gcc-3.1/gcc/java/jcf-io.c gcc-3.1.1/gcc/java/jcf-io.c *** gcc-3.1/gcc/java/jcf-io.c Mon Dec 3 19:13:40 2001 --- gcc-3.1.1/gcc/java/jcf-io.c Tue Jun 4 16:45:54 2002 *************** *** 1,5 **** /* Utility routines for finding and reading Java(TM) .class files. ! Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by --- 1,5 ---- /* Utility routines for finding and reading Java(TM) .class files. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by *************** The Free Software Foundation is independ *** 29,34 **** --- 29,39 ---- #include "tree.h" #include "toplev.h" #include "java-tree.h" + #include "hashtab.h" + #if JCF_USE_SCANDIR + #include + #include + #endif #include "zlib.h" *************** DEFUN(find_classfile, (filename, jcf, de *** 304,313 **** #endif } /* Returns a freshly malloc'd string with the fully qualified pathname ! of the .class file for the class CLASSNAME. Returns NULL on ! failure. If JCF != NULL, it is suitably initialized. ! SOURCE_OK is true if we should also look for .java file. */ const char * DEFUN(find_class, (classname, classname_length, jcf, source_ok), --- 309,460 ---- #endif } + #if JCF_USE_SCANDIR + + /* A comparison function (as for qsort) that compares KEY (a char * + giving the basename of a file) with the name stored in ENTRY (a + dirent **). */ + + static int + DEFUN(compare_path, (key, entry), + const void *key AND const void *entry) + { + return strcmp ((const char *) key, + (*((const struct dirent **) entry))->d_name); + } + + /* Returns nonzero if ENTRY names a .java or .class file. */ + + static int + DEFUN(java_or_class_file, (entry), + const struct dirent *entry) + { + const char *base = basename (entry->d_name); + return (fnmatch ("*.java", base, 0) == 0 || + fnmatch ("*.class", base, 0) == 0); + } + + /* Information about the files present in a particular directory. */ + typedef struct memoized_dirlist_entry + { + /* The name of the directory. */ + const char *dir; + /* The number of .java and .class files present, or -1 if we could + not, for some reason, obtain the list. */ + int num_files; + /* The .java and .class files in the directory, in alphabetical + order. */ + struct dirent **files; + } memoized_dirlist_entry; + + /* Returns true if ENTRY (a memoized_dirlist_entry *) correponds to + the directory given by KEY (a char *) giving the directory + name. */ + + static int + DEFUN(memoized_dirlist_lookup_eq, (entry, key), + const void *entry AND const void *key) + { + return strcmp ((const char *) key, + ((const memoized_dirlist_entry *) entry)->dir) == 0; + } + + /* A hash table mapping directory names to the lists of .java and + .class files in that directory. */ + + static htab_t memoized_dirlists; + + #endif + + /* Like stat, but avoids actually making the stat system call if we + know that it cannot succeed. FILENAME and BUF are as for stat. */ + + static int + DEFUN(caching_stat, (filename, buf), + char *filename AND struct stat *buf) + { + #if JCF_USE_SCANDIR + char *sep; + char *base; + memoized_dirlist_entry *dent; + void **slot; + + /* If the hashtable has not already been created, create it now. */ + if (!memoized_dirlists) + memoized_dirlists = htab_create (37, + htab_hash_string, + memoized_dirlist_lookup_eq, + NULL); + + /* Get the name of the directory. */ + sep = strrchr (filename, DIR_SEPARATOR); + if (sep) + { + *sep = '\0'; + base = sep + 1; + } + else + base = filename; + + /* Obtain the entry for this directory form the hash table. */ + slot = htab_find_slot (memoized_dirlists, filename, INSERT); + if (!*slot) + { + /* We have not already scanned this directory; scan it now. */ + dent = ((memoized_dirlist_entry *) + ALLOC (sizeof (memoized_dirlist_entry))); + dent->dir = xstrdup (filename); + /* Unfortunately, scandir is not fully standardized. In + particular, the type of the function pointer passed as the + third argument sometimes takes a "const struct dirent *" + parameter, and sometimes just a "struct dirent *". We rely + on the ability to interchange these two types of function + pointers. */ + dent->num_files = scandir (filename, &dent->files, + java_or_class_file, + alphasort); + *slot = dent; + } + else + dent = *((memoized_dirlist_entry **) slot); + + /* Put the spearator back. */ + if (sep) + *sep = DIR_SEPARATOR; + + /* If the file is not in the list, there is no need to stat it; it + does not exist. */ + if (dent->num_files != -1 + && !bsearch (base, dent->files, dent->num_files, + sizeof (struct dirent *), compare_path)) + return -1; + #endif + + return stat (filename, buf); + } + + /* Returns 1 if the CLASSNAME (really a char *) matches the name + stored in TABLE_ENTRY (also a char *). */ + + static int + DEFUN(memoized_class_lookup_eq, (table_entry, classname), + const void *table_entry AND const void *classname) + { + return strcmp ((const char *)classname, (const char *)table_entry) == 0; + } + + /* A hash table keeping track of class names that were not found + during class lookup. (There is no need to cache the values + associated with names that were found; they are saved in + IDENTIFIER_CLASS_VALUE.) */ + static htab_t memoized_class_lookups; + /* Returns a freshly malloc'd string with the fully qualified pathname ! of the .class file for the class CLASSNAME. CLASSNAME must be ! allocated in permanent storage; this function may retain a pointer ! to it. Returns NULL on failure. If JCF != NULL, it is suitably ! initialized. SOURCE_OK is true if we should also look for .java ! file. */ const char * DEFUN(find_class, (classname, classname_length, jcf, source_ok), *************** DEFUN(find_class, (classname, classname_ *** 324,334 **** char *dep_file; void *entry; char *java_buffer; /* Allocate and zero out the buffer, since we don't explicitly put a null pointer when we're copying it below. */ ! int buflen = jcf_path_max_len () + classname_length + 10; ! char *buffer = (char *) ALLOC (buflen); memset (buffer, 0, buflen); java_buffer = (char *) alloca (buflen); --- 471,497 ---- char *dep_file; void *entry; char *java_buffer; + int buflen; + char *buffer; + hashval_t hash; + + /* Create the hash table, if it does not already exist. */ + if (!memoized_class_lookups) + memoized_class_lookups = htab_create (37, + htab_hash_string, + memoized_class_lookup_eq, + NULL); + + /* Loop for this class in the hashtable. If it is present, we've + already looked for this class and failed to find it. */ + hash = htab_hash_string (classname); + if (htab_find_with_hash (memoized_class_lookups, classname, hash)) + return NULL; /* Allocate and zero out the buffer, since we don't explicitly put a null pointer when we're copying it below. */ ! buflen = jcf_path_max_len () + classname_length + 10; ! buffer = (char *) ALLOC (buflen); memset (buffer, 0, buflen); java_buffer = (char *) alloca (buflen); *************** DEFUN(find_class, (classname, classname_ *** 381,387 **** else continue; } ! class = stat (buffer, &class_buf); } if (source_ok) --- 544,550 ---- else continue; } ! class = caching_stat(buffer, &class_buf); } if (source_ok) *************** DEFUN(find_class, (classname, classname_ *** 393,399 **** for (m = 0; m < classname_length; ++m) java_buffer[m + l] = (classname[m] == '.' ? '/' : classname[m]); strcpy (java_buffer + m + l, ".java"); ! java = stat (java_buffer, &java_buf); if (java == 0) break; } --- 556,562 ---- for (m = 0; m < classname_length; ++m) java_buffer[m + l] = (classname[m] == '.' ? '/' : classname[m]); strcpy (java_buffer + m + l, ".java"); ! java = caching_stat (java_buffer, &java_buf); if (java == 0) break; } *************** DEFUN(find_class, (classname, classname_ *** 464,469 **** --- 627,638 ---- #endif free (buffer); + + /* Remember that this class could not be found so that we do not + have to look again. */ + *htab_find_slot_with_hash (memoized_class_lookups, classname, hash, INSERT) + = (void *) classname; + return NULL; found: #if JCF_USE_STDIO diff -Nrc3pad gcc-3.1/gcc/java/jcf-path.c gcc-3.1.1/gcc/java/jcf-path.c *** gcc-3.1/gcc/java/jcf-path.c Wed Apr 10 15:23:05 2002 --- gcc-3.1.1/gcc/java/jcf-path.c Sat Jun 8 16:33:46 2002 *************** jcf_path_init () *** 305,311 **** /* Desperation: use the installed one. */ char *extdirs; add_entry (&sys_dirs, LIBGCJ_ZIP_FILE, 1); ! extdirs = (char *) alloca (strlen (LIBGCJ_ZIP_FILE)); strcpy (extdirs, LIBGCJ_ZIP_FILE); strcpy (&extdirs[strlen (LIBGCJ_ZIP_FILE) - strlen ("libgcj-" DEFAULT_TARGET_VERSION ".jar")], --- 305,311 ---- /* Desperation: use the installed one. */ char *extdirs; add_entry (&sys_dirs, LIBGCJ_ZIP_FILE, 1); ! extdirs = (char *) alloca (strlen (LIBGCJ_ZIP_FILE) + 1); strcpy (extdirs, LIBGCJ_ZIP_FILE); strcpy (&extdirs[strlen (LIBGCJ_ZIP_FILE) - strlen ("libgcj-" DEFAULT_TARGET_VERSION ".jar")], diff -Nrc3pad gcc-3.1/gcc/java/jcf-write.c gcc-3.1.1/gcc/java/jcf-write.c *** gcc-3.1/gcc/java/jcf-write.c Mon Apr 22 12:53:21 2002 --- gcc-3.1.1/gcc/java/jcf-write.c Tue Jun 4 16:45:54 2002 *************** write_classfile (clas) *** 3374,3389 **** if (class_file_name != NULL) { ! FILE *stream = fopen (class_file_name, "wb"); if (stream == NULL) ! fatal_io_error ("can't open %s for writing", class_file_name); jcf_dependency_add_target (class_file_name); init_jcf_state (state, work); chunks = generate_classfile (clas, state); write_chunks (stream, chunks); if (fclose (stream)) ! fatal_io_error ("error closing %s", class_file_name); free (class_file_name); } release_jcf_state (state); --- 3374,3402 ---- if (class_file_name != NULL) { ! FILE *stream; ! char *temporary_file_name; ! ! /* The .class file is initially written to a ".tmp" file so that ! if multiple instances of the compiler are running at once ! they do not see partially formed class files. */ ! temporary_file_name = concat (class_file_name, ".tmp", NULL); ! stream = fopen (temporary_file_name, "wb"); if (stream == NULL) ! fatal_io_error ("can't open %s for writing", temporary_file_name); jcf_dependency_add_target (class_file_name); init_jcf_state (state, work); chunks = generate_classfile (clas, state); write_chunks (stream, chunks); if (fclose (stream)) ! fatal_io_error ("error closing %s", temporary_file_name); ! if (rename (temporary_file_name, class_file_name) == -1) ! { ! remove (temporary_file_name); ! fatal_io_error ("can't create %s", class_file_name); ! } ! free (temporary_file_name); free (class_file_name); } release_jcf_state (state); diff -Nrc3pad gcc-3.1/gcc/java/jcf.h gcc-3.1.1/gcc/java/jcf.h *** gcc-3.1/gcc/java/jcf.h Wed Apr 10 13:09:01 2002 --- gcc-3.1.1/gcc/java/jcf.h Tue Jun 4 16:45:55 2002 *************** The Free Software Foundation is independ *** 63,68 **** --- 63,76 ---- #define JCF_word JCF_u4 #endif + /* If we have both "scandir" and "alphasort", we can cache directory + listings to reduce the time taken to search the classpath. */ + #if defined(HAVE_SCANDIR) && defined(HAVE_ALPHASORT) + #define JCF_USE_SCANDIR 1 + #else + #define JCF_USE_SCANDIR 0 + #endif + struct JCF; typedef int (*jcf_filbuf_t) PARAMS ((struct JCF*, int needed)); diff -Nrc3pad gcc-3.1/gcc/java/jv-convert.1 gcc-3.1.1/gcc/java/jv-convert.1 *** gcc-3.1/gcc/java/jv-convert.1 Wed May 15 02:46:02 2002 --- gcc-3.1.1/gcc/java/jv-convert.1 Thu Jul 25 23:56:29 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:02 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:29 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" jv-convert \- Convert file from one encoding to another --- 138,144 ---- .\" ====================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" jv-convert \- Convert file from one encoding to another diff -Nrc3pad gcc-3.1/gcc/java/jv-scan.1 gcc-3.1.1/gcc/java/jv-scan.1 *** gcc-3.1/gcc/java/jv-scan.1 Wed May 15 02:46:02 2002 --- gcc-3.1.1/gcc/java/jv-scan.1 Thu Jul 25 23:56:28 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:02 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:28 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "JV-SCAN 1" ! .TH JV-SCAN 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" jv-scan \- print information about Java source file --- 138,144 ---- .\" ====================================================================== .\" .IX Title "JV-SCAN 1" ! .TH JV-SCAN 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" jv-scan \- print information about Java source file diff -Nrc3pad gcc-3.1/gcc/java/lang.c gcc-3.1.1/gcc/java/lang.c *** gcc-3.1/gcc/java/lang.c Wed Apr 10 13:09:03 2002 --- gcc-3.1.1/gcc/java/lang.c Tue Jun 11 06:20:12 2002 *************** struct string_option *** 51,56 **** --- 51,58 ---- static const char *java_init PARAMS ((const char *)); static void java_finish PARAMS ((void)); static void java_init_options PARAMS ((void)); + static void java_post_options PARAMS ((void)); + static int java_decode_option PARAMS ((int, char **)); static void put_decl_string PARAMS ((const char *, int)); static void put_decl_node PARAMS ((tree)); *************** int flag_store_check = 1; *** 163,168 **** --- 165,174 ---- /* When non zero, print extra version information. */ static int version_flag = 0; + /* Set non-zero if the user specified -finline-functions on the command + line. */ + int flag_really_inline = 0; + /* Table of language-dependent -f options. STRING is the option name. VARIABLE is the address of the variable. ON_VALUE is the value to store in VARIABLE *************** static int dependency_tracking = 0; *** 216,221 **** --- 222,229 ---- #define LANG_HOOKS_INIT_OPTIONS java_init_options #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION java_decode_option + #undef LANG_HOOKS_POST_OPTIONS + #define LANG_HOOKS_POST_OPTIONS java_post_options #undef LANG_HOOKS_SET_YYDEBUG #define LANG_HOOKS_SET_YYDEBUG java_set_yydebug *************** java_decode_option (argc, argv) *** 353,358 **** --- 361,374 ---- return 1; } #undef ARG + #define ARG "-finline-functions" + if (strncmp (p, ARG, sizeof (ARG) - 1) == 0) + { + flag_inline_functions = 1; + flag_really_inline = 1; + return 1; + } + #undef ARG if (p[0] == '-' && p[1] == 'f') { *************** java_init_options () *** 762,764 **** --- 778,792 ---- flag_exceptions = 1; flag_non_call_exceptions = 1; } + + /* Post-switch processing. */ + static void + java_post_options () + { + /* Turn off RTL inliner unless -finline-functions was really specified. */ + if (flag_really_inline == 0) + { + flag_no_inline = 1; + flag_inline_functions = 0; + } + } diff -Nrc3pad gcc-3.1/gcc/java/parse-scan.c gcc-3.1.1/gcc/java/parse-scan.c *** gcc-3.1/gcc/java/parse-scan.c Wed May 15 03:00:47 2002 --- gcc-3.1.1/gcc/java/parse-scan.c Fri Jul 26 00:14:29 2002 *************** *** 1,5 **** ! /* A Bison parser, made from /home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ --- 1,5 ---- ! /* A Bison parser, made from /home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ *************** *** 113,119 **** #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 37 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" #define JC1_LITE --- 113,119 ---- #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 37 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" #define JC1_LITE *************** void report PARAMS ((void)); *** 189,201 **** #include "lex.h" #include "parse.h" ! #line 113 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ } YYSTYPE; ! #line 119 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" #include "lex.c" #ifndef YYDEBUG --- 189,201 ---- #include "lex.h" #include "parse.h" ! #line 113 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ } YYSTYPE; ! #line 119 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" #include "lex.c" #ifndef YYDEBUG *************** yyreduce: *** 1939,1990 **** switch (yyn) { case 10: ! #line 211 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ; break;} case 11: ! #line 216 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ; break;} case 12: ! #line 221 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ; break;} case 18: ! #line 246 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 19: ! #line 251 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 23: ! #line 269 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ; break;} case 37: ! #line 301 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { package_name = yyvsp[-1].node; ; break;} case 45: ! #line 328 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; --- 1939,1990 ---- switch (yyn) { case 10: ! #line 211 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ; break;} case 11: ! #line 216 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ; break;} case 12: ! #line 221 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ; break;} case 18: ! #line 246 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 19: ! #line 251 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 23: ! #line 269 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ; break;} case 37: ! #line 301 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { package_name = yyvsp[-1].node; ; break;} case 45: ! #line 328 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; *************** case 45: *** 1994,2000 **** ; break;} case 46: ! #line 336 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; --- 1994,2000 ---- ; break;} case 46: ! #line 336 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; *************** case 46: *** 2004,2068 **** ; break;} case 47: ! #line 348 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ; break;} case 49: ! #line 354 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); ; break;} case 55: ! #line 368 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 56: ! #line 370 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 57: ! #line 375 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 58: ! #line 377 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 70: ! #line 403 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 71: ! #line 405 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 76: ! #line 421 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { bracket_count = 0; USE_ABSORBER; ; break;} case 77: ! #line 423 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++bracket_count; ; break;} case 81: ! #line 438 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 83: ! #line 441 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 84: ! #line 443 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ; break;} case 85: ! #line 451 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); --- 2004,2068 ---- ; break;} case 47: ! #line 348 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ; break;} case 49: ! #line 354 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); ; break;} case 55: ! #line 368 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 56: ! #line 370 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 57: ! #line 375 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 58: ! #line 377 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 70: ! #line 403 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 71: ! #line 405 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 76: ! #line 421 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { bracket_count = 0; USE_ABSORBER; ; break;} case 77: ! #line 423 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++bracket_count; ; break;} case 81: ! #line 438 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 83: ! #line 441 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 84: ! #line 443 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ; break;} case 85: ! #line 451 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); *************** case 85: *** 2070,2076 **** ; break;} case 86: ! #line 457 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node); --- 2070,2076 ---- ; break;} case 86: ! #line 457 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node); *************** case 86: *** 2078,2090 **** ; break;} case 89: ! #line 468 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ; break;} case 90: ! #line 475 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) --- 2078,2090 ---- ; break;} case 89: ! #line 468 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ; break;} case 90: ! #line 475 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) *************** case 90: *** 2101,2107 **** ; break;} case 91: ! #line 490 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { if (bracket_count) { --- 2101,2107 ---- ; break;} case 91: ! #line 490 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { if (bracket_count) { *************** case 91: *** 2117,2327 **** ; break;} case 94: ! #line 511 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 95: ! #line 513 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 99: ! #line 528 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 101: ! #line 539 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 103: ! #line 544 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 104: ! #line 551 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 105: ! #line 553 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 112: ! #line 570 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 113: ! #line 572 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 116: ! #line 584 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 118: ! #line 587 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 120: ! #line 590 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 122: ! #line 593 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 126: ! #line 604 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 127: ! #line 606 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 150: ! #line 665 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 151: ! #line 667 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 175: ! #line 707 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 186: ! #line 735 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 187: ! #line 740 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 188: ! #line 745 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 196: ! #line 765 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 201: ! #line 780 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 205: ! #line 797 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 211: ! #line 815 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 222: ! #line 840 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 225: ! #line 849 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 228: ! #line 859 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 234: ! #line 874 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 235: ! #line 878 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 246: ! #line 900 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 247: ! #line 905 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 248: ! #line 907 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 249: ! #line 909 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 250: ! #line 911 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 258: ! #line 926 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 260: ! #line 929 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 262: ! #line 935 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 276: ! #line 967 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { bracket_count = 1; ; break;} case 277: ! #line 969 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { bracket_count++; ; break;} case 280: ! #line 982 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 281: ! #line 984 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 282: ! #line 985 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 283: ! #line 986 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 284: ! #line 987 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 285: ! #line 988 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 286: ! #line 993 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 289: ! #line 1000 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 336: ! #line 1096 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 338: ! #line 1102 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 340: ! #line 1108 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 344: ! #line 1122 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} } --- 2117,2327 ---- ; break;} case 94: ! #line 511 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 95: ! #line 513 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 99: ! #line 528 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 101: ! #line 539 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 103: ! #line 544 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 104: ! #line 551 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 105: ! #line 553 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 112: ! #line 570 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 113: ! #line 572 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 116: ! #line 584 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 118: ! #line 587 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 120: ! #line 590 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 122: ! #line 593 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 126: ! #line 604 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 127: ! #line 606 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 150: ! #line 665 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 151: ! #line 667 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 175: ! #line 707 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 186: ! #line 735 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 187: ! #line 740 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 188: ! #line 745 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 196: ! #line 765 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 201: ! #line 780 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 205: ! #line 797 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 211: ! #line 815 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 222: ! #line 840 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 225: ! #line 849 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 228: ! #line 859 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 234: ! #line 874 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 235: ! #line 878 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 246: ! #line 900 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 247: ! #line 905 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 248: ! #line 907 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 249: ! #line 909 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 250: ! #line 911 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 258: ! #line 926 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 260: ! #line 929 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 262: ! #line 935 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 276: ! #line 967 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { bracket_count = 1; ; break;} case 277: ! #line 969 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { bracket_count++; ; break;} case 280: ! #line 982 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 281: ! #line 984 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 282: ! #line 985 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 283: ! #line 986 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 284: ! #line 987 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 285: ! #line 988 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 286: ! #line 993 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 289: ! #line 1000 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 336: ! #line 1096 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 338: ! #line 1102 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 340: ! #line 1108 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 344: ! #line 1122 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} } *************** yyerrhandle: *** 2546,2552 **** } return 1; } ! #line 1140 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse-scan.y" /* Create a new parser context */ --- 2546,2552 ---- } return 1; } ! #line 1140 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse-scan.y" /* Create a new parser context */ diff -Nrc3pad gcc-3.1/gcc/java/parse.c gcc-3.1.1/gcc/java/parse.c *** gcc-3.1/gcc/java/parse.c Wed May 15 02:59:19 2002 --- gcc-3.1.1/gcc/java/parse.c Fri Jul 26 00:13:01 2002 *************** *** 1,5 **** ! /* A Bison parser, made from /home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ --- 1,5 ---- ! /* A Bison parser, made from /home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ *************** *** 120,126 **** #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 48 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" #include "config.h" #include "system.h" --- 120,126 ---- #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 48 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" #include "config.h" #include "system.h" *************** static tree src_parse_roots[1]; *** 518,524 **** } while (0) ! #line 446 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" typedef union { tree node; int sub_token; --- 518,524 ---- } while (0) ! #line 446 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" typedef union { tree node; int sub_token; *************** typedef union { *** 528,534 **** } operator; int value; } YYSTYPE; ! #line 456 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" #include "lex.c" #ifndef YYDEBUG --- 528,534 ---- } operator; int value; } YYSTYPE; ! #line 456 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" #include "lex.c" #ifndef YYDEBUG *************** yyreduce: *** 2897,2903 **** switch (yyn) { case 1: ! #line 607 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ --- 2897,2903 ---- switch (yyn) { case 1: ! #line 607 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ *************** case 1: *** 2924,2934 **** ; break;} case 2: ! #line 632 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {; break;} case 19: ! #line 676 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); --- 2924,2934 ---- ; break;} case 2: ! #line 632 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {; break;} case 19: ! #line 676 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); *************** case 19: *** 2938,2944 **** ; break;} case 20: ! #line 684 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; --- 2938,2944 ---- ; break;} case 20: ! #line 684 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; *************** case 20: *** 2948,2989 **** ; break;} case 24: ! #line 705 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 26: ! #line 714 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = NULL;; break;} case 34: ! #line 726 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 35: ! #line 730 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 38: ! #line 742 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ; break;} case 39: ! #line 747 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 40: ! #line 749 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 43: ! #line 759 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; --- 2948,2989 ---- ; break;} case 24: ! #line 705 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 26: ! #line 714 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = NULL;; break;} case 34: ! #line 726 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 35: ! #line 730 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 38: ! #line 742 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ; break;} case 39: ! #line 747 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 40: ! #line 749 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 43: ! #line 759 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; *************** case 43: *** 3011,3025 **** ; break;} case 44: ! #line 785 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 45: ! #line 787 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 46: ! #line 792 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree it; --- 3011,3025 ---- ; break;} case 44: ! #line 785 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 45: ! #line 787 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 46: ! #line 792 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree it; *************** case 46: *** 3039,3074 **** ; break;} case 47: ! #line 810 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 48: ! #line 812 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 49: ! #line 817 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 50: ! #line 819 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 52: ! #line 822 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 53: ! #line 833 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 54: ! #line 837 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) --- 3039,3074 ---- ; break;} case 47: ! #line 810 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 48: ! #line 812 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 49: ! #line 817 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 50: ! #line 819 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 52: ! #line 822 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 53: ! #line 833 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 54: ! #line 837 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) *************** case 54: *** 3082,3164 **** ; break;} case 55: ! #line 853 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 57: ! #line 856 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 59: ! #line 859 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 60: ! #line 861 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 61: ! #line 863 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 62: ! #line 868 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 63: ! #line 872 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 64: ! #line 874 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 65: ! #line 876 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 66: ! #line 878 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 67: ! #line 882 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 68: ! #line 884 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 69: ! #line 886 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 70: ! #line 894 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 71: ! #line 899 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 72: ! #line 904 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 73: ! #line 909 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) --- 3082,3164 ---- ; break;} case 55: ! #line 853 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 57: ! #line 856 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 59: ! #line 859 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 60: ! #line 861 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 61: ! #line 863 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 62: ! #line 868 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 63: ! #line 872 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 64: ! #line 874 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 65: ! #line 876 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 66: ! #line 878 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 67: ! #line 882 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 68: ! #line 884 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 69: ! #line 886 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 70: ! #line 894 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 71: ! #line 899 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 72: ! #line 904 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 73: ! #line 909 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) *************** case 73: *** 3168,3174 **** ; break;} case 74: ! #line 917 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) --- 3168,3174 ---- ; break;} case 74: ! #line 917 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) *************** case 74: *** 3178,3184 **** ; break;} case 80: ! #line 936 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (yyvsp[0].node != empty_stmt_node) { --- 3178,3184 ---- ; break;} case 80: ! #line 936 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (yyvsp[0].node != empty_stmt_node) { *************** case 80: *** 3188,3206 **** ; break;} case 83: ! #line 949 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 84: ! #line 951 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 86: ! #line 958 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 87: ! #line 960 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", --- 3188,3206 ---- ; break;} case 83: ! #line 949 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 84: ! #line 951 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 86: ! #line 958 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 87: ! #line 960 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", *************** case 87: *** 3210,3228 **** ; break;} case 89: ! #line 973 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 90: ! #line 975 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 91: ! #line 980 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 92: ! #line 982 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; --- 3210,3228 ---- ; break;} case 89: ! #line 973 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 90: ! #line 975 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 91: ! #line 980 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 92: ! #line 982 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; *************** case 92: *** 3231,3237 **** ; break;} case 93: ! #line 989 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); --- 3231,3237 ---- ; break;} case 93: ! #line 989 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); *************** case 93: *** 3239,3245 **** ; break;} case 94: ! #line 995 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); --- 3239,3245 ---- ; break;} case 94: ! #line 995 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); *************** case 94: *** 3247,3261 **** ; break;} case 96: ! #line 1005 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 97: ! #line 1007 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 98: ! #line 1009 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree node = java_lval.node; if (node && (TREE_CODE (node) == INTEGER_CST --- 3247,3261 ---- ; break;} case 96: ! #line 1005 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 97: ! #line 1007 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 98: ! #line 1009 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree node = java_lval.node; if (node && (TREE_CODE (node) == INTEGER_CST *************** case 98: *** 3267,3277 **** ; break;} case 99: ! #line 1019 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: ! #line 1030 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl --- 3267,3277 ---- ; break;} case 99: ! #line 1019 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: ! #line 1030 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl *************** case 102: *** 3282,3349 **** ; break;} case 103: ! #line 1039 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 104: ! #line 1041 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 105: ! #line 1046 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 106: ! #line 1048 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: ! #line 1050 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: ! #line 1052 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: ! #line 1054 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 110: ! #line 1059 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {RECOVER;; break;} case 111: ! #line 1061 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 112: ! #line 1063 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: ! #line 1065 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 114: ! #line 1073 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 115: ! #line 1078 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 116: ! #line 1080 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = --- 3282,3349 ---- ; break;} case 103: ! #line 1039 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 104: ! #line 1041 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 105: ! #line 1046 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 106: ! #line 1048 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: ! #line 1050 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: ! #line 1052 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: ! #line 1054 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 110: ! #line 1059 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {RECOVER;; break;} case 111: ! #line 1061 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 112: ! #line 1063 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: ! #line 1065 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 114: ! #line 1073 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 115: ! #line 1078 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 116: ! #line 1080 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = *************** case 116: *** 3354,3412 **** ; break;} case 117: ! #line 1089 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 118: ! #line 1091 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 119: ! #line 1096 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 120: ! #line 1100 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 121: ! #line 1105 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing formal parameter term"); RECOVER; ; break;} case 122: ! #line 1110 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 123: ! #line 1114 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ARG_FINAL_P (yyval.node) = 1; ; break;} case 124: ! #line 1119 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 125: ! #line 1124 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 126: ! #line 1132 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); --- 3354,3412 ---- ; break;} case 117: ! #line 1089 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 118: ! #line 1091 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 119: ! #line 1096 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 120: ! #line 1100 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 121: ! #line 1105 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing formal parameter term"); RECOVER; ; break;} case 122: ! #line 1110 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 123: ! #line 1114 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ARG_FINAL_P (yyval.node) = 1; ; break;} case 124: ! #line 1119 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 125: ! #line 1124 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 126: ! #line 1132 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); *************** case 126: *** 3415,3449 **** ; break;} case 127: ! #line 1141 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 128: ! #line 1143 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: ! #line 1145 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: ! #line 1150 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 131: ! #line 1152 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: ! #line 1154 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 134: ! #line 1159 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 135: ! #line 1165 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); --- 3415,3449 ---- ; break;} case 127: ! #line 1141 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 128: ! #line 1143 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: ! #line 1145 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: ! #line 1150 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 131: ! #line 1152 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: ! #line 1154 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 134: ! #line 1159 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 135: ! #line 1165 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); *************** case 135: *** 3451,3457 **** ; break;} case 136: ! #line 1174 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for static initializer", yyvsp[0].value, ACC_STATIC); /* Can't have a static initializer in an innerclass */ --- 3451,3457 ---- ; break;} case 136: ! #line 1174 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for static initializer", yyvsp[0].value, ACC_STATIC); /* Can't have a static initializer in an innerclass */ *************** case 136: *** 3465,3520 **** ; break;} case 137: ! #line 1190 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 138: ! #line 1195 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 139: ! #line 1200 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 140: ! #line 1202 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 141: ! #line 1207 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 142: ! #line 1212 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 143: ! #line 1220 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 144: ! #line 1225 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 145: ! #line 1227 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 146: ! #line 1229 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: ! #line 1239 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, NULL_TREE); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-3].node), yyval.node); --- 3465,3520 ---- ; break;} case 137: ! #line 1190 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 138: ! #line 1195 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 139: ! #line 1200 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 140: ! #line 1202 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 141: ! #line 1207 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 142: ! #line 1212 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 143: ! #line 1220 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 144: ! #line 1225 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 145: ! #line 1227 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 146: ! #line 1229 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: ! #line 1239 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, NULL_TREE); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-3].node), yyval.node); *************** case 148: *** 3522,3528 **** ; break;} case 149: ! #line 1245 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-4].node, yyvsp[-2].node); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-4].node), yyval.node); --- 3522,3528 ---- ; break;} case 149: ! #line 1245 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-4].node, yyvsp[-2].node); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-4].node), yyval.node); *************** case 149: *** 3530,3544 **** ; break;} case 150: ! #line 1253 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 151: ! #line 1255 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: ! #line 1260 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; --- 3530,3544 ---- ; break;} case 150: ! #line 1253 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 151: ! #line 1255 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: ! #line 1260 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; *************** case 152: *** 3546,3552 **** ; break;} case 153: ! #line 1266 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; --- 3546,3552 ---- ; break;} case 153: ! #line 1266 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; *************** case 153: *** 3554,3666 **** ; break;} case 154: ! #line 1277 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} case 156: ! #line 1280 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} case 158: ! #line 1283 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 160: ! #line 1286 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 162: ! #line 1289 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 163: ! #line 1291 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 164: ! #line 1296 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 165: ! #line 1301 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 166: ! #line 1306 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 167: ! #line 1308 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 168: ! #line 1313 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 169: ! #line 1315 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 174: ! #line 1327 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 175: ! #line 1329 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 177: ! #line 1338 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 178: ! #line 1343 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 179: ! #line 1349 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 180: ! #line 1351 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, NULL_TREE); ; break;} case 181: ! #line 1353 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 182: ! #line 1355 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 183: ! #line 1360 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} case 184: ! #line 1365 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} case 185: ! #line 1369 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 186: ! #line 1375 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) --- 3554,3666 ---- ; break;} case 154: ! #line 1277 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} case 156: ! #line 1280 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} case 158: ! #line 1283 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 160: ! #line 1286 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 162: ! #line 1289 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 163: ! #line 1291 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 164: ! #line 1296 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 165: ! #line 1301 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 166: ! #line 1306 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 167: ! #line 1308 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 168: ! #line 1313 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 169: ! #line 1315 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 174: ! #line 1327 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 175: ! #line 1329 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 177: ! #line 1338 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 178: ! #line 1343 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 179: ! #line 1349 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 180: ! #line 1351 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, NULL_TREE); ; break;} case 181: ! #line 1353 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 182: ! #line 1355 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 183: ! #line 1360 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} case 184: ! #line 1365 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} case 185: ! #line 1369 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 186: ! #line 1375 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) *************** case 186: *** 3670,3684 **** ; break;} case 187: ! #line 1383 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 188: ! #line 1388 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { enter_block (); ; break;} case 189: ! #line 1393 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ --- 3670,3684 ---- ; break;} case 187: ! #line 1383 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 188: ! #line 1388 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { enter_block (); ; break;} case 189: ! #line 1393 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ *************** case 189: *** 3691,3724 **** ; break;} case 193: ! #line 1413 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 194: ! #line 1415 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ; break;} case 196: ! #line 1427 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 197: ! #line 1429 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 203: ! #line 1439 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 208: ! #line 1448 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 220: ! #line 1467 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (flag_extraneous_semicolon && ! current_static_block --- 3691,3724 ---- ; break;} case 193: ! #line 1413 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 194: ! #line 1415 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ; break;} case 196: ! #line 1427 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 197: ! #line 1429 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 203: ! #line 1439 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 208: ! #line 1448 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 220: ! #line 1467 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (flag_extraneous_semicolon && ! current_static_block *************** case 220: *** 3735,3741 **** ; break;} case 221: ! #line 1485 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); --- 3735,3741 ---- ; break;} case 221: ! #line 1485 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); *************** case 221: *** 3745,3763 **** ; break;} case 222: ! #line 1496 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 223: ! #line 1498 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 224: ! #line 1503 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 225: ! #line 1510 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ --- 3745,3763 ---- ; break;} case 222: ! #line 1496 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 223: ! #line 1498 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 224: ! #line 1503 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 225: ! #line 1510 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ *************** case 225: *** 3768,3870 **** ; break;} case 226: ! #line 1519 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 227: ! #line 1524 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 228: ! #line 1529 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 229: ! #line 1534 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 230: ! #line 1536 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 231: ! #line 1541 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 232: ! #line 1543 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 233: ! #line 1548 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 234: ! #line 1550 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 235: ! #line 1552 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 236: ! #line 1554 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 237: ! #line 1556 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 245: ! #line 1571 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} case 246: ! #line 1576 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 247: ! #line 1578 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 248: ! #line 1580 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 249: ! #line 1585 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 250: ! #line 1590 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 251: ! #line 1595 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { enter_block (); ; break;} case 252: ! #line 1599 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statement also have its own --- 3768,3870 ---- ; break;} case 226: ! #line 1519 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 227: ! #line 1524 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 228: ! #line 1529 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 229: ! #line 1534 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 230: ! #line 1536 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 231: ! #line 1541 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 232: ! #line 1543 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 233: ! #line 1548 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 234: ! #line 1550 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 235: ! #line 1552 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 236: ! #line 1554 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 237: ! #line 1556 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 245: ! #line 1571 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} case 246: ! #line 1576 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 247: ! #line 1578 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 248: ! #line 1580 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 249: ! #line 1585 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 250: ! #line 1590 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 251: ! #line 1595 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { enter_block (); ; break;} case 252: ! #line 1599 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statement also have its own *************** case 252: *** 3875,3916 **** ; break;} case 253: ! #line 1611 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build (SWITCH_EXPR, NULL_TREE, yyvsp[-1].node, NULL_TREE); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 254: ! #line 1616 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 255: ! #line 1618 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 256: ! #line 1620 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 257: ! #line 1628 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 258: ! #line 1630 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 259: ! #line 1632 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 260: ! #line 1634 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 266: ! #line 1653 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; --- 3875,3916 ---- ; break;} case 253: ! #line 1611 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build (SWITCH_EXPR, NULL_TREE, yyvsp[-1].node, NULL_TREE); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 254: ! #line 1616 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 255: ! #line 1618 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 256: ! #line 1620 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 257: ! #line 1628 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 258: ! #line 1630 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 259: ! #line 1632 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 260: ! #line 1634 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 266: ! #line 1653 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; *************** case 266: *** 3918,3924 **** ; break;} case 267: ! #line 1659 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; --- 3918,3924 ---- ; break;} case 267: ! #line 1659 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; *************** case 267: *** 3926,3982 **** ; break;} case 268: ! #line 1665 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 269: ! #line 1667 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 270: ! #line 1669 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 271: ! #line 1674 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ; break;} case 272: ! #line 1682 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 273: ! #line 1684 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 274: ! #line 1686 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 275: ! #line 1688 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 276: ! #line 1693 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 277: ! #line 1698 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 278: ! #line 1707 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 279: ! #line 1712 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); --- 3926,3982 ---- ; break;} case 268: ! #line 1665 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 269: ! #line 1667 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 270: ! #line 1669 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 271: ! #line 1674 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ; break;} case 272: ! #line 1682 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 273: ! #line 1684 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 274: ! #line 1686 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 275: ! #line 1688 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 276: ! #line 1693 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 277: ! #line 1698 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 278: ! #line 1707 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 279: ! #line 1712 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); *************** case 279: *** 3984,3990 **** ; break;} case 280: ! #line 1718 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ --- 3984,3990 ---- ; break;} case 280: ! #line 1718 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ *************** case 280: *** 3993,4015 **** ; break;} case 281: ! #line 1725 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 282: ! #line 1727 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 283: ! #line 1729 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 284: ! #line 1734 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; break;} case 285: ! #line 1736 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ --- 3993,4015 ---- ; break;} case 281: ! #line 1725 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 282: ! #line 1727 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 283: ! #line 1729 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 284: ! #line 1734 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; break;} case 285: ! #line 1736 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ *************** case 285: *** 4018,4024 **** ; break;} case 286: ! #line 1746 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ --- 4018,4024 ---- ; break;} case 286: ! #line 1746 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ *************** case 286: *** 4026,4040 **** ; break;} case 287: ! #line 1752 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 288: ! #line 1754 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 289: ! #line 1759 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ --- 4026,4040 ---- ; break;} case 287: ! #line 1752 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 288: ! #line 1754 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 289: ! #line 1759 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ *************** case 289: *** 4047,4057 **** ; break;} case 290: ! #line 1771 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = empty_stmt_node; ; break;} case 291: ! #line 1773 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Init statement recorded within the previously defined block scope */ --- 4047,4057 ---- ; break;} case 290: ! #line 1771 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = empty_stmt_node; ; break;} case 291: ! #line 1773 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Init statement recorded within the previously defined block scope */ *************** case 291: *** 4059,4065 **** ; break;} case 292: ! #line 1779 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ --- 4059,4065 ---- ; break;} case 292: ! #line 1779 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ *************** case 292: *** 4067,4160 **** ; break;} case 293: ! #line 1785 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 294: ! #line 1789 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = empty_stmt_node;; break;} case 295: ! #line 1791 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 296: ! #line 1796 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 297: ! #line 1798 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 298: ! #line 1800 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 299: ! #line 1805 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 300: ! #line 1807 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 301: ! #line 1809 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 302: ! #line 1811 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 303: ! #line 1816 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 304: ! #line 1818 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 305: ! #line 1820 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 306: ! #line 1822 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 307: ! #line 1827 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 308: ! #line 1829 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 309: ! #line 1831 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 310: ! #line 1833 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 311: ! #line 1838 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 312: ! #line 1843 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 313: ! #line 1845 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 314: ! #line 1850 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = --- 4067,4160 ---- ; break;} case 293: ! #line 1785 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 294: ! #line 1789 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = empty_stmt_node;; break;} case 295: ! #line 1791 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 296: ! #line 1796 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 297: ! #line 1798 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 298: ! #line 1800 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 299: ! #line 1805 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 300: ! #line 1807 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 301: ! #line 1809 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 302: ! #line 1811 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 303: ! #line 1816 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 304: ! #line 1818 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 305: ! #line 1820 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 306: ! #line 1822 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 307: ! #line 1827 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 308: ! #line 1829 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 309: ! #line 1831 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 310: ! #line 1833 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 311: ! #line 1838 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 312: ! #line 1843 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 313: ! #line 1845 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 314: ! #line 1850 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = *************** case 314: *** 4162,4184 **** ; break;} case 315: ! #line 1856 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 316: ! #line 1858 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 317: ! #line 1860 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 318: ! #line 1862 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 319: ! #line 1867 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", --- 4162,4184 ---- ; break;} case 315: ! #line 1856 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 316: ! #line 1858 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 317: ! #line 1860 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 318: ! #line 1862 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 319: ! #line 1867 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", *************** case 319: *** 4189,4221 **** ; break;} case 320: ! #line 1879 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 321: ! #line 1881 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 322: ! #line 1883 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-3].operator.location, build_try_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-1].node), yyvsp[0].node); ; break;} case 323: ! #line 1888 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 325: ! #line 1894 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 326: ! #line 1902 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); --- 4189,4221 ---- ; break;} case 320: ! #line 1879 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 321: ! #line 1881 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 322: ! #line 1883 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-3].operator.location, build_try_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-1].node), yyvsp[0].node); ; break;} case 323: ! #line 1888 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 325: ! #line 1894 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 326: ! #line 1902 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); *************** case 326: *** 4223,4229 **** ; break;} case 327: ! #line 1910 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is --- 4223,4229 ---- ; break;} case 327: ! #line 1910 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is *************** case 327: *** 4241,4328 **** ; break;} case 328: ! #line 1926 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; break;} case 329: ! #line 1928 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} case 330: ! #line 1933 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} case 331: ! #line 1938 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 332: ! #line 1940 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 336: ! #line 1952 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 337: ! #line 1954 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = yyvsp[-1].node;; break;} case 343: ! #line 1964 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); yyval.node = make_qualified_primary (yyvsp[-2].node, wfl, EXPR_WFL_LINECOL (yyvsp[-2].node)); ; break;} case 344: ! #line 1969 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 345: ! #line 1971 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 346: ! #line 1973 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 347: ! #line 1975 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 348: ! #line 1980 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 349: ! #line 1982 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 350: ! #line 1984 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 351: ! #line 1986 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ; break;} case 352: ! #line 1994 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 353: ! #line 1996 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 355: ! #line 2002 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, --- 4241,4328 ---- ; break;} case 328: ! #line 1926 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; break;} case 329: ! #line 1928 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} case 330: ! #line 1933 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} case 331: ! #line 1938 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 332: ! #line 1940 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 336: ! #line 1952 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 337: ! #line 1954 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = yyvsp[-1].node;; break;} case 343: ! #line 1964 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); yyval.node = make_qualified_primary (yyvsp[-2].node, wfl, EXPR_WFL_LINECOL (yyvsp[-2].node)); ; break;} case 344: ! #line 1969 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 345: ! #line 1971 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 346: ! #line 1973 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 347: ! #line 1975 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 348: ! #line 1980 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 349: ! #line 1982 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 350: ! #line 1984 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 351: ! #line 1986 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ; break;} case 352: ! #line 1994 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 353: ! #line 1996 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 355: ! #line 2002 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, *************** case 355: *** 4330,4336 **** ; break;} case 357: ! #line 2009 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-4].node, ctor, --- 4330,4336 ---- ; break;} case 357: ! #line 2009 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-4].node, ctor, *************** case 357: *** 4338,4372 **** ; break;} case 359: ! #line 2016 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 360: ! #line 2018 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 361: ! #line 2020 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 362: ! #line 2022 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 363: ! #line 2024 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 364: ! #line 2026 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 365: ! #line 2036 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ; break;} case 366: ! #line 2038 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); --- 4338,4372 ---- ; break;} case 359: ! #line 2016 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 360: ! #line 2018 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 361: ! #line 2020 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 362: ! #line 2022 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 363: ! #line 2024 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 364: ! #line 2026 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 365: ! #line 2036 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ; break;} case 366: ! #line 2038 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); *************** case 366: *** 4399,4409 **** ; break;} case 367: ! #line 2069 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 368: ! #line 2071 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); --- 4399,4409 ---- ; break;} case 367: ! #line 2069 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 368: ! #line 2071 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); *************** case 368: *** 4418,4466 **** ; break;} case 369: ! #line 2087 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 370: ! #line 2089 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 371: ! #line 2094 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 372: ! #line 2099 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 373: ! #line 2104 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 374: ! #line 2109 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: ! #line 2111 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 376: ! #line 2113 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 377: ! #line 2115 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 378: ! #line 2119 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); --- 4418,4466 ---- ; break;} case 369: ! #line 2087 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 370: ! #line 2089 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 371: ! #line 2094 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 372: ! #line 2099 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 373: ! #line 2104 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 374: ! #line 2109 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: ! #line 2111 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 376: ! #line 2113 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 377: ! #line 2115 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 378: ! #line 2119 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); *************** case 378: *** 4473,4479 **** ; break;} case 379: ! #line 2130 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; --- 4473,4479 ---- ; break;} case 379: ! #line 2130 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; *************** case 379: *** 4484,4506 **** ; break;} case 380: ! #line 2139 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 381: ! #line 2141 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 382: ! #line 2146 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 383: ! #line 2148 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 384: ! #line 2153 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { --- 4484,4506 ---- ; break;} case 380: ! #line 2139 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 381: ! #line 2141 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 382: ! #line 2146 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 383: ! #line 2148 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 384: ! #line 2153 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { *************** case 384: *** 4512,4522 **** ; break;} case 385: ! #line 2163 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 386: ! #line 2165 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); --- 4512,4522 ---- ; break;} case 385: ! #line 2163 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 386: ! #line 2165 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); *************** case 386: *** 4524,4530 **** ; break;} case 387: ! #line 2174 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb --- 4524,4530 ---- ; break;} case 387: ! #line 2174 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb *************** case 387: *** 4552,4570 **** ; break;} case 388: ! #line 2200 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { CURRENT_OSB (ctxp)++; ; break;} case 389: ! #line 2202 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 390: ! #line 2207 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 391: ! #line 2211 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; --- 4552,4570 ---- ; break;} case 388: ! #line 2200 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { CURRENT_OSB (ctxp)++; ; break;} case 389: ! #line 2202 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 390: ! #line 2207 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 391: ! #line 2211 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; *************** case 391: *** 4572,4590 **** ; break;} case 392: ! #line 2217 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 393: ! #line 2222 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 394: ! #line 2224 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 395: ! #line 2226 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 4572,4590 ---- ; break;} case 392: ! #line 2217 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 393: ! #line 2222 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 394: ! #line 2224 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 395: ! #line 2226 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** case 395: *** 4597,4603 **** ; break;} case 396: ! #line 2237 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 4597,4603 ---- ; break;} case 396: ! #line 2237 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** case 396: *** 4610,4737 **** ; break;} case 397: ! #line 2248 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-2].node, NULL_TREE, yyvsp[-4].operator.location, yyvsp[-3].operator.location); ; break;} case 398: ! #line 2253 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-3].node, yyvsp[-1].node, yyvsp[-5].operator.location, yyvsp[-4].operator.location); ; break;} case 399: ! #line 2262 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: ! #line 2264 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 401: ! #line 2269 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 402: ! #line 2271 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 403: ! #line 2273 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 404: ! #line 2278 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 405: ! #line 2283 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 406: ! #line 2288 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 411: ! #line 2303 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 412: ! #line 2308 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 415: ! #line 2315 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: ! #line 2318 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: ! #line 2323 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { error_if_numeric_overflow (yyvsp[0].node); yyval.node = yyvsp[0].node; ; break;} case 419: ! #line 2328 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 420: ! #line 2330 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: ! #line 2335 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 422: ! #line 2337 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 423: ! #line 2342 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 424: ! #line 2344 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 426: ! #line 2350 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: ! #line 2352 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 429: ! #line 2355 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 430: ! #line 2357 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 431: ! #line 2362 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); --- 4610,4737 ---- ; break;} case 397: ! #line 2248 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-2].node, NULL_TREE, yyvsp[-4].operator.location, yyvsp[-3].operator.location); ; break;} case 398: ! #line 2253 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-3].node, yyvsp[-1].node, yyvsp[-5].operator.location, yyvsp[-4].operator.location); ; break;} case 399: ! #line 2262 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: ! #line 2264 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 401: ! #line 2269 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 402: ! #line 2271 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 403: ! #line 2273 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 404: ! #line 2278 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 405: ! #line 2283 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 406: ! #line 2288 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 411: ! #line 2303 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 412: ! #line 2308 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 415: ! #line 2315 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: ! #line 2318 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: ! #line 2323 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { error_if_numeric_overflow (yyvsp[0].node); yyval.node = yyvsp[0].node; ; break;} case 419: ! #line 2328 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 420: ! #line 2330 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: ! #line 2335 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 422: ! #line 2337 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 423: ! #line 2342 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 424: ! #line 2344 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 426: ! #line 2350 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: ! #line 2352 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 429: ! #line 2355 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 430: ! #line 2357 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 431: ! #line 2362 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); *************** case 431: *** 4741,4755 **** ; break;} case 432: ! #line 2370 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 433: ! #line 2372 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 434: ! #line 2374 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); --- 4741,4755 ---- ; break;} case 432: ! #line 2370 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 433: ! #line 2372 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 434: ! #line 2374 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); *************** case 434: *** 4765,5018 **** ; break;} case 435: ! #line 2388 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 436: ! #line 2390 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} case 437: ! #line 2395 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 438: ! #line 2397 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 439: ! #line 2399 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 441: ! #line 2405 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 442: ! #line 2410 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 443: ! #line 2415 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 444: ! #line 2420 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 445: ! #line 2422 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: ! #line 2424 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 448: ! #line 2430 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 449: ! #line 2435 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 450: ! #line 2440 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 451: ! #line 2442 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 453: ! #line 2448 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 454: ! #line 2453 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 455: ! #line 2458 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 456: ! #line 2463 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 457: ! #line 2465 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 458: ! #line 2467 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 460: ! #line 2473 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 461: ! #line 2478 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 462: ! #line 2483 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 463: ! #line 2488 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 464: ! #line 2493 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 465: ! #line 2495 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: ! #line 2497 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 467: ! #line 2499 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 468: ! #line 2501 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 469: ! #line 2503 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 471: ! #line 2509 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 472: ! #line 2514 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 473: ! #line 2519 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: ! #line 2521 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 476: ! #line 2527 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 477: ! #line 2532 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 479: ! #line 2538 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 480: ! #line 2543 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 482: ! #line 2549 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 483: ! #line 2554 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 485: ! #line 2560 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 486: ! #line 2565 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 488: ! #line 2571 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 489: ! #line 2576 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 491: ! #line 2582 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build (CONDITIONAL_EXPR, NULL_TREE, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} case 492: ! #line 2587 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); --- 4765,5018 ---- ; break;} case 435: ! #line 2388 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 436: ! #line 2390 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} case 437: ! #line 2395 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 438: ! #line 2397 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 439: ! #line 2399 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 441: ! #line 2405 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 442: ! #line 2410 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 443: ! #line 2415 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 444: ! #line 2420 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 445: ! #line 2422 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: ! #line 2424 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 448: ! #line 2430 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 449: ! #line 2435 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 450: ! #line 2440 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 451: ! #line 2442 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 453: ! #line 2448 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 454: ! #line 2453 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 455: ! #line 2458 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 456: ! #line 2463 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 457: ! #line 2465 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 458: ! #line 2467 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 460: ! #line 2473 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 461: ! #line 2478 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 462: ! #line 2483 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 463: ! #line 2488 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 464: ! #line 2493 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 465: ! #line 2495 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: ! #line 2497 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 467: ! #line 2499 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 468: ! #line 2501 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 469: ! #line 2503 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 471: ! #line 2509 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 472: ! #line 2514 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 473: ! #line 2519 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: ! #line 2521 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 476: ! #line 2527 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 477: ! #line 2532 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 479: ! #line 2538 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 480: ! #line 2543 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 482: ! #line 2549 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 483: ! #line 2554 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 485: ! #line 2560 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 486: ! #line 2565 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 488: ! #line 2571 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 489: ! #line 2576 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 491: ! #line 2582 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build (CONDITIONAL_EXPR, NULL_TREE, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} case 492: ! #line 2587 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); *************** case 492: *** 5020,5038 **** ; break;} case 493: ! #line 2593 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 494: ! #line 2595 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 497: ! #line 2605 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 498: ! #line 2607 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); --- 5020,5038 ---- ; break;} case 493: ! #line 2593 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 494: ! #line 2595 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 497: ! #line 2605 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 498: ! #line 2607 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); *************** yyerrhandle: *** 5260,5266 **** } return 1; } ! #line 2632 "/home/mitchell/gcc-3.1/gcc-3.1/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the --- 5260,5266 ---- } return 1; } ! #line 2632 "/home/mitchell/gcc-3.1.1/gcc-3.1.1/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the *************** java_expand_classes () *** 11678,11687 **** for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) { tree current; ctxp = cur_ctxp; ! for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) { ! current_class = TREE_TYPE (current); outgoing_cpool = TYPE_CPOOL (current_class); if (flag_emit_class_files) write_classfile (current_class); --- 11678,11707 ---- for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) { tree current; + tree reversed_class_list = NULL; + ctxp = cur_ctxp; ! ! /* We write out the classes in reverse order. This ensures that ! inner classes are written before their containing classes, ! which is important for parallel builds. Otherwise, the ! class file for the outer class may be found, but the class ! file for the inner class may not be present. In that ! situation, the compiler cannot fall back to the original ! source, having already read the outer class, so we must ! prevent that situation. */ ! for (current = ctxp->class_list; ! current; ! current = TREE_CHAIN (current)) ! reversed_class_list ! = tree_cons (NULL_TREE, current, reversed_class_list); ! ggc_add_tree_root (&reversed_class_list, 1); ! ! for (current = reversed_class_list; ! current; ! current = TREE_CHAIN (current)) { ! current_class = TREE_TYPE (TREE_VALUE (current)); outgoing_cpool = TYPE_CPOOL (current_class); if (flag_emit_class_files) write_classfile (current_class); *************** java_expand_classes () *** 11693,11698 **** --- 11713,11720 ---- finish_class (); } } + + ggc_del_root (&reversed_class_list); } } diff -Nrc3pad gcc-3.1/gcc/java/parse.y gcc-3.1.1/gcc/java/parse.y *** gcc-3.1/gcc/java/parse.y Thu Apr 25 01:08:29 2002 --- gcc-3.1.1/gcc/java/parse.y Tue Jun 4 16:45:55 2002 *************** java_expand_classes () *** 9046,9055 **** for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) { tree current; ctxp = cur_ctxp; ! for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) { ! current_class = TREE_TYPE (current); outgoing_cpool = TYPE_CPOOL (current_class); if (flag_emit_class_files) write_classfile (current_class); --- 9046,9075 ---- for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) { tree current; + tree reversed_class_list = NULL; + ctxp = cur_ctxp; ! ! /* We write out the classes in reverse order. This ensures that ! inner classes are written before their containing classes, ! which is important for parallel builds. Otherwise, the ! class file for the outer class may be found, but the class ! file for the inner class may not be present. In that ! situation, the compiler cannot fall back to the original ! source, having already read the outer class, so we must ! prevent that situation. */ ! for (current = ctxp->class_list; ! current; ! current = TREE_CHAIN (current)) ! reversed_class_list ! = tree_cons (NULL_TREE, current, reversed_class_list); ! ggc_add_tree_root (&reversed_class_list, 1); ! ! for (current = reversed_class_list; ! current; ! current = TREE_CHAIN (current)) { ! current_class = TREE_TYPE (TREE_VALUE (current)); outgoing_cpool = TYPE_CPOOL (current_class); if (flag_emit_class_files) write_classfile (current_class); *************** java_expand_classes () *** 9061,9066 **** --- 9081,9088 ---- finish_class (); } } + + ggc_del_root (&reversed_class_list); } } diff -Nrc3pad gcc-3.1/gcc/java/rmic.1 gcc-3.1.1/gcc/java/rmic.1 *** gcc-3.1/gcc/java/rmic.1 Wed May 15 02:46:03 2002 --- gcc-3.1.1/gcc/java/rmic.1 Thu Jul 25 23:56:29 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:03 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:29 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "RMIC 1" ! .TH RMIC 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" rmic \- Generate stubs for Remote Method Invocation --- 138,144 ---- .\" ====================================================================== .\" .IX Title "RMIC 1" ! .TH RMIC 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" rmic \- Generate stubs for Remote Method Invocation diff -Nrc3pad gcc-3.1/gcc/java/rmiregistry.1 gcc-3.1.1/gcc/java/rmiregistry.1 *** gcc-3.1/gcc/java/rmiregistry.1 Wed May 15 02:46:03 2002 --- gcc-3.1.1/gcc/java/rmiregistry.1 Thu Jul 25 23:56:29 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:03 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:29 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "RMIREGISTRY 1" ! .TH RMIREGISTRY 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" rmiregistry \- Remote object registry --- 138,144 ---- .\" ====================================================================== .\" .IX Title "RMIREGISTRY 1" ! .TH RMIREGISTRY 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" rmiregistry \- Remote object registry diff -Nrc3pad gcc-3.1/gcc/langhooks-def.h gcc-3.1.1/gcc/langhooks-def.h *** gcc-3.1/gcc/langhooks-def.h Tue Mar 19 07:56:35 2002 --- gcc-3.1.1/gcc/langhooks-def.h Thu May 23 17:57:27 2002 *************** Boston, MA 02111-1307, USA. */ *** 22,27 **** --- 22,29 ---- #ifndef GCC_LANG_HOOKS_DEF_H #define GCC_LANG_HOOKS_DEF_H + #include "hooks.h" + /* Provide a hook routine for alias sets that always returns 1. This is used by languages that haven't deal with alias sets yet. */ extern HOST_WIDE_INT hook_get_alias_set_0 PARAMS ((tree)); *************** tree lhd_tree_inlining_convert_parm_for_ *** 71,77 **** #define LANG_HOOKS_CLEAR_BINDING_STACK lhd_clear_binding_stack #define LANG_HOOKS_INIT_OPTIONS lhd_do_nothing #define LANG_HOOKS_DECODE_OPTION lhd_decode_option ! #define LANG_HOOKS_POST_OPTIONS lhd_do_nothing #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree #define LANG_HOOKS_SAFE_FROM_P lhd_safe_from_p --- 73,79 ---- #define LANG_HOOKS_CLEAR_BINDING_STACK lhd_clear_binding_stack #define LANG_HOOKS_INIT_OPTIONS lhd_do_nothing #define LANG_HOOKS_DECODE_OPTION lhd_decode_option ! #define LANG_HOOKS_POST_OPTIONS hook_void_void #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree #define LANG_HOOKS_SAFE_FROM_P lhd_safe_from_p diff -Nrc3pad gcc-3.1/gcc/langhooks.h gcc-3.1.1/gcc/langhooks.h *** gcc-3.1/gcc/langhooks.h Tue Mar 19 07:56:35 2002 --- gcc-3.1.1/gcc/langhooks.h Thu May 23 17:57:28 2002 *************** struct lang_hooks *** 93,99 **** /* Called when all command line options have been parsed. Should do any required consistency checks, modifications etc. Complex initialization should be left to the "init" callback, since GC ! and the identifier hashes are set up between now and then. */ void (*post_options) PARAMS ((void)); /* Called after post_options, to initialize the front end. The main --- 93,102 ---- /* Called when all command line options have been parsed. Should do any required consistency checks, modifications etc. Complex initialization should be left to the "init" callback, since GC ! and the identifier hashes are set up between now and then. ! ! If errorcount is non-zero after this call the compiler exits ! immediately and the finish hook is not called. */ void (*post_options) PARAMS ((void)); /* Called after post_options, to initialize the front end. The main diff -Nrc3pad gcc-3.1/gcc/libgcc2.c gcc-3.1.1/gcc/libgcc2.c *** gcc-3.1/gcc/libgcc2.c Wed Apr 3 04:20:51 2002 --- gcc-3.1.1/gcc/libgcc2.c Tue May 21 23:44:38 2002 *************** struct bb *** 1288,1296 **** char *flags; }; - #ifdef BLOCK_PROFILER_CODE - BLOCK_PROFILER_CODE - #else #ifndef inhibit_libc /* Simple minded basic block profiling output dumper for --- 1288,1293 ---- *************** __bb_fork_func (void) *** 1491,1497 **** } #endif /* not inhibit_libc */ - #endif /* not BLOCK_PROFILER_CODE */ #endif /* L_bb */ #ifdef L_clear_cache --- 1488,1493 ---- diff -Nrc3pad gcc-3.1/gcc/local-alloc.c gcc-3.1.1/gcc/local-alloc.c *** gcc-3.1/gcc/local-alloc.c Wed Apr 3 02:09:12 2002 --- gcc-3.1.1/gcc/local-alloc.c Fri May 17 16:58:03 2002 *************** static rtx this_insn; *** 245,251 **** struct equivalence { /* Set when an attempt should be made to replace a register ! with the associated src entry. */ char replace; --- 245,251 ---- struct equivalence { /* Set when an attempt should be made to replace a register ! with the associated src_p entry. */ char replace; *************** struct equivalence *** 255,261 **** rtx replacement; ! rtx src; /* Loop depth is used to recognize equivalences which appear to be present within the same loop (or in an inner loop). */ --- 255,261 ---- rtx replacement; ! rtx *src_p; /* Loop depth is used to recognize equivalences which appear to be present within the same loop (or in an inner loop). */ *************** update_equiv_regs () *** 1004,1010 **** recorded_label_ref = 1; reg_equiv[regno].replacement = XEXP (note, 0); ! reg_equiv[regno].src = src; reg_equiv[regno].loop_depth = loop_depth; /* Don't mess with things live during setjmp. */ --- 1004,1010 ---- recorded_label_ref = 1; reg_equiv[regno].replacement = XEXP (note, 0); ! reg_equiv[regno].src_p = &SET_SRC (set); reg_equiv[regno].loop_depth = loop_depth; /* Don't mess with things live during setjmp. */ *************** update_equiv_regs () *** 1086,1092 **** if (asm_noperands (PATTERN (equiv_insn)) < 0 && validate_replace_rtx (regno_reg_rtx[regno], ! reg_equiv[regno].src, insn)) { rtx equiv_link; rtx last_link; --- 1086,1092 ---- if (asm_noperands (PATTERN (equiv_insn)) < 0 && validate_replace_rtx (regno_reg_rtx[regno], ! *(reg_equiv[regno].src_p), insn)) { rtx equiv_link; rtx last_link; diff -Nrc3pad gcc-3.1/gcc/loop.c gcc-3.1.1/gcc/loop.c *** gcc-3.1/gcc/loop.c Wed Apr 10 06:52:19 2002 --- gcc-3.1.1/gcc/loop.c Sat Jun 15 01:12:04 2002 *************** emit_prefetch_instructions (loop) *** 4039,4044 **** --- 4039,4045 ---- int bytes_ahead = PREFETCH_BLOCK * (ahead + y); rtx before_insn = info[i].giv->insn; rtx prev_insn = PREV_INSN (info[i].giv->insn); + rtx seq; /* We can save some effort by offsetting the address on architectures with offsettable memory references. */ *************** emit_prefetch_instructions (loop) *** 4053,4066 **** loc = reg; } /* Make sure the address operand is valid for prefetch. */ if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) (loc, insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) loc = force_reg (Pmode, loc); ! emit_insn_before (gen_prefetch (loc, GEN_INT (info[i].write), ! GEN_INT (3)), ! before_insn); /* Check all insns emitted and record the new GIV information. */ --- 4054,4070 ---- loc = reg; } + start_sequence (); /* Make sure the address operand is valid for prefetch. */ if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) (loc, insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) loc = force_reg (Pmode, loc); ! emit_insn (gen_prefetch (loc, GEN_INT (info[i].write), ! GEN_INT (3))); ! seq = gen_sequence (); ! end_sequence (); ! emit_insn_before (seq, before_insn); /* Check all insns emitted and record the new GIV information. */ *************** check_final_value (loop, v) *** 5847,5853 **** #endif if ((final_value = final_giv_value (loop, v)) ! && (v->always_computable || last_use_this_basic_block (v->dest_reg, v->insn))) { int biv_increment_seen = 0, before_giv_insn = 0; rtx p = v->insn; --- 5851,5857 ---- #endif if ((final_value = final_giv_value (loop, v)) ! && (v->always_executed || last_use_this_basic_block (v->dest_reg, v->insn))) { int biv_increment_seen = 0, before_giv_insn = 0; rtx p = v->insn; diff -Nrc3pad gcc-3.1/gcc/objc/Make-lang.in gcc-3.1.1/gcc/objc/Make-lang.in *** gcc-3.1/gcc/objc/Make-lang.in Fri Feb 1 11:48:46 2002 --- gcc-3.1.1/gcc/objc/Make-lang.in Thu May 23 17:57:45 2002 *************** objc-act.o : $(srcdir)/objc/objc-act.c \ *** 93,99 **** $(srcdir)/c-tree.h $(srcdir)/c-common.h $(srcdir)/c-lex.h \ $(srcdir)/toplev.h $(srcdir)/flags.h $(srcdir)/objc/objc-act.h \ $(srcdir)/input.h $(srcdir)/function.h $(srcdir)/output.h $(srcdir)/debug.h \ ! $(srcdir)/langhooks.h $(srcdir)/langhooks-def.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \ -c $(srcdir)/objc/objc-act.c --- 93,99 ---- $(srcdir)/c-tree.h $(srcdir)/c-common.h $(srcdir)/c-lex.h \ $(srcdir)/toplev.h $(srcdir)/flags.h $(srcdir)/objc/objc-act.h \ $(srcdir)/input.h $(srcdir)/function.h $(srcdir)/output.h $(srcdir)/debug.h \ ! $(srcdir)/langhooks.h $(LANGHOOKS_DEF_H) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \ -c $(srcdir)/objc/objc-act.c diff -Nrc3pad gcc-3.1/gcc/objc/objc-lang.c gcc-3.1.1/gcc/objc/objc-lang.c *** gcc-3.1/gcc/objc/objc-lang.c Tue Mar 19 07:56:39 2002 --- gcc-3.1.1/gcc/objc/objc-lang.c Thu Jun 6 08:46:05 2002 *************** *** 1,5 **** /* Language-dependent hooks for Objective-C. ! Copyright 2001 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GNU CC. --- 1,5 ---- /* Language-dependent hooks for Objective-C. ! Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 30,39 **** #include "langhooks-def.h" static void objc_init_options PARAMS ((void)); - static void objc_post_options PARAMS ((void)); #undef LANG_HOOKS_NAME ! #define LANG_HOOKS_NAME "GNU Objective-C" #undef LANG_HOOKS_INIT #define LANG_HOOKS_INIT objc_init #undef LANG_HOOKS_FINISH --- 30,38 ---- #include "langhooks-def.h" static void objc_init_options PARAMS ((void)); #undef LANG_HOOKS_NAME ! #define LANG_HOOKS_NAME "GNU Objective-C" #undef LANG_HOOKS_INIT #define LANG_HOOKS_INIT objc_init #undef LANG_HOOKS_FINISH *************** static void objc_post_options *** 43,49 **** #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION objc_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS objc_post_options #undef LANG_HOOKS_STATICP #define LANG_HOOKS_STATICP c_staticp #undef LANG_HOOKS_PRINT_IDENTIFIER --- 42,52 ---- #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION objc_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_common_post_options ! #undef LANG_HOOKS_GET_ALIAS_SET ! #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set ! #undef LANG_HOOKS_SAFE_FROM_P ! #define LANG_HOOKS_SAFE_FROM_P c_safe_from_p #undef LANG_HOOKS_STATICP #define LANG_HOOKS_STATICP c_staticp #undef LANG_HOOKS_PRINT_IDENTIFIER *************** objc_init_options () *** 72,84 **** { c_common_init_options (clk_objective_c); } - - /* Post-switch processing. */ - - static void - objc_post_options () - { - c_common_post_options (); - } - - --- 75,77 ---- diff -Nrc3pad gcc-3.1/gcc/po/ChangeLog gcc-3.1.1/gcc/po/ChangeLog *** gcc-3.1/gcc/po/ChangeLog Wed May 15 02:23:33 2002 --- gcc-3.1.1/gcc/po/ChangeLog Thu Jul 25 23:39:34 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/print-rtl.c gcc-3.1.1/gcc/print-rtl.c *** gcc-3.1/gcc/print-rtl.c Sun Dec 2 19:04:23 2001 --- gcc-3.1.1/gcc/print-rtl.c Mon Jun 10 21:51:06 2002 *************** print_mem_expr (outfile, expr) *** 88,95 **** print_mem_expr (outfile, TREE_OPERAND (expr, 0)); else fputs (" ", outfile); ! fprintf (outfile, ".%s", ! IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (expr, 1)))); } else if (DECL_NAME (expr)) fprintf (outfile, " %s", IDENTIFIER_POINTER (DECL_NAME (expr))); --- 88,96 ---- print_mem_expr (outfile, TREE_OPERAND (expr, 0)); else fputs (" ", outfile); ! if (DECL_NAME (TREE_OPERAND (expr, 1))) ! fprintf (outfile, ".%s", ! IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (expr, 1)))); } else if (DECL_NAME (expr)) fprintf (outfile, " %s", IDENTIFIER_POINTER (DECL_NAME (expr))); diff -Nrc3pad gcc-3.1/gcc/recog.c gcc-3.1.1/gcc/recog.c *** gcc-3.1/gcc/recog.c Fri Apr 12 22:36:01 2002 --- gcc-3.1.1/gcc/recog.c Fri Jun 28 12:36:04 2002 *************** general_operand (op, mode) *** 950,960 **** if (code == SUBREG) { #ifdef INSN_SCHEDULING /* On machines that have insn scheduling, we want all memory reference to be explicit, so outlaw paradoxical SUBREGs. */ ! if (GET_CODE (SUBREG_REG (op)) == MEM ! && GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))) return 0; #endif /* Avoid memories with nonzero SUBREG_BYTE, as offsetting the memory --- 950,962 ---- if (code == SUBREG) { + rtx sub = SUBREG_REG (op); + #ifdef INSN_SCHEDULING /* On machines that have insn scheduling, we want all memory reference to be explicit, so outlaw paradoxical SUBREGs. */ ! if (GET_CODE (sub) == MEM ! && GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (sub))) return 0; #endif /* Avoid memories with nonzero SUBREG_BYTE, as offsetting the memory *************** general_operand (op, mode) *** 964,973 **** ??? This is a kludge. */ if (!reload_completed && SUBREG_BYTE (op) != 0 ! && GET_CODE (SUBREG_REG (op)) == MEM) return 0; ! op = SUBREG_REG (op); code = GET_CODE (op); } --- 966,981 ---- ??? This is a kludge. */ if (!reload_completed && SUBREG_BYTE (op) != 0 ! && GET_CODE (sub) == MEM) return 0; ! /* FLOAT_MODE subregs can't be paradoxical. Combine will occasionally ! create such rtl, and we must reject it. */ ! if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT ! && GET_MODE_SIZE (GET_MODE (op)) > GET_MODE_SIZE (GET_MODE (sub))) ! return 0; ! ! op = sub; code = GET_CODE (op); } *************** register_operand (op, mode) *** 1040,1067 **** if (GET_CODE (op) == SUBREG) { /* Before reload, we can allow (SUBREG (MEM...)) as a register operand because it is guaranteed to be reloaded into one. Just make sure the MEM is valid in itself. (Ideally, (SUBREG (MEM)...) should not exist after reload, but currently it does result from (SUBREG (REG)...) where the reg went on the stack.) */ ! if (! reload_completed && GET_CODE (SUBREG_REG (op)) == MEM) return general_operand (op, mode); #ifdef CLASS_CANNOT_CHANGE_MODE ! if (GET_CODE (SUBREG_REG (op)) == REG ! && REGNO (SUBREG_REG (op)) < FIRST_PSEUDO_REGISTER && (TEST_HARD_REG_BIT (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], ! REGNO (SUBREG_REG (op)))) ! && CLASS_CANNOT_CHANGE_MODE_P (mode, GET_MODE (SUBREG_REG (op))) ! && GET_MODE_CLASS (GET_MODE (SUBREG_REG (op))) != MODE_COMPLEX_INT ! && GET_MODE_CLASS (GET_MODE (SUBREG_REG (op))) != MODE_COMPLEX_FLOAT) return 0; #endif ! op = SUBREG_REG (op); } /* If we have an ADDRESSOF, consider it valid since it will be --- 1048,1083 ---- if (GET_CODE (op) == SUBREG) { + rtx sub = SUBREG_REG (op); + /* Before reload, we can allow (SUBREG (MEM...)) as a register operand because it is guaranteed to be reloaded into one. Just make sure the MEM is valid in itself. (Ideally, (SUBREG (MEM)...) should not exist after reload, but currently it does result from (SUBREG (REG)...) where the reg went on the stack.) */ ! if (! reload_completed && GET_CODE (sub) == MEM) return general_operand (op, mode); #ifdef CLASS_CANNOT_CHANGE_MODE ! if (GET_CODE (sub) == REG ! && REGNO (sub) < FIRST_PSEUDO_REGISTER && (TEST_HARD_REG_BIT (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], ! REGNO (sub))) ! && CLASS_CANNOT_CHANGE_MODE_P (mode, GET_MODE (sub)) ! && GET_MODE_CLASS (GET_MODE (sub)) != MODE_COMPLEX_INT ! && GET_MODE_CLASS (GET_MODE (sub)) != MODE_COMPLEX_FLOAT) return 0; #endif ! /* FLOAT_MODE subregs can't be paradoxical. Combine will occasionally ! create such rtl, and we must reject it. */ ! if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT ! && GET_MODE_SIZE (GET_MODE (op)) > GET_MODE_SIZE (GET_MODE (sub))) ! return 0; ! ! op = sub; } /* If we have an ADDRESSOF, consider it valid since it will be diff -Nrc3pad gcc-3.1/gcc/reg-stack.c gcc-3.1.1/gcc/reg-stack.c *** gcc-3.1/gcc/reg-stack.c Mon Mar 18 17:47:03 2002 --- gcc-3.1.1/gcc/reg-stack.c Sun Jun 23 05:34:40 2002 *************** convert_regs_exit () *** 2468,2474 **** output_stack->top = value_reg_high - value_reg_low; for (reg = value_reg_low; reg <= value_reg_high; ++reg) { ! output_stack->reg[reg - value_reg_low] = reg; SET_HARD_REG_BIT (output_stack->reg_set, reg); } } --- 2468,2474 ---- output_stack->top = value_reg_high - value_reg_low; for (reg = value_reg_low; reg <= value_reg_high; ++reg) { ! output_stack->reg[value_reg_high - reg] = reg; SET_HARD_REG_BIT (output_stack->reg_set, reg); } } diff -Nrc3pad gcc-3.1/gcc/regclass.c gcc-3.1.1/gcc/regclass.c *** gcc-3.1/gcc/regclass.c Tue Feb 19 02:53:12 2002 --- gcc-3.1.1/gcc/regclass.c Sun Jun 16 21:54:11 2002 *************** globalize_reg (i) *** 824,829 **** --- 824,830 ---- SET_HARD_REG_BIT (fixed_reg_set, i); SET_HARD_REG_BIT (call_used_reg_set, i); SET_HARD_REG_BIT (call_fixed_reg_set, i); + SET_HARD_REG_BIT (regs_invalidated_by_call, i); } /* Now the data and code for the `regclass' pass, which happens diff -Nrc3pad gcc-3.1/gcc/regmove.c gcc-3.1.1/gcc/regmove.c *** gcc-3.1/gcc/regmove.c Sun Mar 31 03:32:41 2002 --- gcc-3.1.1/gcc/regmove.c Tue Jul 16 05:43:36 2002 *************** optimize_reg_copy_3 (insn, dest, src) *** 664,669 **** --- 664,670 ---- if (src_no < FIRST_PSEUDO_REGISTER || dst_no < FIRST_PSEUDO_REGISTER || ! find_reg_note (insn, REG_DEAD, src_reg) + || REG_N_DEATHS (src_no) != 1 || REG_N_SETS (src_no) != 1) return; for (p = PREV_INSN (insn); p && ! reg_set_p (src_reg, p); p = PREV_INSN (p)) diff -Nrc3pad gcc-3.1/gcc/reload.c gcc-3.1.1/gcc/reload.c *** gcc-3.1/gcc/reload.c Wed May 1 17:26:44 2002 --- gcc-3.1.1/gcc/reload.c Thu Jun 13 16:08:12 2002 *************** static int push_secondary_reload PARAMS *** 240,246 **** enum machine_mode, enum reload_type, enum insn_code *)); #endif ! static enum reg_class find_valid_class PARAMS ((enum machine_mode, int)); static int reload_inner_reg_of_subreg PARAMS ((rtx, enum machine_mode)); static void push_replacement PARAMS ((rtx *, int, enum machine_mode)); static void combine_reloads PARAMS ((void)); --- 240,247 ---- enum machine_mode, enum reload_type, enum insn_code *)); #endif ! static enum reg_class find_valid_class PARAMS ((enum machine_mode, int, ! unsigned int)); static int reload_inner_reg_of_subreg PARAMS ((rtx, enum machine_mode)); static void push_replacement PARAMS ((rtx *, int, enum machine_mode)); static void combine_reloads PARAMS ((void)); *************** clear_secondary_mem () *** 661,677 **** #endif /* SECONDARY_MEMORY_NEEDED */ /* Find the largest class for which every register number plus N is valid in ! M1 (if in range). Abort if no such class exists. */ static enum reg_class ! find_valid_class (m1, n) enum machine_mode m1 ATTRIBUTE_UNUSED; int n; { int class; int regno; enum reg_class best_class = NO_REGS; unsigned int best_size = 0; for (class = 1; class < N_REG_CLASSES; class++) { --- 662,683 ---- #endif /* SECONDARY_MEMORY_NEEDED */ /* Find the largest class for which every register number plus N is valid in ! M1 (if in range) and is cheap to move into REGNO. ! Abort if no such class exists. */ static enum reg_class ! find_valid_class (m1, n, dest_regno) enum machine_mode m1 ATTRIBUTE_UNUSED; int n; + unsigned int dest_regno; { + int best_cost = -1; int class; int regno; enum reg_class best_class = NO_REGS; + enum reg_class dest_class = REGNO_REG_CLASS (dest_regno); unsigned int best_size = 0; + int cost; for (class = 1; class < N_REG_CLASSES; class++) { *************** find_valid_class (m1, n) *** 682,689 **** && ! HARD_REGNO_MODE_OK (regno + n, m1)) bad = 1; ! if (! bad && reg_class_size[class] > best_size) ! best_class = class, best_size = reg_class_size[class]; } if (best_size == 0) --- 688,705 ---- && ! HARD_REGNO_MODE_OK (regno + n, m1)) bad = 1; ! if (bad) ! continue; ! cost = REGISTER_MOVE_COST (m1, class, dest_class); ! ! if ((reg_class_size[class] > best_size ! && (best_cost < 0 || best_cost >= cost)) ! || best_cost > cost) ! { ! best_class = class; ! best_size = reg_class_size[class]; ! best_cost = REGISTER_MOVE_COST (m1, class, dest_class); ! } } if (best_size == 0) *************** push_reload (in, out, inloc, outloc, cla *** 1041,1047 **** subreg_regno_offset (REGNO (SUBREG_REG (in)), GET_MODE (SUBREG_REG (in)), SUBREG_BYTE (in), ! GET_MODE (in))); /* This relies on the fact that emit_reload_insns outputs the instructions for input reloads of type RELOAD_OTHER in the same --- 1057,1064 ---- subreg_regno_offset (REGNO (SUBREG_REG (in)), GET_MODE (SUBREG_REG (in)), SUBREG_BYTE (in), ! GET_MODE (in)), ! REGNO (SUBREG_REG (in))); /* This relies on the fact that emit_reload_insns outputs the instructions for input reloads of type RELOAD_OTHER in the same *************** push_reload (in, out, inloc, outloc, cla *** 1141,1147 **** subreg_regno_offset (REGNO (SUBREG_REG (out)), GET_MODE (SUBREG_REG (out)), SUBREG_BYTE (out), ! GET_MODE (out))), VOIDmode, VOIDmode, 0, 0, opnum, RELOAD_OTHER); } --- 1158,1165 ---- subreg_regno_offset (REGNO (SUBREG_REG (out)), GET_MODE (SUBREG_REG (out)), SUBREG_BYTE (out), ! GET_MODE (out)), ! REGNO (SUBREG_REG (out))), VOIDmode, VOIDmode, 0, 0, opnum, RELOAD_OTHER); } diff -Nrc3pad gcc-3.1/gcc/reload1.c gcc-3.1.1/gcc/reload1.c *** gcc-3.1/gcc/reload1.c Mon Apr 29 21:22:47 2002 --- gcc-3.1.1/gcc/reload1.c Tue May 21 23:42:54 2002 *************** do_output_reload (chain, rl, j) *** 6911,6916 **** --- 6911,6917 ---- rtx pseudo = rl->out_reg; if (pseudo + && optimize && GET_CODE (pseudo) == REG && ! rtx_equal_p (rl->in_reg, pseudo) && REGNO (pseudo) >= FIRST_PSEUDO_REGISTER diff -Nrc3pad gcc-3.1/gcc/rtl.h gcc-3.1.1/gcc/rtl.h *** gcc-3.1/gcc/rtl.h Wed Apr 10 06:52:18 2002 --- gcc-3.1.1/gcc/rtl.h Sun May 19 09:05:27 2002 *************** extern rtx gen_rtx PARAMS ((enum rtx_c *** 1237,1242 **** --- 1237,1244 ---- extern rtvec gen_rtvec PARAMS ((int, ...)); extern rtx copy_insn_1 PARAMS ((rtx)); extern rtx copy_insn PARAMS ((rtx)); + extern rtx gen_int_mode PARAMS ((HOST_WIDE_INT, + enum machine_mode)); /* In rtl.c */ extern rtx rtx_alloc PARAMS ((RTX_CODE)); diff -Nrc3pad gcc-3.1/gcc/system.h gcc-3.1.1/gcc/system.h *** gcc-3.1/gcc/system.h Thu Feb 21 23:03:14 2002 --- gcc-3.1.1/gcc/system.h Tue May 21 23:44:39 2002 *************** typedef char _Bool; *** 605,611 **** OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR \ LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC \ STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \ ! SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH #endif /* IN_GCC */ --- 605,614 ---- OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR \ LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC \ STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \ ! SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH \ ! BLOCK_PROFILER BLOCK_PROFILER_CODE FUNCTION_BLOCK_PROFILER \ ! FUNCTION_BLOCK_PROFILER_EXIT MACHINE_STATE_SAVE \ ! MACHINE_STATE_RESTORE #endif /* IN_GCC */ diff -Nrc3pad gcc-3.1/gcc/testsuite/ChangeLog gcc-3.1.1/gcc/testsuite/ChangeLog *** gcc-3.1/gcc/testsuite/ChangeLog Wed May 15 02:24:10 2002 --- gcc-3.1.1/gcc/testsuite/ChangeLog Thu Jul 25 23:39:38 2002 *************** *** 1,3 **** --- 1,142 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-07-15 Jakub Jelinek + + * gcc.c-torture/compile/20020710-1.c: New test. + + 2002-07-11 Mark Mitchell + + PR c++/7224 + * g++.dg/overload/error1.C: New test. + + 2002-07-03 Mark Mitchell + + PR c++/6706 + * g++.dg/debug/debug6.C: New test. + * g++.dg/debug/debug7.C: New test. + + 2002-07-03 Kriang Lerdsuwanakij + + PR c++/6944 + * g++.dg/init/array4.C: New test. + * g++.dg/init/array5.C: New test. + + 2002-07-02 Kriang Lerdsuwanakij + + PR c++/6716 + * g++.dg/template/instantiate1.C: New test. + + 2002-07-01 Mark Mitchell + + PR c++/7112 + * g++.dg/template/sizeof1.C: New test. + + 2002-07-01 Hans-Peter Nilsson + + PR target/7177 + * gcc.c-torture/compile/20020701-1.c: New test. + + 2002-06-27 Neil Booth + + * gcc.dg/Wunknownprag.c: New tests. + + 2002-06-27 Mark Mitchell + + PR c++/6695 + * g++.dg/template/friend7.C: New file. + + 2002-06-23 Andreas Jaeger + + * gcc.c-torture/execute/complex-6.c: New. + + 2002-06-20 Kriang Lerdsuwanakij + + * g++.dg/template/ttp4.C: New test. + + 2002-06-19 Jakub Jelinek + + * g++.dg/opt/vt1.C: Fix regexp. + + 2002-06-18 Hans-Peter Nilsson + + * gcc.c-torture/execute/20020615-1.c: Correct bug-description. + + 2002-06-15 Hans-Peter Nilsson + + * gcc.c-torture/execute/20020615-1.c: New test. + + 2002-06-13 Hans-Peter Nilsson + + * gcc.c-torture/execute/20020611-1.c: New test. + + 2002-06-12 Kriang Lerdsuwanakij + + * g++.dg/template/typename2.C: Update error message. + + 2002-06-10 Jakub Jelinek + + * gcc.c-torture/compile/20020605-1.c: New test. + + * g++.dg/opt/vt1.C: New test. + + * gcc.dg/20020530-1.c: New test. + + * gcc.dg/20020527-1.c: New test. + + * g++.dg/opt/cse1.C: New test. + + 2002-05-29 Hans-Peter Nilsson + + * gcc.c-torture/execute/20020529-1.c: New test. + + 2002-05-26 Jakub Jelinek + + * g++.dg/opt/cse2.C: New test. + + 2002-05-24 Jakub Jelinek + + * gcc.dg/verbose-asm.c: New test. + + 2002-05-24 Neil Booth + + * gcc.dg/cpp/paste12.c: New test. + + 2002-05-24 Neil Booth + + * g++.dg/parse/named_ops.C: New test. + + 2002-05-23 Jakub Jelinek + + * gcc.dg/20020517-1.c: New test. + + * gcc.dg/20020523-1.c: New test. + + 2002-05-22 Andreas Jaeger + + * gcc.c-torture/execute/loop-2c.x: Remove, the test should pass + now. + * gcc.c-torture/execute/loop-2d.x: Likewise. + + 2002-05-19 David Billinghurst + + * gcc.dg/weak-2.c: xfail warnings for platforms that don't + support weak symbols. + * gcc.dg/weak-4.c: Likewise + * gcc.dg/weak-6.c: Likewise + + 2002-05-16 David.Billinghurst + + * gcc.dg/weak-3.c: Add dg-excess-error comment for + cygwin, coff and h8300-*-hms targets + * gcc.dg/weak-5.c: Likewise + * gcc.dg/weak-7.c: Likewise + + 2002-05-15 Jason Merrill , Alexandre Oliva + + * g++.dg/init/pm1.C: New test. + 2002-05-14 Release Manager * GCC 3.1 Released. *************** *** 68,74 **** PR c++/6497 * g++.dg/inherit/access2.C: New test. ! 2002-04-26 Mark Mitchell PR bootstrap/6445 --- 207,213 ---- PR c++/6497 * g++.dg/inherit/access2.C: New test. ! 2002-04-26 Mark Mitchell PR bootstrap/6445 *************** *** 242,248 **** * g++.dg/opt/const1.C: New test. 2002-04-10 Lars Brinkhoff ! * gcc.c-torture/execute/20020406-1.c: Declare malloc. 2002-04-10 Nathan Sidwell --- 381,387 ---- * g++.dg/opt/const1.C: New test. 2002-04-10 Lars Brinkhoff ! * gcc.c-torture/execute/20020406-1.c: Declare malloc. 2002-04-10 Nathan Sidwell *************** *** 350,356 **** 2002-03-27 Mark Mitchell * g++.dg/init/new2.C: New test. ! 2002-03-27 Richard Henderson * g++.old-deja/g++.brendan/crash52.C: Remove return warning marker. --- 489,495 ---- 2002-03-27 Mark Mitchell * g++.dg/init/new2.C: New test. ! 2002-03-27 Richard Henderson * g++.old-deja/g++.brendan/crash52.C: Remove return warning marker. *************** *** 448,454 **** 2002-03-21 Rainer Orth ! * g++.old-deja/g++.eh/ia64-1.C: Use [ijkl]_[0-9] as variable names. (A, E): Handle this. 2002-03-20 Jason Merrill --- 587,593 ---- 2002-03-21 Rainer Orth ! * g++.old-deja/g++.eh/ia64-1.C: Use [ijkl]_[0-9] as variable names. (A, E): Handle this. 2002-03-20 Jason Merrill diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/debug/debug6.C gcc-3.1.1/gcc/testsuite/g++.dg/debug/debug6.C *** gcc-3.1/gcc/testsuite/g++.dg/debug/debug6.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/debug/debug6.C Fri Jul 5 16:37:44 2002 *************** *** 0 **** --- 1,7 ---- + // { dg-do compile } + + void foo() + { + int i=1, x[i]; + } + diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/debug/debug7.C gcc-3.1.1/gcc/testsuite/g++.dg/debug/debug7.C *** gcc-3.1/gcc/testsuite/g++.dg/debug/debug7.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/debug/debug7.C Fri Jul 5 16:37:44 2002 *************** *** 0 **** --- 1,18 ---- + // { dg-do compile } + + void f (int); + + int + main() { + + int a = 4; + int b = 5; + int (*x)[b] = new int[a][b]; + + x[2][1] = 7; + + for (int i = 0; i < a; ++i) + for (int j = 0; j < b; ++j) + f (x[i][j]); + delete [] x; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/init/array4.C gcc-3.1.1/gcc/testsuite/g++.dg/init/array4.C *** gcc-3.1/gcc/testsuite/g++.dg/init/array4.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/init/array4.C Wed Jul 3 15:02:15 2002 *************** *** 0 **** --- 1,27 ---- + // { dg-do compile } + // Origin: Markus Breuer + + // PR c++/6944 + // Fail to synthesize copy constructor of multi-dimensional + // array of class. + + #include + + class Array + { + public: + std::string m_array[10][20][30]; + }; + + Array func() + { + Array result; + return result; // sorry, not implemented: cannot initialize multi-dimensional array with initializer + } + + + int main() + { + Array arr = func(); + } + diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/init/array5.C gcc-3.1.1/gcc/testsuite/g++.dg/init/array5.C *** gcc-3.1/gcc/testsuite/g++.dg/init/array5.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/init/array5.C Wed Jul 3 15:02:15 2002 *************** *** 0 **** --- 1,52 ---- + // { dg-do run } + // Copyright (C) 2002 Free Software Foundation + // Contributed by Kriang Lerdsuwanakij + + // Incorrect construction and destruction of multi-dimensional + // array of class. + + extern "C" void abort(); + extern "C" int printf(const char *, ...); + + int count; + int num; + + struct A + { + A() + { + if (count == num) + throw ""; + count++; + #ifdef PRINT + printf("ctor %p\n", static_cast(this)); + #endif + } + + ~A() + { + count--; + #ifdef PRINT + printf("dtor %p\n", static_cast(this)); + #endif + } + }; + + struct Array + { + A array[2][2][2]; + }; + + int main() + { + for (num = 0; num <= 8; ++num) { + count = 0; + try { + Array A; + } + catch (...) { + } + if (count != 0) + abort(); + } + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/init/pm1.C gcc-3.1.1/gcc/testsuite/g++.dg/init/pm1.C *** gcc-3.1/gcc/testsuite/g++.dg/init/pm1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/init/pm1.C Thu May 16 02:09:36 2002 *************** *** 0 **** --- 1,88 ---- + // { dg-do run } + + // Copyright 2002 Free Software Foundation + // Contributed by Jason Merrill and Alexandre Oliva + + // Test zero-initialization of pointers to data members. Their NULL + // value is represented with -1, not 0. + + #include + + struct A + { + int i; + }; + + int A::* gp; + + typedef int A::* iApm; + + iApm gp_zero = 0; + iApm gp_dflt = iApm(); + iApm gp_cast = (iApm)0; + iApm gp_func = iApm(0); + iApm gp_stat = static_cast(0); + + struct AD : A {}; + + int AD::* gp_impl = gp_dflt; + int AD::* gp_down = static_cast(gp_stat); + + int A::* ga[2]; + + // Test use in a simple struct. + struct B + { + int A::* mp; + }; + + B gb; + + struct D; + struct C; + extern D gd; + extern C gc; + + // Test that in a class with a constructor, the pointer to member is + // zero-initialized until the constructor is run. + struct C + { + int A::* mp; + inline C (); + }; + + int fail; + struct D + { + int count; + inline D (); + }; + + C::C() : mp (&A::i) { gd.count++; } + + D::D() : count (0) + { + if (gc.mp != 0) + abort (); + } + + // The D must come first for this to work. + D gd; + C gc; + + int main() + { + static int A::* slp; + static int A::* sla[2]; + static B slb; + + if (gp != 0 || slp != 0 + || gp_zero != 0 || gp_dflt != 0 || gp_cast != 0 + || gp_func != 0 || gp_stat != 0 + || gp_impl != 0 || gp_down != 0) + abort (); + if (ga[1] != 0 || sla[1] != 0) + abort (); + if (gb.mp != 0 || slb.mp != 0) + abort (); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/opt/asm1.C gcc-3.1.1/gcc/testsuite/g++.dg/opt/asm1.C *** gcc-3.1/gcc/testsuite/g++.dg/opt/asm1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/opt/asm1.C Thu Jun 20 23:25:11 2002 *************** *** 0 **** --- 1,9 ---- + // PR c++/6747 + // { dg-do compile } + // { dg-options "-O" } + + void foo() + { + union { double d; char c[sizeof(double)]; } tmp; + __asm__ ("" : "=m" (tmp.d)); // { dg-bogus "not directly addressable" } + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/opt/cse1.C gcc-3.1.1/gcc/testsuite/g++.dg/opt/cse1.C *** gcc-3.1/gcc/testsuite/g++.dg/opt/cse1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/opt/cse1.C Mon Jun 10 22:12:08 2002 *************** *** 0 **** --- 1,12 ---- + // PR optimization/6759 + // This testcase ICEd on SPARC because folded REG_EQUAL + // note was note stored back and fold_rtx left invalid rtx + // in it. + // { dg-do compile } + // { dg-options "-O2" } + + struct A + { + long long a; + A (unsigned short d) : a (d) {} + } x (65535); diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/opt/cse2.C gcc-3.1.1/gcc/testsuite/g++.dg/opt/cse2.C *** gcc-3.1/gcc/testsuite/g++.dg/opt/cse2.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/opt/cse2.C Sun May 26 19:58:07 2002 *************** *** 0 **** --- 1,39 ---- + // This testcase caused ICE on IA-32 in simplify_unary_operation + // CSE did not assume SUBREGs changing mode from integral to floating. + // { dg-do run { target i?86-*-* sparc*-*-* } } + // { dg-options "-O2" } + + struct A + { + union + { + float f; + unsigned int w; + } a; + + static inline const A foo (void) + { + return A ((unsigned int) (__extension__ ((union { unsigned l; float d; }) + { l: 0x3f800000 }).d)); + } + inline A (float f) { a.f = f; } + A (); + inline A (unsigned int w) { a.w = w; } + }; + + A::A() + { + *this = foo (); + } + + A a; + + extern "C" void abort (void); + extern "C" void exit (int); + + int main () + { + if (a.a.w != 1) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/opt/inline3.C gcc-3.1.1/gcc/testsuite/g++.dg/opt/inline3.C *** gcc-3.1/gcc/testsuite/g++.dg/opt/inline3.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/opt/inline3.C Mon Jun 17 00:29:37 2002 *************** *** 0 **** --- 1,40 ---- + // PR opt/6793 + // We failed to supress inlining of a varargs function when it's a template. + // { dg-do compile } + // { dg-options "-O3" } + + #include + + typedef __SIZE_TYPE__ size_t; + + template < class Type > class VectorNd + { + size_t size; + Type *data; + public: + + VectorNd (size_t _size, size_t count, ...) + : size (_size) + { + data = new Type[size]; + + va_list ap; + + va_start (ap, count); + + for (size_t i = 0; i < count; i++) + data[i] = va_arg (ap, Type); + + va_end (ap); + } + + ~VectorNd () + { + delete [] data; + } + }; + + int main () + { + VectorNd vector (3, 3, 1.0, 2.0, 3.0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/opt/thunk1.C gcc-3.1.1/gcc/testsuite/g++.dg/opt/thunk1.C *** gcc-3.1/gcc/testsuite/g++.dg/opt/thunk1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/opt/thunk1.C Sun May 26 02:42:21 2002 *************** *** 0 **** --- 1,42 ---- + // PR 6788 + // Test that the thunk adjusts the this pointer properly. + // { dg-do run } + + extern "C" void abort (); + + struct A + { + virtual void foo() = 0; + char large[33*1024]; + }; + + struct B + { + virtual void foo() = 0; + }; + + struct C : public A, public B + { + virtual void foo(); + }; + + static C *match; + + void C::foo() + { + if (this != match) + abort (); + } + + void bar(B *x) + { + x->foo(); + } + + int main() + { + C obj; + match = &obj; + bar(&obj); + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/opt/vt1.C gcc-3.1.1/gcc/testsuite/g++.dg/opt/vt1.C *** gcc-3.1/gcc/testsuite/g++.dg/opt/vt1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/opt/vt1.C Wed Jun 19 14:38:56 2002 *************** *** 0 **** --- 1,11 ---- + // Test whether vtable for S is not put into read-only section. + // { dg-do compile } + // { dg-options "-O2 -fpic -fno-rtti" } + // Origin: Jakub Jelinek + + struct S + { + virtual void vm (void) {}; + } x; + + // { dg-final { scan-assembler-not "section\[^\n\r\]*_ZTV1S\[^\n\r\]*\"\[^w\"\n\r\]*\"" } } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/overload/error1.C gcc-3.1.1/gcc/testsuite/g++.dg/overload/error1.C *** gcc-3.1/gcc/testsuite/g++.dg/overload/error1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/overload/error1.C Thu Jul 11 22:07:47 2002 *************** *** 0 **** --- 1,7 ---- + // { dg-do compile } + + struct S + { + void f () {} + int f () { return 0; } // { dg-error "" "" } + }; diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/parse/named_ops.C gcc-3.1.1/gcc/testsuite/g++.dg/parse/named_ops.C *** gcc-3.1/gcc/testsuite/g++.dg/parse/named_ops.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/parse/named_ops.C Fri May 24 09:27:00 2002 *************** *** 0 **** --- 1,13 ---- + /* Copyright (C) 2002 Free Software Foundation, Inc. */ + + /* { dg-do compile } */ + /* { dg-options -fpreprocessed } */ + + /* Tests that C++ named ops are still there with -fpreprocessed. */ + + /* Source: Neil Booth, 23 May 2002. */ + + int main () + { + return 2 xor 2; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/template/friend7.C gcc-3.1.1/gcc/testsuite/g++.dg/template/friend7.C *** gcc-3.1/gcc/testsuite/g++.dg/template/friend7.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/template/friend7.C Thu Jun 27 21:48:00 2002 *************** *** 0 **** --- 1,33 ---- + // { dg-do compile } + + template + struct b + { + template + class a + { + template + friend class a; + + T t_; + + public: + a() {} + a(a const &); + }; + }; + + template + template + b::a::a(a const &rhs): t_(*rhs.t_) + {} + + + int + f () + { + b::a q; + b::a w(q); + + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/template/instantiate1.C gcc-3.1.1/gcc/testsuite/g++.dg/template/instantiate1.C *** gcc-3.1/gcc/testsuite/g++.dg/template/instantiate1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/template/instantiate1.C Tue Jul 2 15:50:42 2002 *************** *** 0 **** --- 1,21 ---- + // { dg-do compile } + // Origin: + + // PR c++/6716 + // ICE in complex class structure when components are incomplete + + template struct X { + T t; // { dg-error "incomplete" } + }; + + template struct Y { // { dg-error "instantiated" } + X x; + }; + + template struct Z { // { dg-error "instantiated|declaration" } + Y > y; + }; + + struct ZZ : Z + { // { dg-error "instantiated" } + }; diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/template/sizeof1.C gcc-3.1.1/gcc/testsuite/g++.dg/template/sizeof1.C *** gcc-3.1/gcc/testsuite/g++.dg/template/sizeof1.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/template/sizeof1.C Tue Jul 2 03:14:16 2002 *************** *** 0 **** --- 1,23 ---- + // { dg-do compile } + + template + struct Foobar { + // Contents irrelevant + }; + + template + struct Wrapper { + // Contents irrelevant + }; + + template + Foobar)> * + compiler_bug (A) + { + return 0; + } + + int main() + { + compiler_bug(1); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/template/ttp4.C gcc-3.1.1/gcc/testsuite/g++.dg/template/ttp4.C *** gcc-3.1/gcc/testsuite/g++.dg/template/ttp4.C Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/g++.dg/template/ttp4.C Thu Jun 20 15:11:09 2002 *************** *** 0 **** --- 1,11 ---- + // { dg-do compile } + // Origin: Ewgenij Gawrilow + + // PR c++/6723 + // ICE when default template argument contains instantiation of + // template template parameter. + + template class Predicate, + bool _matches=Predicate::answer> + struct helper { }; diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.dg/template/typename2.C gcc-3.1.1/gcc/testsuite/g++.dg/template/typename2.C *** gcc-3.1/gcc/testsuite/g++.dg/template/typename2.C Wed Apr 10 09:38:55 2002 --- gcc-3.1.1/gcc/testsuite/g++.dg/template/typename2.C Wed Jun 12 15:44:01 2002 *************** class ctype : public __ctype_abstract_ba *** 21,25 **** template class ctype2 : public __ctype_abstract_base<_CharT> { ! typedef mask mask; // { dg-warning "(`typename )|(implicit typename)" "" } }; --- 21,25 ---- template class ctype2 : public __ctype_abstract_base<_CharT> { ! typedef mask mask; // { dg-warning "(implicitly a typename)|(implicit typename)" "" } }; diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-3.1.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-3.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed May 15 02:24:18 2002 --- gcc-3.1.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Thu Jul 25 23:39:40 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C gcc-3.1.1/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C *** gcc-3.1/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C Wed Dec 16 21:56:02 1998 --- gcc-3.1.1/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C Sun May 19 10:19:05 2002 *************** template class S; // OK - explici *** 28,41 **** // specialization template <> ! struct S {}; // ERROR - explicit specialization ! template class S; // ERROR - explicit instantiation after template <> ! void f(long double) {} // ERROR - explicit specialization ! template void f(long double); // ERROR - explicit instantiation after template void g(T); --- 28,41 ---- // specialization template <> ! struct S {}; ! template class S; // OK - explicit instantiation after template <> ! void f(long double) {} ! template void f(long double); // OK - explicit instantiation after template void g(T); diff -Nrc3pad gcc-3.1/gcc/testsuite/g++.old-deja/g++.pt/spec19.C gcc-3.1.1/gcc/testsuite/g++.old-deja/g++.pt/spec19.C *** gcc-3.1/gcc/testsuite/g++.old-deja/g++.pt/spec19.C Wed Dec 16 21:59:59 1998 --- gcc-3.1.1/gcc/testsuite/g++.old-deja/g++.pt/spec19.C Sun May 19 10:19:05 2002 *************** *** 1,5 **** // Build don't link: template T f(T o) { return o; } ! template<> int f(int o) { return o; } // ERROR - after specialization ! template int f(int); // ERROR - explicit instantiation --- 1,5 ---- // Build don't link: template T f(T o) { return o; } ! template<> int f(int o) { return o; } ! template int f(int); diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020530-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020530-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020530-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020530-1.c Thu May 30 23:13:20 2002 *************** *** 0 **** --- 1,16 ---- + /* PR optimization/6822 */ + + extern unsigned char foo1 (void); + extern unsigned short foo2 (void); + + int bar1 (void) + { + unsigned char q = foo1 (); + return (q < 0x80) ? 64 : 0; + } + + int bar2 (void) + { + unsigned short h = foo2 (); + return (h < 0x8000) ? 64 : 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020605-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020605-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020605-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020605-1.c Mon Jun 10 21:39:48 2002 *************** *** 0 **** --- 1,17 ---- + /* This testcase caused on IA-32 -O2 endless loop in + merge_blocks when trying to merge a basic block + with itself. */ + + void f (void) + { + char *c; + do + { + if (c) + break; + } + while (1); + if (!c) + while (1) + f (); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020701-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020701-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020701-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020701-1.c Mon Jul 1 19:40:54 2002 *************** *** 0 **** --- 1,75 ---- + /* PR target/7177 + Problem with cris-axis-elf: ICE in global. + Origin: hp@axis.com. */ + + typedef __SIZE_TYPE__ size_t; + void f1 (void *); + char *f2 (const char *); + int atoi (const char *); + char *strchr (const char *, int); + int strcmp (const char *, const char *); + size_t strlen (const char *); + typedef enum { A, B, C } t1; + extern const char _v[]; + + static t1 + f (const char* p1, const char* p2, char p3) + { + char *v1; + char *v2; + char *a; + char *v3; + char *v4; + char *v5; + char *e; + char *v6; + t1 r = C; + + v1 = f2 (p2); + v4 = f2 (p1); + + a = v2 = v1; + e = v5 = v4; + memcpy (&e, &e, sizeof (e)); + + v3 = strchr (v2, ','); + v6 = strchr (v5, ','); + + while ((_v + 1)[(unsigned) *a] & 4) + a++; + while ((_v + 1)[(unsigned) *e] & 4) + e++; + + if (a == v3 && e == v6) + { + if (p3) + r = atoi (v5) < atoi (v2) ? B : A; + else + r = atoi (v5) > atoi (v2) ? B : A; + v2 = ++a; + v5 = ++e; + v3 = strchr (v2, ','); + v6 = strchr (v5, ','); + + while ((_v + 1)[(unsigned) *a] & 4) + a++; + while ((_v + 1)[(unsigned) *e] & 4) + e++; + + if (a == v3 && e == v6) + { + if (r == B) + r = B; + else if (p3) + r = atoi (v5) < atoi (v2) ? B : A; + else + r = atoi (v5) > atoi (v2) ? B : A; + } + else + r = C; + } + + f1 (v1); + f1 (v4); + return r; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020710-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020710-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020710-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020710-1.c Mon Jul 15 06:54:37 2002 *************** *** 0 **** --- 1,12 ---- + /* Red Hat bugzilla #68395 + PR middle-end/7245 + This testcase ICEd on IA-32 because shift & compare patterns + predicates allowed any immediate, but constraints allowed only + numbers from 1 to 31. */ + + void foo (int *x, unsigned int y) + { + int a = y >> -13; + if (a) + *x = a; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020715-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020715-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/compile/20020715-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/compile/20020715-1.c Tue Jul 16 05:43:37 2002 *************** *** 0 **** --- 1,22 ---- + /* PR optimization/7153 */ + /* Verify that GCC doesn't promote a register when its + lifetime is not limited to one basic block. */ + + void f(char); + void g(void); + + void scale(void) + { + int width; + char bytes; + char *src; + + if (width) + { + bytes = *src; + g(); + width *= bytes; + } + + f(bytes); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020529-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020529-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020529-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020529-1.c Wed May 29 16:18:20 2002 *************** *** 0 **** --- 1,78 ---- + /* PR target/6838 from cato@df.lth.se. + cris-elf got an ICE with -O2: the insn matching + (insn 49 48 52 (parallel[ + (set (mem/s:HI (plus:SI (reg/v/f:SI 0 r0 [24]) + (const_int 8 [0x8])) [5 .c+0 S2 A8]) + (reg:HI 2 r2 [27])) + (set (reg/f:SI 2 r2 [31]) + (plus:SI (reg/v/f:SI 0 r0 [24]) + (const_int 8 [0x8]))) + ] ) 24 {*mov_sidehi_mem} (nil) + (nil)) + forced a splitter through the output pattern "#", but there was no + matching splitter. */ + + struct xx + { + int a; + struct xx *b; + short c; + }; + + int f1 (struct xx *); + void f2 (void); + + int + foo (struct xx *p, int b, int c, int d) + { + int a; + + for (;;) + { + a = f1(p); + if (a) + return (0); + if (b) + continue; + p->c = d; + if (p->a) + f2 (); + if (c) + f2 (); + d = p->c; + switch (a) + { + case 1: + if (p->b) + f2 (); + if (c) + f2 (); + default: + break; + } + } + return d; + } + + int main (void) + { + struct xx s = {0, &s, 23}; + if (foo (&s, 0, 0, 0) != 0 || s.a != 0 || s.b != &s || s.c != 0) + abort (); + exit (0); + } + + int + f1 (struct xx *p) + { + static int beenhere = 0; + if (beenhere++ > 1) + abort (); + return beenhere > 1; + } + + void + f2 (void) + { + abort (); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020611-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020611-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020611-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020611-1.c Wed Jun 12 22:50:17 2002 *************** *** 0 **** --- 1,32 ---- + /* PR target/6997. Missing (set_attr "cc" "none") in sleu pattern in + cris.md. Testcase from hp@axis.com. */ + + int p; + int k; + unsigned int n; + + void x () + { + unsigned int h; + + h = n <= 30; + if (h) + p = 1; + else + p = 0; + + if (h) + k = 1; + else + k = 0; + } + + unsigned int n = 30; + + main () + { + x (); + if (p != 1 || k != 1) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020614-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020614-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020614-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020614-1.c Sat Jun 15 00:43:49 2002 *************** *** 0 **** --- 1,41 ---- + /* PR c/6677 */ + /* Verify that GCC doesn't perform illegal simplifications + when folding constants. */ + + #include + + extern void abort (void); + extern void exit (int); + + int main (void) + { + int i; + signed char j; + unsigned char k; + + i = SCHAR_MAX; + + j = ((signed char) (i << 1)) / 2; + + if (j != -1) + abort(); + + j = ((signed char) (i * 2)) / 2; + + if (j != -1) + abort(); + + i = UCHAR_MAX; + + k = ((unsigned char) (i << 1)) / 2; + + if (k != UCHAR_MAX/2) + abort(); + + k = ((unsigned char) (i * 2)) / 2; + + if (k != UCHAR_MAX/2) + abort(); + + exit(0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020615-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020615-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020615-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020615-1.c Tue Jun 18 15:37:34 2002 *************** *** 0 **** --- 1,59 ---- + /* PR target/7042. When reorg.c changed branches into return insns, it + completely forgot about any current_function_epilogue_delay_list and + dropped those insns. Uncovered on cris-axis-elf, where an insn in an + epilogue delay-slot set the return-value register with the test-case + below. Derived from ghostscript-6.52 (GPL) by hp@axis.com. */ + + typedef struct font_hints_s { + int axes_swapped; + int x_inverted, y_inverted; + } font_hints; + typedef struct gs_fixed_point_s { + long x, y; + } gs_fixed_point; + + int + line_hints(const font_hints *fh, const gs_fixed_point *p0, + const gs_fixed_point *p1) + { + long dx = p1->x - p0->x; + long dy = p1->y - p0->y; + long adx, ady; + int xi = fh->x_inverted, yi = fh->y_inverted; + int hints; + if (xi) + dx = -dx; + if (yi) + dy = -dy; + if (fh->axes_swapped) { + long t = dx; + int ti = xi; + dx = dy, xi = yi; + dy = t, yi = ti; + } + adx = dx < 0 ? -dx : dx; + ady = dy < 0 ? -dy : dy; + if (dy != 0 && (adx <= ady >> 4)) { + hints = dy > 0 ? 2 : 1; + if (xi) + hints ^= 3; + } else if (dx != 0 && (ady <= adx >> 4)) { + hints = dx < 0 ? 8 : 4; + if (yi) + hints ^= 12; + } else + hints = 0; + return hints; + } + int main () + { + static font_hints fh[] = {{0, 1, 0}, {0, 0, 1}, {0, 0, 0}}; + static gs_fixed_point gsf[] + = {{0x30000, 0x13958}, {0x30000, 0x18189}, + {0x13958, 0x30000}, {0x18189, 0x30000}}; + if (line_hints (fh, gsf, gsf + 1) != 1 + || line_hints (fh + 1, gsf + 2, gsf + 3) != 8 + || line_hints (fh + 2, gsf + 2, gsf + 3) != 4) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020619-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020619-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020619-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020619-1.c Thu Jun 20 07:35:46 2002 *************** *** 0 **** --- 1,32 ---- + static int ref(void) + { + union { + char c[5]; + int i; + } u; + + __builtin_memset (&u, 0, sizeof(u)); + u.c[0] = 1; + u.c[1] = 2; + u.c[2] = 3; + u.c[3] = 4; + + return u.i; + } + + #define MAX(a,b) (a < b ? b : a) + + static int test(void) + { + char c[MAX(5, sizeof(int))] __attribute__((aligned)) = { 1, 2, 3, 4 }; + return *(int *)c; + } + + int main() + { + int a = test(); + int b = ref(); + if (a != b) + abort (); + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020716-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020716-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/20020716-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/20020716-1.c Thu Jul 18 17:45:54 2002 *************** *** 0 **** --- 1,36 ---- + extern void abort (void); + extern void exit (int); + + int sub1 (int val) + { + return val; + } + + int testcond (int val) + { + int flag1; + + { + int t1 = val; + { + int t2 = t1; + { + flag1 = sub1 (t2) ==0; + goto lab1; + }; + } + lab1: ; + } + + if (flag1 != 0) + return 0x4d0000; + else + return 0; + } + + int main (void) + { + if (testcond (1)) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/alloca-1.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/alloca-1.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/alloca-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/alloca-1.c Wed May 29 20:34:28 2002 *************** *** 0 **** --- 1,21 ---- + /* Verify that alloca storage is sufficiently aligned. */ + /* ??? May fail if BIGGEST_ALIGNMENT > STACK_BOUNDARY. Which, I guess + can only happen on !STRICT_ALIGNMENT targets. */ + + typedef __SIZE_TYPE__ size_t; + + struct dummy { int x __attribute__((aligned)); }; + #define BIGGEST_ALIGNMENT __alignof__(struct dummy) + + _Bool foo(void) + { + char *p = __builtin_alloca(32); + return ((size_t)p & (BIGGEST_ALIGNMENT - 1)) == 0; + } + + int main() + { + if (!foo()) + abort (); + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/complex-6.c gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/complex-6.c *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/complex-6.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/complex-6.c Sun Jun 23 05:34:25 2002 *************** *** 0 **** --- 1,59 ---- + /* This test tests complex conjugate and passing/returning of + complex parameter. */ + + #include + #include + + int err; + + #define TEST(TYPE, FUNC) \ + __complex__ TYPE \ + ctest_ ## FUNC (__complex__ TYPE x) \ + { \ + __complex__ TYPE res; \ + \ + res = ~x; \ + \ + return res; \ + } \ + \ + void \ + test_ ## FUNC (void) \ + { \ + __complex__ TYPE res, x; \ + \ + x = 1.0 + 2.0i; \ + \ + res = ctest_ ## FUNC (x); \ + \ + if (res != 1.0 - 2.0i) \ + { \ + printf ("test_" #FUNC " failed\n"); \ + ++err; \ + } \ + } + + + TEST(float, float) + TEST(double, double) + TEST(long double, long_double) + TEST(int, int) + TEST(long int, long_int) + + int + main (void) + { + + err = 0; + + test_float (); + test_double (); + test_long_double (); + test_int (); + test_long_int (); + + if (err != 0) + abort (); + + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/loop-2c.x gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/loop-2c.x *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/loop-2c.x Thu Sep 27 19:32:24 2001 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/loop-2c.x Thu Jan 1 00:00:00 1970 *************** *** 1,13 **** - if { [istarget "i686-*"] } { - set torture_eval_before_execute { - global compiler_conditional_xfail_data - set compiler_conditional_xfail_data { - "Loop optimiser bug" \ - "i686-*" \ - { "-Os" } \ - { "" } - } - } - } - - return 0 --- 0 ---- diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.c-torture/execute/loop-2d.x gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/loop-2d.x *** gcc-3.1/gcc/testsuite/gcc.c-torture/execute/loop-2d.x Thu Sep 27 19:32:24 2001 --- gcc-3.1.1/gcc/testsuite/gcc.c-torture/execute/loop-2d.x Thu Jan 1 00:00:00 1970 *************** *** 1,13 **** - if { [istarget "i686-*"] } { - set torture_eval_before_execute { - global compiler_conditional_xfail_data - set compiler_conditional_xfail_data { - "Loop optimiser bug" \ - "i686-*" \ - { "-Os" } \ - { "" } - } - } - } - - return 0 --- 0 ---- diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/20020517-1.c gcc-3.1.1/gcc/testsuite/gcc.dg/20020517-1.c *** gcc-3.1/gcc/testsuite/gcc.dg/20020517-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/20020517-1.c Thu May 23 08:14:35 2002 *************** *** 0 **** --- 1,28 ---- + /* This testcase caused ICE in do_SUBST on IA-32, because 0xf6 constant + was not sign-extended for QImode. */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + /* { dg-options "-O2 -mcpu=i686" { target i?86-*-* } } */ + + #include + + void abort (void); + void exit (int); + + void foo (void) + { + int i; + char *p; + + p = (char *) &i; + *p = -10; + if (* (unsigned char *) p != 0x100 - 10) + abort (); + } + + int main (void) + { + if (UCHAR_MAX == 255) + foo (); + exit (0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/20020523-1.c gcc-3.1.1/gcc/testsuite/gcc.dg/20020523-1.c *** gcc-3.1/gcc/testsuite/gcc.dg/20020523-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/20020523-1.c Thu May 23 09:24:37 2002 *************** *** 0 **** --- 1,65 ---- + /* PR target/6753 + This testcase was miscompiled because sse_mov?fcc_const0* + patterns were missing earlyclobber. */ + /* { dg-do run { target i386-*-* } } */ + /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */ + + extern void abort (void); + extern void exit (int); + + float one = 1.f; + + void bar (float f) + { + if (__builtin_memcmp (&one, &f, sizeof (float))) + abort (); + } + + float foo (void) + { + return 1.f; + } + + typedef struct + { + float t; + } T; + + void bail_if_no_sse (void) + { + int fl1, fl2; + + /* See if we can use cpuid. */ + __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;" + "pushl %0; popfl; pushfl; popl %0; popfl" + : "=&r" (fl1), "=&r" (fl2) + : "i" (0x00200000)); + if (((fl1 ^ fl2) & 0x00200000) == 0) + exit (0); + + /* See if cpuid gives capabilities. */ + __asm__ ("cpuid" : "=a" (fl1) : "0" (0) : "ebx", "ecx", "edx", "cc"); + if (fl1 == 0) + exit (0); + + /* See if capabilities include SSE (25th bit; 26 for SSE2). */ + __asm__ ("cpuid" : "=a" (fl1), "=d" (fl2) : "0" (1) : "ebx", "ecx", "cc"); + if ((fl2 & (1 << 25)) == 0) + exit (0); + } + + int main (void) + { + int i; + T x[1]; + + bail_if_no_sse (); + for (i = 0; i < 1; i++) + { + x[i].t = foo (); + x[i].t = 0.f > x[i].t ? 0.f : x[i].t; + bar (x[i].t); + } + + exit (0); + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/20020527-1.c gcc-3.1.1/gcc/testsuite/gcc.dg/20020527-1.c *** gcc-3.1/gcc/testsuite/gcc.dg/20020527-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/20020527-1.c Mon Jun 10 21:53:39 2002 *************** *** 0 **** --- 1,54 ---- + /* PR c/6660 + Test whether an unnamed field with user defined type - struct or union is + accepted. */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + typedef struct { + unsigned short a; + unsigned short b; + } __attribute__ ((__packed__)) A; + + typedef struct B_ { + unsigned int c; + unsigned int d; + } B; + + typedef struct C_ { + B; + unsigned int e; + unsigned int f; + } C; + + typedef C D; + + typedef struct { + A; + D; + struct { + unsigned short g; + unsigned short h; + } __attribute__ ((__packed__)); + union { + int i; + long j; + }; + int k; + } __attribute__ ((__packed__)) E; + + E x; + + void foo (void) + { + x.a = 1; + x.b = 2; + x.c = 3; + x.d = 4; + x.e = 5; + x.f = 6; + x.g = 7; + x.h = 8; + x.i = 9; + x.j = 10; + x.k = 11; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/20020530-1.c gcc-3.1.1/gcc/testsuite/gcc.dg/20020530-1.c *** gcc-3.1/gcc/testsuite/gcc.dg/20020530-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/20020530-1.c Mon Jun 10 21:51:07 2002 *************** *** 0 **** --- 1,20 ---- + /* PR c/6809 + Test -fverbose-asm with unnamed fields. */ + /* { dg-do compile } */ + /* { dg-options "-fverbose-asm" } */ + + typedef union U + { + struct + { + unsigned int a; + int b; + }; + long long c; + } *T; + + int foo (T x) + { + int r = x->a + x->b; + return r; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/20020616-1.c gcc-3.1.1/gcc/testsuite/gcc.dg/20020616-1.c *** gcc-3.1/gcc/testsuite/gcc.dg/20020616-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/20020616-1.c Sun Jun 16 21:54:12 2002 *************** *** 0 **** --- 1,29 ---- + /* PR opt/6722 */ + /* { dg-do run { target i?86-*-* } } */ + /* { dg-options "-O2" } */ + + register int k asm("%ebx"); + + void __attribute__((noinline)) + foo() + { + k = 1; + } + + void test() + { + int i; + for (i = 0; i < 10; i += k) + { + k = 0; + foo(); + } + } + + int main() + { + int old = k; + test(); + k = old; + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/Wunknownprag.c gcc-3.1.1/gcc/testsuite/gcc.dg/Wunknownprag.c *** gcc-3.1/gcc/testsuite/gcc.dg/Wunknownprag.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/Wunknownprag.c Thu Jun 27 22:27:13 2002 *************** *** 0 **** --- 1,11 ---- + /* Copyright (C) 2002 Free Software Foundation, Inc. */ + + /* { dg-do compile } */ + /* { dg-options "-Wunknown-pragmas" } */ + + /* We used to get "unspellable token: CPP_EOF" warnings. */ + + #pragma /* { dg-warning "ignoring #pragma" } */ + #pragma ~ /* { dg-warning "ignoring #pragma" } */ + #pragma baz /* { dg-warning "ignoring #pragma" } */ + #pragma baz baz /* { dg-warning "ignoring #pragma" } */ diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/cpp/paste12.c gcc-3.1.1/gcc/testsuite/gcc.dg/cpp/paste12.c *** gcc-3.1/gcc/testsuite/gcc.dg/cpp/paste12.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/cpp/paste12.c Fri May 24 19:13:48 2002 *************** *** 0 **** --- 1,8 ---- + /* { dg-do preprocess } */ + + /* Test correct diagnostics when pasting in #include. + Source: PR preprocessor/6780. */ + + #define inc2(a,b) <##a.b> + #define INC(X) inc2(X,h) + #include INC(stdio) /* { dg-error "pasting \"<\" and \"stdio\" does not" } */ diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/verbose-asm.c gcc-3.1.1/gcc/testsuite/gcc.dg/verbose-asm.c *** gcc-3.1/gcc/testsuite/gcc.dg/verbose-asm.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/verbose-asm.c Fri May 24 21:26:54 2002 *************** *** 0 **** --- 1,27 ---- + /* Test whether -fverbose-asm works. */ + /* { dg-do compile } */ + /* { dg-options "-fverbose-asm" } */ + + void foo (int *x) + { + (*x)++; + } + + int bar (int *y) + { + int a, b; + b = 10; + a = 26; + foo (&a); + a += 10; + foo (&a); + *y--; + return b; + } + + int + main (int argc, char *argv []) + { + bar (&argc); + return 0; + } diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-2.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-2.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-2.c Sun Apr 28 18:43:58 2002 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-2.c Sun May 19 01:26:18 2002 *************** void * foo1b (void) *** 30,36 **** return (void *)ffoo1b; } ! extern void * ffoo1c (void); /* { dg-warning "applying #pragma weak" "applying #pragma weak" } */ void * foo1c (void) { return (void *)ffoo1c; --- 30,36 ---- return (void *)ffoo1b; } ! extern void * ffoo1c (void); /* { dg-warning "applying #pragma weak" "applying #pragma weak" { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ void * foo1c (void) { return (void *)ffoo1c; diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-3.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-3.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-3.c Wed May 8 14:36:35 2002 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-3.c Fri May 17 04:04:29 2002 *************** *** 3,8 **** --- 3,9 ---- /* COFF does not support weak, and dg doesn't support UNSUPPORTED. */ /* { dg-do compile { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ + /* { dg-excess-errors "COFF does not support weak symbols" { target *-*-coff i?86-pc-cygwin h8300-*-hms } } */ /* { dg-final { global target_triplet } } */ /* { dg-final { if [string match h8300-*-hms $target_triplet ] {return} } } */ diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-4.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-4.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-4.c Sun Apr 28 18:43:58 2002 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-4.c Sun May 19 01:26:18 2002 *************** void * foo1b (void) *** 38,44 **** } ! extern int vfoo1c; /* { dg-warning "applying #pragma weak" "applying #pragma weak" } */ void * foo1c (void) { return (void *)&vfoo1c; --- 38,44 ---- } ! extern int vfoo1c; /* { dg-warning "applying #pragma weak" "applying #pragma weak" { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ void * foo1c (void) { return (void *)&vfoo1c; *************** void * foo1f (void) *** 70,76 **** #pragma weak vfoo1f ! extern int vfoo1g; /* { dg-warning "applying #pragma weak" "applying #pragma weak" } */ void * foo1g (void) { return (void *)&vfoo1g; --- 70,76 ---- #pragma weak vfoo1f ! extern int vfoo1g; /* { dg-warning "applying #pragma weak" "applying #pragma weak" { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ void * foo1g (void) { return (void *)&vfoo1g; diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-5.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-5.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-5.c Wed May 8 14:36:35 2002 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-5.c Mon May 27 05:48:19 2002 *************** *** 3,25 **** /* COFF does not support weak, and dg doesn't support UNSUPPORTED. */ /* { dg-do compile { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ /* { dg-final { global target_triplet } } */ /* { dg-final { if [string match h8300-*-hms $target_triplet ] {return} } } */ /* { dg-final { if [string match i?86-pc-cygwin $target_triplet ] {return} } } */ /* { dg-final { if [string match *-*-coff $target_triplet ] {return} } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1a" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1b" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1c" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1d" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1e" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1f" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1g" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1h" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1i" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1j" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1k" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]vfoo1l" } } */ /* test variable addresses with __attribute__ ((weak)) */ --- 3,26 ---- /* COFF does not support weak, and dg doesn't support UNSUPPORTED. */ /* { dg-do compile { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ + /* { dg-excess-errors "COFF does not support weak symbols" { target *-*-coff i?86-pc-cygwin h8300-*-hms } } */ /* { dg-final { global target_triplet } } */ /* { dg-final { if [string match h8300-*-hms $target_triplet ] {return} } } */ /* { dg-final { if [string match i?86-pc-cygwin $target_triplet ] {return} } } */ /* { dg-final { if [string match *-*-coff $target_triplet ] {return} } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1a" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1b" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1c" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1d" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1e" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1f" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1g" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1h" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1i" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1j" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1k" } } */ ! /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1l" } } */ /* test variable addresses with __attribute__ ((weak)) */ *************** void * foo1c (void) *** 44,50 **** { return (void *)&vfoo1c; } ! extern int vfoo1c __attribute__((weak)); /* { dg-warning "weak declaration" "weak declaration" } */ extern int vfoo1d __attribute__((weak)); --- 45,51 ---- { return (void *)&vfoo1c; } ! extern int vfoo1c __attribute__((weak)); /* { dg-warning "unspecified behavior" } */ extern int vfoo1d __attribute__((weak)); *************** void * foo1f (void) *** 68,74 **** { return (void *)&vfoo1f; } ! extern int vfoo1f __attribute__((weak)); extern int vfoo1g; --- 69,75 ---- { return (void *)&vfoo1f; } ! extern int vfoo1f __attribute__((weak)); /* { dg-warning "unspecified behavior" } */ extern int vfoo1g; *************** void * foo1g (void) *** 76,82 **** { return (void *)&vfoo1g; } ! int vfoo1g __attribute__((weak)); extern int vfoo1h __attribute__((weak)); --- 77,83 ---- { return (void *)&vfoo1g; } ! int vfoo1g __attribute__((weak)); /* { dg-warning "unspecified behavior" } */ extern int vfoo1h __attribute__((weak)); *************** int vfoo1k = 1; *** 111,116 **** int vfoox1l = 1; - extern int vfoo1l __attribute__((alias ("vfoox1l"))); extern int vfoo1l __attribute__((weak, alias ("vfoox1l"))); - --- 112,115 ---- diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-6.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-6.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-6.c Sun Apr 28 18:43:58 2002 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-6.c Sun May 19 01:26:18 2002 *************** *** 1,6 **** /* { dg-do compile } */ extern void * foo (void); ! void * foo (void) { return (void *)foo; } /* { dg-error "precede" } */ #pragma weak foo --- 1,6 ---- /* { dg-do compile } */ extern void * foo (void); ! void * foo (void) { return (void *)foo; } /* { dg-error "precede" "" { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ #pragma weak foo diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-7.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-7.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-7.c Sun Apr 28 18:43:58 2002 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-7.c Fri May 17 04:04:29 2002 *************** *** 1,4 **** --- 1,5 ---- /* { dg-do compile } */ + /* { dg-excess-errors "COFF does not support weak symbols" { target *-*-coff i?86-pc-cygwin h8300-*-hms } } */ extern void * foo (void); void * foo (void) { return (void *)foo; } /* { dg-error "precede" } */ diff -Nrc3pad gcc-3.1/gcc/testsuite/gcc.dg/weak-9.c gcc-3.1.1/gcc/testsuite/gcc.dg/weak-9.c *** gcc-3.1/gcc/testsuite/gcc.dg/weak-9.c Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/testsuite/gcc.dg/weak-9.c Mon May 27 05:48:20 2002 *************** *** 0 **** --- 1,28 ---- + /* { dg-do compile } */ + /* { dg-options "-fno-common" } */ + + /* COFF does not support weak, and dg doesn't support UNSUPPORTED. */ + /* { dg-do compile { xfail *-*-coff i?86-pc-cygwin h8300-*-hms } } */ + + /* { dg-final { global target_triplet } } */ + /* { dg-final { if [string match h8300-*-hms $target_triplet ] {return} } } */ + /* { dg-final { if [string match i?86-pc-cygwin $target_triplet ] {return} } } * + / + /* { dg-final { if [string match *-*-coff $target_triplet ] {return} } } */ + /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f1" } } */ + /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f2" } } */ + /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f3" } } */ + /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f4" } } */ + /* { dg-final { scan-assembler "notf1" } } */ + /* { dg-final { scan-assembler "notf2" } } */ + /* { dg-final { scan-assembler "notf3" } } */ + /* { dg-final { scan-assembler "notf4" } } */ + + void f1() __attribute__((weak, alias("notf1"))); + void f2() __attribute__((alias("notf2"), weak)); + + #pragma weak f3=notf3 + void f3(); + + void f4(); + #pragma weak f4=notf4 diff -Nrc3pad gcc-3.1/gcc/testsuite/objc.dg/const-str-2.m gcc-3.1.1/gcc/testsuite/objc.dg/const-str-2.m *** gcc-3.1/gcc/testsuite/objc.dg/const-str-2.m Thu Feb 7 09:08:25 2002 --- gcc-3.1.1/gcc/testsuite/objc.dg/const-str-2.m Thu May 23 18:12:39 2002 *************** *** 5,10 **** { dg-error "no class name specified as argument to -fconstant-string-class" "" { target *-*-* } 0 } void foo () {} - - /* Seem bogus, should investigate some day. */ - /* { dg-error "parse error" "" { target *-*-* } 5 } */ --- 5,7 ---- diff -Nrc3pad gcc-3.1/gcc/toplev.c gcc-3.1.1/gcc/toplev.c *** gcc-3.1/gcc/toplev.c Tue Apr 30 23:04:51 2002 --- gcc-3.1.1/gcc/toplev.c Mon May 27 05:48:15 2002 *************** rest_of_decl_compilation (decl, asmspec, *** 2248,2253 **** --- 2248,2266 ---- #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP, END) #endif + /* We deferred calling assemble_alias so that we could collect + other attributes such as visibility. Emit the alias now. */ + { + tree alias; + alias = lookup_attribute ("alias", DECL_ATTRIBUTES (decl)); + if (alias) + { + alias = TREE_VALUE (TREE_VALUE (alias)); + alias = get_identifier (TREE_STRING_POINTER (alias)); + assemble_alias (decl, alias); + } + } + /* Forward declarations for nested functions are not "external", but we need to treat them as if they were. */ if (TREE_STATIC (decl) || DECL_EXTERNAL (decl) *************** display_help () *** 3636,3647 **** printf (_(" -Wunused Enable unused warnings\n")); printf (_(" -Wlarger-than- Warn if an object is larger than bytes\n")); printf (_(" -p Enable function profiling\n")); - #if defined (BLOCK_PROFILER) || defined (FUNCTION_BLOCK_PROFILER) - printf (_(" -a Enable block profiling \n")); - #endif - #if defined (BLOCK_PROFILER) || defined (FUNCTION_BLOCK_PROFILER) || defined FUNCTION_BLOCK_PROFILER_EXIT - printf (_(" -ax Enable jump profiling \n")); - #endif printf (_(" -o Place output into \n")); printf (_("\ -G Put global and static data smaller than \n\ --- 3649,3654 ---- *************** toplev_main (argc, argv) *** 5232,5238 **** parse_options_and_default_flags (argc, argv); /* Exit early if we can (e.g. -help). */ ! if (!exit_after_options) do_compile (); if (errorcount || sorrycount) --- 5239,5245 ---- parse_options_and_default_flags (argc, argv); /* Exit early if we can (e.g. -help). */ ! if (!errorcount && !exit_after_options) do_compile (); if (errorcount || sorrycount) diff -Nrc3pad gcc-3.1/gcc/tradcpp.c gcc-3.1.1/gcc/tradcpp.c *** gcc-3.1/gcc/tradcpp.c Fri May 3 17:51:03 2002 --- gcc-3.1.1/gcc/tradcpp.c Wed May 22 05:58:48 2002 *************** process_include (stackp, fbeg, flen, sys *** 2595,2601 **** /* Replace all CR NL, NL CR and CR sequences with NL. */ static void ! fixup_newlines (FILE_BUF *fp) { U_CHAR *p, *q, *end; --- 2595,2602 ---- /* Replace all CR NL, NL CR and CR sequences with NL. */ static void ! fixup_newlines (fp) ! FILE_BUF *fp; { U_CHAR *p, *q, *end; diff -Nrc3pad gcc-3.1/gcc/unroll.c gcc-3.1.1/gcc/unroll.c *** gcc-3.1/gcc/unroll.c Mon Mar 25 02:46:43 2002 --- gcc-3.1.1/gcc/unroll.c Sat Jun 15 01:12:06 2002 *************** final_giv_value (loop, v) *** 3305,3311 **** /* Try to calculate the final value as a function of the biv it depends upon. The only exit from the loop must be the fall through at the bottom ! (otherwise it may not have its final value when the loop exits). */ /* ??? Can calculate the final giv value by subtracting off the extra biv increments times the giv's mult_val. The loop must have --- 3305,3312 ---- /* Try to calculate the final value as a function of the biv it depends upon. The only exit from the loop must be the fall through at the bottom ! and the insn that sets the giv must be executed on every iteration ! (otherwise the giv may not have its final value when the loop exits). */ /* ??? Can calculate the final giv value by subtracting off the extra biv increments times the giv's mult_val. The loop must have *************** final_giv_value (loop, v) *** 3313,3319 **** to be known. */ if (n_iterations != 0 ! && ! loop->exit_count) { /* ?? It is tempting to use the biv's value here since these insns will be put after the loop, and hence the biv will have its final value --- 3314,3321 ---- to be known. */ if (n_iterations != 0 ! && ! loop->exit_count ! && v->always_executed) { /* ?? It is tempting to use the biv's value here since these insns will be put after the loop, and hence the biv will have its final value diff -Nrc3pad gcc-3.1/gcc/varasm.c gcc-3.1.1/gcc/varasm.c *** gcc-3.1/gcc/varasm.c Wed May 8 14:36:33 2002 --- gcc-3.1.1/gcc/varasm.c Mon Jun 10 21:44:41 2002 *************** static hashval_t const_str_htab_hash PAR *** 186,192 **** static int const_str_htab_eq PARAMS ((const void *x, const void *y)); static void const_str_htab_del PARAMS ((void *)); static void asm_emit_uninitialised PARAMS ((tree, const char*, int, int)); ! static void resolve_unique_section PARAMS ((tree, int)); static void mark_weak PARAMS ((tree)); static enum in_section { no_section, in_text, in_data, in_named --- 186,192 ---- static int const_str_htab_eq PARAMS ((const void *x, const void *y)); static void const_str_htab_del PARAMS ((void *)); static void asm_emit_uninitialised PARAMS ((tree, const char*, int, int)); ! static void resolve_unique_section PARAMS ((tree, int, int)); static void mark_weak PARAMS ((tree)); static enum in_section { no_section, in_text, in_data, in_named *************** named_section (decl, name, reloc) *** 461,472 **** /* If required, set DECL_SECTION_NAME to a unique name. */ static void ! resolve_unique_section (decl, reloc) tree decl; int reloc ATTRIBUTE_UNUSED; { if (DECL_SECTION_NAME (decl) == NULL_TREE ! && (flag_function_sections || (targetm.have_named_sections && DECL_ONE_ONLY (decl)))) UNIQUE_SECTION (decl, reloc); --- 461,473 ---- /* If required, set DECL_SECTION_NAME to a unique name. */ static void ! resolve_unique_section (decl, reloc, flag_function_or_data_sections) tree decl; int reloc ATTRIBUTE_UNUSED; + int flag_function_or_data_sections; { if (DECL_SECTION_NAME (decl) == NULL_TREE ! && (flag_function_or_data_sections || (targetm.have_named_sections && DECL_ONE_ONLY (decl)))) UNIQUE_SECTION (decl, reloc); *************** asm_output_bss (file, decl, name, size, *** 515,521 **** /* Standard thing is just output label for the object. */ ASM_OUTPUT_LABEL (file, name); #endif /* ASM_DECLARE_OBJECT_NAME */ ! ASM_OUTPUT_SKIP (file, rounded); } #endif --- 516,522 ---- /* Standard thing is just output label for the object. */ ASM_OUTPUT_LABEL (file, name); #endif /* ASM_DECLARE_OBJECT_NAME */ ! ASM_OUTPUT_SKIP (file, rounded ? rounded : 1); } #endif *************** assemble_start_function (decl, fnname) *** 1188,1194 **** if (CONSTANT_POOL_BEFORE_FUNCTION) output_constant_pool (fnname, decl); ! resolve_unique_section (decl, 0); function_section (decl); /* Tell assembler to move to target machine's alignment for functions. */ --- 1189,1195 ---- if (CONSTANT_POOL_BEFORE_FUNCTION) output_constant_pool (fnname, decl); ! resolve_unique_section (decl, 0, flag_function_sections); function_section (decl); /* Tell assembler to move to target machine's alignment for functions. */ *************** asm_emit_uninitialised (decl, name, size *** 1397,1403 **** if (destination == asm_dest_bss) globalize_decl (decl); ! resolve_unique_section (decl, 0); if (flag_shared_data) { --- 1398,1404 ---- if (destination == asm_dest_bss) globalize_decl (decl); ! resolve_unique_section (decl, 0, flag_data_sections); if (flag_shared_data) { *************** assemble_variable (decl, top_level, at_e *** 1642,1648 **** reloc = output_addressed_constants (DECL_INITIAL (decl)); /* Switch to the appropriate section. */ ! resolve_unique_section (decl, reloc); variable_section (decl, reloc); /* dbxout.c needs to know this. */ --- 1643,1649 ---- reloc = output_addressed_constants (DECL_INITIAL (decl)); /* Switch to the appropriate section. */ ! resolve_unique_section (decl, reloc, flag_data_sections); variable_section (decl, reloc); /* dbxout.c needs to know this. */ *************** const_hash (exp) *** 2560,2565 **** --- 2561,2567 ---- } case ADDR_EXPR: + case FDESC_EXPR: { struct addr_const value; *************** compare_constant_1 (exp, p) *** 2801,2806 **** --- 2803,2809 ---- } case ADDR_EXPR: + case FDESC_EXPR: { struct addr_const value; *************** output_addressed_constants (exp) *** 4247,4252 **** --- 4250,4256 ---- switch (TREE_CODE (exp)) { case ADDR_EXPR: + case FDESC_EXPR: /* Go inside any operations that get_inner_reference can handle and see if what's inside is a constant: no need to do anything here for addresses of variables or functions. */ *************** merge_weak (newdecl, olddecl) *** 5016,5029 **** if (DECL_WEAK (newdecl) == DECL_WEAK (olddecl)) return; - if (SUPPORTS_WEAK - && DECL_WEAK (newdecl) - && DECL_EXTERNAL (newdecl) && DECL_EXTERNAL (olddecl) - && (TREE_CODE (olddecl) != VAR_DECL || ! TREE_STATIC (olddecl)) - && TREE_USED (olddecl) - && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (olddecl))) - warning_with_decl (newdecl, "weak declaration of `%s' after first use results in unspecified behavior"); - if (DECL_WEAK (newdecl)) { tree wd; --- 5020,5025 ---- *************** merge_weak (newdecl, olddecl) *** 5034,5043 **** go back and make it weak. This error cannot caught in declare_weak because the NEWDECL and OLDDECL was not yet been merged; therefore, TREE_ASM_WRITTEN was not set. */ ! if (TREE_CODE (olddecl) == FUNCTION_DECL && TREE_ASM_WRITTEN (olddecl)) error_with_decl (newdecl, "weak declaration of `%s' must precede definition"); ! if (SUPPORTS_WEAK) { /* We put the NEWDECL on the weak_decls list at some point. --- 5030,5046 ---- go back and make it weak. This error cannot caught in declare_weak because the NEWDECL and OLDDECL was not yet been merged; therefore, TREE_ASM_WRITTEN was not set. */ ! if (TREE_ASM_WRITTEN (olddecl)) error_with_decl (newdecl, "weak declaration of `%s' must precede definition"); ! ! /* If we've already generated rtl referencing OLDDECL, we may ! have done so in a way that will not function properly with ! a weak symbol. */ ! else if (TREE_USED (olddecl) ! && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (olddecl))) ! warning_with_decl (newdecl, "weak declaration of `%s' after first use results in unspecified behavior"); ! if (SUPPORTS_WEAK) { /* We put the NEWDECL on the weak_decls list at some point. *************** assemble_alias (decl, target) *** 5174,5180 **** #else ASM_OUTPUT_DEF (asm_out_file, name, IDENTIFIER_POINTER (target)); #endif - TREE_ASM_WRITTEN (decl) = 1; #else /* !ASM_OUTPUT_DEF */ #if defined (ASM_OUTPUT_WEAK_ALIAS) || defined (ASM_WEAKEN_DECL) if (! DECL_WEAK (decl)) --- 5177,5182 ---- *************** assemble_alias (decl, target) *** 5185,5195 **** #else ASM_OUTPUT_WEAK_ALIAS (asm_out_file, name, IDENTIFIER_POINTER (target)); #endif - TREE_ASM_WRITTEN (decl) = 1; #else warning ("alias definitions not supported in this configuration; ignored"); #endif #endif } /* Returns 1 if the target configuration supports defining public symbols --- 5187,5200 ---- #else ASM_OUTPUT_WEAK_ALIAS (asm_out_file, name, IDENTIFIER_POINTER (target)); #endif #else warning ("alias definitions not supported in this configuration; ignored"); #endif #endif + + TREE_USED (decl) = 1; + TREE_ASM_WRITTEN (decl) = 1; + TREE_ASM_WRITTEN (DECL_ASSEMBLER_NAME (decl)) = 1; } /* Returns 1 if the target configuration supports defining public symbols diff -Nrc3pad gcc-3.1/gcc/version.c gcc-3.1.1/gcc/version.c *** gcc-3.1/gcc/version.c Tue May 14 21:41:15 2002 --- gcc-3.1.1/gcc/version.c Thu Jul 25 23:40:31 2002 *************** *** 1,4 **** #include "ansidecl.h" #include "version.h" ! const char *const version_string = "3.1"; --- 1,4 ---- #include "ansidecl.h" #include "version.h" ! const char *const version_string = "3.1.1"; diff -Nrc3pad gcc-3.1/include/ChangeLog gcc-3.1.1/include/ChangeLog *** gcc-3.1/include/ChangeLog Wed May 15 02:24:25 2002 --- gcc-3.1.1/include/ChangeLog Thu Jul 25 23:39:43 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libf2c/ChangeLog gcc-3.1.1/libf2c/ChangeLog *** gcc-3.1/libf2c/ChangeLog Wed May 15 02:24:32 2002 --- gcc-3.1.1/libf2c/ChangeLog Thu Jul 25 23:39:52 2002 *************** *** 1,3 **** --- 1,14 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-06-25 DJ Delorie + + * aclocal.m4 (GLIBCPP_CONFIGURE): Split out + GLIBCPP_TOPREL_CONFIGURE. + * configure.in: Call it before AC_CANONICAL_SYSTEM. + * configure: Regenerate. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libf2c/aclocal.m4 gcc-3.1.1/libf2c/aclocal.m4 *** gcc-3.1/libf2c/aclocal.m4 Mon Apr 15 21:57:52 2002 --- gcc-3.1.1/libf2c/aclocal.m4 Wed Jun 26 04:15:29 2002 *************** dnl PARTICULAR PURPOSE. *** 11,18 **** dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_CONFIGURE ! AC_DEFUN(GLIBCPP_CONFIGURE, [ dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], --- 11,18 ---- dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_TOPREL_CONFIGURE ! AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], *************** fi *** 43,49 **** --- 43,55 ---- AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) + ]) + dnl + dnl Initialize configure bits. + dnl + dnl GLIBCPP_CONFIGURE + AC_DEFUN(GLIBCPP_CONFIGURE, [ # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount diff -Nrc3pad gcc-3.1/libf2c/configure gcc-3.1.1/libf2c/configure *** gcc-3.1/libf2c/configure Wed May 8 04:25:36 2002 --- gcc-3.1.1/libf2c/configure Wed Jun 26 04:15:29 2002 *************** program_suffix=NONE *** 49,55 **** program_transform_name=s,x,x, silent= site= - sitefile= srcdir= target=NONE verbose= --- 49,54 ---- *************** Configuration: *** 164,170 **** --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX --- 163,168 ---- *************** EOF *** 335,345 **** -site=* | --site=* | --sit=*) site="$ac_optarg" ;; - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) --- 333,338 ---- *************** fi *** 505,520 **** srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$sitefile"; then ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ! fi fi - else - CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then --- 498,509 ---- srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then *************** fi *** 560,567 **** # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD ac_aux_dir= ! for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" --- 549,587 ---- # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD + + # Check whether --enable-multilib or --disable-multilib was given. + if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac + else + multilib=yes + fi + + # When building with srcdir == objdir, links to the source files will + # be created in directories within the target_subdir. We have to + # adjust toplevel_srcdir accordingly, so that configure finds + # install-sh and other auxiliary files that live in the top-level + # source directory. + if test "${srcdir}" = "."; then + if test -z "${with_target_subdir}"; then + toprel=".." + else + if test "${with_target_subdir}" != "."; then + toprel="${with_multisrctop}../.." + else + toprel="${with_multisrctop}.." + fi + fi + else + toprel=".." + fi ac_aux_dir= ! for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" *************** for ac_dir in $srcdir $srcdir/.. $srcdir *** 573,584 **** fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Do some error checking and defaulting for the host and target type. # The inputs are: --- 593,608 ---- fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + toplevel_srcdir=\${top_srcdir}/$toprel + + + # Do some error checking and defaulting for the host and target type. # The inputs are: *************** else { echo "configure: error: can not r *** 607,613 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:611: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 631,637 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:635: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 628,634 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:632: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 652,658 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:656: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 646,652 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:650: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 670,676 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:674: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** else *** 678,689 **** fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ! echo "configure:682: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:706: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else --- 718,724 ---- return __CYGWIN__; ; return 0; } EOF ! if { (eval echo configure:722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else *************** echo "$ac_t""$ac_cv_cygwin" 1>&6 *** 711,729 **** CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:715: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else --- 735,753 ---- CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:739: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else *************** echo "$ac_t""$ac_cv_mingw32" 1>&6 *** 740,797 **** MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes - # Check whether --enable-multilib or --disable-multilib was given. - if test "${enable_multilib+set}" = set; then - enableval="$enable_multilib" - case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; - esac - else - multilib=yes - fi - - # When building with srcdir == objdir, links to the source files will - # be created in directories within the target_subdir. We have to - # adjust toplevel_srcdir accordingly, so that configure finds - # install-sh and other auxiliary files that live in the top-level - # source directory. - if test "${srcdir}" = "."; then - if test -z "${with_target_subdir}"; then - toprel=".." - else - if test "${with_target_subdir}" != "."; then - toprel="${with_multisrctop}../.." - else - toprel="${with_multisrctop}.." - fi - fi - else - toprel=".." - fi - ac_aux_dir= - for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi - done - if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - toplevel_srcdir=\${top_srcdir}/$toprel - - # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount --- 764,769 ---- *************** esac *** 810,816 **** # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:814: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 782,788 ---- # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:786: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 866,872 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:870: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 838,844 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:842: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$CC"; then *** 896,902 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:900: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 868,874 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:872: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 945,951 **** fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:949: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 917,923 ---- fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:921: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 954,960 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 926,932 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:930: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** if test $ac_cv_prog_gcc = yes; then *** 969,975 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:973: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 941,947 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:945: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1000,1006 **** # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1004: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 972,978 ---- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:976: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1032,1038 **** # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1036: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1004,1010 ---- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1008: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1064,1070 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1068: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1036,1042 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1040: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1096,1102 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1100: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1068,1074 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1072: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1140,1146 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1144: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1112,1118 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1116: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_DATA" && INSTALL_DATA= *** 1208,1214 **** echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1212: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1180,1186 ---- echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1184: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1218,1227 **** rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.c | *.o | *.obj | *.ilk | *.pdb) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done --- 1190,1199 ---- rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done *************** glibcpp_toolexeclibdir=no *** 1248,1260 **** glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 ! echo "configure:1252: checking for interface version number" >&5 libstdcxx_interface=$INTERFACE echo "$ac_t""$libstdcxx_interface" 1>&6 # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:1258: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" --- 1220,1232 ---- glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 ! echo "configure:1224: checking for interface version number" >&5 libstdcxx_interface=$INTERFACE echo "$ac_t""$libstdcxx_interface" 1>&6 # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:1230: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" *************** fi *** 1308,1314 **** compiler_name=f771 rm -f skip-this-dir echo $ac_n "checking if compiler $compiler_name has been built""... $ac_c" 1>&6 ! echo "configure:1312: checking if compiler $compiler_name has been built" >&5 if eval "test \"`echo '$''{'g77_cv_compiler_exists'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1280,1286 ---- compiler_name=f771 rm -f skip-this-dir echo $ac_n "checking if compiler $compiler_name has been built""... $ac_c" 1>&6 ! echo "configure:1284: checking if compiler $compiler_name has been built" >&5 if eval "test \"`echo '$''{'g77_cv_compiler_exists'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_prog=ld *** 1416,1422 **** if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1420: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1388,1394 ---- if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1392: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1420: checking for ld us *** 1446,1455 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1450: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1453: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1418,1427 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1422: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1425: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 1484,1490 **** fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1488: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1456,1462 ---- fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1460: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** with_gnu_ld=$lt_cv_prog_gnu_ld *** 1501,1507 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1505: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1473,1479 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1477: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** reload_flag=$lt_cv_ld_reload_flag *** 1513,1519 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1517: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1485,1491 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1489: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** NM="$lt_cv_path_NM" *** 1551,1557 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1555: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1523,1529 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1527: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** file_magic_cmd=$lt_cv_file_magic_cmd *** 1715,1727 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:1719: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:1725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 1687,1699 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:1691: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:1697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; *************** case $deplibs_check_method in *** 1745,1751 **** file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:1749: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1717,1723 ---- file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:1721: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1807,1813 **** if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:1811: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1779,1785 ---- if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:1783: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 1878,1884 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1882: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1850,1856 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1854: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1910,1916 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1914: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1882,1888 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1886: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1945,1951 **** # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1949: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1917,1923 ---- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1921: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1977,1983 **** # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1981: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1949,1955 ---- # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1953: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test x"$pic_mode" = xno && libtool_flags *** 2044,2051 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2048 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2049: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2016,2023 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2020 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" *************** case $host in *** 2066,2072 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2070: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2038,2044 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2042: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2079,2092 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else --- 2051,2064 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else *************** else *** 2210,2216 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2214: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2182,2188 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2186: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2250,2256 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2254: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2222,2228 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2226: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_SCRIPT" && INSTALL_SCR *** 2303,2309 **** test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:2307: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2275,2281 ---- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:2279: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** fi *** 2332,2338 **** # Sanity check for the cross-compilation case: echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2336: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 2304,2310 ---- # Sanity check for the cross-compilation case: echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2308: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 2347,2359 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2357: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2319,2331 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2364,2376 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2336,2348 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2346: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2381,2393 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2353,2365 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** echo "$ac_t""$CPP" 1>&6 *** 2413,2429 **** ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for stdio.h""... $ac_c" 1>&6 ! echo "configure:2417: checking for stdio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2427: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2385,2401 ---- ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for stdio.h""... $ac_c" 1>&6 ! echo "configure:2389: checking for stdio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2399: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2451,2462 **** echo $ac_n "checking for built-in g77 integer types""... $ac_c" 1>&6 ! echo "configure:2455: checking for built-in g77 integer types" >&5 if eval "test \"`echo '$''{'libf2c_cv_has_g77_builtin_types'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:2427: checking for built-in g77 integer types" >&5 if eval "test \"`echo '$''{'libf2c_cv_has_g77_builtin_types'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libf2c_cv_has_g77_builtin_types=yes else --- 2438,2444 ---- __g77_ulongint g77ul; ; return 0; } EOF ! if { (eval echo configure:2442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libf2c_cv_has_g77_builtin_types=yes else *************** s%@includedir@%$includedir%g *** 2642,2647 **** --- 2614,2620 ---- s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g + s%@toplevel_srcdir@%$toplevel_srcdir%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g *************** s%@build_alias@%$build_alias%g *** 2657,2663 **** s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g - s%@toplevel_srcdir@%$toplevel_srcdir%g s%@glibcpp_builddir@%$glibcpp_builddir%g s%@glibcpp_srcdir@%$glibcpp_srcdir%g s%@LN_S@%$LN_S%g --- 2630,2635 ---- diff -Nrc3pad gcc-3.1/libf2c/configure.in gcc-3.1.1/libf2c/configure.in *** gcc-3.1/libf2c/configure.in Wed May 8 04:25:36 2002 --- gcc-3.1.1/libf2c/configure.in Wed Jun 26 04:15:29 2002 *************** AC_INIT(libF77/Version.c) *** 28,33 **** --- 28,35 ---- # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD + GLIBCPP_TOPREL_CONFIGURE + AC_CANONICAL_SYSTEM target_alias=${target_alias-$target} AC_SUBST(target_alias) diff -Nrc3pad gcc-3.1/libf2c/libF77/Version.c gcc-3.1.1/libf2c/libF77/Version.c *** gcc-3.1/libf2c/libF77/Version.c Tue May 14 21:42:29 2002 --- gcc-3.1.1/libf2c/libF77/Version.c Thu Jul 25 23:40:37 2002 *************** static char junk[] = "\n@(#)LIBF77 VERSI *** 3,9 **** /* */ ! char __G77_LIBF77_VERSION__[] = "3.1 20020514 (release)"; /* 2.00 11 June 1980. File version.c added to library. --- 3,9 ---- /* */ ! char __G77_LIBF77_VERSION__[] = "3.1.1 20020725 (release)"; /* 2.00 11 June 1980. File version.c added to library. diff -Nrc3pad gcc-3.1/libf2c/libI77/Version.c gcc-3.1.1/libf2c/libI77/Version.c *** gcc-3.1/libf2c/libI77/Version.c Tue May 14 21:42:32 2002 --- gcc-3.1.1/libf2c/libI77/Version.c Thu Jul 25 23:40:39 2002 *************** static char junk[] = "\n@(#) LIBI77 VERS *** 3,9 **** /* */ ! char __G77_LIBI77_VERSION__[] = "3.1 20020514 (release)"; /* 2.01 $ format added --- 3,9 ---- /* */ ! char __G77_LIBI77_VERSION__[] = "3.1.1 20020725 (release)"; /* 2.01 $ format added diff -Nrc3pad gcc-3.1/libf2c/libU77/Version.c gcc-3.1.1/libf2c/libU77/Version.c *** gcc-3.1/libf2c/libU77/Version.c Tue May 14 21:42:35 2002 --- gcc-3.1.1/libf2c/libU77/Version.c Thu Jul 25 23:40:41 2002 *************** *** 1,6 **** static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; ! char __G77_LIBU77_VERSION__[] = "3.1 20020514 (release)"; #include --- 1,6 ---- static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; ! char __G77_LIBU77_VERSION__[] = "3.1.1 20020725 (release)"; #include diff -Nrc3pad gcc-3.1/libffi/ChangeLog gcc-3.1.1/libffi/ChangeLog *** gcc-3.1/libffi/ChangeLog Wed May 15 02:24:39 2002 --- gcc-3.1.1/libffi/ChangeLog Thu Jul 25 23:39:54 2002 *************** *** 1,3 **** --- 1,21 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-28 Bo Thorsen + + * src/x86/ffi.c (ffi_prep_incoming_args_SYSV): Remove avn + here too. + + 2002-05-27 Roger Sayle + + * src/x86/ffi.c (ffi_prep_args): Remove reference to avn. + + 2002-05-27 Bo Thorsen + + * src/x86/ffi.c (ffi_prep_args): Remove unused variable and + fix formatting. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libffi/src/x86/ffi.c gcc-3.1.1/libffi/src/x86/ffi.c *** gcc-3.1/libffi/src/x86/ffi.c Sun Oct 7 18:02:45 2001 --- gcc-3.1.1/libffi/src/x86/ffi.c Tue May 28 09:22:08 2002 *************** void ffi_prep_args(char *stack, extended *** 37,43 **** { register unsigned int i; register int tmp; - register unsigned int avn; register void **p_argv; register char *argp; register ffi_type **p_arg; --- 37,42 ---- *************** void ffi_prep_args(char *stack, extended *** 45,117 **** tmp = 0; argp = stack; ! if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT ) { ! *(void **) argp = ecif->rvalue; ! argp += 4; ! } - avn = ecif->cif->nargs; p_argv = ecif->avalue; for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types; ! (i != 0) && (avn != 0); i--, p_arg++) { size_t z; /* Align if necessary */ ! if (((*p_arg)->alignment - 1) & (unsigned) argp) { argp = (char *) ALIGN(argp, (*p_arg)->alignment); - } ! if (avn != 0) { ! avn--; ! z = (*p_arg)->size; ! if (z < sizeof(int)) { ! z = sizeof(int); ! switch ((*p_arg)->type) ! { ! case FFI_TYPE_SINT8: ! *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv); ! break; ! ! case FFI_TYPE_UINT8: ! *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv); ! break; ! ! case FFI_TYPE_SINT16: ! *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv); ! break; ! ! case FFI_TYPE_UINT16: ! *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv); ! break; ! ! case FFI_TYPE_SINT32: ! *(signed int *) argp = (signed int)*(SINT32 *)(* p_argv); ! break; ! ! case FFI_TYPE_UINT32: ! *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv); ! break; ! case FFI_TYPE_STRUCT: ! *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv); ! break; ! default: ! FFI_ASSERT(0); ! } ! } ! else ! { ! memcpy(argp, *p_argv, z); } - p_argv++; - argp += z; } } return; --- 44,111 ---- tmp = 0; argp = stack; ! if (ecif->cif->rtype->type == FFI_TYPE_STRUCT) ! { ! *(void **) argp = ecif->rvalue; ! argp += 4; ! } p_argv = ecif->avalue; for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types; ! i != 0; i--, p_arg++) { size_t z; /* Align if necessary */ ! if (((*p_arg)->alignment - 1) & (unsigned) argp) argp = (char *) ALIGN(argp, (*p_arg)->alignment); ! z = (*p_arg)->size; ! if (z < sizeof(int)) { ! z = sizeof(int); ! switch ((*p_arg)->type) { ! case FFI_TYPE_SINT8: ! *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv); ! break; ! case FFI_TYPE_UINT8: ! *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv); ! break; ! case FFI_TYPE_SINT16: ! *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv); ! break; ! ! case FFI_TYPE_UINT16: ! *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv); ! break; ! ! case FFI_TYPE_SINT32: ! *(signed int *) argp = (signed int)*(SINT32 *)(* p_argv); ! break; ! ! case FFI_TYPE_UINT32: ! *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv); ! break; ! ! case FFI_TYPE_STRUCT: ! *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv); ! break; ! ! default: ! FFI_ASSERT(0); } } + else + { + memcpy(argp, *p_argv, z); + } + p_argv++; + argp += z; } return; *************** ffi_prep_incoming_args_SYSV(char *stack, *** 273,279 **** { register unsigned int i; register int tmp; - register unsigned int avn; register void **p_argv; register char *argp; register ffi_type **p_arg; --- 267,272 ---- *************** ffi_prep_incoming_args_SYSV(char *stack, *** 286,320 **** argp += 4; } - avn = cif->nargs; p_argv = avalue; ! for (i = cif->nargs, p_arg = cif->arg_types; ! (i != 0) && (avn != 0); ! i--, p_arg++) { size_t z; /* Align if necessary */ ! if (((*p_arg)->alignment - 1) & (unsigned) argp) { argp = (char *) ALIGN(argp, (*p_arg)->alignment); - } ! if (avn != 0) ! { ! avn--; ! z = (*p_arg)->size; ! /* because we're little endian, this is ! what it turns into. */ ! *p_argv = (void*) argp; ! p_argv++; ! argp += z; ! } } ! return; } --- 279,304 ---- argp += 4; } p_argv = avalue; ! for (i = cif->nargs, p_arg = cif->arg_types; i != 0; i--, p_arg++) { size_t z; /* Align if necessary */ ! if (((*p_arg)->alignment - 1) & (unsigned) argp) argp = (char *) ALIGN(argp, (*p_arg)->alignment); ! z = (*p_arg)->size; ! /* because we're little endian, this is what it turns into. */ ! *p_argv = (void*) argp; ! p_argv++; ! argp += z; } ! return; } diff -Nrc3pad gcc-3.1/libiberty/ChangeLog gcc-3.1.1/libiberty/ChangeLog *** gcc-3.1/libiberty/ChangeLog Wed May 15 02:24:47 2002 --- gcc-3.1.1/libiberty/ChangeLog Thu Jul 25 23:40:09 2002 *************** *** 1,6 **** ! 2002-05-14 Release Manager ! * GCC 3.1 Released. 2002-05-14 Release Manager --- 1,17 ---- ! 2002-07-25 Release Manager ! * GCC 3.1.1 Released. ! ! 2002-07-01 Mark Mitchell ! ! * cp-demangle.c (demangle_operator_name): Add type_arg parameter. ! Set it for the "st" operator. ! (demangle_expression): Handle expressions with types as arguments. ! ! 2002-05-31 Roman Lechtchinsky ! ! * configure.in: Fix typo in the code checking for sys_errlist. ! * configure: Regenerated. 2002-05-14 Release Manager diff -Nrc3pad gcc-3.1/libiberty/configure gcc-3.1.1/libiberty/configure *** gcc-3.1/libiberty/configure Thu Jan 31 18:19:38 2002 --- gcc-3.1.1/libiberty/configure Fri May 31 19:36:15 2002 *************** else *** 2803,2809 **** #include "confdefs.h" int *p; int main() { ! extern int $v []; p = &$v; ; return 0; } EOF if { (eval echo configure:2810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then --- 2803,2809 ---- #include "confdefs.h" int *p; int main() { ! extern int $v []; p = $v; ; return 0; } EOF if { (eval echo configure:2810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then diff -Nrc3pad gcc-3.1/libiberty/configure.in gcc-3.1.1/libiberty/configure.in *** gcc-3.1/libiberty/configure.in Wed May 8 04:26:02 2002 --- gcc-3.1.1/libiberty/configure.in Fri May 31 19:36:15 2002 *************** if test -z "${setobjs}"; then *** 371,377 **** for v in $vars; do AC_MSG_CHECKING([for $v]) AC_CACHE_VAL(libiberty_cv_var_$v, ! [AC_TRY_LINK([int *p;], [extern int $v []; p = &$v;], [eval "libiberty_cv_var_$v=yes"], [eval "libiberty_cv_var_$v=no"])]) if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then --- 371,377 ---- for v in $vars; do AC_MSG_CHECKING([for $v]) AC_CACHE_VAL(libiberty_cv_var_$v, ! [AC_TRY_LINK([int *p;], [extern int $v []; p = $v;], [eval "libiberty_cv_var_$v=yes"], [eval "libiberty_cv_var_$v=no"])]) if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then diff -Nrc3pad gcc-3.1/libiberty/cp-demangle.c gcc-3.1.1/libiberty/cp-demangle.c *** gcc-3.1/libiberty/cp-demangle.c Mon Apr 1 22:09:10 2002 --- gcc-3.1.1/libiberty/cp-demangle.c Tue Jul 2 03:14:18 2002 *************** *** 1,5 **** /* Demangler for IA64 / g++ V3 ABI. ! Copyright (C) 2000, 2001 Free Software Foundation, Inc. Written by Alex Samuel . This file is part of GNU CC. --- 1,5 ---- /* Demangler for IA64 / g++ V3 ABI. ! Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. Written by Alex Samuel . This file is part of GNU CC. *************** static status_t demangle_number_literall *** 898,904 **** static status_t demangle_identifier PARAMS ((demangling_t, int, dyn_string_t)); static status_t demangle_operator_name ! PARAMS ((demangling_t, int, int *)); static status_t demangle_nv_offset PARAMS ((demangling_t)); static status_t demangle_v_offset --- 898,904 ---- static status_t demangle_identifier PARAMS ((demangling_t, int, dyn_string_t)); static status_t demangle_operator_name ! PARAMS ((demangling_t, int, int *, int *)); static status_t demangle_nv_offset PARAMS ((demangling_t)); static status_t demangle_v_offset *************** demangle_unqualified_name (dm, suppress_ *** 1325,1331 **** if (peek == 'c' && peek_char_next (dm) == 'v') *suppress_return_type = 1; ! RETURN_IF_ERROR (demangle_operator_name (dm, 0, &num_args)); } else if (peek == 'C' || peek == 'D') { --- 1325,1331 ---- if (peek == 'c' && peek_char_next (dm) == 'v') *suppress_return_type = 1; ! RETURN_IF_ERROR (demangle_operator_name (dm, 0, &num_args, NULL)); } else if (peek == 'C' || peek == 'D') { *************** demangle_identifier (dm, length, identif *** 1501,1507 **** /* Demangles and emits an . If SHORT_NAME is non-zero, the short form is emitted; otherwise the full source form (`operator +' etc.) is emitted. *NUM_ARGS is set to the number of ! operands that the operator takes. ::= nw # new --- 1501,1509 ---- /* Demangles and emits an . If SHORT_NAME is non-zero, the short form is emitted; otherwise the full source form (`operator +' etc.) is emitted. *NUM_ARGS is set to the number of ! operands that the operator takes. If TYPE_ARG is non-NULL, ! *TYPE_ARG is set to 1 if the first argument is a type and 0 ! otherwise. ::= nw # new *************** demangle_identifier (dm, length, identif *** 1551,1565 **** ::= cl # () ::= ix # [] ::= qu # ? ! ::= sz # sizeof ::= cv # cast ::= v [0-9] # vendor extended operator */ static status_t ! demangle_operator_name (dm, short_name, num_args) demangling_t dm; int short_name; int *num_args; { struct operator_code { --- 1553,1569 ---- ::= cl # () ::= ix # [] ::= qu # ? ! ::= st # sizeof (a type) ! ::= sz # sizeof (an expression) ::= cv # cast ::= v [0-9] # vendor extended operator */ static status_t ! demangle_operator_name (dm, short_name, num_args, type_arg) demangling_t dm; int short_name; int *num_args; + int *type_arg; { struct operator_code { *************** demangle_operator_name (dm, short_name, *** 1633,1638 **** --- 1637,1646 ---- DEMANGLE_TRACE ("operator-name", dm); + /* Assume the first argument is not a type. */ + if (type_arg) + *type_arg = 0; + /* Is this a vendor-extended operator? */ if (c0 == 'v' && IS_DIGIT (c1)) { *************** demangle_operator_name (dm, short_name, *** 1652,1657 **** --- 1660,1675 ---- return STATUS_OK; } + /* Is it the sizeof variant that takes a type? */ + if (c0 == 's' && c1 == 't') + { + RETURN_IF_ERROR (result_add (dm, " sizeof")); + *num_args = 1; + if (type_arg) + *type_arg = 1; + return STATUS_OK; + } + /* Perform a binary search for the operator code. */ while (1) { *************** demangle_expression (dm) *** 3154,3159 **** --- 3172,3178 ---- /* An operator expression. */ { int num_args; + int type_arg; status_t status = STATUS_OK; dyn_string_t operator_name; *************** demangle_expression (dm) *** 3161,3167 **** operations in infix notation, capture the operator name first. */ RETURN_IF_ERROR (result_push (dm)); ! RETURN_IF_ERROR (demangle_operator_name (dm, 1, &num_args)); operator_name = (dyn_string_t) result_pop (dm); /* If it's binary, do an operand first. */ --- 3180,3187 ---- operations in infix notation, capture the operator name first. */ RETURN_IF_ERROR (result_push (dm)); ! RETURN_IF_ERROR (demangle_operator_name (dm, 1, &num_args, ! &type_arg)); operator_name = (dyn_string_t) result_pop (dm); /* If it's binary, do an operand first. */ *************** demangle_expression (dm) *** 3182,3188 **** /* Emit its second (if binary) or only (if unary) operand. */ RETURN_IF_ERROR (result_add_char (dm, '(')); ! RETURN_IF_ERROR (demangle_expression (dm)); RETURN_IF_ERROR (result_add_char (dm, ')')); /* The ternary operator takes a third operand. */ --- 3202,3211 ---- /* Emit its second (if binary) or only (if unary) operand. */ RETURN_IF_ERROR (result_add_char (dm, '(')); ! if (type_arg) ! RETURN_IF_ERROR (demangle_type (dm)); ! else ! RETURN_IF_ERROR (demangle_expression (dm)); RETURN_IF_ERROR (result_add_char (dm, ')')); /* The ternary operator takes a third operand. */ diff -Nrc3pad gcc-3.1/libjava/ChangeLog gcc-3.1.1/libjava/ChangeLog *** gcc-3.1/libjava/ChangeLog Wed May 15 02:25:00 2002 --- gcc-3.1.1/libjava/ChangeLog Thu Jul 25 23:40:12 2002 *************** *** 1,3 **** --- 1,42 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-07-12 Jesse Rosenstock + + For PR libgcj/7292: + * java/lang/Character.java (toString(char)): Now static. + + 2002-06-23 Tom Tromey + + * Makefile.in: Rebuilt. + * Makefile.am ($(srcdir)/java/lang/Object.h, + $(srcdir)/java/lang/Class.h): Added dummy targets. + + 2002-06-10 Bryce McKinlay + + * configure.host: Disable hash synchronization and slow_pthread_self + for cygwin. + + 2002-06-06 Adam Megacz + + * java/io/natFileDescriptorWin32.cc (open): Disable Win32 file + locking, just like the Sun JVM does. + + 2002-06-03 Mark Mitchell + + 2002-05-23 Bryce McKinlay + * Makefile.am (all-recursive): Depend on $all_java_class_files so that + they build first. + * Makefile.in: Rebuilt. + + 2002-05-08 Mark Mitchell + * Makefile.am (all_java_source_files): New variable. + (all_java_class_files): Likewise. + .java.class: New rule. + (CLEANFILES): Remove tmp-list. + * Makefile.in: Regenerated. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libjava/Makefile.am gcc-3.1.1/libjava/Makefile.am *** gcc-3.1/libjava/Makefile.am Fri May 3 18:22:15 2002 --- gcc-3.1.1/libjava/Makefile.am Mon Jun 24 00:15:47 2002 *************** install-exec-hook: *** 163,207 **** $(LN_S) libgcjx.la gnu-awt-xlib.la; \ fi ! ## Make the .class files depend on the .zip file. This seems ! ## backwards, but is right. This doesn't catch all the .class files, ! ## but that is ok, because the ones it fails to pick up are defined in ! ## a .java file with some other class which is caught. Note that we ! ## only want to create headers for those files which do not have ! ## hand-maintained headers. ! $(built_java_source_files:.java=.class): libgcj-@gcc_version@.jar ! $(java_source_files:.java=.class): libgcj-@gcc_version@.jar ! ## The .class files for X will not be included in libgcj.jar, but the ! ## rule for libgcj.jar will cause all out-of-date .class files to be ! ## built. We need this to generate headers for the nat-files. ! $(x_java_source_files:.java=.class): libgcj-@gcc_version@.jar ! ## We have the zip file depend on the java sources and not the class ! ## files, because we don't know the names of all the class files. ! ## FIXME: this method fails in a peculiar case: if libgcj.jar is ! ## up-to-date, and foo.class is removed, and bar.java is touched, then ! ## `make libgcj.jar' will not rebuilt foo.class. That's because ! ## libgcj.jar is not out-of-date with respect to foo.java. ! libgcj-@gcc_version@.jar: $(built_java_source_files) $(java_source_files) $(x_java_source_files) ! ## Create a list of all Java sources, without exceeding any shell limits. ! @: $(shell echo Creating list of files to compile...) $(shell rm -f tmp-list || :) $(shell touch tmp-list) $(foreach source,$?,$(shell echo $(source) >> tmp-list)) ! @set fnord $(MAKEFLAGS); amf=$$2; fail=no; \ ! javac="$(JAVAC)"; \ ! cat tmp-list | (while read f; do \ ! echo $$javac $(JCFLAGS) -classpath \'\' -bootclasspath $(here):$(srcdir) -d $(here) $$f; \ ! $$javac $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) $$f \ ! || case "$$amf" in *=*) exit 1;; *k*) fail=yes ;; *) exit 1;; esac; \ ! done; \ ! test "$$fail" = no) ! -@rm -f tmp-list libgcj-@gcc_version@.jar ## Note that we explicitly want to include directory information. find java gnu javax org -type d -o -type f -name '*.class' | \ sed -e '/\/\./d' -e '/\/xlib/d' | \ $(ZIP) cfM0E@ $@ MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) $(x_javao_files) $(x_nat_files) $(x_nat_headers) ! CLEANFILES = tmp-list libgcj-@gcc_version@.jar clean-local: ## We just remove every .class file that was created. --- 163,188 ---- $(LN_S) libgcjx.la gnu-awt-xlib.la; \ fi ! all_java_source_files = \ ! $(java_source_files) \ ! $(built_java_source_files) \ ! $(x_java_source_files) ! all_java_class_files = $(all_java_source_files:.java=.class) ! .java.class: ! $(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) \ ! -d $(here) $< ! ! libgcj-@gcc_version@.jar: $(all_java_class_files) ! -@rm -f libgcj-@gcc_version@.jar ## Note that we explicitly want to include directory information. find java gnu javax org -type d -o -type f -name '*.class' | \ sed -e '/\/\./d' -e '/\/xlib/d' | \ $(ZIP) cfM0E@ $@ MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) $(x_javao_files) $(x_nat_files) $(x_nat_headers) ! CLEANFILES = libgcj-@gcc_version@.jar clean-local: ## We just remove every .class file that was created. *************** java/io/ObjectOutputStream$$PutField.h: *** 341,347 **** ## Headers we maintain by hand and which we want to install. extra_headers = java/lang/Object.h java/lang/Class.h ! $(extra_headers): @: ## Install the headers. It is fairly ugly that we have to do this by --- 322,328 ---- ## Headers we maintain by hand and which we want to install. extra_headers = java/lang/Object.h java/lang/Class.h ! $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h: @: ## Install the headers. It is fairly ugly that we have to do this by *************** texinfo: TexinfoDoclet.class *** 1910,1916 **** ## internally by libgcj. We can't make the .o files depend on nat_headers, ## because in that case we'll force a complete rebuild of ## the C++ code whenever any .java file is touched. ! all-recursive: $(nat_headers) $(x_nat_headers) ## ################################################################ --- 1891,1899 ---- ## internally by libgcj. We can't make the .o files depend on nat_headers, ## because in that case we'll force a complete rebuild of ## the C++ code whenever any .java file is touched. ! ## Also force all the class files to build first. This makes them build in ! ## the right order to improve performance. ! all-recursive: $(all_java_class_files) $(nat_headers) $(x_nat_headers) ## ################################################################ diff -Nrc3pad gcc-3.1/libjava/Makefile.in gcc-3.1.1/libjava/Makefile.in *** gcc-3.1/libjava/Makefile.in Wed May 15 02:40:18 2002 --- gcc-3.1.1/libjava/Makefile.in Thu Jul 25 23:50:38 2002 *************** *** 1,6 **** ! # Makefile.in generated automatically by automake 1.4 from Makefile.am ! # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. --- 1,6 ---- ! # Makefile.in generated automatically by automake 1.4-p5 from Makefile.am ! # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. *************** libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIB *** 227,234 **** libgcjx_la_LINK = $(LIBLINK) MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) $(x_javao_files) $(x_nat_files) $(x_nat_headers) ! CLEANFILES = tmp-list libgcj-@gcc_version@.jar SUFFIXES = .class .java .h --- 227,242 ---- libgcjx_la_LINK = $(LIBLINK) + all_java_source_files = \ + $(java_source_files) \ + $(built_java_source_files) \ + $(x_java_source_files) + + + all_java_class_files = $(all_java_source_files:.java=.class) + MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) $(x_javao_files) $(x_nat_files) $(x_nat_headers) ! CLEANFILES = libgcj-@gcc_version@.jar SUFFIXES = .class .java .h *************** LINK = $(LIBTOOL) --mode=link $(CCLD) $( *** 1724,1732 **** DATA = $(jar_DATA) $(toolexeclib_DATA) DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in NEWS \ ! THANKS acconfig.h acinclude.m4 aclocal.m4 configure configure.in \ ! gcj/libgcj-config.h.in gcj/stamp-h2.in include/config.h.in \ ! include/stamp-h1.in libgcj-test.spec.in libgcj.spec.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) --- 1732,1739 ---- DATA = $(jar_DATA) $(toolexeclib_DATA) DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in NEWS \ ! THANKS acinclude.m4 aclocal.m4 configure configure.in \ ! libgcj-test.spec.in libgcj.spec.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) *************** config.status: $(srcdir)/configure $(CON *** 2712,2764 **** $(SHELL) ./config.status --recheck $(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) - - include/config.h: include/stamp-h1 - @if test ! -f $@; then \ - rm -f include/stamp-h1; \ - $(MAKE) include/stamp-h1; \ - else :; fi - include/stamp-h1: $(srcdir)/include/config.h.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=include/config.h \ - $(SHELL) ./config.status - @echo timestamp > include/stamp-h1 2> /dev/null - $(srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/include/stamp-h1.in - @if test ! -f $@; then \ - rm -f $(srcdir)/include/stamp-h1.in; \ - $(MAKE) $(srcdir)/include/stamp-h1.in; \ - else :; fi - $(srcdir)/include/stamp-h1.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/include/stamp-h1.in 2> /dev/null - - gcj/libgcj-config.h: gcj/stamp-h2 - @if test ! -f $@; then \ - rm -f gcj/stamp-h2; \ - $(MAKE) gcj/stamp-h2; \ - else :; fi - gcj/stamp-h2: $(srcdir)/gcj/libgcj-config.h.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=gcj/libgcj-config.h \ - $(SHELL) ./config.status - @echo timestamp > gcj/stamp-h2 2> /dev/null - $(srcdir)/gcj/libgcj-config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/gcj/stamp-h2.in - @if test ! -f $@; then \ - rm -f $(srcdir)/gcj/stamp-h2.in; \ - $(MAKE) $(srcdir)/gcj/stamp-h2.in; \ - else :; fi - $(srcdir)/gcj/stamp-h2.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/gcj/stamp-h2.in 2> /dev/null - - mostlyclean-hdr: - - clean-hdr: - - distclean-hdr: - -rm -f include/config.h gcj/libgcj-config.h - - maintainer-clean-hdr: libgcj.spec: $(top_builddir)/config.status libgcj.spec.in cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status libgcj-test.spec: $(top_builddir)/config.status libgcj-test.spec.in --- 2719,2724 ---- *************** maintainer-clean-recursive: *** 2980,2986 **** dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ ! test "$$subdir" = "." && dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ --- 2940,2946 ---- dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ ! test "$$subdir" != "." || dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ *************** distclean-generic: *** 3193,3224 **** -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: ! mostlyclean-am: mostlyclean-hdr mostlyclean-toolexeclibLTLIBRARIES \ ! mostlyclean-compile mostlyclean-libtool \ ! mostlyclean-binPROGRAMS mostlyclean-noinstPROGRAMS \ ! mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive ! clean-am: clean-hdr clean-toolexeclibLTLIBRARIES clean-compile \ ! clean-libtool clean-binPROGRAMS clean-noinstPROGRAMS \ ! clean-tags clean-depend clean-generic mostlyclean-am \ ! clean-local clean: clean-recursive ! distclean-am: distclean-hdr distclean-toolexeclibLTLIBRARIES \ ! distclean-compile distclean-libtool \ ! distclean-binPROGRAMS distclean-noinstPROGRAMS \ ! distclean-tags distclean-depend distclean-generic \ ! clean-am -rm -f libtool distclean: distclean-recursive -rm -f config.status ! maintainer-clean-am: maintainer-clean-hdr \ ! maintainer-clean-toolexeclibLTLIBRARIES \ maintainer-clean-compile maintainer-clean-libtool \ maintainer-clean-binPROGRAMS \ maintainer-clean-noinstPROGRAMS maintainer-clean-tags \ --- 3153,3181 ---- -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: ! mostlyclean-am: mostlyclean-toolexeclibLTLIBRARIES mostlyclean-compile \ ! mostlyclean-libtool mostlyclean-binPROGRAMS \ ! mostlyclean-noinstPROGRAMS mostlyclean-tags \ ! mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive ! clean-am: clean-toolexeclibLTLIBRARIES clean-compile clean-libtool \ ! clean-binPROGRAMS clean-noinstPROGRAMS clean-tags \ ! clean-depend clean-generic mostlyclean-am clean-local clean: clean-recursive ! distclean-am: distclean-toolexeclibLTLIBRARIES distclean-compile \ ! distclean-libtool distclean-binPROGRAMS \ ! distclean-noinstPROGRAMS distclean-tags \ ! distclean-depend distclean-generic clean-am -rm -f libtool distclean: distclean-recursive -rm -f config.status ! maintainer-clean-am: maintainer-clean-toolexeclibLTLIBRARIES \ maintainer-clean-compile maintainer-clean-libtool \ maintainer-clean-binPROGRAMS \ maintainer-clean-noinstPROGRAMS maintainer-clean-tags \ *************** maintainer-clean-am: maintainer-clean-h *** 3230,3238 **** maintainer-clean: maintainer-clean-recursive -rm -f config.status ! .PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ ! mostlyclean-toolexeclibLTLIBRARIES distclean-toolexeclibLTLIBRARIES \ ! clean-toolexeclibLTLIBRARIES maintainer-clean-toolexeclibLTLIBRARIES \ uninstall-toolexeclibLTLIBRARIES install-toolexeclibLTLIBRARIES \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile mostlyclean-libtool distclean-libtool \ --- 3187,3195 ---- maintainer-clean: maintainer-clean-recursive -rm -f config.status ! .PHONY: mostlyclean-toolexeclibLTLIBRARIES \ ! distclean-toolexeclibLTLIBRARIES clean-toolexeclibLTLIBRARIES \ ! maintainer-clean-toolexeclibLTLIBRARIES \ uninstall-toolexeclibLTLIBRARIES install-toolexeclibLTLIBRARIES \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile mostlyclean-libtool distclean-libtool \ *************** install-exec-hook: *** 3265,3286 **** $(LN_S) libgcjx.la gnu-awt-xlib.la; \ fi ! $(built_java_source_files:.java=.class): libgcj-@gcc_version@.jar ! $(java_source_files:.java=.class): libgcj-@gcc_version@.jar ! ! $(x_java_source_files:.java=.class): libgcj-@gcc_version@.jar ! libgcj-@gcc_version@.jar: $(built_java_source_files) $(java_source_files) $(x_java_source_files) ! @: $(shell echo Creating list of files to compile...) $(shell rm -f tmp-list || :) $(shell touch tmp-list) $(foreach source,$?,$(shell echo $(source) >> tmp-list)) ! @set fnord $(MAKEFLAGS); amf=$$2; fail=no; \ ! javac="$(JAVAC)"; \ ! cat tmp-list | (while read f; do \ ! echo $$javac $(JCFLAGS) -classpath \'\' -bootclasspath $(here):$(srcdir) -d $(here) $$f; \ ! $$javac $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) $$f \ ! || case "$$amf" in *=*) exit 1;; *k*) fail=yes ;; *) exit 1;; esac; \ ! done; \ ! test "$$fail" = no) ! -@rm -f tmp-list libgcj-@gcc_version@.jar find java gnu javax org -type d -o -type f -name '*.class' | \ sed -e '/\/\./d' -e '/\/xlib/d' | \ $(ZIP) cfM0E@ $@ --- 3222,3233 ---- $(LN_S) libgcjx.la gnu-awt-xlib.la; \ fi ! .java.class: ! $(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) \ ! -d $(here) $< ! libgcj-@gcc_version@.jar: $(all_java_class_files) ! -@rm -f libgcj-@gcc_version@.jar find java gnu javax org -type d -o -type f -name '*.class' | \ sed -e '/\/\./d' -e '/\/xlib/d' | \ $(ZIP) cfM0E@ $@ *************** java/io/ObjectOutputStream$$PutField.h: *** 3391,3397 **** $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ 'java/io/ObjectOutputStream$$PutField' ! $(extra_headers): @: install-data-local: --- 3338,3344 ---- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ 'java/io/ObjectOutputStream$$PutField' ! $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h: @: install-data-local: *************** texinfo: TexinfoDoclet.class *** 3516,3522 **** -include deps.mk ! all-recursive: $(nat_headers) $(x_nat_headers) # Multilib support. .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ --- 3463,3469 ---- -include deps.mk ! all-recursive: $(all_java_class_files) $(nat_headers) $(x_nat_headers) # Multilib support. .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ diff -Nrc3pad gcc-3.1/libjava/configure.host gcc-3.1.1/libjava/configure.host *** gcc-3.1/libjava/configure.host Sun Apr 21 09:35:59 2002 --- gcc-3.1.1/libjava/configure.host Mon Jun 10 04:15:26 2002 *************** case "${host}" in *** 136,141 **** --- 136,147 ---- *-*-freebsd*) slow_pthread_self= ;; + *-cygwin*) + # The cygwin linker doesn't do 8-byte alignment by default, so + # disable hash synchronization for now. + enable_hash_synchronization_default=no + slow_pthread_self= + ;; esac libgcj_cflags="${libgcj_cflags} ${libgcj_flags}" diff -Nrc3pad gcc-3.1/libjava/java/io/natFileDescriptorWin32.cc gcc-3.1.1/libjava/java/io/natFileDescriptorWin32.cc *** gcc-3.1/libjava/java/io/natFileDescriptorWin32.cc Sun Mar 10 03:34:59 2002 --- gcc-3.1.1/libjava/java/io/natFileDescriptorWin32.cc Thu Jun 6 20:06:03 2002 *************** java::io::FileDescriptor::open (jstring *** 82,88 **** HANDLE handle = NULL; DWORD access = 0; - DWORD share = FILE_SHARE_READ; DWORD create = OPEN_EXISTING; char buf[MAX_PATH] = ""; --- 82,87 ---- *************** java::io::FileDescriptor::open (jstring *** 94,100 **** if ((jflags & READ) && (jflags & WRITE)) { access = GENERIC_READ | GENERIC_WRITE; - share = 0; if (jflags & APPEND) create = OPEN_ALWAYS; else --- 93,98 ---- *************** java::io::FileDescriptor::open (jstring *** 105,118 **** else { access = GENERIC_WRITE; - share = 0; if (jflags & APPEND) create = OPEN_ALWAYS; else create = CREATE_ALWAYS; } ! handle = CreateFile(buf, access, share, NULL, create, 0, NULL); if (handle == INVALID_HANDLE_VALUE) { --- 103,115 ---- else { access = GENERIC_WRITE; if (jflags & APPEND) create = OPEN_ALWAYS; else create = CREATE_ALWAYS; } ! handle = CreateFile(buf, access, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, create, 0, NULL); if (handle == INVALID_HANDLE_VALUE) { diff -Nrc3pad gcc-3.1/libjava/java/lang/Character.java gcc-3.1.1/libjava/java/lang/Character.java *** gcc-3.1/libjava/java/lang/Character.java Sun Apr 7 07:43:37 2002 --- gcc-3.1.1/libjava/java/lang/Character.java Fri Jul 12 21:13:22 2002 *************** public final class Character implements *** 1488,1494 **** * @return a String containing the character * @since 1.4 */ ! public String toString(char ch) { // This assumes that String.valueOf(char) can create a single-character // String more efficiently than through the public API. --- 1488,1494 ---- * @return a String containing the character * @since 1.4 */ ! public static String toString(char ch) { // This assumes that String.valueOf(char) can create a single-character // String more efficiently than through the public API. diff -Nrc3pad gcc-3.1/libjava/libltdl/ChangeLog gcc-3.1.1/libjava/libltdl/ChangeLog *** gcc-3.1/libjava/libltdl/ChangeLog Wed May 15 02:25:07 2002 --- gcc-3.1.1/libjava/libltdl/ChangeLog Thu Jul 25 23:40:15 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libjava/testsuite/ChangeLog gcc-3.1.1/libjava/testsuite/ChangeLog *** gcc-3.1/libjava/testsuite/ChangeLog Wed May 15 02:25:12 2002 --- gcc-3.1.1/libjava/testsuite/ChangeLog Thu Jul 25 23:40:17 2002 *************** *** 1,3 **** --- 1,11 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-04-12 Anthony Green + + * lib/libjava.exp: Use libgcj-VERSION.jar, not libgcj-3.1.jar. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libjava/testsuite/lib/libjava.exp gcc-3.1.1/libjava/testsuite/lib/libjava.exp *** gcc-3.1/libjava/testsuite/lib/libjava.exp Wed May 8 23:18:37 2002 --- gcc-3.1.1/libjava/testsuite/lib/libjava.exp Fri May 17 21:11:35 2002 *************** proc libjava_init { args } { *** 112,117 **** --- 112,118 ---- global TOOL_EXECUTABLE global original_ld_library_path global env objdir + global env gcc_version global tool_root_dir global libjava_libgcc_s_path *************** proc libjava_init { args } { *** 129,134 **** --- 130,140 ---- } } + # Determine the version so we can find the libgcj jar file. + set text [eval exec "$GCJ_UNDER_TEST --version 2>@ stdout"] + regexp -- "gcj \[^ \]+ (\[^ \]+) .*" $text ignore gcc_version + verbose "jar file is libgcj-$gcc_version.jar" + # FIXME: This finds libgcj.spec for the default multilib. # If thread models differ between multilibs, this has to be moved # to libjava_arguments *************** proc libjava_arguments {{mode compile}} *** 265,270 **** --- 271,277 ---- global runtests global env global tool_root_dir + global gcc_version global libjava_libgcc_s_path if [info exists LIBJAVA] { *************** proc libjava_arguments {{mode compile}} *** 330,338 **** verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)" # Set the CLASSPATH environment variable ! verbose "CLASSPATH is .:$srcdir/$subdir:$objdir:$objdir/../libgcj-3.1.jar" global env ! set env(CLASSPATH) ".:$srcdir/$subdir:$objdir:$objdir/../libgcj-3.1.jar" if {$mode == "link"} { global wrapper_file wrap_compile_flags; --- 337,345 ---- verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)" # Set the CLASSPATH environment variable ! verbose "CLASSPATH is .:$srcdir/$subdir:$objdir:$objdir/../libgcj-$gcc_version.jar" global env ! set env(CLASSPATH) ".:$srcdir/$subdir:$objdir:$objdir/../libgcj-$gcc_version.jar" if {$mode == "link"} { global wrapper_file wrap_compile_flags; diff -Nrc3pad gcc-3.1/libobjc/ChangeLog gcc-3.1.1/libobjc/ChangeLog *** gcc-3.1/libobjc/ChangeLog Wed May 15 02:25:18 2002 --- gcc-3.1.1/libobjc/ChangeLog Thu Jul 25 23:40:20 2002 *************** *** 1,3 **** --- 1,14 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-06-25 DJ Delorie + + * aclocal.m4 (GLIBCPP_CONFIGURE): Split out + GLIBCPP_TOPREL_CONFIGURE. + * configure.in: Call it before AC_CANONICAL_SYSTEM. + * configure: Regenerate. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libobjc/aclocal.m4 gcc-3.1.1/libobjc/aclocal.m4 *** gcc-3.1/libobjc/aclocal.m4 Mon Feb 11 18:10:05 2002 --- gcc-3.1.1/libobjc/aclocal.m4 Wed Jun 26 04:15:30 2002 *************** dnl PARTICULAR PURPOSE. *** 11,18 **** dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_CONFIGURE ! AC_DEFUN(GLIBCPP_CONFIGURE, [ dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], --- 11,18 ---- dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_TOPREL_CONFIGURE ! AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], *************** fi *** 43,49 **** --- 43,55 ---- AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) + ]) + dnl + dnl Initialize configure bits. + dnl + dnl GLIBCPP_CONFIGURE + AC_DEFUN(GLIBCPP_CONFIGURE, [ # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount diff -Nrc3pad gcc-3.1/libobjc/configure gcc-3.1.1/libobjc/configure *** gcc-3.1/libobjc/configure Wed May 8 04:27:29 2002 --- gcc-3.1.1/libobjc/configure Wed Jun 26 04:15:30 2002 *************** program_suffix=NONE *** 52,58 **** program_transform_name=s,x,x, silent= site= - sitefile= srcdir= target=NONE verbose= --- 52,57 ---- *************** Configuration: *** 167,173 **** --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX --- 166,171 ---- *************** EOF *** 338,348 **** -site=* | --site=* | --sit=*) site="$ac_optarg" ;; - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) --- 336,341 ---- *************** fi *** 508,523 **** srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$sitefile"; then ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ! fi fi - else - CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then --- 501,512 ---- srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then *************** fi *** 564,571 **** # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD ac_aux_dir= ! for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" --- 553,591 ---- # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD + + # Check whether --enable-multilib or --disable-multilib was given. + if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac + else + multilib=yes + fi + + # When building with srcdir == objdir, links to the source files will + # be created in directories within the target_subdir. We have to + # adjust toplevel_srcdir accordingly, so that configure finds + # install-sh and other auxiliary files that live in the top-level + # source directory. + if test "${srcdir}" = "."; then + if test -z "${with_target_subdir}"; then + toprel=".." + else + if test "${with_target_subdir}" != "."; then + toprel="${with_multisrctop}../.." + else + toprel="${with_multisrctop}.." + fi + fi + else + toprel=".." + fi ac_aux_dir= ! for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" *************** for ac_dir in $srcdir $srcdir/.. $srcdir *** 577,588 **** fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Do some error checking and defaulting for the host and target type. # The inputs are: --- 597,612 ---- fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + toplevel_srcdir=\${top_srcdir}/$toprel + + + # Do some error checking and defaulting for the host and target type. # The inputs are: *************** else { echo "configure: error: can not r *** 611,617 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:615: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 635,641 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:639: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 632,638 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:636: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 656,662 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:660: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 650,656 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:654: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 674,680 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:678: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** else *** 682,693 **** fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ! echo "configure:686: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:710: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else --- 722,728 ---- return __CYGWIN__; ; return 0; } EOF ! if { (eval echo configure:726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else *************** echo "$ac_t""$ac_cv_cygwin" 1>&6 *** 715,733 **** CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:719: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else --- 739,757 ---- CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:743: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else *************** echo "$ac_t""$ac_cv_mingw32" 1>&6 *** 744,801 **** MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes - # Check whether --enable-multilib or --disable-multilib was given. - if test "${enable_multilib+set}" = set; then - enableval="$enable_multilib" - case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; - esac - else - multilib=yes - fi - - # When building with srcdir == objdir, links to the source files will - # be created in directories within the target_subdir. We have to - # adjust toplevel_srcdir accordingly, so that configure finds - # install-sh and other auxiliary files that live in the top-level - # source directory. - if test "${srcdir}" = "."; then - if test -z "${with_target_subdir}"; then - toprel=".." - else - if test "${with_target_subdir}" != "."; then - toprel="${with_multisrctop}../.." - else - toprel="${with_multisrctop}.." - fi - fi - else - toprel=".." - fi - ac_aux_dir= - for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi - done - if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - toplevel_srcdir=\${top_srcdir}/$toprel - - # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount --- 768,773 ---- *************** esac *** 814,820 **** # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:818: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 786,792 ---- # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:790: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 870,876 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:874: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 842,848 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:846: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$CC"; then *** 900,906 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:904: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 872,878 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:876: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 949,955 **** fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:953: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 921,927 ---- fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:925: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 958,964 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:962: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 930,936 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** if test $ac_cv_prog_gcc = yes; then *** 973,979 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:977: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 945,951 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:949: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1004,1010 **** # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1008: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 976,982 ---- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:980: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1036,1042 **** # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1040: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1008,1014 ---- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1012: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1068,1074 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1072: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1040,1046 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1044: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1100,1106 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1104: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1072,1078 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1076: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1144,1150 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1148: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1116,1122 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1120: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_DATA" && INSTALL_DATA= *** 1212,1218 **** echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1216: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1184,1190 ---- echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1188: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1222,1231 **** rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.c | *.o | *.obj | *.ilk | *.pdb) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done --- 1194,1203 ---- rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done *************** glibcpp_toolexeclibdir=no *** 1252,1264 **** glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 ! echo "configure:1256: checking for interface version number" >&5 libstdcxx_interface=$INTERFACE echo "$ac_t""$libstdcxx_interface" 1>&6 # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:1262: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" --- 1224,1236 ---- glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 ! echo "configure:1228: checking for interface version number" >&5 libstdcxx_interface=$INTERFACE echo "$ac_t""$libstdcxx_interface" 1>&6 # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:1234: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" *************** fi *** 1312,1318 **** compiler_name=cc1obj rm -f skip-this-dir echo $ac_n "checking if compiler $compiler_name has been built""... $ac_c" 1>&6 ! echo "configure:1316: checking if compiler $compiler_name has been built" >&5 if eval "test \"`echo '$''{'objc_cv_compiler_exists'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1284,1290 ---- compiler_name=cc1obj rm -f skip-this-dir echo $ac_n "checking if compiler $compiler_name has been built""... $ac_c" 1>&6 ! echo "configure:1288: checking if compiler $compiler_name has been built" >&5 if eval "test \"`echo '$''{'objc_cv_compiler_exists'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_prog=ld *** 1424,1430 **** if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1428: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1396,1402 ---- if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1400: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1428: checking for ld us *** 1454,1463 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1458: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1461: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1426,1435 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1430: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1433: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 1492,1498 **** fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1496: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1464,1470 ---- fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1468: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** with_gnu_ld=$lt_cv_prog_gnu_ld *** 1509,1515 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1513: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1481,1487 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1485: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** reload_flag=$lt_cv_ld_reload_flag *** 1521,1527 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1525: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1493,1499 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1497: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** NM="$lt_cv_path_NM" *** 1559,1565 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1563: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1531,1537 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1535: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** file_magic_cmd=$lt_cv_file_magic_cmd *** 1723,1735 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:1727: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:1733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 1695,1707 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:1699: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:1705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; *************** case $deplibs_check_method in *** 1753,1759 **** file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:1757: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1725,1731 ---- file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:1729: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1815,1821 **** if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:1819: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1787,1793 ---- if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:1791: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 1886,1892 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1890: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1858,1864 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1862: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1918,1924 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1922: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1890,1896 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1894: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1953,1959 **** # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1957: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1925,1931 ---- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1929: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1985,1991 **** # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1989: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1957,1963 ---- # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1961: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test x"$pic_mode" = xno && libtool_flags *** 2052,2059 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2056 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2024,2031 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2028 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" *************** case $host in *** 2074,2080 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2078: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2046,2052 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2050: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2087,2100 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else --- 2059,2072 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else *************** echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 *** 2124,2130 **** # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2128: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2096,2102 ---- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2100: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2156,2162 **** # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2160: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2128,2134 ---- # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2132: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2191,2197 **** # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2195: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2163,2169 ---- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2167: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2223,2229 **** # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2227: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2195,2201 ---- # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2199: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2258,2264 **** # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2262: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2230,2236 ---- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2234: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2290,2296 **** # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2294: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2262,2268 ---- # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2266: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2326,2337 **** # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one echo $ac_n "checking if libtool should supply DllMain function""... $ac_c" 1>&6 ! echo "configure:2330: checking if libtool should supply DllMain function" >&5 if eval "test \"`echo '$''{'lt_cv_need_dllmain'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:2302: checking if libtool should supply DllMain function" >&5 if eval "test \"`echo '$''{'lt_cv_need_dllmain'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_need_dllmain=no else --- 2311,2317 ---- DllMain (0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:2315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_need_dllmain=no else *************** echo "$ac_t""$lt_cv_need_dllmain" 1>&6 *** 2360,2378 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mdll" echo $ac_n "checking how to link DLLs""... $ac_c" 1>&6 ! echo "configure:2364: checking how to link DLLs" >&5 if eval "test \"`echo '$''{'lt_cv_cc_dll_switch'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_dll_switch=-mdll else --- 2332,2350 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mdll" echo $ac_n "checking how to link DLLs""... $ac_c" 1>&6 ! echo "configure:2336: checking how to link DLLs" >&5 if eval "test \"`echo '$''{'lt_cv_cc_dll_switch'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_dll_switch=-mdll else *************** else *** 2490,2496 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2494: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2462,2468 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2466: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2530,2536 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2534: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2502,2508 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2506: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_SCRIPT" && INSTALL_SCR *** 2583,2589 **** test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:2587: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2555,2561 ---- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:2559: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** fi *** 2612,2618 **** # Sanity check for the cross-compilation case: echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2616: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 2584,2590 ---- # Sanity check for the cross-compilation case: echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2588: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 2627,2639 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2599,2611 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2644,2656 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2616,2628 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2661,2673 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2671: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2633,2645 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2643: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** echo "$ac_t""$CPP" 1>&6 *** 2693,2709 **** ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for stdio.h""... $ac_c" 1>&6 ! echo "configure:2697: checking for stdio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2707: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2665,2681 ---- ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for stdio.h""... $ac_c" 1>&6 ! echo "configure:2669: checking for stdio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2731,2742 **** echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2735: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2703,2714 ---- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2707: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** else *** 2744,2750 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2748: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2716,2722 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** rm -f conftest* *** 2761,2767 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2733,2739 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** fi *** 2779,2785 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2751,2757 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** if test "$cross_compiling" = yes; then *** 2800,2806 **** : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 2772,2778 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** if (XOR (islower (i), ISLOWER (i)) || to *** 2811,2817 **** exit (0); } EOF ! if { (eval echo configure:2815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else --- 2783,2789 ---- exit (0); } EOF ! if { (eval echo configure:2787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else *************** for ac_hdr in sched.h *** 2839,2855 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2843: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2811,2827 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2815: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2825: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 2879,2885 **** # Determine CFLAGS for gthread. echo $ac_n "checking for gthread cflags""... $ac_c" 1>&6 ! echo "configure:2883: checking for gthread cflags" >&5 if eval "test \"`echo '$''{'objc_cv_gthread_flags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2851,2857 ---- # Determine CFLAGS for gthread. echo $ac_n "checking for gthread cflags""... $ac_c" 1>&6 ! echo "configure:2855: checking for gthread cflags" >&5 if eval "test \"`echo '$''{'objc_cv_gthread_flags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** s%@includedir@%$includedir%g *** 3044,3049 **** --- 3016,3022 ---- s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g + s%@toplevel_srcdir@%$toplevel_srcdir%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g *************** s%@build_alias@%$build_alias%g *** 3059,3065 **** s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g - s%@toplevel_srcdir@%$toplevel_srcdir%g s%@glibcpp_builddir@%$glibcpp_builddir%g s%@glibcpp_srcdir@%$glibcpp_srcdir%g s%@LN_S@%$LN_S%g --- 3032,3037 ---- diff -Nrc3pad gcc-3.1/libobjc/configure.in gcc-3.1.1/libobjc/configure.in *** gcc-3.1/libobjc/configure.in Wed May 8 04:27:29 2002 --- gcc-3.1.1/libobjc/configure.in Wed Jun 26 04:15:30 2002 *************** AC_CONFIG_HEADER(config.h) *** 29,34 **** --- 29,36 ---- # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD + GLIBCPP_TOPREL_CONFIGURE + AC_CANONICAL_SYSTEM target_alias=${target_alias-$target} AC_SUBST(target_alias) diff -Nrc3pad gcc-3.1/libstdc++-v3/ChangeLog gcc-3.1.1/libstdc++-v3/ChangeLog *** gcc-3.1/libstdc++-v3/ChangeLog Wed May 15 02:25:24 2002 --- gcc-3.1.1/libstdc++-v3/ChangeLog Thu Jul 25 23:40:22 2002 *************** *** 1,7 **** ! 2002-05-14 Release Manager ! * GCC 3.1 Released. 2002-05-14 Release Manager * GCC 3.1 Released. --- 1,619 ---- ! 2002-07-25 Release Manager ! * GCC 3.1.1 Released. ! ! 2002-07-20 Phil Edwards ! ! Bulk documentation merge (copy) from trunk. ! * docs/doxygen/TODO, docs/doxygen/run_doxygen, docs/doxygen/tables.html, ! docs/doxygen/user.cfg.in, docs/html/Makefile, ! docs/html/documentation.html, docs/html/17_intro/porting.html, ! docs/html/17_intro/porting.texi, docs/html/23_containers/howto.html, ! docs/html/ext/howto.html, docs/html/ext/lwg-active.html, ! docs/html/ext/lwg-defects.html, docs/html/faq/index.html, ! docs/html/faq/index.txt: Merge from trunk. ! ! 2002-07-16 Andreas Schwab ! ! * libsupc++/new (set_new_handler): Declare to not throw any ! exceptions. ! * libsupc++/new_handler.cc (set_new_handler): Likewise. ! ! 2002-07-15 Rainer Orth ! ! * config/os/solaris/solaris2.5/bits/ctype_base.h (ctype_base): Fix ! print to match vendor . ! ! 2002-07-03 Steev Wilcox ! ! PR libstdc++/7057 ! * include/ext/stl_hashtable.h: Fix. ! * testsuite/ext/hash_map.cc: New. ! ! 2002-07-03 Benjamin Kosnik ! ! PR libstdc++/7097 ! * include/c/std_cwchar.h: Fix. ! ! 2002-07-03 Jack Reeves ! Kenny Simpson ! Phil Edwards ! ! PR libstdc++/3946 ! * testsuite/20_util/auto_ptr.cc (test08): New test. ! * include/std/std_memory.h (auto_ref_ptr): Make constructor explicit. ! (auto_ptr::operator auto_ptr_ref): Fix typo. ! General reformatting and doxygenating of the whole file. ! ! 2002-07-03 Phil Edwards ! ! PR libstdc++/7173 ! * acinclude.m4: Simplify determination of gcc_version, and move ! up to GLIBCPP_CONFIGURE. ! * configure.in (release_VERSION): Really remove. ! (AM_INIT_AUTOMAKE, AM_CONFIG_HEADER): Move after GLIBCPP_CONFIGURE. ! * aclocal.m4, configure: Regenerate. ! ! 2002-07-02 Phil Edwards ! ! * docs/html/configopts.html, docs/html/install.html: Tweaks. ! * include/ext/algorithm, include/ext/hash_map, include/ext/hash_set, ! include/ext/iterator, include/ext/numeric, include/ext/rb_tree, ! include/ext/slist, include/ext/stl_rope.h: Add doxygen hooks. ! ! 2002-06-28 Benjamin Kosnik ! ! * include/c_compatibility: New. ! * include/c_compatibility/assert.h: New. ! * include/c_compatibility/ctype.h: New. ! * include/c_compatibility/errno.h: New. ! * include/c_compatibility/float.h: New. ! * include/c_compatibility/iso646.h: New. ! * include/c_compatibility/limits.h: New. ! * include/c_compatibility/locale.h: New. ! * include/c_compatibility/math.h: New. ! * include/c_compatibility/setjmp.h: New. ! * include/c_compatibility/signal.h: New. ! * include/c_compatibility/stdarg.h: New. ! * include/c_compatibility/stddef.h: New. ! * include/c_compatibility/stdio.h: New. ! * include/c_compatibility/stdlib.h: New. ! * include/c_compatibility/string.h: New. ! * include/c_compatibility/time.h: New. ! * include/c_compatibility/wchar.h: New. ! * include/c_compatibility/wctype.h: New. ! ! * include/c/std_cerrno.h: Get out of the way... define errno. ! * include/c/std_cmath.h: Add abs, modf overloads. ! Undefine C99 isms. Still not sure how to deal with this sanely. ! * include/c/std_csetjmp.h: Tweak. ! * include/c/std_cwchar.h: Include cstddef for size_t. ! ! * include/c_std/std_cmath.h: Remove extra function. ! ! Pendantic std usage in testsuites. ! * testsuite/17_intro/header_cstdlib.cc (test01): Qualify ldiv_t ! with std. ! * testsuite/17_intro/header_cwchar.cc: Tweak. ! * testsuite/22_locale/codecvt_members_char_char.cc (test03): Use ! std::setlocale. ! * testsuite/22_locale/ctype_to_wchar_t.cc (test05): Same. ! * testsuite/22_locale/ctype_to_char.cc (test05): Same. ! * testsuite/22_locale/ctype_is_wchar_t.cc (test05): Same. ! * testsuite/22_locale/ctype_is_char.cc (test05): Same. ! * testsuite/22_locale/codecvt_members_wchar_t_char.cc (test03): Same. ! * testsuite/22_locale/time_get_members_wchar_t.cc (test08): Same. ! * testsuite/22_locale/time_get_members_char.cc (test08): Same. ! * testsuite/22_locale/time_put_members_wchar_t.cc (test04): Same. ! * testsuite/22_locale/time_put_members_char.cc (test04): Same. ! * testsuite/22_locale/num_put_members_wchar_t.cc (test04): Same. ! * testsuite/22_locale/num_put_members_char.cc (test04): Same. ! * testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Same. ! * testsuite/22_locale/numpunct_members_char.cc (test03): Same. ! * testsuite/22_locale/num_get_members_wchar_t.cc: Same. ! * testsuite/22_locale/num_get_members_char.cc: Same. ! * testsuite/22_locale/money_put_members_wchar_t.cc (test07): Same. ! * testsuite/22_locale/money_put_members_char.cc (test07): Same. ! * testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Same. ! * testsuite/22_locale/moneypunct_members_char.cc (test03): Same. ! * testsuite/22_locale/money_get_members_wchar_t.cc (test08): Same. ! * testsuite/22_locale/money_get_members_char.cc (test08): Same. ! * testsuite/22_locale/messages_members_char.cc (test03): Same. ! * testsuite/22_locale/collate_members_wchar_t.cc (test04): Same. ! * testsuite/22_locale/collate_members_char.cc (test04): Same. ! * testsuite/26_numerics/fabs_inline.cc: Use std::printf. ! * testsuite/27_io/istream_seeks.cc (test02): Qualify abort. ! * testsuite/27_io/istream_extractor_arith.cc (test11): Qualify strtol. ! ! 2002-06-28 Benjamin Kosnik ! ! * libsupc++/Makefile.am (libsupc__convenience_la_SOURCES): Add ! c_sources. ! ! 2002-06-28 Benjamin Kosnik ! ! * src/ext-inst.cc (__gnu_cxx): Use instead of std:: for extensions. ! Use size_type instead of unsigned long. ! ! 2002-06-28 Steve Ellcey ! ! * src/ext-inst.cc (_S_fetch): Add explicit templates for char and ! wchar types. ! (_S_min_len): Ditto. ! ! 2002-06-28 Benjamin Kosnik ! ! * include/Makefile.am: Add rules. ! * include/Makefile.in: Regenerate. ! ! * acinclude.m4: Define GLIBCPP_C_HEADERS_COMPATIBILITY. ! * aclocal.m4: Regenerate. ! * configure: Regenerate. ! * configure.target (c_model, c_compatibility): Add. ! ! * libsupc++/Makefile.am (c_sources): New. ! (libsupc___la_SOURCES): Add c_sources. ! (LTCOMPILE): Remove INCLUDES. ! (GCC_INCLUDES): New. ! (C_COMPILE): New, like COMPILE but without INCLUDES. ! (cxa_demangle.o): Use C_COMPILE. ! (dyn-string.o): Use C_COMPILE. ! ! * include/c/std_cstdarg.h: Define __need___va_list. ! * include/c/std_cstddef.h: Define need_size_t, need_ptrdiff_t, ! need_NULL, need_offsetof. ! ! 2002-06-28 Benjamin Kosnik ! ! * include/c/std_cwchar.h: Guard. Add mbstate_t bits. ! * include/c/std_cwctype.h: Guard. ! ! * libsupc++/eh_alloc.cc: Tweak include order. ! * libsupc++/pure.cc: Use cstdio. ! * libsupc++/new_op.cc: Remove malloc forward declaration, as ! cstdlib brings it in. Use std::malloc. ! ! * src/Makefile.am (sources): Remove cmath.cc. ! * src/Makefile.in: Regenerate. ! * src/cmath.cc: Remove. ! ! 2002-06-27 Benjamin Kosnik ! ! * configure.in (INTERFACE): Remove. ! (release_VERSION): Remove. ! * acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Change include placement. ! (libstdcxx_interface): Change. Use gcc methods to determine version. ! * configure: Regenerate. ! * aclocal.m4: Regenerate. ! ! 2002-06-27 Benjamin Kosnik ! ! * acinclude.m4: Fix last checkin. ! * aclocal.m4: Regenerate. ! * configure: Regenerate. ! ! 2002-06-25 DJ Delorie ! ! * acinclude.m4 (GLIBCPP_CONFIGURE): Split out ! GLIBCPP_TOPREL_CONFIGURE. ! * aclocal.m4: Likewise. ! * configure.in: Call it before AC_CANONICAL_SYSTEM. ! * configure: Regenerate. ! ! 2002-06-20 David Edelsohn ! ! * configure.target (CPULIMITSH): Use powerpc directory for rs6000. ! ! 2002-06-14 J.T. Conklin ! ! * configure.in (target_alias): Fix. ! * configure: Regenerate. ! * aclocal.m4: Regenerate. ! ! 2002-06-11 J.T. Conklin ! Benjamin Kosnik ! ! * configure.target: Set os_include_dir to config/os/qnx/qnx6.1 ! under *-qnx6.[12]*. ! * configure.in: Add support for *-qnx6.[12]*. ! * configure: Regenerate. ! ! * config/os/qnx, config/os/qnx/qnx6.1, config/os/qnx/qnx6.1/bits: ! New directories. ! * config/os/qnx/qnx6.1/bits/ctype_base.h, ctype_inline.h, ! ctype_noninline.h, os_defines.h: New files. ! ! 2002-06-10 Steve Ellcey ! ! * src/locale-inst.cc (__codecvt_abstract_base): ! Put inside _GLIBCPP_USE_WCHAR_T ifdef. ! * include/bits/istream.tcc (basic_istream): Ditto. ! (ws) Ditto. ! (operator>>) Ditto. ! * include/bits/ostream.tcc (basic_ostream): Ditto. ! (endl): Ditto. ! (ends): Ditto. ! (flush): Ditto. ! (operator<<): Ditto. ! ! 2002-06-08 Paolo Carlini ! ! * testsuite/backwards/strstream_members.cc: New. ! ! 2002-06-08 Benjamin Kosnik ! ! * include/backwards/strstream: Format. ! * src/strstream.cc: Format. ! ! 2002-06-08 Andreas Schwab ! ! * src/strstream.cc (strstreambuf::overflow): Set _M_buf, ! _M_buf_size and _M_buf_size_opt to the new buffer and size. ! ! 2002-06-08 Benjamin Kosnik ! ! * config/os/generic/bits/ctype_noninline.h: Tweak format. ! ! 2002-06-05 David Edelsohn ! ! * config/os/aix/bits/ctype_noninline.h (do_toupper,do_tolower): ! Call external symbol. ! ! 2002-06-05 Paolo Carlini ! ! * testsuite/22_locale/money_get_members_char.cc ! (test02): Add decimal point to long double constants. ! * testsuite/22_locale/money_get_members_wchar_t.cc ! (test02): Likewise. ! * testsuite/22_locale/money_put_members_char.cc ! (test02, test03, test06): Likewise. ! * testsuite/22_locale/money_put_members_wchar_t.cc: ! (test02, test03, test06): Likewise. ! * testsuite/22_locale/num_get_members_char.cc: ! (test02, test01): Likewise; suffix long long constants with LL. ! * testsuite/22_locale/num_get_members_wchar_t.cc: ! (test02, test01): Likewise. ! * testsuite/22_locale/num_put_members_char.cc: ! (test02, test01): Likewise. ! * testsuite/22_locale/num_put_members_wchar_t.cc: ! (test02, test01): Likewise. ! ! 2002-06-04 Paolo Carlini ! Gaby Dos Reis ! ! * include/bits/basic_string.tcc ! (basic_string::_S_construct(forward_iterator_tag): ! Fix typo in null pointer check. ! * testsuite/21_strings/ctor_copy_dtor.cc: Add test04. ! ! 2002-06-03 Marc Espie ! ! * config/cpu/m68k/bits/atomicity.h(__exchange_and_add): Fix inline ! assembly for old assemblers. ! ! 2002-05-31 Marcus Meissner ! ! PR libstdc++/6886 ! * include/bits/stl_bvector.h: Use UL suffix for unsigned longs. ! * testsuite/23_containers/vector_bool.cc (test02): New test. ! ! 2002-05-31 John David Anglin ! ! * config/os/gnu-linux/bits/os_defines.h (__glibcpp_long_bits): Define ! to 64 for hppa 64-bit port. ! (__glibcpp_long_double_bits): Define to 64 for all hppa ports. ! ! 2002-05-30 Marc Espie ! ! * configure.in: Always check for sys/types.h. ! * configure: Regenerate. ! ! 2002-05-28 Nick Clifton ! ! * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): ! Rebuild the wrapper file every time this proc is called. ! ! 2002-05-28 Loren J. Rittle ! ! libstdc++/6641 ! * include/bits/c++config (__USE_MALLOC): Report case where ! the user improperly defined it on the command line. ! ! 2002-05-27 Benjamin Kosnik ! ! * src/misc-inst.cc: Define unnecessary algorithm ! instantiations. Break apart instantiations into groupings below. ! * src/fstream-inst.cc: New. ! * src/io-inst.cc: New. ! * src/istream-inst.cc: New. ! * src/ostream-inst.cc: New. ! * src/streambuf-inst.cc: New. ! * src/sstream-inst.cc: New. ! * src/Makefile.am (sources): Add files. ! * src/Makefile.in: Regenerate. ! ! * acinclude.m4: Work around automake 1.4-p5 bug, change ! AM_GNU_GETTEXT in comments to AM-GNU-GETTEXT. ! ! 2002-05-27 Benjamin Kosnik ! ! PR libstdc++/6795. ! * config/os/solaris/solaris2.6/bits/ctype_noninline.h ! (classic_table): Fix. ! * config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same. ! ! 2002-05-27 Benjamin Kosnik ! ! * testsuite/22_locale/ctype_is_wchar_t.cc: Guard with ! _GLIBCPP_USE_WCHAR_T. ! * testsuite/22_locale/ctype_narrow_wchar_t.cc: Same. ! * testsuite/22_locale/ctype_to_wchar_t.cc: Same. ! * testsuite/22_locale/ctype_widen_wchar_t.cc: Same. ! ! 2002-05-26 Carlo Wood ! Paolo Carlini ! ! PR libstdc++/6811 ! * config/locale/ieee_1003.1-2001/codecvt_specializations.h ! (__enc_traits::operator=): add missing return statement. ! ! 2002-05-24 Phil Edwards ! ! PR libstdc++/6282 ! * include/std/std_bitset.h (_Base_biteset<0>): New specialization. ! (operator>>): If nothing was extracted, don't fail in the ! zero-length case. ! * testsuite/23_containers/bitset_ctor.cc (test02): New test. ! ! 2002-05-24 Benjamin Kosnik ! ! PR libstdc++/6701 ! * testsuite/22_locale/ctype_narrow_char.cc: New. ! * testsuite/22_locale/ctype_narrow_wchar_t.cc: New. ! * testsuite/22_locale/ctype_widen_char.cc: New. ! * testsuite/22_locale/ctype_widen_wchar_t.cc: New. ! * testsuite/22_locale/ctype_members_char.cc: Move some bits into... ! * testsuite/22_locale/ctype_is_char.cc: ...this. ! * testsuite/22_locale/ctype_to_char.cc: ...and this. ! * testsuite/22_locale/ctype_members_wchar_t.cc: Move some bits into... ! * testsuite/22_locale/ctype_is_wchar_t.cc: ...this. ! * testsuite/22_locale/ctype_to_wchar_t.cc: ...and this. ! ! * testsuite/22_locale/ctype_scan_wchar_t.cc: Should pass. ! ! 2002-05-24 Dale Peakall ! ! PR libstdc++/6701 ! * config/locale/gnu/ctype_members.cc (ctype::do_narrow): Fix. ! * config/locale/generic/ctype_members.cc: Same. ! ! 2002-05-24 Benjamin Kosnik ! ! PR libstdc++/6750 ! * include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix ! for empty string literal. ! (ostream::operator<<(const _CharT*)): Same. ! (ostream::operator<<(const char*)): Same. ! (ostream::operator<<(streambuf*)): Same. ! * testsuite/27_io/ostream_inserter_char.cc (test08): Add tests. ! * testsuite/27_io/ostream_inserter_other.cc (test02): Modify. ! ! 2002-05-23 Rainer Orth ! ! * configure.in: Update local install.html, configopts.html paths. ! * configure: Regenerate. ! ! * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Retrieve ! current limits before setting. ! ! * acinclude.m4 (enable_symvers): Quote $LD. ! * aclocal.m4: Regenerate. ! * configure: Likewise. ! Fixes PR target/6755. ! ! 2002-05-23 Benjamin Kosnik ! ! * configure.in (release_VERSION): Update to 3.1.1. ! (libtool_VERSION): Update to 4:1:0. ! * configure: Regenerate. ! ! 2002-05-21 Phil Edwards ! ! * include/bits/stl_pair.h: Tweak comment markup. ! ! 2002-05-21 Phil Edwards ! ! * include/ext/stdio_filebuf.h: Add header guards. Doxygenate. ! ! 2002-05-19 Kaveh R. Ghazi ! ! * configure.in (AC_CHECK_HEADERS): Check for string.h & stdlib.h. ! * libsupc++/Makefile.am (LTCOMPILE): Add $(DEFS). ! * Makefile.in, config.h.in, configure: Regenerate. ! ! * config/os/irix/irix5.2/bits/ctype_noninline.h (classic_table): ! Return __ctype + 1. ! (ctype:_M_table): Initialize to classic_table(), not __ctype. ! ! * config/os/irix/irix5.2/bits/os_defines.h ! (__glibcpp_long_double_bits, __glibcpp_long_bits): Define. ! ! 2002-05-19 Paolo Carlini ! Jakub Jelinek ! ! * testsuite/22_locale/money_get_members_char.cc ! (test01, test02, test04): Use the de_DE@euro named locale ! instead of de_DE to allow for an uniform behaviour with ! both old and Euro-era localedata; tweak some tests. ! * testsuite/22_locale/money_get_members_wchar_t.cc ! (test01, test02, test04): Likewise. ! * testsuite/22_locale/money_put_members_char.cc ! (test01, test02, test04): Likewise. ! * testsuite/22_locale/money_put_members_wchar_t.cc ! (test01, test02, test04): Likewise. ! ! 2002-05-19 Paolo Carlini ! ! * testsuite/22_locale/codecvt_members_char_char.cc ! (test03): Robustify wrt localedata. ! * testsuite/22_locale/codecvt_members_wchar_t_char.cc (test03): Likewise. ! * testsuite/22_locale/collate_members_char.cc (test04): Likewise. ! * testsuite/22_locale/collate_members_wchar_t.cc (test04): Likewise. ! * testsuite/22_locale/ctype_members_char.cc (test05): Likewise. ! * testsuite/22_locale/ctype_members_wchar_t.cc (test04): Likewise. ! * testsuite/22_locale/messages_members_char.cc (test03): Likewise. ! * testsuite/22_locale/money_get_members_char.cc (test08): Likewise. ! * testsuite/22_locale/money_get_members_wchar_t.cc (test08): Likewise. ! * testsuite/22_locale/money_put_members_char.cc (test07): Likewise. ! * testsuite/22_locale/money_put_members_wchar_t.cc (test07): Likewise. ! * testsuite/22_locale/moneypunct_members_char.cc (test03): Likewise. ! * testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Likewise. ! * testsuite/22_locale/num_get_members_char.cc (test06): Likewise. ! * testsuite/22_locale/num_get_members_wchar_t.cc (test06): Likewise. ! * testsuite/22_locale/num_put_members_char.cc (test04): Add comment. ! * testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise. ! * testsuite/22_locale/numpunct_members_char.cc (test03): Likewise. ! * testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Likewise. ! * testsuite/22_locale/time_get_members_char.cc (test08): Likewise. ! * testsuite/22_locale/time_get_members_wchar_t.cc (test08): Likewise. ! * testsuite/22_locale/time_put_members_char.cc (test04): Likewise. ! * testsuite/22_locale/time_put_members_wchar_t.cc (test04): Likewise. ! ! 2002-05-19 Paolo Carlini ! ! Test all the facets for the temporary "C" locale switch issue. ! * testsuite/22_locale/codecvt_members_char_char.cc: Add test03. ! * testsuite/22_locale/codecvt_members_wchar_t_char.cc: Likewise. ! * testsuite/22_locale/collate_members_char.cc: Add test04. ! * testsuite/22_locale/collate_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/ctype_members_char.cc: Add test05. ! * testsuite/22_locale/ctype_members_wchar_t.cc: Add test04. ! * testsuite/22_locale/messages_members_char.cc: Add test03. ! * testsuite/22_locale/money_get_members_char.cc: Add test08. ! * testsuite/22_locale/money_get_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/money_put_members_char.cc: Add test07. ! * testsuite/22_locale/money_put_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/moneypunct_members_char.cc: Add test03. ! * testsuite/22_locale/moneypunct_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/num_get_members_char.cc: Add test06. ! * testsuite/22_locale/num_get_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/numpunct_members_char.cc: Add test03. ! * testsuite/22_locale/numpunct_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/time_get_members_char.cc: Add test08. ! * testsuite/22_locale/time_get_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/time_put_members_char.cc: Add test04. ! * testsuite/22_locale/time_put_members_wchar_t.cc: Likewise. ! ! * testsuite/22_locale/num_put_members_char.cc (test04): Add comment. ! * testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise. ! ! 2002-05-19 Benjamin Kosnik ! Paolo Carlini ! ! * testsuite/22_locale/num_put_members_char.cc: Add test04(), ! testing for the locale_facets.tcc entry of the previous commit. ! * testsuite/22_locale/num_put_members_wchar_t.cc: Likewise. ! ! 2002-05-18 Takeshi Kobayakawa ! ! * config/locale/generic/c_locale.cc ! (__convert_to_v(float, double, long double)): ! Fix the temporary switch to the "C" locale, saving and ! restoring in the proper way the current locale. ! * config/locale/generic/time_members.cc ! (__timepunct::_M_put): Likewise. ! * config/locale/gnu/messages_members.cc ! (messages::do_get): Likewise. ! * config/locale/gnu/messages_members.h ! (messages<_CharT>::do_get): Likewise. ! * config/locale/gnu/time_members.cc ! (__timepunct::_M_put): Likewise. ! * include/bits/locale_facets.tcc (__convert_from_v): Likewise. ! ! 2002-05-18 Paolo Carlini ! Nathan Myers ! Philip Martin ! ! * include/bits/basic_string.h ! (replace(i1, i2, _CharT* k1, _CharT* k2), ! replace(i2, i2, const _CharT* k1, const _CharT* k2), ! replace(i1, i2, iterator k1, iterator k2, ! replace(i1, i2, const_iterator k1, const_iterator k2): ! New specializations to optimize for the common cases of ! pointers and iterators. ! (replace(pos, n1, s, n2)): Tweak. ! * include/bits/basic_string.tcc: Tweak comments. ! * testsuite/21_strings/replace.cc (test05): New tests. ! ! 2002-05-18 Benjamin Kosnik + * config/os/solaris/solaris2.5/bits/os_defines.h: Remove + _G_USING_THUNKS. + * config/os/solaris/solaris2.6/bits/os_defines.h: Same. + * config/os/solaris/solaris2.7/bits/os_defines.h: Same. + + 2002-05-18 Benjamin Kosnik + + * docs/html/17_intro/RELEASE-NOTES (New): Update. + + 2002-05-18 Benjamin Kosnik + + PR libstdc++/6518 + * include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix + for null case. + (ostream::operator<<(const _CharT*)): Same. + (ostream::operator<<(const char*)): Same. + * testsuite/27_io/ostream_inserter_char.cc (test07): Add test. + + 2002-05-18 Benjamin Kosnik + + PR libstdc++/6594 + * src/strstream.cc (strstreambuf): Fix leak. + + 2002-05-18 Benjamin Kosnik + + * testsuite/22_locale/ctype_scan_char.cc: Tweak. + * testsuite/22_locale/ctype_scan_wchar_t.cc: New. + + * docs/html/install.html: Fix. + + 2002-05-18 Kaveh R. Ghazi + + * config/os/irix/irix5.2/bits/ctype_inline.h: Cast to unsigned + char. + + * config/os/irix/irix5.2/bits/ctype_inline.h (scan_is, scan_not): + Fix typo, use this->is() rather than manually (and perhaps + incorrectly) inlining it. + * config/os/irix/irix6.5/bits/ctype_inline.h (scan_is, scan_not): + Likewise. + * testsuite/22_locale/ctype_scan_char.cc: New file. + + 2002-05-18 Benjamin Kosnik + + * include/bits/fstream.tcc + (basic_filebuf::_M_allocate_internal_buffer): Remove extraneous + try/catch blocks. + * src/localename.cc (locale::_Impl::_M_install_facet): Same. + + * docs/html/install.html: Tweak, add bits about required locales + for the 22_locale tests when using the gnu model. + + * testsuite/27_io/istream_sentry.cc: Tweak. + + 2002-05-16 Phil Edwards + + * docs/html/faq/index.html: Update not-a-bug list with basic_file.h. + * docs/html/faq/index.txt: Regenerate. + + 2002-05-15 Paolo Carlini + + PR libstdc++/6648 + * include/bits/istream.tcc (istream::getline, ignore): + Upon __idelim (__delim) call sbumpc() not snextc(). + * testsuite/27_io/narrow_stream_objects.cc: + Add test08 and test09. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libstdc++-v3/Makefile.in gcc-3.1.1/libstdc++-v3/Makefile.in *** gcc-3.1/libstdc++-v3/Makefile.in Tue Apr 2 02:46:03 2002 --- gcc-3.1.1/libstdc++-v3/Makefile.in Fri Jun 28 08:20:38 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,133 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,113 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 150,156 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 130,135 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/acinclude.m4 gcc-3.1.1/libstdc++-v3/acinclude.m4 *** gcc-3.1/libstdc++-v3/acinclude.m4 Thu Apr 4 21:35:31 2002 --- gcc-3.1.1/libstdc++-v3/acinclude.m4 Wed Jul 3 22:47:34 2002 *************** *** 1,9 **** dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_CONFIGURE ! AC_DEFUN(GLIBCPP_CONFIGURE, [ ! dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in --- 1,10 ---- dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_TOPREL_CONFIGURE ! AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ ! dnl Default to --enable-multilib (this is also passed by default ! dnl from the ubercommon-top-level configure) AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 33,44 **** AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`pwd` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; --- 34,54 ---- AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) + ]) + + dnl + dnl Initialize configure bits. + dnl + dnl GLIBCPP_CONFIGURE + AC_DEFUN(GLIBCPP_CONFIGURE, [ + + #possibly test for the presence of the compiler sources here? # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 51,57 **** AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S --- 61,68 ---- AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. Uncomment the next line to ! # force a particular method. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 156,161 **** --- 167,177 ---- LIB_AC_PROG_CXX + # For directory versioning (e.g., headers) and other variables. + AC_MSG_CHECKING([for GCC version number]) + gcc_version=`$glibcpp_CXX -dumpversion` + AC_MSG_RESULT($gcc_version) + # For some reason, gettext needs this. AC_ISC_POSIX *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 181,197 **** AC_EXEEXT fi - . [$]{glibcpp_basedir}/configure.host - case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET - ]) --- 197,210 ---- AC_EXEEXT fi case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # Find platform-specific directories containing configuration info. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET ]) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1172,1186 **** # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM_GNU_GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi - # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ --- 1185,1198 ---- # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ *************** changequote([, ]) *** 1690,1712 **** dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) - CSHADOW_FLAGS="-fno-builtin" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac - AC_SUBST(CSHADOW_FLAGS) AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) ]) --- 1702,1721 ---- dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) + AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes) ]) *************** glibcpp_toolexecdir=no *** 1804,1813 **** glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} - AC_MSG_CHECKING([for interface version number]) - libstdcxx_interface=$INTERFACE - AC_MSG_RESULT($libstdcxx_interface) - # Process the option --with-gxx-include-dir= AC_MSG_CHECKING([for --with-gxx-include-dir]) AC_ARG_WITH(gxx-include-dir, --- 1813,1818 ---- *************** version_specific_libs=no)dnl *** 1839,1864 **** # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. - changequote(,)dnl - gcc_version_trigger=${srcdir}/../gcc/version.c - gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'` - gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' - changequote([,])dnl - fi - - # Default case for install directory for include files. - if test $version_specific_libs = no && - test $gxx_include_dir = no; then - gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface} fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir --- 1844,1864 ---- # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) + # Default case for install directory for include files. + if test $version_specific_libs = no && test $gxx_include_dir = no; then + gxx_include_dir='$(prefix)'/include/c++/${gcc_version} + fi + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir *************** enable_symvers=GLIBCPP_ENABLE_SYMVERS_DE *** 2120,2126 **** # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test x$LD = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi --- 2120,2126 ---- # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test "x$LD" = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi diff -Nrc3pad gcc-3.1/libstdc++-v3/aclocal.m4 gcc-3.1.1/libstdc++-v3/aclocal.m4 *** gcc-3.1/libstdc++-v3/aclocal.m4 Thu Apr 4 21:35:31 2002 --- gcc-3.1.1/libstdc++-v3/aclocal.m4 Wed Jul 3 22:47:35 2002 *************** *** 1,6 **** ! dnl aclocal.m4 generated automatically by aclocal 1.4-p5 ! dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. --- 1,6 ---- ! dnl aclocal.m4 generated automatically by aclocal 1.4 ! dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. *************** dnl PARTICULAR PURPOSE. *** 13,21 **** dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_CONFIGURE ! AC_DEFUN(GLIBCPP_CONFIGURE, [ ! dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in --- 13,22 ---- dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_TOPREL_CONFIGURE ! AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ ! dnl Default to --enable-multilib (this is also passed by default ! dnl from the ubercommon-top-level configure) AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 45,56 **** AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`pwd` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; --- 46,66 ---- AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) + ]) + + dnl + dnl Initialize configure bits. + dnl + dnl GLIBCPP_CONFIGURE + AC_DEFUN(GLIBCPP_CONFIGURE, [ + + #possibly test for the presence of the compiler sources here? # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 63,69 **** AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S --- 73,80 ---- AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. Uncomment the next line to ! # force a particular method. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 168,173 **** --- 179,189 ---- LIB_AC_PROG_CXX + # For directory versioning (e.g., headers) and other variables. + AC_MSG_CHECKING([for GCC version number]) + gcc_version=`$glibcpp_CXX -dumpversion` + AC_MSG_RESULT($gcc_version) + # For some reason, gettext needs this. AC_ISC_POSIX *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 193,209 **** AC_EXEEXT fi - . [$]{glibcpp_basedir}/configure.host - case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET - ]) --- 209,222 ---- AC_EXEEXT fi case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # Find platform-specific directories containing configuration info. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET ]) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1184,1198 **** # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM_GNU_GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi - # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ --- 1197,1210 ---- # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ *************** changequote([, ]) *** 1702,1724 **** dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) - CSHADOW_FLAGS="-fno-builtin" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac - AC_SUBST(CSHADOW_FLAGS) AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) ]) --- 1714,1733 ---- dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) + AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes) ]) *************** glibcpp_toolexecdir=no *** 1816,1825 **** glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} - AC_MSG_CHECKING([for interface version number]) - libstdcxx_interface=$INTERFACE - AC_MSG_RESULT($libstdcxx_interface) - # Process the option --with-gxx-include-dir= AC_MSG_CHECKING([for --with-gxx-include-dir]) AC_ARG_WITH(gxx-include-dir, --- 1825,1830 ---- *************** version_specific_libs=no)dnl *** 1851,1876 **** # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. - changequote(,)dnl - gcc_version_trigger=${srcdir}/../gcc/version.c - gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'` - gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' - changequote([,])dnl - fi - - # Default case for install directory for include files. - if test $version_specific_libs = no && - test $gxx_include_dir = no; then - gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface} fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir --- 1856,1876 ---- # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) + # Default case for install directory for include files. + if test $version_specific_libs = no && test $gxx_include_dir = no; then + gxx_include_dir='$(prefix)'/include/c++/${gcc_version} + fi + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir *************** enable_symvers=GLIBCPP_ENABLE_SYMVERS_DE *** 2132,2138 **** # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test x$LD = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi --- 2132,2138 ---- # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test "x$LD" = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi *************** AC_MSG_RESULT($enable_symvers) *** 2197,2226 **** ]) - #serial 1 - # This test replaces the one in autoconf. - # Currently this macro should have the same name as the autoconf macro - # because gettext's gettext.m4 (distributed in the automake package) - # still uses it. Otherwise, the use in gettext.m4 makes autoheader - # give these diagnostics: - # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX - # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX - - undefine([AC_ISC_POSIX]) - - AC_DEFUN([AC_ISC_POSIX], - [ - dnl This test replaces the obsolescent AC_ISC_POSIX kludge. - AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) - ] - ) - # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 ! AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, --- 2197,2208 ---- ]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 ! AC_DEFUN(AM_MAINTAINER_MODE, [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, *************** AC_DEFUN([AM_MAINTAINER_MODE], *** 2237,2243 **** # Define a conditional. ! AC_DEFUN([AM_CONDITIONAL], [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then --- 2219,2225 ---- # Define a conditional. ! AC_DEFUN(AM_CONDITIONAL, [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then *************** else *** 2248,2786 **** $1_FALSE= fi]) - # Macro to add for using GNU gettext. - # Ulrich Drepper , 1995. - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU Public License - # but which still want to provide support for the GNU gettext functionality. - # Please note that the actual code is *not* freely available. - - # serial 9 - - dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]). - dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library - dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, - dnl depending on --{enable,disable}-{shared,static} and on the presence of - dnl AM-DISABLE-SHARED). Otherwise, a static library - dnl $(top_builddir)/intl/libintl.a will be created. - dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext - dnl implementations (in libc or libintl) without the ngettext() function - dnl will be ignored. - dnl LIBDIR is used to find the intl libraries. If empty, - dnl the value `$(top_builddir)/intl/' is used. - dnl - dnl The result of the configuration is one of three cases: - dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled - dnl and used. - dnl Catalog format: GNU --> install in $(datadir) - dnl Catalog extension: .mo after installation, .gmo in source tree - dnl 2) GNU gettext has been found in the system's C library. - dnl Catalog format: GNU --> install in $(datadir) - dnl Catalog extension: .mo after installation, .gmo in source tree - dnl 3) No internationalization, always use English msgid. - dnl Catalog format: none - dnl Catalog extension: none - dnl The use of .gmo is historical (it was needed to avoid overwriting the - dnl GNU format catalogs when building on a platform with an X/Open gettext), - dnl but we keep it in order not to force irrelevant filename changes on the - dnl maintainers. - dnl - AC_DEFUN([AM_WITH_NLS], - [AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - INTLLIBS= - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - AC_DEFINE(ENABLE_NLS, 1, - [Define to 1 if translation of program messages to the user's native language - is requested.]) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - CATOBJEXT=NONE - - dnl Add a version number to the cache macros. - define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc]) - define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl]) - - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, - [AC_TRY_LINK([#include - extern int _nl_msg_cat_cntr;], - [bindtextdomain ("", ""); - return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], - gt_cv_func_gnugettext_libc=yes, - gt_cv_func_gnugettext_libc=no)]) - - if test "$gt_cv_func_gnugettext_libc" != "yes"; then - AC_CACHE_CHECK([for GNU gettext in libintl], - gt_cv_func_gnugettext_libintl, - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $LIBICONV" - AC_TRY_LINK([#include - extern int _nl_msg_cat_cntr;], - [bindtextdomain ("", ""); - return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], - gt_cv_func_gnugettext_libintl=yes, - gt_cv_func_gnugettext_libintl=no) - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if test "$gt_cv_func_gnugettext_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ - && test "$PACKAGE" != gettext; }; then - AC_DEFINE(HAVE_GETTEXT, 1, - [Define if the GNU gettext() function is already present or preinstalled.]) - - if test "$gt_cv_func_gnugettext_libintl" = "yes"; then - dnl If iconv() is in a separate libiconv library, then anyone - dnl linking with libintl{.a,.so} also needs to link with - dnl libiconv. - INTLLIBS="-lintl $LIBICONV" - fi - - gt_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - AC_CHECK_FUNCS(dcgettext) - LIBS="$gt_save_LIBS" - - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - fi - - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - - CATOBJEXT=.gmo - fi - ]) - - if test "$CATOBJEXT" = "NONE"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - AC_OUTPUT_COMMANDS( - [for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - echo creating "$ac_dir/POTFILES" - sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" - echo creating "$ac_dir/Makefile" - sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - fi - ;; - esac - done]) - - - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) - changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) - changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(BUILD_INCLUDED_LIBINTL) - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(GMOFILES) - AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST(DATADIRNAME) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST(INSTOBJEXT) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST(GENCAT) - ]) - - dnl Usage: Just like AM_WITH_NLS, which see. - AC_DEFUN([AM_GNU_GETTEXT], - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([jm_GLIBC21])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ - stdlib.h string.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \ - getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ - strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) - - AM_ICONV - AM_LANGINFO_CODESET - AM_LC_MESSAGES - AM_WITH_NLS([$1],[$2],[$3]) - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but $(top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) - AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) - ]) - - # Search path for a program which passes the given test. - # Ulrich Drepper , 1996. - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU Public License - # but which still want to provide support for the GNU gettext functionality. - # Please note that the actual code is *not* freely available. - - # serial 1 - - dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, - dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) - AC_DEFUN([AM_PATH_PROG_WITH_TEST], - [# Extract the first word of "$2", so it can be a program name with args. - set dummy $2; ac_word=[$]2 - AC_MSG_CHECKING([for $ac_word]) - AC_CACHE_VAL(ac_cv_path_$1, - [case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - dnl If no 4th arg is given, leave the cache variable unset, - dnl so AC_PATH_PROGS will keep looking. - ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" - ])dnl - ;; - esac])dnl - $1="$ac_cv_path_$1" - if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) - else - AC_MSG_RESULT(no) - fi - AC_SUBST($1)dnl - ]) - - #serial 2 - - # Test for the GNU C Library, version 2.1 or newer. - # From Bruno Haible. - - AC_DEFUN([jm_GLIBC21], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ - #include - #ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif - #endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no) - ] - ) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" - ] - ) - - #serial AM2 - - dnl From Bruno Haible. - - AC_DEFUN([AM_ICONV], - [ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - AC_ARG_WITH([libiconv-prefix], - [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ - for dir in `echo "$withval" | tr : ' '`; do - if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi - if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi - done - ]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include - #include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS -liconv" - AC_TRY_LINK([#include - #include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ - #include - #include - extern - #ifdef __cplusplus - "C" - #endif - #if defined(__STDC__) || defined(__cplusplus) - size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); - #else - size_t iconv(); - #endif - ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi - LIBICONV= - if test "$am_cv_lib_iconv" = yes; then - LIBICONV="-liconv" - fi - AC_SUBST(LIBICONV) - ]) - - #serial AM1 - - dnl From Bruno Haible. - - AC_DEFUN([AM_LANGINFO_CODESET], - [ - AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test $am_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi - ]) - - # Check whether LC_MESSAGES is available in . - # Ulrich Drepper , 1995. - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU Public License - # but which still want to provide support for the GNU gettext functionality. - # Please note that the actual code is *not* freely available. - - # serial 2 - - AC_DEFUN([AM_LC_MESSAGES], - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your file defines LC_MESSAGES.]) - fi - fi]) - # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. --- 2230,2235 ---- *************** AC_DEFUN([AM_LC_MESSAGES], *** 2790,2796 **** dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ! AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) --- 2239,2245 ---- dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ! AC_DEFUN(AM_INIT_AUTOMAKE, [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) *************** AC_REQUIRE([AC_PROG_MAKE_SET])]) *** 2818,2824 **** # Check to make sure that the build environment is sane. # ! AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 --- 2267,2273 ---- # Check to make sure that the build environment is sane. # ! AC_DEFUN(AM_SANITY_CHECK, [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 *************** AC_MSG_RESULT(yes)]) *** 2859,2865 **** dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. ! AC_DEFUN([AM_MISSING_PROG], [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. --- 2308,2314 ---- dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. ! AC_DEFUN(AM_MISSING_PROG, [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. *************** AC_SUBST($1)]) *** 2875,2881 **** # Like AC_CONFIG_HEADER, but automatically create stamp file. ! AC_DEFUN([AM_CONFIG_HEADER], [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. --- 2324,2330 ---- # Like AC_CONFIG_HEADER, but automatically create stamp file. ! AC_DEFUN(AM_CONFIG_HEADER, [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. diff -Nrc3pad gcc-3.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h gcc-3.1.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h *** gcc-3.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h Thu Feb 14 18:57:38 2002 --- gcc-3.1.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h Mon Jun 3 05:27:41 2002 *************** __exchange_and_add (volatile _Atomic_wor *** 45,51 **** __asm__ __volatile__ ("1: move%.l %0,%1\n\t" "add%.l %2,%1\n\t" "cas%.l %0,%1,%3\n\t" ! "jbne 1b" : "=d" (__result), "=&d" (__temp) : "d" (__val), "m" (*__mem), "0" (__result) : "memory"); --- 45,51 ---- __asm__ __volatile__ ("1: move%.l %0,%1\n\t" "add%.l %2,%1\n\t" "cas%.l %0,%1,%3\n\t" ! "jne 1b" : "=d" (__result), "=&d" (__temp) : "d" (__val), "m" (*__mem), "0" (__result) : "memory"); diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/generic/c_locale.cc gcc-3.1.1/libstdc++-v3/config/locale/generic/c_locale.cc *** gcc-3.1/libstdc++-v3/config/locale/generic/c_locale.cc Fri Apr 19 07:59:01 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/generic/c_locale.cc Sat May 18 22:00:12 2002 *************** namespace std *** 120,126 **** if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! const char* __old = setlocale(LC_ALL, "C"); char* __sanity; errno = 0; #if defined(_GLIBCPP_USE_C99) --- 120,127 ---- if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); char* __sanity; errno = 0; #if defined(_GLIBCPP_USE_C99) *************** namespace std *** 147,152 **** --- 148,154 ---- else __err |= ios_base::failbit; setlocale(LC_ALL, __old); + free(__old); } } *************** namespace std *** 158,164 **** if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! const char* __old = setlocale(LC_ALL, "C"); char* __sanity; errno = 0; double __d = strtod(__s, &__sanity); --- 160,167 ---- if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); char* __sanity; errno = 0; double __d = strtod(__s, &__sanity); *************** namespace std *** 167,172 **** --- 170,176 ---- else __err |= ios_base::failbit; setlocale(LC_ALL, __old); + free(__old); } } *************** namespace std *** 178,184 **** if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! const char* __old = setlocale(LC_ALL, "C"); #if defined(_GLIBCPP_USE_C99) char* __sanity; errno = 0; --- 182,189 ---- if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); #if defined(_GLIBCPP_USE_C99) char* __sanity; errno = 0; *************** namespace std *** 202,207 **** --- 207,213 ---- else __err |= ios_base::failbit; setlocale(LC_ALL, __old); + free(__old); } } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/generic/ctype_members.cc gcc-3.1.1/libstdc++-v3/config/locale/generic/ctype_members.cc *** gcc-3.1/libstdc++-v3/config/locale/generic/ctype_members.cc Mon Mar 11 21:12:52 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/generic/ctype_members.cc Fri May 24 16:15:23 2002 *************** *** 1,6 **** // std::ctype implementation details, generic version -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // std::ctype implementation details, generic version -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** namespace std *** 183,194 **** do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __len = __hi - __lo; ! size_t __conv = wcsrtombs(__dest, &__lo, __len, &__state); ! if (__conv == __len) ! *__dest = __dfault; return __hi; } #endif // _GLIBCPP_USE_WCHAR_T --- 183,205 ---- do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! size_t __offset = 0; ! while (true) ! { ! const wchar_t* __start = __lo + __offset; ! size_t __len = __hi - __start; ! ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state); ! if (__con != __len && __start != 0) ! { ! __offset = __start - __lo; ! __dest[__offset++] = __dfault; ! } ! else ! break; ! } return __hi; } #endif // _GLIBCPP_USE_WCHAR_T diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/generic/time_members.cc gcc-3.1.1/libstdc++-v3/config/locale/generic/time_members.cc *** gcc-3.1/libstdc++-v3/config/locale/generic/time_members.cc Fri Apr 19 07:59:01 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/generic/time_members.cc Sat May 18 22:00:12 2002 *************** namespace std *** 51,59 **** _M_put(char* __s, size_t __maxlen, const char* __format, const tm* __tm) const { ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); } template<> --- 51,61 ---- _M_put(char* __s, size_t __maxlen, const char* __format, const tm* __tm) const { ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); } template<> *************** namespace std *** 132,140 **** _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, const tm* __tm) const { ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); } template<> --- 134,144 ---- _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, const tm* __tm) const { ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); } template<> diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.1.1/libstdc++-v3/config/locale/gnu/ctype_members.cc *** gcc-3.1/libstdc++-v3/config/locale/gnu/ctype_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/ctype_members.cc Fri May 24 16:15:25 2002 *************** namespace std *** 190,201 **** do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __len = __hi - __lo; ! size_t __conv = wcsrtombs(__dest, &__lo, __len, &__state); ! if (__conv == __len) ! *__dest = __dfault; return __hi; } #endif // _GLIBCPP_USE_WCHAR_T --- 190,212 ---- do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! size_t __offset = 0; ! while (true) ! { ! const wchar_t* __start = __lo + __offset; ! size_t __len = __hi - __start; ! ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state); ! if (__con != __len && __start != 0) ! { ! __offset = __start - __lo; ! __dest[__offset++] = __dfault; ! } ! else ! break; ! } return __hi; } #endif // _GLIBCPP_USE_WCHAR_T diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.cc gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.cc *** gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.cc Sat May 18 22:00:14 2002 *************** namespace std *** 48,56 **** __uselocale(__old); return string(__msg); #else ! const char* __old = setlocale(LC_ALL, _M_name_messages); const char* __msg = gettext(__dfault.c_str()); setlocale(LC_ALL, __old); return string(__msg); #endif } --- 48,58 ---- __uselocale(__old); return string(__msg); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_messages); const char* __msg = gettext(__dfault.c_str()); setlocale(LC_ALL, __old); + free(__old); return string(__msg); #endif } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.h *** gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.h Mon Mar 25 20:29:16 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.h Sat May 18 22:00:14 2002 *************** *** 65,73 **** __uselocale(__old); return _M_convert_from_char(__msg); #else ! const char* __old = setlocale(LC_ALL, _M_name_messages); char* __msg = gettext(_M_convert_to_char(__dfault)); setlocale(LC_ALL, __old); return _M_convert_from_char(__msg); #endif } --- 65,75 ---- __uselocale(__old); return _M_convert_from_char(__msg); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_messages); char* __msg = gettext(_M_convert_to_char(__dfault)); setlocale(LC_ALL, __old); + free(__old); return _M_convert_from_char(__msg); #endif } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/time_members.cc gcc-3.1.1/libstdc++-v3/config/locale/gnu/time_members.cc *** gcc-3.1/libstdc++-v3/config/locale/gnu/time_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/time_members.cc Sat May 18 22:00:14 2002 *************** namespace std *** 54,62 **** #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); #endif } --- 54,64 ---- #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); #endif } *************** namespace std *** 202,210 **** #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __wcsftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); #endif } --- 204,214 ---- #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __wcsftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); #endif } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h gcc-3.1.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h *** gcc-3.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h Fri Apr 19 07:59:04 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h Sun May 26 14:45:43 2002 *************** *** 110,115 **** --- 110,116 ---- _M_out_desc = 0; _M_ext_bom = __obj._M_ext_bom; _M_int_bom = __obj._M_int_bom; + return *this; } ~__enc_traits() diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h Tue Jan 22 16:09:24 2002 --- gcc-3.1.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h Wed Jun 5 15:14:20 2002 *************** *** 52,58 **** char ctype::do_toupper(char __c) const ! { return _toupper(__c); } const char* ctype::do_toupper(char* __low, const char* __high) const --- 52,58 ---- char ctype::do_toupper(char __c) const ! { return ::toupper((int) __c); } const char* ctype::do_toupper(char* __low, const char* __high) const *************** *** 67,73 **** char ctype::do_tolower(char __c) const ! { return _tolower(__c); } const char* ctype::do_tolower(char* __low, const char* __high) const --- 67,73 ---- char ctype::do_tolower(char __c) const ! { return ::tolower((int) __c); } const char* ctype::do_tolower(char* __low, const char* __high) const diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h Mon Jan 21 04:08:48 2002 --- gcc-3.1.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h Sat Jun 8 14:09:04 2002 *************** *** 42,54 **** size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table == 0 ? classic_table() : __table) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table == 0 ? classic_table() : __table) { } char --- 42,54 ---- size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table ? __table : classic_table()) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table ? __table : classic_table()) { } char diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h Fri Apr 5 13:44:54 2002 --- gcc-3.1.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h Sat Jun 1 00:41:20 2002 *************** typedef __loff_t __off64_t; *** 65,75 **** #define __NO_STRING_INLINES #endif ! #if defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) #define __glibcpp_long_bits 64 #endif ! #if defined(__sparc__) && !defined(__arch64__) #define __glibcpp_long_double_bits 64 #endif --- 65,75 ---- #define __NO_STRING_INLINES #endif ! #if (defined(__hppa__) && defined(__LP64__)) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) #define __glibcpp_long_bits 64 #endif ! #if defined(__hppa__) || (defined(__sparc__) && !defined(__arch64__)) #define __glibcpp_long_double_bits 64 #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h Wed Mar 7 18:33:04 2001 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h Sat May 18 14:42:48 2002 *************** *** 1,6 **** // Locale support -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 37,50 **** bool ctype:: is(mask __m, char __c) const ! { return (_M_table)[__c] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) ! *__vec++ = (_M_table)[*__low++]; return __high; } --- 37,50 ---- bool ctype:: is(mask __m, char __c) const ! { return (_M_table)[static_cast(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) ! *__vec++ = (_M_table)[static_cast(*__low++)]; return __high; } *************** *** 52,58 **** ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && !((_M_table)[*__low] & __m)) ++__low; return __low; } --- 52,58 ---- ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && ! this->is(__m, *__low)) ++__low; return __low; } *************** *** 61,72 **** ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && ((_M_table + 1)[*__low] & __m) != 0) ++__low; return __low; } - - - - - --- 61,67 ---- ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && this->is(__m, *__low)) ++__low; return __low; } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h Mon Jan 21 04:08:50 2002 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h Sun May 19 15:16:30 2002 *************** *** 36,54 **** const ctype_base::mask* ctype::classic_table() throw() ! { return 0; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? __ctype : __table) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? __ctype : __table) { } char --- 36,54 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype + 1; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? classic_table() : __table) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? classic_table() : __table) { } char diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h Tue Oct 23 21:40:29 2001 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h Sun May 19 15:13:03 2002 *************** *** 1,6 **** // Specific definitions for IRIX -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for IRIX -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 48,54 **** #define __off64_t off64_t #define __ssize_t ssize_t ! // GCC does not use thunks on IRIX. #define _G_USING_THUNKS 0 #endif --- 48,61 ---- #define __off64_t off64_t #define __ssize_t ssize_t ! // GCC does not use thunks on IRIX. #define _G_USING_THUNKS 0 + #define __glibcpp_long_double_bits 64 + + #if __LONG_MAX__ > 2147483647 + #define __glibcpp_long_bits 64 #endif + + #endif + diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h Wed Mar 13 06:45:25 2002 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h Sat May 18 14:42:49 2002 *************** *** 52,59 **** ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high ! && !((_M_table)[static_cast(*__low)] & __m)) ++__low; return __low; } --- 52,58 ---- ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && ! this->is(__m, *__low)) ++__low; return __low; } *************** *** 62,69 **** ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high ! && ((_M_table + 1)[static_cast(*__low)] & __m) != 0) ++__low; return __low; } --- 61,67 ---- ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && this->is(__m, *__low)) ++__low; return __low; } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,55 ---- + // Locale support -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.1 Locales + // + + // Information as gleaned from /usr/include/ctype.h. + + struct ctype_base + { + // Non-standard typedefs. + typedef const unsigned char* __to_type; + + // NB: Offsets into ctype::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. + typedef short mask; + static const mask upper = _UP; + static const mask lower = _LO; + static const mask alpha = _LO | _UP | _XA; + static const mask digit = _DI; + static const mask xdigit = _XD; + static const mask space = _CN | _SP | _XS; + static const mask print = _DI | _LO | _PU | _SP | _UP | _XA; + static const mask graph = _DI | _LO | _PU | _UP | _XA; + static const mask cntrl = _BB; + static const mask punct = _PU; + static const mask alnum = _DI | _LO | _UP | _XA; + }; diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,67 ---- + // Locale support -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.1 Locales + // + + // ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) + // functions go in ctype.cc + + bool + ctype:: + is(mask __m, char __c) const + { return _M_table[(unsigned char)(__c)] & __m; } + + const char* + ctype:: + is(const char* __low, const char* __high, mask* __vec) const + { + while (__low < __high) + *__vec++ = _M_table[*__low++]; + return __high; + } + + const char* + ctype:: + scan_is(mask __m, const char* __low, const char* __high) const + { + while (__low < __high && !this->is(__m, *__low)) + ++__low; + return __low; + } + + const char* + ctype:: + scan_not(mask __m, const char* __low, const char* __high) const + { + while (__low < __high && this->is(__m, *__low) != 0) + ++__low; + return __low; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,79 ---- + // Locale support -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.1 Locales + // + + // Information as gleaned from /usr/include/ctype.h + + const ctype_base::mask* + ctype::classic_table() throw() + { return 0; } + + ctype::ctype(__c_locale, const mask* __table, bool __del, + size_t __refs) + : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), + _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _Ctype) + { } + + ctype::ctype(const mask* __table, bool __del, size_t __refs) + : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), + _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _Ctype) + { } + + char + ctype::do_toupper(char __c) const + { return ::toupper((int) __c); } + + const char* + ctype::do_toupper(char* __low, const char* __high) const + { + while (__low < __high) + { + *__low = ::toupper((int) *__low); + ++__low; + } + return __high; + } + + char + ctype::do_tolower(char __c) const + { return ::tolower((int) __c); } + + const char* + ctype::do_tolower(char* __low, const char* __high) const + { + while (__low < __high) + { + *__low = ::tolower((int) *__low); + ++__low; + } + return __high; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,36 ---- + // Specific definitions for QNX 6.1 -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _GLIBCPP_OS_DEFINES + #define _GLIBCPP_OS_DEFINES 1 + + // System-specific #define, typedefs, corrections, etc, go here. This + // file will come before all others. + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h Thu Dec 14 07:20:36 2000 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h Mon Jul 15 20:25:40 2002 *************** *** 1,6 **** // Locale support -*- C++ -*- ! // Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support -*- C++ -*- ! // Copyright (C) 1997-1999, 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 47,53 **** static const mask digit = 04; static const mask xdigit = 0200; static const mask space = 010; ! static const mask print = 020 | 01 | 02 | 04 | 0200; static const mask graph = 020 | 01 | 02 | 04; static const mask cntrl = 040; static const mask punct = 020; --- 47,53 ---- static const mask digit = 04; static const mask xdigit = 0200; static const mask space = 010; ! static const mask print = 020 | 01 | 02 | 04 | 0100; static const mask graph = 020 | 01 | 02 | 04; static const mask cntrl = 040; static const mask punct = 020; diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h Wed Mar 13 06:45:26 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h Mon May 27 11:50:14 2002 *************** *** 35,41 **** const ctype_base::mask* ctype::classic_table() throw() ! { return 0; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) --- 35,41 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h Mon Apr 22 20:28:29 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h Sat May 18 14:51:46 2002 *************** *** 1,6 **** // Specific definitions for Solaris 2.5 -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for Solaris 2.5 -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 39,45 **** #define __off64_t off64_t #define __ssize_t ssize_t - // Without this all the libio vtbls are offset wrongly. - #define _G_USING_THUNKS 0 - #endif --- 39,42 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h Wed Mar 13 06:45:28 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h Mon May 27 11:50:16 2002 *************** *** 35,41 **** const ctype_base::mask* ctype::classic_table() throw() ! { return 0; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) --- 35,41 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype_mask; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h Mon Apr 22 20:28:30 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h Sat May 18 14:51:46 2002 *************** *** 1,6 **** // Specific definitions for Solaris 2.6 -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for Solaris 2.6 -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 39,45 **** #define __off64_t off64_t #define __ssize_t ssize_t - // Without this all the libio vtbls are offset wrongly. - #define _G_USING_THUNKS 0 - #endif --- 39,42 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h Mon Apr 22 20:28:32 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h Sat May 18 14:51:46 2002 *************** *** 1,6 **** // Specific definitions for Solaris 7,8 -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for Solaris 7,8 -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 39,49 **** #define __off64_t off64_t #define __ssize_t ssize_t - // Without this all the libio vtbls are offset wrongly. - #define _G_USING_THUNKS 0 - #if defined(__sparcv9) || defined(__arch64__) #define __glibcpp_long_bits 64 #endif #endif --- 39,47 ---- #define __off64_t off64_t #define __ssize_t ssize_t #if defined(__sparcv9) || defined(__arch64__) #define __glibcpp_long_bits 64 #endif #endif + diff -Nrc3pad gcc-3.1/libstdc++-v3/config.h.in gcc-3.1.1/libstdc++-v3/config.h.in *** gcc-3.1/libstdc++-v3/config.h.in Mon Mar 25 21:00:56 2002 --- gcc-3.1.1/libstdc++-v3/config.h.in Mon May 27 15:01:29 2002 *************** *** 711,716 **** --- 711,719 ---- /* Define if you have the header file. */ #undef HAVE_STDLIB_H + /* Define if you have the header file. */ + #undef HAVE_STRING_H + /* Define if you have the header file. */ #undef HAVE_SYS_ISA_DEFS_H diff -Nrc3pad gcc-3.1/libstdc++-v3/configure gcc-3.1.1/libstdc++-v3/configure *** gcc-3.1/libstdc++-v3/configure Wed May 8 04:27:59 2002 --- gcc-3.1.1/libstdc++-v3/configure Wed Jul 3 22:47:36 2002 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 598,616 **** PACKAGE=libstdc++ - # For typical GNU versioning info, format is MAJOR.MINOR.MICRO - release_VERSION=3.1.0 - # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:0:0 ! # Gets build, host, target, *_vendor, *_cpu, *_os, etc. ! # AC 2.5x sets target_alias iff the user specified --target, but we use it ! # everywhere, so we set it here just to be sure. In AC 2.13 ! # AC_CANONICAL_TARGET was known as AC_CANONICAL_SYSTEM. ! ac_aux_dir= ! for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" --- 598,640 ---- PACKAGE=libstdc++ # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:1:0 ! ! # Check whether --enable-multilib or --disable-multilib was given. ! if test "${enable_multilib+set}" = set; then ! enableval="$enable_multilib" ! case "${enableval}" in ! yes) multilib=yes ;; ! no) multilib=no ;; ! *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; ! esac ! else ! multilib=yes ! fi ! ! # When building with srcdir == objdir, links to the source files will ! # be created in directories within the target_subdir. We have to ! # adjust toplevel_srcdir accordingly, so that configure finds ! # install-sh and other auxiliary files that live in the top-level ! # source directory. ! if test "${srcdir}" = "."; then ! if test -z "${with_target_subdir}"; then ! toprel=".." ! else ! if test "${with_target_subdir}" != "."; then ! toprel="${with_multisrctop}../.." ! else ! toprel="${with_multisrctop}.." ! fi ! fi ! else ! toprel=".." ! fi ! ac_aux_dir= ! for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" *************** for ac_dir in $srcdir $srcdir/.. $srcdir *** 622,633 **** fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Do some error checking and defaulting for the host and target type. # The inputs are: --- 646,665 ---- fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + toplevel_srcdir=\${top_srcdir}/$toprel + + + + # Gets build, host, target, *_vendor, *_cpu, *_os, etc. + # AC 2.5x sets target_alias iff the user specified --target, but we use it + # everywhere, so we set it here just to be sure. In AC 2.13 + # AC_CANONICAL_TARGET was known as AC_CANONICAL_SYSTEM. # Do some error checking and defaulting for the host and target type. # The inputs are: *************** else { echo "configure: error: can not r *** 656,662 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:660: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 688,694 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:692: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 677,683 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:681: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 709,715 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:713: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 695,701 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:699: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 727,733 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:731: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** test "$host_alias" != "$target_alias" && *** 720,962 **** target_alias=${target_alias-$target} - # Find a good install program. We prefer a C program (faster), - # so one script is as good as another. But avoid the broken or - # incompatible versions: - # SysV /etc/install, /usr/sbin/install - # SunOS /usr/etc/install - # IRIX /sbin/install - # AIX /bin/install - # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag - # AFS /usr/afsws/bin/install, which mishandles nonexistent args - # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" - # ./install, which can be erroneously created by make from ./install.sh. - echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 - echo "configure:736: checking for a BSD compatible install" >&5 - if test -z "$INSTALL"; then - if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 - else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - - fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi - fi - echo "$ac_t""$INSTALL" 1>&6 - - # Use test -z because SunOS4 sh mishandles braces in ${var-val}. - # It thinks the first close brace ends the variable substitution. - test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - - test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - - test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 - echo "configure:789: checking whether build environment is sane" >&5 - # Just in case - sleep 1 - echo timestamp > conftestfile - # Do `set' in a subshell so we don't clobber the current shell's - # arguments. Must try -L first in case configure is actually a - # symlink; some systems play weird games with the mod time of symlinks - # (eg FreeBSD returns the mod time of the symlink's containing - # directory). - if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { echo "configure: error: ls -t appears to fail. Make sure there is not a broken - alias in your environment" 1>&2; exit 1; } - fi - - test "$2" = conftestfile - ) - then - # Ok. - : - else - { echo "configure: error: newly created file is older than distributed files! - Check your system clock" 1>&2; exit 1; } - fi - rm -f conftest* - echo "$ac_t""yes" 1>&6 - if test "$program_transform_name" = s,x,x,; then - program_transform_name= - else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed - s,\\,\\\\,g; s,\$,$$,g - EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed - fi - test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" - # Use a double $ so make ignores it. - test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - - # sed with no file args requires a program. - test "$program_transform_name" = "" && program_transform_name="s,x,x," - - echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 - echo "configure:846: checking whether ${MAKE-make} sets \${MAKE}" >&5 - set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` - if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 - else - cat > conftestmake <<\EOF - all: - @echo 'ac_maketemp="${MAKE}"' - EOF - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` - if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes - else - eval ac_cv_prog_make_${ac_make}_set=no - fi - rm -f conftestmake - fi - if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= - else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" - fi - - - PACKAGE=$PACKAGE - - VERSION=$release_VERSION - - if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } - fi - cat >> confdefs.h <> confdefs.h <&6 - echo "configure:892: checking for working aclocal" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (aclocal --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal - echo "$ac_t""found" 1>&6 - else - ACLOCAL="$missing_dir/missing aclocal" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 - echo "configure:905: checking for working autoconf" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$ac_t""found" 1>&6 - else - AUTOCONF="$missing_dir/missing autoconf" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working automake""... $ac_c" 1>&6 - echo "configure:918: checking for working automake" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (automake --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake - echo "$ac_t""found" 1>&6 - else - AUTOMAKE="$missing_dir/missing automake" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 - echo "configure:931: checking for working autoheader" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$ac_t""found" 1>&6 - else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 - echo "configure:944: checking for working makeinfo" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$ac_t""found" 1>&6 - else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$ac_t""missing" 1>&6 - fi - - - - - - # Runs configure.host and configure.target, as well as finds CC, CXX # and assorted other critical bits. Have to run this before the # GLIBCPP_ENABLE_* macros below. --- 752,757 ---- *************** else *** 967,978 **** fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ! echo "configure:971: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:766: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else --- 778,784 ---- return __CYGWIN__; ; return 0; } EOF ! if { (eval echo configure:782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else *************** echo "$ac_t""$ac_cv_cygwin" 1>&6 *** 1000,1018 **** CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:1004: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else --- 795,813 ---- CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:799: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else *************** echo "$ac_t""$ac_cv_mingw32" 1>&6 *** 1029,1091 **** MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes - # Check whether --enable-multilib or --disable-multilib was given. - if test "${enable_multilib+set}" = set; then - enableval="$enable_multilib" - case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; - esac - else - multilib=yes - fi - - # When building with srcdir == objdir, links to the source files will - # be created in directories within the target_subdir. We have to - # adjust toplevel_srcdir accordingly, so that configure finds - # install-sh and other auxiliary files that live in the top-level - # source directory. - if test "${srcdir}" = "."; then - if test -z "${with_target_subdir}"; then - toprel=".." - else - if test "${with_target_subdir}" != "."; then - toprel="${with_multisrctop}../.." - else - toprel="${with_multisrctop}.." - fi - fi - else - toprel=".." - fi - ac_aux_dir= - for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi - done - if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. ! toplevel_srcdir=\${top_srcdir}/$toprel ! # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`pwd` case $srcdir in \\/$* | ?:\\/*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; --- 824,837 ---- MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes ! #possibly test for the presence of the compiler sources here? # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`${PWDCMD-pwd}` case $srcdir in \\/$* | ?:\\/*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; *************** do *** 1100,1106 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1104: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 846,852 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:850: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$AWK" && break *** 1130,1139 **** done # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:1137: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 876,886 ---- done # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. Uncomment the next line to ! # force a particular method. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:884: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1190,1196 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1194: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 937,943 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:941: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1220,1226 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1224: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 967,973 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:971: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1269,1275 **** fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1273: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1016,1022 ---- fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1020: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1278,1284 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1025,1031 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** echo "$ac_t""$ac_cv_prog_gcc" 1>&6 *** 1293,1299 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1297: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1040,1046 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1044: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** do *** 1336,1342 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1340: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1083,1089 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1087: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$glibcpp_CXX" || glibcpp_CXX="g *** 1371,1377 **** test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1375: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1118,1124 ---- test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1122: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1380,1386 **** yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no --- 1127,1133 ---- yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1131: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no *************** echo "$ac_t""$ac_cv_prog_gxx" 1>&6 *** 1395,1401 **** ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1399: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1142,1148 ---- ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1146: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 *** 1423,1477 **** fi ! # For some reason, gettext needs this. ! ! echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 ! echo "configure:1430: checking for strerror in -lcposix" >&5 ! ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` ! if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lcposix $LIBS" ! cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" - else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" - fi - rm -f conftest* - LIBS="$ac_save_LIBS" ! fi ! if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! LIBS="$LIBS -lcposix" else echo "$ac_t""no" 1>&6 fi - - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1475: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1170,1208 ---- fi ! # For directory versioning (e.g., headers) and other variables. ! echo $ac_n "checking for GCC version number""... $ac_c" 1>&6 ! echo "configure:1176: checking for GCC version number" >&5 ! gcc_version=`$glibcpp_CXX -dumpversion` ! echo "$ac_t""$gcc_version" 1>&6 ! # For some reason, gettext needs this. ! echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! echo "configure:1182: checking for POSIXized ISC" >&5 ! if test -d /etc/conf/kconfig.d && ! grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 ! then ! echo "$ac_t""yes" 1>&6 ! ISC=yes # If later tests want to check for ISC. ! cat >> confdefs.h <<\EOF ! #define _POSIX_SOURCE 1 EOF ! if test "$GCC" = yes; then ! CC="$CC -posix" ! else ! CC="$CC -Xp" ! fi else echo "$ac_t""no" 1>&6 + ISC= fi # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1206: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1503,1509 **** # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1507: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1234,1240 ---- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1238: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1535,1541 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1539: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1266,1272 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1270: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1567,1573 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1571: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1298,1304 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1302: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1611,1617 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1615: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1342,1348 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1346: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_DATA" && INSTALL_DATA= *** 1665,1671 **** echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1669: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" --- 1396,1402 ---- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1400: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" *************** fi *** 1703,1709 **** echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1707: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1434,1440 ---- echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1438: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1713,1719 **** rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj | *.ilk | *.pdb) ;; --- 1444,1450 ---- rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj | *.ilk | *.pdb) ;; *************** ac_exeext=$EXEEXT *** 1735,1748 **** fi - . ${glibcpp_basedir}/configure.host - case ${glibcpp_basedir} in /* | A-Za-z:\\/*) libgcj_flagbasedir=${glibcpp_basedir} ;; *) glibcpp_flagbasedir='$(top_builddir)/'${glibcpp_basedir} ;; esac ! # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. . ${glibcpp_basedir}/configure.target --- 1466,1477 ---- fi case ${glibcpp_basedir} in /* | A-Za-z:\\/*) libgcj_flagbasedir=${glibcpp_basedir} ;; *) glibcpp_flagbasedir='$(top_builddir)/'${glibcpp_basedir} ;; esac ! # Find platform-specific directories containing configuration info. In # addition to possibly modifying the same flags, it also sets up symlinks. . ${glibcpp_basedir}/configure.target *************** ac_exeext=$EXEEXT *** 1751,1756 **** --- 1480,1657 ---- + echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 + echo "configure:1485: checking whether build environment is sane" >&5 + # Just in case + sleep 1 + echo timestamp > conftestfile + # Do `set' in a subshell so we don't clobber the current shell's + # arguments. Must try -L first in case configure is actually a + # symlink; some systems play weird games with the mod time of symlinks + # (eg FreeBSD returns the mod time of the symlink's containing + # directory). + if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken + alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) + then + # Ok. + : + else + { echo "configure: error: newly created file is older than distributed files! + Check your system clock" 1>&2; exit 1; } + fi + rm -f conftest* + echo "$ac_t""yes" 1>&6 + if test "$program_transform_name" = s,x,x,; then + program_transform_name= + else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed + s,\\,\\\\,g; s,\$,$$,g + EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed + fi + test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" + # Use a double $ so make ignores it. + test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + + # sed with no file args requires a program. + test "$program_transform_name" = "" && program_transform_name="s,x,x," + + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 + echo "configure:1542: checking whether ${MAKE-make} sets \${MAKE}" >&5 + set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftestmake <<\EOF + all: + @echo 'ac_maketemp="${MAKE}"' + EOF + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` + if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes + else + eval ac_cv_prog_make_${ac_make}_set=no + fi + rm -f conftestmake + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= + else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" + fi + + + PACKAGE=$PACKAGE + + VERSION=$gcc_version + + if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } + fi + cat >> confdefs.h <> confdefs.h <&6 + echo "configure:1588: checking for working aclocal" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 + else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 + echo "configure:1601: checking for working autoconf" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 + else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working automake""... $ac_c" 1>&6 + echo "configure:1614: checking for working automake" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 + else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 + echo "configure:1627: checking for working autoheader" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 + else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 + echo "configure:1640: checking for working makeinfo" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 + else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 + fi + + + + + # Check whether --enable-shared or --disable-shared was given. *************** ac_prog=ld *** 1834,1840 **** if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1838: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1735,1741 ---- if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1739: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1838: checking for ld us *** 1864,1873 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1868: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1871: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1765,1774 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1769: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1772: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 1902,1908 **** fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1906: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1803,1809 ---- fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1807: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** with_gnu_ld=$lt_cv_prog_gnu_ld *** 1919,1925 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1923: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1820,1826 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1824: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** reload_flag=$lt_cv_ld_reload_flag *** 1931,1937 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1935: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1832,1838 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1836: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** NM="$lt_cv_path_NM" *** 1969,1975 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1973: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1870,1876 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1874: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** file_magic_cmd=$lt_cv_file_magic_cmd *** 2133,2145 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2137: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 2034,2046 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2038: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; *************** case $deplibs_check_method in *** 2163,2169 **** file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2167: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2064,2070 ---- file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2068: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2225,2231 **** if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2229: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2126,2132 ---- if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2130: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 2296,2302 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2300: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2197,2203 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2201: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2328,2334 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2332: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2229,2235 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2233: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2363,2369 **** # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2367: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2264,2270 ---- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2268: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2395,2401 **** # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2399: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2296,2302 ---- # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2300: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test x"$pic_mode" = xno && libtool_flags *** 2462,2469 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2466 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2363,2370 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2367 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" *************** case $host in *** 2484,2490 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2488: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2385,2391 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2389: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2497,2510 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else --- 2398,2411 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else *************** echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 *** 2534,2540 **** esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2538: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2435,2441 ---- esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2439: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 2547,2558 **** cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2448,2459 ---- cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2457: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** exec 5>>./config.log *** 2690,2696 **** # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2694: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2591,2597 ---- # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2595: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 2738,2744 **** echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2742: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 2639,2645 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2643: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 2753,2765 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2654,2666 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2770,2782 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2780: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2671,2683 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2787,2799 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2797: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2688,2700 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** echo "$ac_t""$CPP" 1>&6 *** 2819,2825 **** echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2823: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" --- 2720,2726 ---- echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2724: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" *************** fi *** 2843,2859 **** # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 ! echo "configure:2847: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2857: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2744,2760 ---- # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 ! echo "configure:2748: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2758: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2883,2891 **** case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2887: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < --- 2784,2792 ---- case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2788: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < *************** fi *** 2999,3005 **** echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:3003: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" --- 2900,2906 ---- echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:2904: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" *************** fi *** 3017,3023 **** case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < --- 2918,2924 ---- case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < *************** rm -f conftest* *** 3043,3049 **** enable_clocale_flag=generic else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else --- 2965,2971 ---- } EOF ! if { (eval echo configure:2969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else *************** fi *** 3116,3129 **** # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM_GNU_GETTEXT here. Instead, assume glibc. # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3127: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3017,3030 ---- # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3028: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3153,3159 **** if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi - # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ --- 3054,3059 ---- *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3247,3262 **** # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3251: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3147,3162 ---- # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3151: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3266,3279 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3166,3179 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3283,3296 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3183,3196 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3300,3313 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3200,3213 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3317,3330 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3217,3230 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3334,3347 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3234,3247 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3351,3364 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3362: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3251,3264 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3368,3381 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3268,3281 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3385,3398 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3396: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3285,3298 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3402,3415 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3302,3315 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3419,3432 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3319,3332 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3436,3449 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3336,3349 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3457,3472 **** # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3461: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3357,3372 ---- # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3361: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3476,3482 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3376,3382 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3487,3493 **** ; return 0; } EOF ! if { (eval echo configure:3491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3387,3393 ---- ; return 0; } EOF ! if { (eval echo configure:3391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3497,3503 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3397,3403 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3508,3514 **** ; return 0; } EOF ! if { (eval echo configure:3512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3408,3414 ---- ; return 0; } EOF ! if { (eval echo configure:3412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3518,3524 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3418,3424 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3529,3535 **** ; return 0; } EOF ! if { (eval echo configure:3533: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3429,3435 ---- ; return 0; } EOF ! if { (eval echo configure:3433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3539,3545 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3439,3445 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3550,3556 **** ; return 0; } EOF ! if { (eval echo configure:3554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3450,3456 ---- ; return 0; } EOF ! if { (eval echo configure:3454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3564,3583 **** # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3568: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else --- 3464,3483 ---- # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3468: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else *************** fi *** 3593,3608 **** echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3597: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3493,3508 ---- echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3497: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3612,3625 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3512,3525 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3629,3642 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3529,3542 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3646,3659 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3546,3559 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3663,3676 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3563,3576 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3680,3693 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3580,3593 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3705,3720 **** # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3709: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3605,3620 ---- # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3609: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3724,3737 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3624,3637 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3741,3754 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3641,3654 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3760,3766 **** echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3764: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || --- 3660,3666 ---- echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3664: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3808,3824 **** echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3812: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3708,3724 ---- echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3712: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3828,3841 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3839: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3728,3741 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** cross_compiling=$ac_cv_prog_cc_cross *** 3863,3869 **** echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3867: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" --- 3763,3769 ---- echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3767: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" *************** fi *** 3889,3910 **** case "$enable_cheaders" in c_shadow) - CSHADOW_FLAGS="-fno-builtin" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac - if test "$enable_cheaders" = c; then GLIBCPP_C_HEADERS_C_TRUE= --- 3789,3806 ---- *************** else *** 3922,3931 **** GLIBCPP_C_HEADERS_C_STD_TRUE='#' GLIBCPP_C_HEADERS_C_STD_FALSE= fi echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3929: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 --- 3818,3836 ---- GLIBCPP_C_HEADERS_C_STD_TRUE='#' GLIBCPP_C_HEADERS_C_STD_FALSE= fi + + + if test "$c_compatibility" = yes; then + GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE= + GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE='#' + else + GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE='#' + GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE= + fi echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3834: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 *************** EXTRA_CXX_FLAGS="$enable_cxx_flags" *** 3978,3984 **** echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3982: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 3883,3889 ---- echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3887: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** if test "${enable_sjlj_exceptions+set}" *** 3993,3999 **** : else cat > conftest.$ac_ext << EOF ! #line 3997 "configure" struct S { ~S(); }; void bar(); void foo() --- 3898,3904 ---- : else cat > conftest.$ac_ext << EOF ! #line 3902 "configure" struct S { ~S(); }; void bar(); void foo() *************** void foo() *** 4004,4010 **** EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:4008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then --- 3909,3915 ---- EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:3913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then *************** cross_compiling=$ac_cv_prog_cc_cross *** 4037,4043 **** echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:4041: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" --- 3942,3948 ---- echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:3946: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" *************** EOF *** 4073,4078 **** --- 3978,4024 ---- fi + # Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c + for ac_hdr in string.h stdlib.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + echo "configure:3987: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:3997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 + fi + done + if test -n "$with_cross_host" || test x"$build" != x"$host"; then *************** if test -n "$with_cross_host" || test x" *** 4114,4130 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4118: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4060,4076 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4064: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4074: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4202,4213 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:4206: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:4152: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 4164,4170 ---- } EOF ! if { (eval echo configure:4168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 4252,4258 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4256: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4198,4204 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4202: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4260,4273 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4206,4219 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 4297,4308 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4301: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4247: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4271,4277 ---- ; return 0; } EOF ! if { (eval echo configure:4275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4354,4365 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4358: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4304: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4328,4334 ---- ; return 0; } EOF ! if { (eval echo configure:4332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4410,4421 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4414: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4360: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4384,4390 ---- ; return 0; } EOF ! if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4468,4479 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4472: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4418: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4442,4448 ---- ; return 0; } EOF ! if { (eval echo configure:4446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4528,4543 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4532: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 4474,4489 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4478: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 4559,4575 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4563: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4505,4521 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4509: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4600,4616 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4604: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4546,4562 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4550: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4643,4658 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4647: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 4589,4604 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4593: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 4665,4673 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4669: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 4611,4619 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4615: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 4676,4682 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 4622,4628 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 4692,4703 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4696: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4642: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4666,4672 ---- ; return 0; } EOF ! if { (eval echo configure:4670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4755,4766 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4759: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4705: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4729,4735 ---- ; return 0; } EOF ! if { (eval echo configure:4733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4811,4817 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4815: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 4757,4763 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4761: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:4815: checking for ISO C *** 4823,4839 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4827: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4769,4785 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4773: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 4857,4873 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4861: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4803,4819 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4807: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 4891,4897 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4895: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4837,4843 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4841: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4899,4905 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4856,4862 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:4860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 4936,4947 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4940: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4886: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4910,4916 ---- ; return 0; } EOF ! if { (eval echo configure:4914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4994,5000 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4998: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 4940,4946 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4944: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:4998: checking for XPG2 *** 5005,5011 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5009: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 4951,4957 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4955: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 5064,5080 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5068: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5010,5026 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5014: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5152,5163 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:5156: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:5102: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 5114,5120 ---- } EOF ! if { (eval echo configure:5118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 5202,5208 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5206: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5148,5154 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5152: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 5210,5223 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5156,5169 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 5247,5258 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5251: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5197: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5221,5227 ---- ; return 0; } EOF ! if { (eval echo configure:5225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5304,5315 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5308: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5278,5284 ---- ; return 0; } EOF ! if { (eval echo configure:5282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5360,5371 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5364: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5310: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5334,5340 ---- ; return 0; } EOF ! if { (eval echo configure:5338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5418,5429 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5422: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5368: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5392,5398 ---- ; return 0; } EOF ! if { (eval echo configure:5396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5478,5493 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5482: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 5424,5439 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5428: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 5509,5525 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5513: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5455,5471 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5459: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5550,5566 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5554: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5496,5512 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5500: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5593,5608 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5597: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 5539,5554 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5543: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 5615,5623 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5619: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 5561,5569 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5565: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 5626,5632 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5630: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 5572,5578 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 5642,5653 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5646: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5592: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5616,5622 ---- ; return 0; } EOF ! if { (eval echo configure:5620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5705,5716 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5709: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5655: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5679,5685 ---- ; return 0; } EOF ! if { (eval echo configure:5683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5761,5767 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5765: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 5707,5713 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5711: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:5765: checking for ISO C *** 5773,5789 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5777: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5787: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5719,5735 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5723: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 5807,5823 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5811: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5821: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5753,5769 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5757: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 5841,5847 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5845: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5787,5793 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5791: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 5849,5855 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5806,5812 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:5810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 5886,5897 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5890: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5836: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5860,5866 ---- ; return 0; } EOF ! if { (eval echo configure:5864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5944,5950 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5948: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 5890,5896 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5894: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:5948: checking for XPG2 *** 5955,5961 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5959: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 5901,5907 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5905: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 6008,6024 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6012: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5954,5970 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5958: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6096,6107 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:6100: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:6046: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 6058,6064 ---- } EOF ! if { (eval echo configure:6062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 6146,6152 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6150: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6092,6098 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6096: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 6154,6167 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6100,6113 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 6191,6202 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6195: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6165,6171 ---- ; return 0; } EOF ! if { (eval echo configure:6169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6248,6259 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6252: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6198: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6222,6228 ---- ; return 0; } EOF ! if { (eval echo configure:6226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6304,6315 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6308: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6278,6284 ---- ; return 0; } EOF ! if { (eval echo configure:6282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6362,6373 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6366: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6312: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6336,6342 ---- ; return 0; } EOF ! if { (eval echo configure:6340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6422,6437 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6426: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 6368,6383 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6372: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 6453,6469 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6457: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6399,6415 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6403: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6494,6510 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6498: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6508: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6440,6456 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6444: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6537,6552 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6541: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 6483,6498 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6487: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 6559,6567 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6563: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 6505,6513 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6509: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 6570,6576 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 6516,6522 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 6586,6597 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6590: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6536: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6560,6566 ---- ; return 0; } EOF ! if { (eval echo configure:6564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6649,6660 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6653: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6599: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6623,6629 ---- ; return 0; } EOF ! if { (eval echo configure:6627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6705,6711 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6709: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 6651,6657 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6655: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:6709: checking for ISO C *** 6717,6733 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6721: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6731: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6663,6679 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6667: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6677: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 6751,6767 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6755: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6765: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6697,6713 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6701: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 6785,6791 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6789: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6731,6737 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6735: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 6793,6799 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6750,6756 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:6754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 6830,6841 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6834: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6780: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6804,6810 ---- ; return 0; } EOF ! if { (eval echo configure:6808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6888,6894 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6892: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 6834,6840 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6838: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:6892: checking for XPG2 *** 6899,6905 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6903: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 6845,6851 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6849: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 6941,6957 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6945: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6887,6903 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6891: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6901: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7027,7038 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:7031: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:6977: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 6989,6995 ---- } EOF ! if { (eval echo configure:6993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 7077,7083 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7081: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7023,7029 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7027: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7085,7098 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7031,7044 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7122,7133 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7126: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7072: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7096,7102 ---- ; return 0; } EOF ! if { (eval echo configure:7100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7179,7190 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7183: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7129: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7153,7159 ---- ; return 0; } EOF ! if { (eval echo configure:7157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7235,7246 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7239: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7209,7215 ---- ; return 0; } EOF ! if { (eval echo configure:7213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7293,7304 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7243: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7267,7273 ---- ; return 0; } EOF ! if { (eval echo configure:7271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7353,7368 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7357: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 7299,7314 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7303: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 7384,7400 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7388: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7398: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7330,7346 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7334: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7344: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7425,7441 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7429: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7371,7387 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7375: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7468,7483 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7472: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 7414,7429 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7418: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 7490,7498 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7494: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 7436,7444 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7440: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 7501,7507 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 7447,7453 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7451: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 7517,7528 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7521: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7467: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7491,7497 ---- ; return 0; } EOF ! if { (eval echo configure:7495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7580,7591 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7584: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7530: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7554,7560 ---- ; return 0; } EOF ! if { (eval echo configure:7558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7636,7642 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7640: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 7582,7588 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7586: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:7640: checking for ISO C *** 7648,7664 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7652: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7594,7610 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7598: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 7682,7698 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7686: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7628,7644 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7632: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 7716,7722 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7720: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7662,7668 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7666: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7724,7730 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7681,7687 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:7685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7761,7772 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7765: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7711: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7735,7741 ---- ; return 0; } EOF ! if { (eval echo configure:7739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7819,7825 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7823: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 7765,7771 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7769: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:7823: checking for XPG2 *** 7830,7836 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7834: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 7776,7782 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7780: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 7847,7852 **** --- 7793,8719 ---- os_include_dir="config/os/mingw32" ;; + *-qnx6.[12]*) + SECTION_FLAGS='-ffunction-sections -fdata-sections' + + + # If we're not using GNU ld, then there's no point in even trying these + # tests. Check for that first. We should have already tested for gld + # by now (in libtool), but require it now just to be safe... + test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS='' + test -z "$OPT_LDFLAGS" && OPT_LDFLAGS='' + + + # The name set by libtool depends on the version of libtool. Shame on us + # for depending on an impl detail, but c'est la vie. Older versions used + # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on + # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually + # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't + # set (hence we're using an older libtool), then set it. + if test x${with_gnu_ld+set} != xset; then + if test x${ac_cv_prog_gnu_ld+set} != xset; then + # We got through "ac_require(ac_prog_ld)" and still not set? Huh? + with_gnu_ld=no + else + with_gnu_ld=$ac_cv_prog_gnu_ld + fi + fi + + # Start by getting the version number. I think the libtool test already + # does some of this, but throws away the result. + + ldver=`$LD --version 2>/dev/null | head -1 | \ + sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'` + + glibcpp_gnu_ld_version=`echo $ldver | \ + $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` + + # Set --gc-sections. + if test "$with_gnu_ld" = "notbroken"; then + # GNU ld it is! Joy and bunny rabbits! + + # All these tests are for C++; save the language and the compiler flags. + # Need to do this so that g++ won't try to link in libstdc++ + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS='-x c++ -Wl,--gc-sections' + + # Check for -Wl,--gc-sections + # XXX This test is broken at the moment, as symbols required for + # linking are now in libsupc++ (not built yet.....). In addition, + # this test has cored on solaris in the past. In addition, + # --gc-sections doesn't really work at the moment (keeps on discarding + # used sections, first .eh_frame and now some of the glibc sections for + # iconv). Bzzzzt. Thanks for playing, maybe next time. + echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 + echo "configure:7850: checking for ld that supports -Wl,--gc-sections" >&5 + if test "$cross_compiling" = yes; then + ac_sectionLDflags=yes + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_sectionLDflags=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_sectionLDflags=no + fi + rm -fr conftest* + fi + + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + else + # this is the suspicious part + CFLAGS='' + fi + if test "$ac_sectionLDflags" = "yes"; then + SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS" + fi + echo "$ac_t""$ac_sectionLDflags" 1>&6 + fi + + # Set linker optimization flags. + if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then + OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS" + fi + + + + + + echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 + echo "configure:7900: checking for main in -lm" >&5 + ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" + LIBS="-lm $LIBS" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" + fi + rm -f conftest* + LIBS="$ac_save_LIBS" + + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 + fi + + for ac_func in nan copysignf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:7945: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo" + fi + done + + + for ac_func in __signbit + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8002: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS signbit.lo" + fi + done + + for ac_func in __signbitf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8058: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS signbitf.lo" + fi + done + + + if test x$ac_cv_func_copysignl = x"yes"; then + for ac_func in __signbitl + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8116: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS signbitl.lo" + fi + done + + fi + + + + + + echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 + echo "configure:8176: checking for mbstate_t" >&5 + cat > conftest.$ac_ext < + int main() { + mbstate_t teststate; + ; return 0; } + EOF + if { (eval echo configure:8185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + have_mbstate_t=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + have_mbstate_t=no + fi + rm -f conftest* + echo "$ac_t""$have_mbstate_t" 1>&6 + if test x"$have_mbstate_t" = xyes; then + cat >> confdefs.h <<\EOF + #define HAVE_MBSTATE_T 1 + EOF + + fi + + for ac_hdr in wchar.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + echo "configure:8207: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 + ac_has_wchar_h=no + fi + done + + for ac_hdr in wctype.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + echo "configure:8248: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 + ac_has_wctype_h=no + fi + done + + + if test x"$ac_has_wchar_h" = xyes && + test x"$ac_has_wctype_h" = xyes && + test x"$enable_c_mbchar" != xno; then + + echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 + echo "configure:8291: checking for WCHAR_MIN and WCHAR_MAX" >&5 + cat > conftest.$ac_ext < + int main() { + int i = WCHAR_MIN; int j = WCHAR_MAX; + ; return 0; } + EOF + if { (eval echo configure:8300: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + has_wchar_minmax=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + has_wchar_minmax=no + fi + rm -f conftest* + echo "$ac_t""$has_wchar_minmax" 1>&6 + + echo $ac_n "checking for WEOF""... $ac_c" 1>&6 + echo "configure:8313: checking for WEOF" >&5 + cat > conftest.$ac_ext < + #include + int main() { + wint_t i = WEOF; + ; return 0; } + EOF + if { (eval echo configure:8324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + has_weof=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + has_weof=no + fi + rm -f conftest* + echo "$ac_t""$has_weof" 1>&6 + + ac_wfuncs=yes + for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8340: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + \ + ac_wfuncs=no + fi + done + + + for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \ + fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \ + vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \ + mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \ + wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \ + wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8403: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + \ + ac_wfuncs=no + fi + done + + + echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 + echo "configure:8459: checking for ISO C99 wchar_t support" >&5 + if test x"$has_weof" = xyes && + test x"$has_wchar_minmax" = xyes && + test x"$ac_wfuncs" = xyes; then + ac_isoC99_wchar_t=yes + else + ac_isoC99_wchar_t=no + fi + echo "$ac_t""$ac_isoC99_wchar_t" 1>&6 + + ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 + echo "configure:8471: checking for iconv.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8481: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_has_iconv_h=yes + else + echo "$ac_t""no" 1>&6 + ac_has_iconv_h=no + fi + + ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 + echo "configure:8505: checking for langinfo.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_has_langinfo_h=yes + else + echo "$ac_t""no" 1>&6 + ac_has_langinfo_h=no + fi + + + echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 + echo "configure:8539: checking for iconv in -liconv" >&5 + ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" + LIBS="-liconv $LIBS" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" + fi + rm -f conftest* + LIBS="$ac_save_LIBS" + + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + libiconv="-liconv" + else + echo "$ac_t""no" 1>&6 + fi + + ac_save_LIBS="$LIBS" + LIBS="$LIBS $libiconv" + + for ac_func in iconv_open iconv_close iconv nl_langinfo + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8584: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + ac_XPG2funcs=no + fi + done + + + LIBS="$ac_save_LIBS" + + echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 + echo "configure:8642: checking for XPG2 wchar_t support" >&5 + if test x"$ac_has_iconv_h" = xyes && + test x"$ac_has_langinfo_h" = xyes && + test x"$ac_XPG2funcs" = xyes; then + ac_XPG2_wchar_t=yes + else + ac_XPG2_wchar_t=no + fi + echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 + + echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 + echo "configure:8653: checking for enabled wchar_t specializations" >&5 + if test x"$ac_isoC99_wchar_t" = xyes && + test x"$ac_XPG2_wchar_t" = xyes; then + cat >> confdefs.h <<\EOF + #define _GLIBCPP_USE_WCHAR_T 1 + EOF + + echo "$ac_t"""yes"" 1>&6 + else + echo "$ac_t"""no"" 1>&6 + fi + else + echo "configure: warning: wchar_t support disabled." 1>&2 + fi + + os_include_dir="config/os/qnx/qnx6.1" + cat >> confdefs.h <<\EOF + #define HAVE_COSF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_COSL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_COSHF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_COSHL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOGF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOGL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOG10F 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOG10L 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINHF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINHL 1 + EOF + + ;; *) os_include_dir="config/os/newlib" cat >> confdefs.h <<\EOF *************** else *** 8121,8141 **** # Check for available headers. for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8129: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8988,9008 ---- # Check for available headers. for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h sys/types.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8996: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:9006: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** cross_compiling=$ac_cv_prog_cxx_cross *** 8186,8195 **** # Check for -ffunction-sections -fdata-sections echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6 ! echo "configure:8190: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&6 ! echo "configure:9057: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else --- 9064,9070 ---- ; return 0; } EOF ! if { (eval echo configure:9068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else *************** cross_compiling=$ac_cv_prog_cc_cross *** 8279,8290 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:8283: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:9150: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 9162,9168 ---- } EOF ! if { (eval echo configure:9166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 8330,8336 **** echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:8334: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9197,9203 ---- echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:9201: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8345,8358 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:8356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else --- 9212,9225 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else *************** fi *** 8376,8396 **** echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:8380: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:8394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else --- 9243,9263 ---- echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:9247: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else *************** EOF *** 8416,8422 **** echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:8420: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9283,9289 ---- echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9287: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8431,8444 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:8442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else --- 9298,9311 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else *************** fi *** 8462,8482 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:8466: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:8480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else --- 9329,9349 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:9333: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else *************** EOF *** 8502,8508 **** echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:8506: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9369,9375 ---- echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:9373: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8517,8530 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:8528: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else --- 9384,9397 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else *************** fi *** 8548,8568 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:8552: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:8566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else --- 9415,9435 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:9419: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else *************** EOF *** 8588,8594 **** echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:8592: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9455,9461 ---- echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:9459: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8603,8616 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:8614: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else --- 9470,9483 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else *************** fi *** 8634,8654 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:8638: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:8652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else --- 9501,9521 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:9505: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else *************** EOF *** 8674,8680 **** echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:8678: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9541,9547 ---- echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:9545: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8689,8702 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:8700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else --- 9556,9569 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else *************** fi *** 8720,8740 **** echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:8724: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:8738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else --- 9587,9607 ---- echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:9591: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else *************** EOF *** 8761,8767 **** echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:8765: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9628,9634 ---- echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:9632: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8776,8789 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:8787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else --- 9643,9656 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else *************** fi *** 8807,8827 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:8811: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:8825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else --- 9674,9694 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:9678: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else *************** EOF *** 8847,8853 **** echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:8851: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9714,9720 ---- echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:9718: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8862,8875 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:8873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else --- 9729,9742 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else *************** fi *** 8893,8913 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:8897: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:8911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else --- 9760,9780 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:9764: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else *************** EOF *** 8933,8939 **** echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:8937: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9800,9806 ---- echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:9804: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8948,8961 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:8959: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else --- 9815,9828 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else *************** fi *** 8979,8999 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:8983: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:8997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else --- 9846,9866 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:9850: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else *************** EOF *** 9020,9026 **** echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9024: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9887,9893 ---- echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9891: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9035,9048 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else --- 9902,9915 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else *************** fi *** 9066,9086 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9070: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else --- 9933,9953 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9937: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else *************** EOF *** 9106,9112 **** echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:9110: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9973,9979 ---- echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:9977: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9121,9134 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else --- 9988,10001 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else *************** fi *** 9152,9172 **** echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:9156: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else --- 10019,10039 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:10023: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else *************** EOF *** 9192,9198 **** echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:9196: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10059,10065 ---- echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:10063: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9207,9220 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:9218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else --- 10074,10087 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else *************** fi *** 9238,9258 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:9242: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:9256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else --- 10105,10125 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:10109: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else *************** EOF *** 9279,9285 **** echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:9283: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10146,10152 ---- echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:10150: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9294,9307 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:9305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else --- 10161,10174 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else *************** fi *** 9325,9345 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:9329: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:9343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else --- 10192,10212 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:10196: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else *************** EOF *** 9365,9371 **** echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:9369: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10232,10238 ---- echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:10236: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9380,9393 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:9391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else --- 10247,10260 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else *************** fi *** 9411,9431 **** echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:9415: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:9429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else --- 10278,10298 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:10282: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else *************** EOF *** 9451,9457 **** echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:9455: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10318,10324 ---- echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:10322: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9466,9479 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:9477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else --- 10333,10346 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else *************** fi *** 9497,9517 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:9501: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:9515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else --- 10364,10384 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:10368: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else *************** EOF *** 9602,9608 **** CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:9606: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10469,10475 ---- CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:10473: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 9610,9616 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 10488,10494 ---- sin() ; return 0; } EOF ! if { (eval echo configure:10492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 9647,9653 **** echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:9651: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10514,10520 ---- echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:10518: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9662,9668 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10529,10535 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9673,9679 **** isinf(0); ; return 0; } EOF ! if { (eval echo configure:9677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else --- 10540,10546 ---- isinf(0); ; return 0; } EOF ! if { (eval echo configure:10544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else *************** fi *** 9700,9711 **** for ac_func in isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9704: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10571: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10595,10601 ---- ; return 0; } EOF ! if { (eval echo configure:10599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 9755,9761 **** else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:9759: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10622,10628 ---- else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:10626: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9770,9776 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10637,10643 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9781,9787 **** _isinf(0); ; return 0; } EOF ! if { (eval echo configure:9785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else --- 10648,10654 ---- _isinf(0); ; return 0; } EOF ! if { (eval echo configure:10652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else *************** fi *** 9808,9819 **** for ac_func in _isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9812: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10679: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10703,10709 ---- ; return 0; } EOF ! if { (eval echo configure:10707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 9866,9872 **** echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:9870: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10733,10739 ---- echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:10737: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9881,9887 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10748,10754 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9892,9898 **** isnan(0); ; return 0; } EOF ! if { (eval echo configure:9896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else --- 10759,10765 ---- isnan(0); ; return 0; } EOF ! if { (eval echo configure:10763: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else *************** fi *** 9919,9930 **** for ac_func in isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9923: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10790: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10814,10820 ---- ; return 0; } EOF ! if { (eval echo configure:10818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 9974,9980 **** else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:9978: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10841,10847 ---- else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:10845: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9989,9995 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10856,10862 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10000,10006 **** _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else --- 10867,10873 ---- _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else *************** fi *** 10027,10038 **** for ac_func in _isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10031: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10898: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10922,10928 ---- ; return 0; } EOF ! if { (eval echo configure:10926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10085,10091 **** echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10089: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10952,10958 ---- echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10956: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10100,10106 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10967,10973 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10111,10117 **** finite(0); ; return 0; } EOF ! if { (eval echo configure:10115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else --- 10978,10984 ---- finite(0); ; return 0; } EOF ! if { (eval echo configure:10982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else *************** fi *** 10138,10149 **** for ac_func in finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10142: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11009: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11033,11039 ---- ; return 0; } EOF ! if { (eval echo configure:11037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10193,10199 **** else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:10197: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11060,11066 ---- else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:11064: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10208,10214 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11075,11081 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10219,10225 **** _finite(0); ; return 0; } EOF ! if { (eval echo configure:10223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else --- 11086,11092 ---- _finite(0); ; return 0; } EOF ! if { (eval echo configure:11090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else *************** fi *** 10246,10257 **** for ac_func in _finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10250: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11117: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11141,11147 ---- ; return 0; } EOF ! if { (eval echo configure:11145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10304,10310 **** echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:10308: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11171,11177 ---- echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:11175: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10319,10332 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:10330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else --- 11186,11199 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11197: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else *************** fi *** 10353,10364 **** for ac_func in copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10357: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11224: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11248,11254 ---- ; return 0; } EOF ! if { (eval echo configure:11252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10408,10414 **** else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:10412: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11275,11281 ---- else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:11279: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10423,10436 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:10434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else --- 11290,11303 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else *************** fi *** 10457,10468 **** for ac_func in _copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10461: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11328: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11352,11358 ---- ; return 0; } EOF ! if { (eval echo configure:11356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10515,10521 **** echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:10519: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11382,11388 ---- echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:11386: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10530,10543 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:10541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else --- 11397,11410 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else *************** fi *** 10564,10575 **** for ac_func in sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10568: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11435: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11459,11465 ---- ; return 0; } EOF ! if { (eval echo configure:11463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10619,10625 **** else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:10623: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11486,11492 ---- else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:11490: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10634,10647 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:10645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else --- 11501,11514 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else *************** fi *** 10668,10679 **** for ac_func in _sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10672: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11539: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11563,11569 ---- ; return 0; } EOF ! if { (eval echo configure:11567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10726,10732 **** echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:10730: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11593,11599 ---- echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11597: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10741,10747 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11608,11614 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10752,10758 **** fpclass(0); ; return 0; } EOF ! if { (eval echo configure:10756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else --- 11619,11625 ---- fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else *************** fi *** 10779,10790 **** for ac_func in fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10783: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11650: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11674,11680 ---- ; return 0; } EOF ! if { (eval echo configure:11678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10834,10840 **** else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:10838: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11701,11707 ---- else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11705: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10849,10855 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11716,11722 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10860,10866 **** _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:10864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else --- 11727,11733 ---- _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else *************** fi *** 10887,10898 **** for ac_func in _fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10891: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11758: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11782,11788 ---- ; return 0; } EOF ! if { (eval echo configure:11786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10945,10951 **** echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:10949: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11812,11818 ---- echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11816: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10960,10966 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11827,11833 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10971,10977 **** qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:10975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else --- 11838,11844 ---- qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else *************** fi *** 10998,11009 **** for ac_func in qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11002: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11893,11899 ---- ; return 0; } EOF ! if { (eval echo configure:11897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11053,11059 **** else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11057: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11920,11926 ---- else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11924: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11068,11074 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11935,11941 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11079,11085 **** _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11083: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else --- 11946,11952 ---- _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else *************** fi *** 11106,11117 **** for ac_func in _qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11110: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11977: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12001,12007 ---- ; return 0; } EOF ! if { (eval echo configure:12005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11164,11170 **** echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:11168: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12031,12037 ---- echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:12035: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11179,11192 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:11190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else --- 12046,12059 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else *************** fi *** 11213,11224 **** for ac_func in hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11217: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12084: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12108,12114 ---- ; return 0; } EOF ! if { (eval echo configure:12112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11268,11274 **** else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:11272: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12135,12141 ---- else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:12139: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11283,11296 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:11294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else --- 12150,12163 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else *************** fi *** 11317,11328 **** for ac_func in _hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11321: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12188: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12212,12218 ---- ; return 0; } EOF ! if { (eval echo configure:12216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11375,11381 **** echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:11379: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12242,12248 ---- echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:12246: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11389,11395 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 12256,12262 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 11398,11404 **** coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:11402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else --- 12265,12271 ---- coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else *************** fi *** 11424,11435 **** coshf sinhf tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11428: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12319,12325 ---- ; return 0; } EOF ! if { (eval echo configure:12323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11480,11486 **** echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:11484: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12347,12353 ---- echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:12351: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11494,11507 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:11505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else --- 12361,12374 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else *************** fi *** 11525,11536 **** for ac_func in ceilf floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11529: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12420,12426 ---- ; return 0; } EOF ! if { (eval echo configure:12424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11582,11588 **** echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:11586: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12449,12455 ---- echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:12453: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11597,11603 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12464,12470 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11608,11614 **** expf(0); ; return 0; } EOF ! if { (eval echo configure:11612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else --- 12475,12481 ---- expf(0); ; return 0; } EOF ! if { (eval echo configure:12479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else *************** fi *** 11635,11646 **** for ac_func in expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11639: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12506: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12530,12536 ---- ; return 0; } EOF ! if { (eval echo configure:12534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11690,11696 **** else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:11694: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12557,12563 ---- else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:12561: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11705,11711 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12572,12578 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11716,11722 **** _expf(0); ; return 0; } EOF ! if { (eval echo configure:11720: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else --- 12583,12589 ---- _expf(0); ; return 0; } EOF ! if { (eval echo configure:12587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else *************** fi *** 11743,11754 **** for ac_func in _expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11747: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12614: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12638,12644 ---- ; return 0; } EOF ! if { (eval echo configure:12642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11801,11807 **** echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:11805: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12668,12674 ---- echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12672: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11816,11822 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12683,12689 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11827,11833 **** isnanf(0); ; return 0; } EOF ! if { (eval echo configure:11831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else --- 12694,12700 ---- isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else *************** fi *** 11854,11865 **** for ac_func in isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11858: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12725: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12749,12755 ---- ; return 0; } EOF ! if { (eval echo configure:12753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11909,11915 **** else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:11913: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12776,12782 ---- else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12780: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11924,11930 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12791,12797 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11935,11941 **** _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:11939: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else --- 12802,12808 ---- _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else *************** fi *** 11962,11973 **** for ac_func in _isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11966: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12833: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12857,12863 ---- ; return 0; } EOF ! if { (eval echo configure:12861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12020,12026 **** echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12024: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12887,12893 ---- echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12891: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12035,12041 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12902,12908 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12046,12052 **** isinff(0); ; return 0; } EOF ! if { (eval echo configure:12050: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else --- 12913,12919 ---- isinff(0); ; return 0; } EOF ! if { (eval echo configure:12917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else *************** fi *** 12073,12084 **** for ac_func in isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12077: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12944: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12968,12974 ---- ; return 0; } EOF ! if { (eval echo configure:12972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12128,12134 **** else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:12132: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12995,13001 ---- else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:12999: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12143,12149 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13010,13016 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12154,12160 **** _isinff(0); ; return 0; } EOF ! if { (eval echo configure:12158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else --- 13021,13027 ---- _isinff(0); ; return 0; } EOF ! if { (eval echo configure:13025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else *************** fi *** 12181,12192 **** for ac_func in _isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13052: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13076,13082 ---- ; return 0; } EOF ! if { (eval echo configure:13080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12239,12245 **** echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:12243: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13106,13112 ---- echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13110: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12254,12267 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:12265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else --- 13121,13134 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else *************** fi *** 12288,12299 **** for ac_func in atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12292: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13159: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13183,13189 ---- ; return 0; } EOF ! if { (eval echo configure:13187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12343,12349 **** else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:12347: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13210,13216 ---- else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13214: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12358,12371 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:12369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else --- 13225,13238 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else *************** fi *** 12392,12403 **** for ac_func in _atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13263: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13287,13293 ---- ; return 0; } EOF ! if { (eval echo configure:13291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12450,12456 **** echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:12454: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13317,13323 ---- echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13321: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12465,12471 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13332,13338 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12476,12482 **** fabsf(0); ; return 0; } EOF ! if { (eval echo configure:12480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else --- 13343,13349 ---- fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else *************** fi *** 12503,12514 **** for ac_func in fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12507: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13374: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13398,13404 ---- ; return 0; } EOF ! if { (eval echo configure:13402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12558,12564 **** else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:12562: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13425,13431 ---- else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13429: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12573,12579 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13440,13446 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12584,12590 **** _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:12588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else --- 13451,13457 ---- _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else *************** fi *** 12611,12622 **** for ac_func in _fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12615: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13482: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13506,13512 ---- ; return 0; } EOF ! if { (eval echo configure:13510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12669,12675 **** echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:12673: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13536,13542 ---- echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13540: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12684,12697 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:12695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else --- 13551,13564 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else *************** fi *** 12718,12729 **** for ac_func in fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12722: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13589: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13613,13619 ---- ; return 0; } EOF ! if { (eval echo configure:13617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12773,12779 **** else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:12777: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13640,13646 ---- else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13644: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12788,12801 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:12799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else --- 13655,13668 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else *************** fi *** 12822,12833 **** for ac_func in _fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12826: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13693: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13717,13723 ---- ; return 0; } EOF ! if { (eval echo configure:13721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12880,12886 **** echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:12884: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13747,13753 ---- echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13751: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12895,12908 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:12906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else --- 13762,13775 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else *************** fi *** 12929,12940 **** for ac_func in frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12933: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13800: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13824,13830 ---- ; return 0; } EOF ! if { (eval echo configure:13828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12984,12990 **** else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:12988: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13851,13857 ---- else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13855: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12999,13012 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else --- 13866,13879 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else *************** fi *** 13033,13044 **** for ac_func in _frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13037: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13904: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13928,13934 ---- ; return 0; } EOF ! if { (eval echo configure:13932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13091,13097 **** echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13095: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13958,13964 ---- echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13962: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13106,13119 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else --- 13973,13986 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else *************** fi *** 13140,13151 **** for ac_func in hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13144: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14011: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14035,14041 ---- ; return 0; } EOF ! if { (eval echo configure:14039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13195,13201 **** else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13199: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14062,14068 ---- else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:14066: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13210,13223 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else --- 14077,14090 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else *************** fi *** 13244,13255 **** for ac_func in _hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13248: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14115: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14139,14145 ---- ; return 0; } EOF ! if { (eval echo configure:14143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13302,13308 **** echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:13306: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14169,14175 ---- echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14173: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13317,13330 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else --- 14184,14197 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else *************** fi *** 13351,13362 **** for ac_func in ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13355: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14222: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14246,14252 ---- ; return 0; } EOF ! if { (eval echo configure:14250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13406,13412 **** else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:13410: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14273,14279 ---- else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14277: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13421,13434 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else --- 14288,14301 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else *************** fi *** 13455,13466 **** for ac_func in _ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13459: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14350,14356 ---- ; return 0; } EOF ! if { (eval echo configure:14354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13513,13519 **** echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:13517: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14380,14386 ---- echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:14384: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13528,13534 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14395,14401 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13539,13545 **** logf(0); ; return 0; } EOF ! if { (eval echo configure:13543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else --- 14406,14412 ---- logf(0); ; return 0; } EOF ! if { (eval echo configure:14410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else *************** fi *** 13566,13577 **** for ac_func in logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13570: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14437: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14461,14467 ---- ; return 0; } EOF ! if { (eval echo configure:14465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13621,13627 **** else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:13625: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14488,14494 ---- else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:14492: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13636,13642 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14503,14509 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13647,13653 **** _logf(0); ; return 0; } EOF ! if { (eval echo configure:13651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else --- 14514,14520 ---- _logf(0); ; return 0; } EOF ! if { (eval echo configure:14518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else *************** fi *** 13674,13685 **** for ac_func in _logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13678: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14545: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14569,14575 ---- ; return 0; } EOF ! if { (eval echo configure:14573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13732,13738 **** echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:13736: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14599,14605 ---- echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:14603: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13747,13753 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14614,14620 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13758,13764 **** log10f(0); ; return 0; } EOF ! if { (eval echo configure:13762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else --- 14625,14631 ---- log10f(0); ; return 0; } EOF ! if { (eval echo configure:14629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else *************** fi *** 13785,13796 **** for ac_func in log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13789: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14656: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14680,14686 ---- ; return 0; } EOF ! if { (eval echo configure:14684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13840,13846 **** else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:13844: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14707,14713 ---- else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:14711: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13855,13861 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14722,14728 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13866,13872 **** _log10f(0); ; return 0; } EOF ! if { (eval echo configure:13870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else --- 14733,14739 ---- _log10f(0); ; return 0; } EOF ! if { (eval echo configure:14737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else *************** fi *** 13893,13904 **** for ac_func in _log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13897: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14764: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14788,14794 ---- ; return 0; } EOF ! if { (eval echo configure:14792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13951,13957 **** echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:13955: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14818,14824 ---- echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:14822: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13966,13979 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:13977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else --- 14833,14846 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14844: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else *************** fi *** 14000,14011 **** for ac_func in modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14004: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14871: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14895,14901 ---- ; return 0; } EOF ! if { (eval echo configure:14899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14055,14061 **** else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14059: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14922,14928 ---- else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14926: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14070,14083 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else --- 14937,14950 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else *************** fi *** 14104,14115 **** for ac_func in _modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14108: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14975: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14999,15005 ---- ; return 0; } EOF ! if { (eval echo configure:15003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14162,14168 **** echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:14166: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15029,15035 ---- echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:15033: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14177,14190 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else --- 15044,15057 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else *************** fi *** 14211,14222 **** for ac_func in powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14215: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15082: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15106,15112 ---- ; return 0; } EOF ! if { (eval echo configure:15110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14266,14272 **** else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:14270: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15133,15139 ---- else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:15137: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14281,14294 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else --- 15148,15161 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else *************** fi *** 14315,14326 **** for ac_func in _powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14319: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15186: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15210,15216 ---- ; return 0; } EOF ! if { (eval echo configure:15214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14373,14379 **** echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:14377: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15240,15246 ---- echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15244: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14388,14394 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15255,15261 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14399,14405 **** sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:14403: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else --- 15266,15272 ---- sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else *************** fi *** 14426,14437 **** for ac_func in sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14430: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15321,15327 ---- ; return 0; } EOF ! if { (eval echo configure:15325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14481,14487 **** else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:14485: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15348,15354 ---- else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15352: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14496,14502 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15363,15369 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14507,14513 **** _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:14511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else --- 15374,15380 ---- _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else *************** fi *** 14534,14545 **** for ac_func in _sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14538: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15405: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15429,15435 ---- ; return 0; } EOF ! if { (eval echo configure:15433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14592,14598 **** echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:14596: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15459,15465 ---- echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15463: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14607,14620 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:14618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else --- 15474,15487 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else *************** fi *** 14641,14652 **** for ac_func in sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14645: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15512: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15536,15542 ---- ; return 0; } EOF ! if { (eval echo configure:15540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14696,14702 **** else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:14700: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15563,15569 ---- else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15567: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14711,14724 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:14722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else --- 15578,15591 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else *************** fi *** 14745,14756 **** for ac_func in _sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14749: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15616: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15640,15646 ---- ; return 0; } EOF ! if { (eval echo configure:15644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14803,14809 **** echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:14807: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15670,15676 ---- echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:15674: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14818,14824 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15685,15691 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14829,14835 **** finitef(0); ; return 0; } EOF ! if { (eval echo configure:14833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else --- 15696,15702 ---- finitef(0); ; return 0; } EOF ! if { (eval echo configure:15700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else *************** fi *** 14856,14867 **** for ac_func in finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14860: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15727: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15751,15757 ---- ; return 0; } EOF ! if { (eval echo configure:15755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14911,14917 **** else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:14915: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15778,15784 ---- else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:15782: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14926,14932 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15793,15799 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14937,14943 **** _finitef(0); ; return 0; } EOF ! if { (eval echo configure:14941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else --- 15804,15810 ---- _finitef(0); ; return 0; } EOF ! if { (eval echo configure:15808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else *************** fi *** 14964,14975 **** for ac_func in _finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14968: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15835: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15859,15865 ---- ; return 0; } EOF ! if { (eval echo configure:15863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15022,15028 **** echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15026: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 15889,15895 ---- echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15893: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15036,15042 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 15903,15909 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 15045,15051 **** coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15049: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else --- 15912,15918 ---- coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15916: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else *************** fi *** 15071,15082 **** coshl sinhl tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15075: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15942: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15966,15972 ---- ; return 0; } EOF ! if { (eval echo configure:15970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15127,15133 **** echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:15131: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 15994,16000 ---- echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:15998: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15141,15154 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15152: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else --- 16008,16021 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:16019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else *************** fi *** 15172,15183 **** for ac_func in ceill floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15176: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16043: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16067,16073 ---- ; return 0; } EOF ! if { (eval echo configure:16071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15229,15235 **** echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:15233: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16096,16102 ---- echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16100: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15244,15250 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16111,16117 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15255,15261 **** isnanl(0); ; return 0; } EOF ! if { (eval echo configure:15259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else --- 16122,16128 ---- isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else *************** fi *** 15282,15293 **** for ac_func in isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15286: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16177,16183 ---- ; return 0; } EOF ! if { (eval echo configure:16181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15337,15343 **** else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:15341: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16204,16210 ---- else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16208: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15352,15358 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16219,16225 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15363,15369 **** _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:15367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else --- 16230,16236 ---- _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else *************** fi *** 15390,15401 **** for ac_func in _isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15394: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16261: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16285,16291 ---- ; return 0; } EOF ! if { (eval echo configure:16289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15448,15454 **** echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:15452: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16315,16321 ---- echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16319: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15463,15469 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16330,16336 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15474,15480 **** isinfl(0); ; return 0; } EOF ! if { (eval echo configure:15478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else --- 16341,16347 ---- isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else *************** fi *** 15501,15512 **** for ac_func in isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15505: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16372: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16396,16402 ---- ; return 0; } EOF ! if { (eval echo configure:16400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15556,15562 **** else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:15560: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16423,16429 ---- else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16427: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15571,15577 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16438,16444 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15582,15588 **** _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:15586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else --- 16449,16455 ---- _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else *************** fi *** 15609,15620 **** for ac_func in _isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15613: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16480: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16504,16510 ---- ; return 0; } EOF ! if { (eval echo configure:16508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15667,15673 **** echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:15671: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16534,16540 ---- echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16538: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15682,15695 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:15693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else --- 16549,16562 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else *************** fi *** 15716,15727 **** for ac_func in copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15720: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16587: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16611,16617 ---- ; return 0; } EOF ! if { (eval echo configure:16615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15771,15777 **** else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:15775: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16638,16644 ---- else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16642: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15786,15799 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:15797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else --- 16653,16666 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else *************** fi *** 15820,15831 **** for ac_func in _copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15824: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16691: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16715,16721 ---- ; return 0; } EOF ! if { (eval echo configure:16719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15878,15884 **** echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:15882: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16745,16751 ---- echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16749: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15893,15906 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:15904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else --- 16760,16773 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else *************** fi *** 15927,15938 **** for ac_func in atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15931: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16798: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16822,16828 ---- ; return 0; } EOF ! if { (eval echo configure:16826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15982,15988 **** else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:15986: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16849,16855 ---- else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16853: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15997,16010 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else --- 16864,16877 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else *************** fi *** 16031,16042 **** for ac_func in _atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16035: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16902: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16926,16932 ---- ; return 0; } EOF ! if { (eval echo configure:16930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16089,16095 **** echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16093: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16956,16962 ---- echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16960: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16104,16110 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16971,16977 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16115,16121 **** expl(0); ; return 0; } EOF ! if { (eval echo configure:16119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else --- 16982,16988 ---- expl(0); ; return 0; } EOF ! if { (eval echo configure:16986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else *************** fi *** 16142,16153 **** for ac_func in expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16146: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17013: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17037,17043 ---- ; return 0; } EOF ! if { (eval echo configure:17041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16197,16203 **** else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:16201: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17064,17070 ---- else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:17068: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16212,16218 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17079,17085 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16223,16229 **** _expl(0); ; return 0; } EOF ! if { (eval echo configure:16227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else --- 17090,17096 ---- _expl(0); ; return 0; } EOF ! if { (eval echo configure:17094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else *************** fi *** 16250,16261 **** for ac_func in _expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17121: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17145,17151 ---- ; return 0; } EOF ! if { (eval echo configure:17149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16308,16314 **** echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:16312: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17175,17181 ---- echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17179: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16323,16329 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17190,17196 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16334,16340 **** fabsl(0); ; return 0; } EOF ! if { (eval echo configure:16338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else --- 17201,17207 ---- fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else *************** fi *** 16361,16372 **** for ac_func in fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16365: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17232: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17256,17262 ---- ; return 0; } EOF ! if { (eval echo configure:17260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16416,16422 **** else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:16420: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17283,17289 ---- else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17287: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16431,16437 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17298,17304 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16442,16448 **** _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:16446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else --- 17309,17315 ---- _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else *************** fi *** 16469,16480 **** for ac_func in _fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16473: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17340: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17364,17370 ---- ; return 0; } EOF ! if { (eval echo configure:17368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16527,16533 **** echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:16531: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17394,17400 ---- echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17398: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16542,16555 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else --- 17409,17422 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else *************** fi *** 16576,16587 **** for ac_func in fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16580: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17447: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17471,17477 ---- ; return 0; } EOF ! if { (eval echo configure:17475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16631,16637 **** else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:16635: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17498,17504 ---- else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17502: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16646,16659 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else --- 17513,17526 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else *************** fi *** 16680,16691 **** for ac_func in _fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16684: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17551: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17575,17581 ---- ; return 0; } EOF ! if { (eval echo configure:17579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16738,16744 **** echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:16742: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17605,17611 ---- echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17609: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16753,16766 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else --- 17620,17633 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else *************** fi *** 16787,16798 **** for ac_func in frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16791: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17658: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17682,17688 ---- ; return 0; } EOF ! if { (eval echo configure:17686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16842,16848 **** else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:16846: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17709,17715 ---- else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17713: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16857,16870 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else --- 17724,17737 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else *************** fi *** 16891,16902 **** for ac_func in _frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16895: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17762: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17786,17792 ---- ; return 0; } EOF ! if { (eval echo configure:17790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16949,16955 **** echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:16953: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17816,17822 ---- echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17820: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16964,16977 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else --- 17831,17844 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else *************** fi *** 16998,17009 **** for ac_func in hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17002: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17893,17899 ---- ; return 0; } EOF ! if { (eval echo configure:17897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17053,17059 **** else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17057: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17920,17926 ---- else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17924: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17068,17081 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else --- 17935,17948 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else *************** fi *** 17102,17113 **** for ac_func in _hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17106: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17973: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17997,18003 ---- ; return 0; } EOF ! if { (eval echo configure:18001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17160,17166 **** echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:17164: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18027,18033 ---- echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18031: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17175,17188 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else --- 18042,18055 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else *************** fi *** 17209,17220 **** for ac_func in ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17213: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18080: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18104,18110 ---- ; return 0; } EOF ! if { (eval echo configure:18108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17264,17270 **** else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:17268: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18131,18137 ---- else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18135: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17279,17292 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else --- 18146,18159 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else *************** fi *** 17313,17324 **** for ac_func in _ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17317: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18184: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18208,18214 ---- ; return 0; } EOF ! if { (eval echo configure:18212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17371,17377 **** echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:17375: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18238,18244 ---- echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:18242: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17386,17392 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18253,18259 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17397,17403 **** logl(0); ; return 0; } EOF ! if { (eval echo configure:17401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else --- 18264,18270 ---- logl(0); ; return 0; } EOF ! if { (eval echo configure:18268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else *************** fi *** 17424,17435 **** for ac_func in logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17428: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18319,18325 ---- ; return 0; } EOF ! if { (eval echo configure:18323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17479,17485 **** else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:17483: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18346,18352 ---- else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:18350: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17494,17500 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18361,18367 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17505,17511 **** _logl(0); ; return 0; } EOF ! if { (eval echo configure:17509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else --- 18372,18378 ---- _logl(0); ; return 0; } EOF ! if { (eval echo configure:18376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else *************** fi *** 17532,17543 **** for ac_func in _logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17536: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18403: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18427,18433 ---- ; return 0; } EOF ! if { (eval echo configure:18431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17590,17596 **** echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:17594: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18457,18463 ---- echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:18461: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17605,17611 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18472,18478 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17616,17622 **** log10l(0); ; return 0; } EOF ! if { (eval echo configure:17620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else --- 18483,18489 ---- log10l(0); ; return 0; } EOF ! if { (eval echo configure:18487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else *************** fi *** 17643,17654 **** for ac_func in log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17647: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18514: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18538,18544 ---- ; return 0; } EOF ! if { (eval echo configure:18542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17698,17704 **** else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:17702: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18565,18571 ---- else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:18569: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17713,17719 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18580,18586 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17724,17730 **** _log10l(0); ; return 0; } EOF ! if { (eval echo configure:17728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else --- 18591,18597 ---- _log10l(0); ; return 0; } EOF ! if { (eval echo configure:18595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else *************** fi *** 17751,17762 **** for ac_func in _log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17755: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18622: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18646,18652 ---- ; return 0; } EOF ! if { (eval echo configure:18650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17809,17815 **** echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:17813: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18676,18682 ---- echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:18680: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17824,17837 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else --- 18691,18704 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else *************** fi *** 17858,17869 **** for ac_func in modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17862: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18729: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18753,18759 ---- ; return 0; } EOF ! if { (eval echo configure:18757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17913,17919 **** else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:17917: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18780,18786 ---- else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:18784: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17928,17941 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17939: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else --- 18795,18808 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else *************** fi *** 17962,17973 **** for ac_func in _modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17966: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18833: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18857,18863 ---- ; return 0; } EOF ! if { (eval echo configure:18861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18020,18026 **** echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18024: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18887,18893 ---- echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18891: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18035,18048 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else --- 18902,18915 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else *************** fi *** 18069,18080 **** for ac_func in powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18073: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18940: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18964,18970 ---- ; return 0; } EOF ! if { (eval echo configure:18968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18124,18130 **** else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:18128: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18991,18997 ---- else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:18995: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18139,18152 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else --- 19006,19019 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:19017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else *************** fi *** 18173,18184 **** for ac_func in _powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18177: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19044: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19068,19074 ---- ; return 0; } EOF ! if { (eval echo configure:19072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18231,18237 **** echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:18235: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19098,19104 ---- echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19102: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18246,18252 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19113,19119 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18257,18263 **** sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:18261: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else --- 19124,19130 ---- sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else *************** fi *** 18284,18295 **** for ac_func in sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18288: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19155: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19179,19185 ---- ; return 0; } EOF ! if { (eval echo configure:19183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18339,18345 **** else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:18343: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19206,19212 ---- else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19210: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18354,18360 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19221,19227 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18365,18371 **** _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:18369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else --- 19232,19238 ---- _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else *************** fi *** 18392,18403 **** for ac_func in _sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19263: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19287,19293 ---- ; return 0; } EOF ! if { (eval echo configure:19291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18450,18456 **** echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:18454: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19317,19323 ---- echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19321: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18465,18478 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:18476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else --- 19332,19345 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else *************** fi *** 18499,18510 **** for ac_func in sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18503: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19370: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19394,19400 ---- ; return 0; } EOF ! if { (eval echo configure:19398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18554,18560 **** else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:18558: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19421,19427 ---- else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19425: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18569,18582 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:18580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else --- 19436,19449 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else *************** fi *** 18603,18614 **** for ac_func in _sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18607: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19474: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19498,19504 ---- ; return 0; } EOF ! if { (eval echo configure:19502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18661,18667 **** echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:18665: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19528,19534 ---- echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:19532: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18676,18682 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19543,19549 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18687,18693 **** finitel(0); ; return 0; } EOF ! if { (eval echo configure:18691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else --- 19554,19560 ---- finitel(0); ; return 0; } EOF ! if { (eval echo configure:19558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else *************** fi *** 18714,18725 **** for ac_func in finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18718: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19585: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19609,19615 ---- ; return 0; } EOF ! if { (eval echo configure:19613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18769,18775 **** else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:18773: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19636,19642 ---- else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:19640: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18784,18790 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19651,19657 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18795,18801 **** _finitel(0); ; return 0; } EOF ! if { (eval echo configure:18799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else --- 19662,19668 ---- _finitel(0); ; return 0; } EOF ! if { (eval echo configure:19666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else *************** fi *** 18822,18833 **** for ac_func in _finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18826: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19693: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19717,19723 ---- ; return 0; } EOF ! if { (eval echo configure:19721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18881,18887 **** echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:18885: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19748,19754 ---- echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:19752: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18895,18901 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19762,19768 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 18904,18910 **** _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:18908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else --- 19771,19777 ---- _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else *************** fi *** 18930,18941 **** _coshf _sinhf _tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18934: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19801: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19825,19831 ---- ; return 0; } EOF ! if { (eval echo configure:19829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18986,18992 **** echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:18990: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19853,19859 ---- echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:19857: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19000,19013 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else --- 19867,19880 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else *************** fi *** 19031,19042 **** for ac_func in _ceilf _floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19035: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19902: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19926,19932 ---- ; return 0; } EOF ! if { (eval echo configure:19930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19088,19094 **** echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19092: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19955,19961 ---- echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19959: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19102,19108 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19969,19975 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 19111,19117 **** _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else --- 19978,19984 ---- _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else *************** fi *** 19137,19148 **** _coshl _sinhl _tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20008: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20032,20038 ---- ; return 0; } EOF ! if { (eval echo configure:20036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19193,19199 **** echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:19197: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 20060,20066 ---- echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:20064: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19207,19220 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else --- 20074,20087 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else *************** fi *** 19238,19249 **** for ac_func in _ceill _floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19242: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20109: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20133,20139 ---- ; return 0; } EOF ! if { (eval echo configure:20137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19298,19304 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:19302: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20165,20171 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:20169: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 19306,19319 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20173,20186 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 19343,19354 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19347: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20214: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20238,20244 ---- ; return 0; } EOF ! if { (eval echo configure:20242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19400,19411 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19404: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20271: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20295,20301 ---- ; return 0; } EOF ! if { (eval echo configure:20299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19456,19467 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19460: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20327: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20351,20357 ---- ; return 0; } EOF ! if { (eval echo configure:20355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19514,19525 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19518: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20385: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20409,20415 ---- ; return 0; } EOF ! if { (eval echo configure:20413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19574,19589 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:19578: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:19587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 20441,20456 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:20445: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:20454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 19605,19621 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:19609: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20472,20488 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20476: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 19646,19662 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:19650: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20513,20529 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20517: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 19689,19704 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:19693: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:19702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 20556,20571 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:20560: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:20569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 19711,19719 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:19715: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 20578,20586 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:20582: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 19722,19728 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:19726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 20589,20595 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:20593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 19738,19749 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19742: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20609: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20633,20639 ---- ; return 0; } EOF ! if { (eval echo configure:20637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19801,19812 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19805: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20672: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20696,20702 ---- ; return 0; } EOF ! if { (eval echo configure:20700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19857,19863 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:19861: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 20724,20730 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20728: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:19861: checking for ISO *** 19869,19885 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:19873: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19883: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20736,20752 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:20740: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 19903,19919 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:19907: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19917: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20770,20786 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:20774: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 19937,19943 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:19941: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20804,20810 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:20808: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 19945,19951 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20823,20829 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:20827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 19982,19993 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19986: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20853: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20877,20883 ---- ; return 0; } EOF ! if { (eval echo configure:20881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20040,20046 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20044: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 20907,20913 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20911: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:20044: checking for XPG2 *** 20051,20057 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20055: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 20918,20924 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20922: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 20073,20079 **** echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20077: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20940,20946 ---- echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20944: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20088,20101 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else --- 20955,20968 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else *************** fi *** 20121,20132 **** for ac_func in strtold do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20125: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20992: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21016,21022 ---- ; return 0; } EOF ! if { (eval echo configure:21020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20177,20183 **** echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:20181: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21044,21050 ---- echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:21048: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20192,20205 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:20203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else --- 21059,21072 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:21070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else *************** fi *** 20225,20236 **** for ac_func in strtof do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20229: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21096: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21120,21126 ---- ; return 0; } EOF ! if { (eval echo configure:21124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20282,20293 **** for ac_func in drand48 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20286: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21177,21183 ---- ; return 0; } EOF ! if { (eval echo configure:21181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20340,20356 **** ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:20344: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21207,21223 ---- ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:21211: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** if eval "test \"`echo '$ac_cv_header_'$a *** 20368,20386 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:20372: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:20384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else --- 21235,21253 ---- echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:21239: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:21251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else *************** fi *** 20407,20413 **** cat > conftest.$ac_ext < --- 21274,21280 ---- cat > conftest.$ac_ext < *************** int main() { *** 20416,20422 **** sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:20420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 --- 21283,21289 ---- sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:21287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 *************** rm -f conftest* *** 20433,20449 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20437: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21300,21316 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21304: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 20472,20483 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20476: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21343: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21367,21373 ---- ; return 0; } EOF ! if { (eval echo configure:21371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 20525,20531 **** done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:20529: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 21392,21398 ---- done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:21396: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 20533,20539 **** ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else --- 21540,21546 ---- } EOF ! if { (eval echo configure:21544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else *************** fi *** 20704,20720 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20708: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21571,21587 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21575: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21585: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 20747,20753 **** # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include --- 21614,21620 ---- # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include *************** int main() { *** 20756,20762 **** int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:20760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21623,21629 ---- int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:21627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20773,20779 **** cat > conftest.$ac_ext < #include --- 21640,21646 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 20782,20788 **** int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:20786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21649,21655 ---- int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:21653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20799,20805 **** cat > conftest.$ac_ext < #include --- 21666,21672 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 20808,20814 **** int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:20812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21675,21681 ---- int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:21679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20825,20831 **** cat > conftest.$ac_ext < #include --- 21692,21698 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 20834,20840 **** int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:20838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21701,21707 ---- int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:21705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20856,20862 **** else cat > conftest.$ac_ext < #include --- 21723,21729 ---- else cat > conftest.$ac_ext < #include *************** int main() { *** 20865,20871 **** struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:20869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else --- 21732,21738 ---- struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:21736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else *************** fi *** 20881,20887 **** fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:20885: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF --- 21748,21754 ---- fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:21752: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF *************** EOF *** 20897,20903 **** # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:20901: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21764,21770 ---- # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:21768: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20912,20925 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:20923: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else --- 21779,21792 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:21790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else *************** fi *** 20945,20956 **** for ac_func in setenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20949: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21816: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21840,21846 ---- ; return 0; } EOF ! if { (eval echo configure:21844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 21021,21045 **** # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test x$LD = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21032: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else --- 21888,21912 ---- # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test "x$LD" = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21899: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else *************** if test $enable_symvers = yes ; then *** 21073,21086 **** echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else --- 21940,21953 ---- echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else *************** else *** 21122,21128 **** GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:21126: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 --- 21989,21995 ---- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:21993: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 *************** else *** 21200,21208 **** multilib_arg= fi - # Needed so that g++ can find the correct include subdir automatically. - INTERFACE=v3 - # Export all the install information # Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and --- 22067,22072 ---- *************** glibcpp_toolexecdir=no *** 21211,21224 **** glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} - echo $ac_n "checking for interface version number""... $ac_c" 1>&6 - echo "configure:21216: checking for interface version number" >&5 - libstdcxx_interface=$INTERFACE - echo "$ac_t""$libstdcxx_interface" 1>&6 - # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:21222: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" --- 22075,22083 ---- glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:22081: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" *************** echo "$ac_t""$gxx_include_dir" 1>&6 *** 21242,21248 **** # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:21246: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" --- 22101,22107 ---- # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:22105: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" *************** fi *** 21257,21280 **** # Option set, now we can test it. echo "$ac_t""$version_specific_libs" 1>&6 if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. - gcc_version_trigger=${srcdir}/../gcc/version.c - gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'` - gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' - fi - - # Default case for install directory for include files. - if test $version_specific_libs = no && - test $gxx_include_dir = no; then - gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface} fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir --- 22116,22136 ---- # Option set, now we can test it. echo "$ac_t""$version_specific_libs" 1>&6 + # Default case for install directory for include files. + if test $version_specific_libs = no && test $gxx_include_dir = no; then + gxx_include_dir='$(prefix)'/include/c++/${gcc_version} + fi + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir *************** if test x"$glibcpp_toolexecdir" = x"no"; *** 21291,21297 **** fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:21295: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 --- 22147,22153 ---- fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:22151: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 *************** s%@oldincludedir@%$oldincludedir%g *** 21487,21494 **** s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@PACKAGE@%$PACKAGE%g - s%@release_VERSION@%$release_VERSION%g s%@libtool_VERSION@%$libtool_VERSION%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g --- 22343,22350 ---- s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@PACKAGE@%$PACKAGE%g s%@libtool_VERSION@%$libtool_VERSION%g + s%@toplevel_srcdir@%$toplevel_srcdir%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g *************** s%@build_alias@%$build_alias%g *** 21504,21520 **** s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g - s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g - s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g - s%@INSTALL_DATA@%$INSTALL_DATA%g - s%@VERSION@%$VERSION%g - s%@ACLOCAL@%$ACLOCAL%g - s%@AUTOCONF@%$AUTOCONF%g - s%@AUTOMAKE@%$AUTOMAKE%g - s%@AUTOHEADER@%$AUTOHEADER%g - s%@MAKEINFO@%$MAKEINFO%g - s%@SET_MAKE@%$SET_MAKE%g - s%@toplevel_srcdir@%$toplevel_srcdir%g s%@glibcpp_builddir@%$glibcpp_builddir%g s%@glibcpp_srcdir@%$glibcpp_srcdir%g s%@AWK@%$AWK%g --- 22360,22365 ---- *************** s%@glibcpp_CXX@%$glibcpp_CXX%g *** 21525,21534 **** --- 22370,22389 ---- s%@AS@%$AS%g s%@AR@%$AR%g s%@RANLIB@%$RANLIB%g + s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g + s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g + s%@INSTALL_DATA@%$INSTALL_DATA%g s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g s%@MAINT@%$MAINT%g s%@EXEEXT@%$EXEEXT%g + s%@VERSION@%$VERSION%g + s%@ACLOCAL@%$ACLOCAL%g + s%@AUTOCONF@%$AUTOCONF%g + s%@AUTOMAKE@%$AUTOMAKE%g + s%@AUTOHEADER@%$AUTOHEADER%g + s%@MAKEINFO@%$MAKEINFO%g + s%@SET_MAKE@%$SET_MAKE%g s%@OBJEXT@%$OBJEXT%g s%@STRIP@%$STRIP%g s%@LIBTOOL@%$LIBTOOL%g *************** s%@USE_NLS@%$USE_NLS%g *** 21556,21567 **** s%@CLOCALE_H@%$CLOCALE_H%g s%@CCODECVT_H@%$CCODECVT_H%g s%@CMESSAGES_H@%$CMESSAGES_H%g - s%@CSHADOW_FLAGS@%$CSHADOW_FLAGS%g s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g s%@GLIBCPP_C_HEADERS_C_STD_TRUE@%$GLIBCPP_C_HEADERS_C_STD_TRUE%g s%@GLIBCPP_C_HEADERS_C_STD_FALSE@%$GLIBCPP_C_HEADERS_C_STD_FALSE%g s%@glibcpp_thread_h@%$glibcpp_thread_h%g s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g s%@LIBUNWIND_FLAG@%$LIBUNWIND_FLAG%g --- 22411,22423 ---- s%@CLOCALE_H@%$CLOCALE_H%g s%@CCODECVT_H@%$CCODECVT_H%g s%@CMESSAGES_H@%$CMESSAGES_H%g s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g s%@GLIBCPP_C_HEADERS_C_STD_TRUE@%$GLIBCPP_C_HEADERS_C_STD_TRUE%g s%@GLIBCPP_C_HEADERS_C_STD_FALSE@%$GLIBCPP_C_HEADERS_C_STD_FALSE%g + s%@GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE%g + s%@GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE%g s%@glibcpp_thread_h@%$glibcpp_thread_h%g s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g s%@LIBUNWIND_FLAG@%$LIBUNWIND_FLAG%g *************** if test ! -f stamp-sanity-warned; then *** 21890,21900 **** touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." --- 22746,22756 ---- touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/html/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/html/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." diff -Nrc3pad gcc-3.1/libstdc++-v3/configure.in gcc-3.1.1/libstdc++-v3/configure.in *** gcc-3.1/libstdc++-v3/configure.in Wed May 8 04:27:59 2002 --- gcc-3.1.1/libstdc++-v3/configure.in Wed Jul 3 22:47:34 2002 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 12,24 **** PACKAGE=libstdc++ AC_SUBST(PACKAGE) - # For typical GNU versioning info, format is MAJOR.MINOR.MICRO - release_VERSION=3.1.0 - AC_SUBST(release_VERSION) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:0:0 AC_SUBST(libtool_VERSION) # Gets build, host, target, *_vendor, *_cpu, *_os, etc. # AC 2.5x sets target_alias iff the user specified --target, but we use it # everywhere, so we set it here just to be sure. In AC 2.13 --- 12,23 ---- PACKAGE=libstdc++ AC_SUBST(PACKAGE) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:1:0 AC_SUBST(libtool_VERSION) + GLIBCPP_TOPREL_CONFIGURE + # Gets build, host, target, *_vendor, *_cpu, *_os, etc. # AC 2.5x sets target_alias iff the user specified --target, but we use it # everywhere, so we set it here just to be sure. In AC 2.13 *************** AC_CANONICAL_SYSTEM *** 27,40 **** target_alias=${target_alias-$target} AC_SUBST(target_alias) - AM_INIT_AUTOMAKE($PACKAGE, $release_VERSION) - AM_CONFIG_HEADER(config.h) - # Runs configure.host and configure.target, as well as finds CC, CXX # and assorted other critical bits. Have to run this before the # GLIBCPP_ENABLE_* macros below. GLIBCPP_CONFIGURE(.) AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_SUBST(enable_shared) --- 26,39 ---- target_alias=${target_alias-$target} AC_SUBST(target_alias) # Runs configure.host and configure.target, as well as finds CC, CXX # and assorted other critical bits. Have to run this before the # GLIBCPP_ENABLE_* macros below. GLIBCPP_CONFIGURE(.) + AM_INIT_AUTOMAKE($PACKAGE, $gcc_version) + AM_CONFIG_HEADER(config.h) + AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_SUBST(enable_shared) *************** GLIBCPP_ENABLE_CLOCALE *** 51,63 **** GLIBCPP_ENABLE_C_MBCHAR([yes]) GLIBCPP_ENABLE_C99([yes]) GLIBCPP_ENABLE_LONG_LONG([yes]) ! GLIBCPP_ENABLE_CHEADERS([c_std]) GLIBCPP_ENABLE_THREADS GLIBCPP_ENABLE_CXX_FLAGS([none]) GLIBCPP_ENABLE_SJLJ_EXCEPTIONS GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS GLIBCPP_ENABLE_CONCEPT_CHECKS if test -n "$with_cross_host" || test x"$build" != x"$host"; then --- 50,64 ---- GLIBCPP_ENABLE_C_MBCHAR([yes]) GLIBCPP_ENABLE_C99([yes]) GLIBCPP_ENABLE_LONG_LONG([yes]) ! GLIBCPP_ENABLE_CHEADERS([$c_model]) GLIBCPP_ENABLE_THREADS GLIBCPP_ENABLE_CXX_FLAGS([none]) GLIBCPP_ENABLE_SJLJ_EXCEPTIONS GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS GLIBCPP_ENABLE_CONCEPT_CHECKS + # Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c + AC_CHECK_HEADERS(string.h stdlib.h) if test -n "$with_cross_host" || test x"$build" != x"$host"; then *************** if test -n "$with_cross_host" || test x" *** 156,161 **** --- 157,184 ---- GLIBCPP_CHECK_WCHAR_T_SUPPORT os_include_dir="config/os/mingw32" ;; + changequote(,)dnl + *-qnx6.[12]*) + changequote([,])dnl + SECTION_FLAGS='-ffunction-sections -fdata-sections' + AC_SUBST(SECTION_FLAGS) + GLIBCPP_CHECK_LINKER_FEATURES + GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT + GLIBCPP_CHECK_WCHAR_T_SUPPORT + os_include_dir="config/os/qnx/qnx6.1" + AC_DEFINE(HAVE_COSF) + AC_DEFINE(HAVE_COSL) + AC_DEFINE(HAVE_COSHF) + AC_DEFINE(HAVE_COSHL) + AC_DEFINE(HAVE_LOGF) + AC_DEFINE(HAVE_LOGL) + AC_DEFINE(HAVE_LOG10F) + AC_DEFINE(HAVE_LOG10L) + AC_DEFINE(HAVE_SINF) + AC_DEFINE(HAVE_SINL) + AC_DEFINE(HAVE_SINHF) + AC_DEFINE(HAVE_SINHL) + ;; *) os_include_dir="config/os/newlib" AC_DEFINE(HAVE_HYPOT) *************** else *** 247,253 **** # Check for available headers. AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h]) GLIBCPP_CHECK_COMPILER_FEATURES GLIBCPP_CHECK_LINKER_FEATURES --- 270,276 ---- # Check for available headers. AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h sys/types.h]) GLIBCPP_CHECK_COMPILER_FEATURES GLIBCPP_CHECK_LINKER_FEATURES *************** else *** 293,301 **** multilib_arg= fi - # Needed so that g++ can find the correct include subdir automatically. - INTERFACE=v3 - # Export all the install information GLIBCPP_EXPORT_INSTALL_INFO --- 316,321 ---- *************** if test ! -f stamp-sanity-warned; then *** 379,389 **** touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." --- 399,409 ---- touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/html/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/html/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." diff -Nrc3pad gcc-3.1/libstdc++-v3/configure.target gcc-3.1.1/libstdc++-v3/configure.target *** gcc-3.1/libstdc++-v3/configure.target Tue Apr 23 20:32:10 2002 --- gcc-3.1.1/libstdc++-v3/configure.target Fri Jun 28 08:22:31 2002 *************** *** 16,25 **** # It possibly modifies the following shell variables: # cpu_include_dir CPU-specific include directory, relative to srcdir # os_include_dir OS-specific include directory, relative to srcdir ! # Set any CPU dependent compiler flags. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${target_cpu}" in alpha*) --- 16,36 ---- # It possibly modifies the following shell variables: # cpu_include_dir CPU-specific include directory, relative to srcdir + # # os_include_dir OS-specific include directory, relative to srcdir + # + # c_model the model to use for "C" headers, defaults to c_std. + # + # c_compatibility if "C" compatibility headers are necessary, + # defaults to no. + # DEFAULTS + c_model=c_std + c_compatibility=no ! ! # TARGET-SPECIFIC OVERRIDES ! # Set any CPU-dependent bits. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${target_cpu}" in alpha*) *************** case "${target_os}" in *** 108,113 **** --- 119,128 ---- hpux*) os_include_dir="config/os/hpux" ;; + qnx6.[12]*) + os_include_dir="config/os/qnx/qnx6.1" + c_model=c + ;; *) os_include_dir="config/os/generic" ;; *************** case "${target}" in *** 170,176 **** mmix-*-*) CPULIMITSH=config/cpu/mmix ;; ! powerpc-*-*) CPULIMITSH=config/cpu/powerpc ;; s390-*-* | s390x-*-*) --- 185,191 ---- mmix-*-*) CPULIMITSH=config/cpu/mmix ;; ! powerpc-*-* | rs6000-*-*) CPULIMITSH=config/cpu/powerpc ;; s390-*-* | s390x-*-*) diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/TODO gcc-3.1.1/libstdc++-v3/docs/doxygen/TODO *** gcc-3.1/libstdc++-v3/docs/doxygen/TODO Wed Mar 27 22:38:36 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/TODO Sat Jul 20 06:34:50 2002 *************** c19 Note A *** 24,30 **** c20 Note A c21 Untouched, Note B c22 Untouched ! c23 See doxygroups.cc and Note B. c24 stl_iterator.h (__normal_iterator, other small TODO bits) stream iterators c25 stl_algo.h (lots of stuff) --- 24,32 ---- c20 Note A c21 Untouched, Note B c22 Untouched ! c23 See doxygroups.cc and Note B. Notes on what invalidates ! iterators need to be added. std::list-specific memfns need ! to be filled out. c24 stl_iterator.h (__normal_iterator, other small TODO bits) stream iterators c25 stl_algo.h (lots of stuff) diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/run_doxygen gcc-3.1.1/libstdc++-v3/docs/doxygen/run_doxygen *** gcc-3.1/libstdc++-v3/docs/doxygen/run_doxygen Thu Apr 18 01:45:44 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/run_doxygen Sat Jul 20 06:34:50 2002 *************** set -e *** 150,162 **** set +e test $do_html = yes && { ! sed -e "s=@LEVEL@=${LEVELtext}=" \ ! -e "s=@DATE@=${DATEtext}=" \ ! ${srcdir}/docs/doxygen/mainpage.html > ${outdir}/html_${mode}/index.html ! cp ${srcdir}/docs/doxygen/tables.html ${outdir}/html_${mode}/tables.html ! echo :: ! echo :: HTML pages begin with ! echo :: ${outdir}/html_${mode}/index.html } # Mess with the man pages. We don't need documentation of the internal --- 150,165 ---- set +e test $do_html = yes && { ! sed -e "s=@LEVEL@=${LEVELtext}=" \ ! -e "s=@DATE@=${DATEtext}=" \ ! ${srcdir}/docs/doxygen/mainpage.html > ${outdir}/html_${mode}/index.html ! cd ${outdir}/html_${mode} ! sed -e 's=\(::[[:alnum:]_]*\)< .* >=\1=' annotated.html > annstrip.html ! mv annstrip.html annotated.html ! cp ${srcdir}/docs/doxygen/tables.html tables.html ! echo :: ! echo :: HTML pages begin with ! echo :: ${outdir}/html_${mode}/index.html } # Mess with the man pages. We don't need documentation of the internal diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/tables.html gcc-3.1.1/libstdc++-v3/docs/doxygen/tables.html *** gcc-3.1/libstdc++-v3/docs/doxygen/tables.html Wed Mar 27 22:38:36 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/tables.html Sat Jul 20 06:34:50 2002 *************** rendering is ugly. (Update: mozilla 0. *** 39,52 ****

        ! --- 39,53 ----

        Table 65 --- Container Requirements

        Anything calling itself a container must meet these minimum requirements.
        expression result type notes, pre-/post-conditions, assertions complexity
        ! + *************** Anything calling itself a container must *** 54,59 **** --- 55,61 ---- + *************** Anything calling itself a container must *** 62,67 **** --- 64,70 ---- + *************** Anything calling itself a container must *** 69,80 **** --- 72,85 ---- + + *************** Anything calling itself a container must *** 83,88 **** --- 88,94 ---- + *************** Anything calling itself a container must *** 90,95 **** --- 96,102 ---- + *************** Anything calling itself a container must *** 97,102 **** --- 104,110 ---- + *************** Anything calling itself a container must *** 104,109 **** --- 112,118 ---- + *************** Anything calling itself a container must *** 111,116 **** --- 120,126 ---- + *************** Anything calling itself a container must *** 118,123 **** --- 128,134 ---- + *************** Anything calling itself a container must *** 125,130 **** --- 136,142 ---- + *************** Anything calling itself a container must *** 132,137 **** --- 144,150 ---- + *************** Anything calling itself a container must *** 140,145 **** --- 153,159 ---- + *************** Anything calling itself a container must *** 147,158 **** --- 161,174 ---- + + *************** Anything calling itself a container must *** 161,166 **** --- 177,183 ---- + *************** Anything calling itself a container must *** 168,173 **** --- 185,191 ---- + *************** Anything calling itself a container must *** 175,180 **** --- 193,199 ---- + *************** Anything calling itself a container must *** 184,190 **** ! --- 203,209 ---- ! *************** Anything calling itself a container must *** 192,198 **** ! --- 211,217 ---- ! *************** Anything calling itself a container must *** 200,206 **** ! --- 219,225 ---- ! *************** Anything calling itself a container must *** 208,214 **** ! --- 227,233 ---- ! *************** Anything calling itself a container must *** 216,222 **** ! --- 235,241 ---- ! *************** Anything calling itself a container must *** 224,230 **** ! --- 243,249 ---- ! *************** Anything calling itself a container must *** 232,238 **** ! --- 251,257 ---- ! diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/user.cfg.in gcc-3.1.1/libstdc++-v3/docs/doxygen/user.cfg.in *** gcc-3.1/libstdc++-v3/docs/doxygen/user.cfg.in Thu Apr 18 01:45:44 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/user.cfg.in Sat Jul 20 06:34:50 2002 *************** INLINE_INFO = YES *** 183,189 **** # alphabetically by member name. If set to NO the members will appear in # declaration order. ! SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first --- 183,189 ---- # alphabetically by member name. If set to NO the members will appear in # declaration order. ! SORT_MEMBER_DOCS = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first *************** RECURSIVE = YES *** 323,329 **** # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. ! EXCLUDE = Makefile # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude --- 323,329 ---- # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. ! EXCLUDE = Makefile CVS # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude *************** ENABLE_PREPROCESSING = YES *** 669,681 **** # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. ! MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. ! EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. --- 669,681 ---- # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. ! MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. ! EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. *************** INCLUDE_FILE_PATTERNS = *** 701,710 **** # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. ! PREDEFINED = _GLIBCPP_DEPRECATED # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then ! # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. --- 701,719 ---- # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. ! ### The deprecated functions are clearly marked as such in the code, but ! ### the DEPRECATED macro must be defined for that code to be seen by doxygen. ! ### The class_requires macros are kludges because SKIP_FUNCTION_MACROS is ! ### completely broken, and the presence of the macros confuses the parser. ! ! PREDEFINED = _GLIBCPP_DEPRECATED \ ! __glibcpp_class_requires="//" \ ! __glibcpp_class_requires2="//" \ ! __glibcpp_class_requires3="//" \ ! __glibcpp_class_requires4="//" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then ! # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES gcc-3.1.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES *** gcc-3.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES Tue Mar 5 21:22:15 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES Sat May 18 14:47:57 2002 *************** *** 1,4 **** ! 2002-03-05 Release Notes ------------- --- 1,4 ---- ! 2002-05-02 Release Notes ------------- *************** The Standard C++ Library, or libstdc++-v *** 6,12 **** to fully implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. ! This is the fourteenth snapshot of the libstdc++ rewrite. It still has some incomplet and incorrekt parts, but it's a lot less incomplete and incorrect than some of the earlier snapshots, and quite usable. --- 6,12 ---- to fully implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. ! This is the fifteenth snapshot of the libstdc++ rewrite. It still has some incomplet and incorrekt parts, but it's a lot less incomplete and incorrect than some of the earlier snapshots, and quite usable. *************** URL: *** 22,38 **** New: --- ! - more doxygen documentation. ! - more named locale bug fixes ! - support for symbol versioning when using GNU ld >= 2.12 ! - wide-io ! - tuning for executable size Bugs fixed: ----------- ! 5816, 3955, 3983, 5708, 5697, 5286, 3860, 5579 ! AIX linkage and threading fixes. + others. --- 22,39 ---- New: --- ! - more doxygen documentation ! - more named locale fixups ! - stdio_filebuf that takes fd, FILE ! - io performance tuning ! - allocation tuning, valgrind fixups ! - __cxa_demangle now supported Bugs fixed: ----------- ! 6533, 6513, 6501, 6511, 5820, 6414, 4150, 6360, 4164, 1072, 6124, ! 5180, 3457, 3139, 5268, 3983, 5542, 3129, 5207, 3719, 5734 + others. diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.html gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.html *** gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.html Fri Nov 23 16:29:00 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.html Sat Jul 20 06:34:50 2002 *************** *** 3,26 **** Porting libstdc++-v3 ! ! -


        Node:
        Top, ! Next:
        !

        Porting libstdc++-v3

        This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target.

        In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files.

        Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any --- 3,29 ---- Porting libstdc++-v3 ! ! +

        Porting libstdc++-v3


        Node:Top, ! Next:, ! Up:(dir)
        !

        Porting libstdc++-v3

        This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target.

        In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files. Unless this is done, libstdc++-v3 will use generic ! settings which may not be correct for your target; even if they are ! correct, they will likely be inefficient.

        Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any *************** library, but you should at least try som *** 34,57 ****

        Here are the primary steps required to port the library:


        Node:Operating system, ! Next:, ! Previous:Top, ! Up:Top
        !

        Operating system

        !

        If you are porting to a new operating-system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set --- 37,61 ----

        Here are the primary steps required to port the library:


        Node:Operating system, ! Next:, ! Previous:Top, ! Up:Top
        !

        Operating system

        !

        If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set *************** standard target triplet; e.g., the sparc-sun-solaris2.8.

        The first file to create in this directory, should be called ! bits/os_defines.h. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for __off_t, __off64_t, and __ssize_t. Typically, this just looks like: !

        #define __off_t off_t
          #define __off64_t off64_t
          #define __ssize_t ssize_t
          
        --- 76,88 ---- sparc-sun-solaris2.8.

        The first file to create in this directory, should be called ! os_defines.h. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for __off_t, __off64_t, and __ssize_t. Typically, this just looks like: !

        #define __off_t off_t
          #define __off64_t off64_t
          #define __ssize_t ssize_t
          
        *************** need to define. You will need to add th *** 105,167 **** target. It will not work to simply define these macros in os_defines.h. !

        At this time, there are two libstdc++-v3-specific macros which may be defined. _G_USING_THUNKS may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI ! invalidates the assumption that some ports don't use thunks). ! _GLIBCPP_AVOID_FSEEK may be defined if seeking on an interactive ! stream (or one hooked to a pipe) is not allowed by the OS. In this ! case, getc()/ungetc() will be used at some key locations in the library ! implementation instead of fseek(). Currently, the code path to avoid ! fseek() is only enabled when the seek size is 1 character away from the ! current stream position. This is known to improve *-unknown-freebsd*, ! sparc-sun-solaris2.* and *-*-mingw32*.

        Finally, you should bracket the entire file in an include-guard, like this: !

        #ifndef _GLIBCPP_OS_DEFINES
          #define _GLIBCPP_OS_DEFINES
          ...
          #endif
          
        !

        We recommend copying an existing bits/os_defines.h to use as a starting point.


        Node:Character types, ! Next:, ! Previous:Operating system, ! Up:Top
        !

        Character types

        The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in ! config/os/generic/bits. However, these files will almost certainly need some modification. !

        The first file to write is bits/ctype_base.h. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements <ctype.h> by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The bits/ctype_base.h file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own <ctype.h> to figure out how to define the values required by this file. !

        The bits/ctype_base.h header file does not need include guards. It should contain a single struct definition called ctype_base. This struct should contain two type declarations, and one enumeration declaration, like this example, taken from the IRIX configuration: !

        struct ctype_base
          {
            typedef unsigned int 	mask;
            typedef int* 		__to_type;
        --- 109,195 ----
          target.  It will not work to simply define these macros in
          os_defines.h.
          
        ! 

        At this time, there is one libstdc++-v3-specific macro which may be defined. _G_USING_THUNKS may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI ! invalidates the assumption that some ports don't use thunks).

        Finally, you should bracket the entire file in an include-guard, like this: !

        #ifndef _GLIBCPP_OS_DEFINES
          #define _GLIBCPP_OS_DEFINES
          ...
          #endif
          
        !

        We recommend copying an existing os_defines.h to use as a starting point.


        + Node:CPU, + Next:, + Previous:Operating system, + Up:Top +
        + +

        CPU

        + +

        If you are porting to a new chip (as opposed to a new operating system + running on an existing chip), you will need to create a new directory in the + config/cpu hierarchy. Much like the Operating system setup, + there are no strict rules on how to organize the CPU configuration + directory, but careful naming choices will allow the configury to find your + setup files without explicit help. + +

        We recommend that for a target triplet <CPU>-<vendor>-<OS>, you + name your configuration directory config/cpu/<CPU>. If you do this, + the configury will find the directory itself. Otherwise you will need to + edit the configure.target file and, in the switch statement that sets + cpu_include_dir, add a pattern to handle your chip. + +

        Note that some chip families share a single configuration directory, for + example, alpha, alphaev5, and alphaev6 all use the + config/cpu/alpha directory, and there is an entry in the + configure.target switch statement to handle this. + +

        The cpu_include_dir sets default locations for the files controlling + Thread safety and Numeric limits, if the defaults are not + appropriate for your chip. + +


        Node:Character types, ! Next:, ! Previous:CPU, ! Up:Top
        !

        Character types

        The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in ! config/os/generic. However, these files will almost certainly need some modification. !

        The first file to write is ctype_base.h. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements <ctype.h> by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The ctype_base.h file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own <ctype.h> to figure out how to define the values required by this file. !

        The ctype_base.h header file does not need include guards. It should contain a single struct definition called ctype_base. This struct should contain two type declarations, and one enumeration declaration, like this example, taken from the IRIX configuration: !

        struct ctype_base
          {
            typedef unsigned int 	mask;
            typedef int* 		__to_type;
        *************** but you must still define the type.
        *** 195,209 ****
          example, using the values from your native <ctype.h>.  They can
          be given symbolically (as above), or numerically, if you prefer.  You do
          not have to include <ctype.h> in this header; it will always be
        ! included before bits/ctype_base.h is included.
          
        ! 

        The next file to write is bits/ctype_noninline.h, which also does not require include guards. This file defines a few member functions that will be included in include/bits/locale_facets.h. The first function that must be written is the ctype<char>::ctype constructor. Here is the IRIX example: !

        ctype<char>::ctype(const mask* __table = 0, bool __del = false,
                size_t __refs = 0)
            : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),
              _M_toupper(NULL),
        --- 223,237 ----
          example, using the values from your native <ctype.h>.  They can
          be given symbolically (as above), or numerically, if you prefer.  You do
          not have to include <ctype.h> in this header; it will always be
        ! included before ctype_base.h is included.
          
        ! 

        The next file to write is ctype_noninline.h, which also does not require include guards. This file defines a few member functions that will be included in include/bits/locale_facets.h. The first function that must be written is the ctype<char>::ctype constructor. Here is the IRIX example: !

        ctype<char>::ctype(const mask* __table = 0, bool __del = false,
                size_t __refs = 0)
            : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),
              _M_toupper(NULL),
        *************** vice versa, you should initialize 
        *** 227,233 ****
          

        Now, you have to write two functions to convert from upper-case to lower-case, and vice versa. Here are the IRIX versions: !

        char
          ctype<char>::do_toupper(char __c) const
          { return _toupper(__c); }
          
        --- 255,261 ----
          

        Now, you have to write two functions to convert from upper-case to lower-case, and vice versa. Here are the IRIX versions: !

        char
          ctype<char>::do_toupper(char __c) const
          { return _toupper(__c); }
          
        *************** of characters.  The versions provided he
        *** 245,251 ****
          could use specialized routines for greater performance if you have
          machinery to do that on your system:
          
        ! 
        const char*
          ctype<char>::do_toupper(char* __low, const char* __high) const
          {
            while (__low < __high)
        --- 273,279 ----
          could use specialized routines for greater performance if you have
          machinery to do that on your system:
          
        ! 
        const char*
          ctype<char>::do_toupper(char* __low, const char* __high) const
          {
            while (__low < __high)
        *************** ctype<char>::do_tolower(char* __lo
        *** 268,274 ****
          }
          
        !

        You must also provide the bits/ctype_inline.h file, which contains a few more functions. On most systems, you can just copy config/os/generic/ctype_inline.h and use it on your system. --- 296,302 ---- }

        !

        You must also provide the ctype_inline.h file, which contains a few more functions. On most systems, you can just copy config/os/generic/ctype_inline.h and use it on your system. *************** properties; they are analogous to the fu *** 278,284 ****

        The first function is implemented like this on IRIX: !

        bool
          ctype<char>::
          is(mask __m, char __c) const throw()
          { return (_M_table)[(unsigned char)(__c)] & __m; }
        --- 306,312 ----
          
          

        The first function is implemented like this on IRIX: !

        bool
          ctype<char>::
          is(mask __m, char __c) const throw()
          { return (_M_table)[(unsigned char)(__c)] & __m; }
        *************** implementation here should work on all s
        *** 290,296 ****
          
          

        The next function is: !

        const char*
          ctype<char>::
          is(const char* __low, const char* __high, mask* __vec) const throw()
          {
        --- 318,324 ----
          
          

        The next function is: !

        const char*
          ctype<char>::
          is(const char* __low, const char* __high, mask* __vec) const throw()
          {
        *************** from __low up until _
        *** 306,312 ****
          
          

        The last two functions again are entirely generic: !

        const char*
          ctype<char>::
          scan_is(mask __m, const char* __low, const char* __high) const throw()
          {
        --- 334,340 ----
          
          

        The last two functions again are entirely generic: !

        const char*
          ctype<char>::
          scan_is(mask __m, const char* __low, const char* __high) const throw()
          {
        *************** scan_not(mask __m, const char* __low, co
        *** 327,338 ****
          
          


        Node:Thread safety, ! Next:, ! Previous:Character types, ! Up:Top
        !

        Thread safety

        The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special --- 355,366 ----


        Node:Thread safety, ! Next:, ! Previous:Character types, ! Up:Top
        !

        Thread safety

        The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special *************** multi-threaded. *** 344,366 **** are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called bits/atomicity.h.

        If you are using the assembly-language approach, put this code in ! config/cpu/<chip>/bits/atomicity.h, where chip is the name of ! your processor. In that case, edit the switch statement in ! configure.target to set the cpu_include_dir. In either ! case, set the switch statement that sets ATOMICITYH to be the ! directory containing bits/atomicity.h.

        With those bits out of the way, you have to actually write ! bits/atomicity.h itself. This file should be wrapped in an include guard named _BITS_ATOMICITY_H. It should define one type, and two functions.

        The type is _Atomic_word. Here is the version used on IRIX: !

        typedef long _Atomic_word;
          

        This type must be a signed integral type supporting atomic operations. --- 372,406 ---- are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called atomicity.h, and the variable ! ATOMICITYH must point to this file.

        If you are using the assembly-language approach, put this code in ! config/cpu/<chip>/atomicity.h, where chip is the name of ! your processor (see CPU). No additional changes are necessary to ! locate the file in this case; ATOMICITYH will be set by default. ! !

        If you are using the operating system thread-safety primitives approach, ! you can also put this code in the same CPU directory, in which case no more ! work is needed to locate the file. For examples of this approach, ! see the atomicity.h file for IRIX or IA64. ! !

        Alternatively, if the primitives are more closely related to the OS ! than they are to the CPU, you can put the atomicity.h file in ! the Operating system directory instead. In this case, you must ! edit configure.target, and in the switch statement that handles ! operating systems, override the ATOMICITYH variable to point to ! the appropriate os_include_dir. For examples of this approach, ! see the atomicity.h file for AIX.

        With those bits out of the way, you have to actually write ! atomicity.h itself. This file should be wrapped in an include guard named _BITS_ATOMICITY_H. It should define one type, and two functions.

        The type is _Atomic_word. Here is the version used on IRIX: !

        typedef long _Atomic_word;
          

        This type must be a signed integral type supporting atomic operations. *************** primitives. *** 371,377 ****

        Then, you must provide two functions. The bodies of these functions must be equivalent to those provided here, but using atomic operations: !

        static inline _Atomic_word
          __attribute__ ((__unused__))
          __exchange_and_add (_Atomic_word* __mem, int __val)
          {
        --- 411,417 ----
          

        Then, you must provide two functions. The bodies of these functions must be equivalent to those provided here, but using atomic operations: !

        static inline _Atomic_word
          __attribute__ ((__unused__))
          __exchange_and_add (_Atomic_word* __mem, int __val)
          {
        *************** __atomic_add (_Atomic_word* __mem, int _
        *** 390,401 ****
          
          


        Node:Numeric limits, ! Next:, ! Previous:Thread safety, ! Up:Top
        !

        Numeric limits

        The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. --- 430,441 ----


        Node:Numeric limits, ! Next:, ! Previous:Thread safety, ! Up:Top
        !

        Numeric limits

        The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. *************** easiest just to indicate how many bits a *** 404,428 **** types and let the library do the rest. For information about the macros to define, see the top of include/bits/std_limits.h. !

        If you need to define any macros, you can do so in ! os_defines.h. However, if all operating systems for your CPU ! are likely to use the same values, you can provide a CPU-specific file ! instead so that you do not have to provide the same definitions for ! each operating system. To take that approach, create a new file ! called limits.h in your CPU configuration directory (e.g., ! config/cpu/i386/bits) and then modify configure.target ! so that LIMITSH is set to the CPU directory (e.g., ! config/cpu/i386). Note that LIMITSH should not include ! the bits part of the directory name.


        Node:Libtool, ! Next:, ! Previous:Numeric limits, ! Up:Top
        !

        Libtool

        The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this --- 444,464 ---- types and let the library do the rest. For information about the macros to define, see the top of include/bits/std_limits.h. !

        If you need to define any macros, you can do so in os_defines.h. ! However, if all operating systems for your CPU are likely to use the ! same values, you can provide a CPU-specific file instead so that you ! do not have to provide the same definitions for each operating system. ! To take that approach, create a new file called cpu_limits.h in ! your CPU configuration directory (see CPU).


        Node:Libtool, ! Next:, ! Previous:Numeric limits, ! Up:Top
        !

        Libtool

        The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this *************** run as the library is loaded. Often, th *** 441,450 **** object files when the C++ library is built as a shared library, or taking other system-specific actions. !

        The libstdc++-v3 library is linked with the C version of libtool, even though it ! is a C++ library. Therefore, the C version of libtool needs to ensure ! that the run-time library initializers are run. The usual way to do ! this is to build the library using gcc -shared.

        If you need to change how the library is linked, look at ltcf-c.sh in the top-level directory. Find the switch statement --- 477,486 ---- object files when the C++ library is built as a shared library, or taking other system-specific actions. !

        The libstdc++-v3 library is linked with the C version of libtool, even ! though it is a C++ library. Therefore, the C version of libtool needs to ! ensure that the run-time library initializers are run. The usual way to ! do this is to build the library using gcc -shared.

        If you need to change how the library is linked, look at ltcf-c.sh in the top-level directory. Find the switch statement *************** operating system. *** 453,466 ****


        Node:GNU Free Documentation License, ! Previous:Libtool, ! Up:Top
        !

        GNU Free Documentation License

        Version 1.1, March 2000
        !
        Copyright © 2000 Free Software Foundation, Inc.
          59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
          
          Everyone is permitted to copy and distribute verbatim copies
        --- 489,502 ----
          
          


        Node:GNU Free Documentation License, ! Previous:Libtool, ! Up:Top
        !

        GNU Free Documentation License

        Version 1.1, March 2000
        !
        Copyright © 2000 Free Software Foundation, Inc.
          59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
          
          Everyone is permitted to copy and distribute verbatim copies
        *************** number of this License, you may choose a
        *** 796,808 ****
          as a draft) by the Free Software Foundation.
          
          
        ! 

        ADDENDUM: How to use this License for your documents

        To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

          Copyright (C)  year  your name.
            Permission is granted to copy, distribute and/or modify this document
            under the terms of the GNU Free Documentation License, Version 1.1
            or any later version published by the Free Software Foundation;
        --- 832,844 ----
          as a draft) by the Free Software Foundation.
          
          
        ! 

        ADDENDUM: How to use this License for your documents

        To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

          Copyright (C)  year  your name.
            Permission is granted to copy, distribute and/or modify this document
            under the terms of the GNU Free Documentation License, Version 1.1
            or any later version published by the Free Software Foundation;
        *************** free software license, such as the GNU G
        *** 823,837 ****
          to permit their use in free software.
          
          
        ! 

        Table of Contents

          !
        • Porting libstdc++-v3 !
        • Operating system !
        • Character types !
        • Thread safety !
        • Numeric limits !
        • Libtool !
        • GNU Free Documentation License --- 859,882 ---- to permit their use in free software. !

          Table of Contents

            !
          • ! Porting libstdc++-v3 !
          • ! Operating system !
          • ! CPU !
          • ! Character types !
          • ! Thread safety !
          • ! Numeric limits !
          • ! Libtool !
          • ! GNU Free Documentation License diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.texi gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.texi *** gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.texi Fri Nov 23 16:29:00 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.texi Sat Jul 20 06:34:50 2002 *************** *** 12,18 **** This file explains how to port libstdc++-v3 (the GNU C++ library) to a new target. ! Copyright (c) 2000, 2001 Free Software Foundation, Inc. @end ifinfo @c --------------------------------------------------------------------- --- 12,18 ---- This file explains how to port libstdc++-v3 (the GNU C++ library) to a new target. ! Copyright (c) 2000, 2001, 2002 Free Software Foundation, Inc. @end ifinfo @c --------------------------------------------------------------------- *************** Copyright (c) 2000, 2001 Free Software F *** 24,30 **** @author Mark Mitchell @page @vskip 0pt plus 1filll ! Copyright @copyright{} 2000, 2001 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or --- 24,30 ---- @author Mark Mitchell @page @vskip 0pt plus 1filll ! Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or *************** a new target. *** 57,63 **** In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files. Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any --- 57,65 ---- In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files. Unless this is done, libstdc++-v3 will use generic ! settings which may not be correct for your target; even if they are ! correct, they will likely be inefficient. Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any *************** Here are the primary steps required to p *** 72,77 **** --- 74,80 ---- @menu * Operating system:: Configuring for your operating system. + * CPU:: Configuring for your processor chip. * Character types:: Implementing character classification. * Thread safety:: Implementing atomic operations. * Numeric limits:: Implementing numeric limits. *************** Here are the primary steps required to p *** 86,92 **** @node Operating system @chapter Operating system ! If you are porting to a new operating-system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the @file{config/os} hierarchy. For example, the IRIX configuration files are all in @file{config/os/irix}. There is no set --- 89,95 ---- @node Operating system @chapter Operating system ! If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the @file{config/os} hierarchy. For example, the IRIX configuration files are all in @file{config/os/irix}. There is no set *************** standard target triplet; e.g., the @code *** 107,113 **** @code{sparc-sun-solaris2.8}. The first file to create in this directory, should be called ! @file{bits/os_defines.h}. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for @code{__off_t}, @code{__off64_t}, and @code{__ssize_t}. Typically, this just looks --- 110,116 ---- @code{sparc-sun-solaris2.8}. The first file to create in this directory, should be called ! @file{os_defines.h}. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for @code{__off_t}, @code{__off64_t}, and @code{__ssize_t}. Typically, this just looks *************** need to define. You will need to add th *** 142,159 **** target. It will not work to simply define these macros in @file{os_defines.h}. ! At this time, there are two libstdc++-v3-specific macros which may be defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI invalidates the assumption that some ports don't use thunks). - @code{_GLIBCPP_AVOID_FSEEK} may be defined if seeking on an interactive - stream (or one hooked to a pipe) is not allowed by the OS. In this - case, getc()/ungetc() will be used at some key locations in the library - implementation instead of fseek(). Currently, the code path to avoid - fseek() is only enabled when the seek size is 1 character away from the - current stream position. This is known to improve *-unknown-freebsd*, - sparc-sun-solaris2.* and *-*-mingw32*. Finally, you should bracket the entire file in an include-guard, like this: --- 145,155 ---- target. It will not work to simply define these macros in @file{os_defines.h}. ! At this time, there is one libstdc++-v3-specific macro which may be defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI invalidates the assumption that some ports don't use thunks). Finally, you should bracket the entire file in an include-guard, like this: *************** this: *** 165,174 **** #endif @end example ! We recommend copying an existing @file{bits/os_defines.h} to use as a starting point. @c --------------------------------------------------------------------- @c Character types @c --------------------------------------------------------------------- --- 161,200 ---- #endif @end example ! We recommend copying an existing @file{os_defines.h} to use as a starting point. @c --------------------------------------------------------------------- + @c CPU + @c --------------------------------------------------------------------- + + @node CPU + @chapter CPU + + If you are porting to a new chip (as opposed to a new operating system + running on an existing chip), you will need to create a new directory in the + @file{config/cpu} hierarchy. Much like the @ref{Operating system} setup, + there are no strict rules on how to organize the CPU configuration + directory, but careful naming choices will allow the configury to find your + setup files without explicit help. + + We recommend that for a target triplet @code{--}, you + name your configuration directory @file{config/cpu/}. If you do this, + the configury will find the directory itself. Otherwise you will need to + edit the @file{configure.target} file and, in the switch statement that sets + @code{cpu_include_dir}, add a pattern to handle your chip. + + Note that some chip families share a single configuration directory, for + example, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the + @file{config/cpu/alpha} directory, and there is an entry in the + @file{configure.target} switch statement to handle this. + + The @code{cpu_include_dir} sets default locations for the files controlling + @ref{Thread safety} and @ref{Numeric limits}, if the defaults are not + appropriate for your chip. + + + @c --------------------------------------------------------------------- @c Character types @c --------------------------------------------------------------------- *************** starting point. *** 178,197 **** The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries @file{} header. You can model these on the files provided in ! @file{config/os/generic/bits}. However, these files will almost certainly need some modification. ! The first file to write is @file{bits/ctype_base.h}. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements @file{} by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The @file{bits/ctype_base.h} file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own @file{} to figure out how to define the values required by this file. ! The @file{bits/ctype_base.h} header file does not need include guards. It should contain a single @code{struct} definition called @code{ctype_base}. This @code{struct} should contain two type declarations, and one enumeration declaration, like this example, taken --- 204,223 ---- The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries @file{} header. You can model these on the files provided in ! @file{config/os/generic}. However, these files will almost certainly need some modification. ! The first file to write is @file{ctype_base.h}. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements @file{} by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The @file{ctype_base.h} file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own @file{} to figure out how to define the values required by this file. ! The @file{ctype_base.h} header file does not need include guards. It should contain a single @code{struct} definition called @code{ctype_base}. This @code{struct} should contain two type declarations, and one enumeration declaration, like this example, taken *************** The enumeration should give definitions *** 233,241 **** example, using the values from your native @file{}. They can be given symbolically (as above), or numerically, if you prefer. You do not have to include @file{} in this header; it will always be ! included before @file{bits/ctype_base.h} is included. ! The next file to write is @file{bits/ctype_noninline.h}, which also does not require include guards. This file defines a few member functions that will be included in @file{include/bits/locale_facets.h}. The first function that must be written is the @code{ctype::ctype} --- 259,267 ---- example, using the values from your native @file{}. They can be given symbolically (as above), or numerically, if you prefer. You do not have to include @file{} in this header; it will always be ! included before @file{ctype_base.h} is included. ! The next file to write is @file{ctype_noninline.h}, which also does not require include guards. This file defines a few member functions that will be included in @file{include/bits/locale_facets.h}. The first function that must be written is the @code{ctype::ctype} *************** ctype::do_tolower(char* __low, con *** 311,317 **** @} @end example ! You must also provide the @file{bits/ctype_inline.h} file, which contains a few more functions. On most systems, you can just copy @file{config/os/generic/ctype_inline.h} and use it on your system. --- 337,343 ---- @} @end example ! You must also provide the @file{ctype_inline.h} file, which contains a few more functions. On most systems, you can just copy @file{config/os/generic/ctype_inline.h} and use it on your system. *************** If you want to provide custom, safe, ver *** 390,406 **** are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called @file{bits/atomicity.h}. If you are using the assembly-language approach, put this code in ! @file{config/cpu//bits/atomicity.h}, where chip is the name of ! your processor. In that case, edit the switch statement in ! @file{configure.target} to set the @code{cpu_include_dir}. In either ! case, set the switch statement that sets @code{ATOMICITYH} to be the ! directory containing @file{bits/atomicity.h}. With those bits out of the way, you have to actually write ! @file{bits/atomicity.h} itself. This file should be wrapped in an include guard named @code{_BITS_ATOMICITY_H}. It should define one type, and two functions. --- 416,444 ---- are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called @file{atomicity.h}, and the variable ! @code{ATOMICITYH} must point to this file. If you are using the assembly-language approach, put this code in ! @file{config/cpu//atomicity.h}, where chip is the name of ! your processor (@pxref{CPU}). No additional changes are necessary to ! locate the file in this case; @code{ATOMICITYH} will be set by default. ! ! If you are using the operating system thread-safety primitives approach, ! you can also put this code in the same CPU directory, in which case no more ! work is needed to locate the file. For examples of this approach, ! see the @file{atomicity.h} file for IRIX or IA64. ! ! Alternatively, if the primitives are more closely related to the OS ! than they are to the CPU, you can put the @file{atomicity.h} file in ! the @ref{Operating system} directory instead. In this case, you must ! edit @file{configure.target}, and in the switch statement that handles ! operating systems, override the @code{ATOMICITYH} variable to point to ! the appropriate @code{os_include_dir}. For examples of this approach, ! see the @file{atomicity.h} file for AIX. With those bits out of the way, you have to actually write ! @file{atomicity.h} itself. This file should be wrapped in an include guard named @code{_BITS_ATOMICITY_H}. It should define one type, and two functions. *************** easiest just to indicate how many bits a *** 451,466 **** types and let the library do the rest. For information about the macros to define, see the top of @file{include/bits/std_limits.h}. ! If you need to define any macros, you can do so in ! @file{os_defines.h}. However, if all operating systems for your CPU ! are likely to use the same values, you can provide a CPU-specific file ! instead so that you do not have to provide the same definitions for ! each operating system. To take that approach, create a new file ! called @file{limits.h} in your CPU configuration directory (e.g., ! @file{config/cpu/i386/bits}) and then modify @file{configure.target} ! so that @code{LIMITSH} is set to the CPU directory (e.g., ! @file{config/cpu/i386}). Note that @code{LIMITSH} should not include ! the @samp{bits} part of the directory name. @c --------------------------------------------------------------------- @c Libtool --- 489,500 ---- types and let the library do the rest. For information about the macros to define, see the top of @file{include/bits/std_limits.h}. ! If you need to define any macros, you can do so in @file{os_defines.h}. ! However, if all operating systems for your CPU are likely to use the ! same values, you can provide a CPU-specific file instead so that you ! do not have to provide the same definitions for each operating system. ! To take that approach, create a new file called @file{cpu_limits.h} in ! your CPU configuration directory (@pxref{CPU}). @c --------------------------------------------------------------------- @c Libtool *************** run as the library is loaded. Often, th *** 486,495 **** object files when the C++ library is built as a shared library, or taking other system-specific actions. ! The libstdc++-v3 library is linked with the C version of libtool, even though it ! is a C++ library. Therefore, the C version of libtool needs to ensure ! that the run-time library initializers are run. The usual way to do ! this is to build the library using @code{gcc -shared}. If you need to change how the library is linked, look at @file{ltcf-c.sh} in the top-level directory. Find the switch statement --- 520,529 ---- object files when the C++ library is built as a shared library, or taking other system-specific actions. ! The libstdc++-v3 library is linked with the C version of libtool, even ! though it is a C++ library. Therefore, the C version of libtool needs to ! ensure that the run-time library initializers are run. The usual way to ! do this is to build the library using @code{gcc -shared}. If you need to change how the library is linked, look at @file{ltcf-c.sh} in the top-level directory. Find the switch statement diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/23_containers/howto.html gcc-3.1.1/libstdc++-v3/docs/html/23_containers/howto.html *** gcc-3.1/libstdc++-v3/docs/html/23_containers/howto.html Mon Jan 28 22:13:05 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/23_containers/howto.html Sat Jul 20 06:34:50 2002 *************** *** 27,32 **** --- 27,33 ----
          • "Hinting" during insertion
          • Bitmasks and string arguments
          • std::list::size() is O(n)! +
          • Space overhead management for vectors

          *************** *** 430,435 **** --- 431,457 ----

          Return to top of page or to the FAQ. +

          + +
          +

          Space overhead management for vectors

          +

          In + this + message to the list, Daniel Kostecky announced work on an + alternate form of std::vector that would support hints + on the number of elements to be over-allocated. The design was also + described, along with possible implementation choices. +

          +

          The first two alpha releases were announced + here + and + here. + The releases themselves are available at + + http://www.kotelna.sk/dk/sw/caphint/. +

          +

          Return to top of page or + to the FAQ.

          diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/Makefile gcc-3.1.1/libstdc++-v3/docs/html/Makefile *** gcc-3.1/libstdc++-v3/docs/html/Makefile Wed Mar 27 22:38:37 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/Makefile Sat Jul 20 06:34:50 2002 *************** *** 1,3 **** --- 1,4 ---- + PWD=$${PWDCMD-pwd} MAKEINFO=makeinfo INC=../../../gcc/doc/include *************** all: faq/index.txt 17_intro/porting.html *** 6,12 **** faq/index.txt: faq/index.html ! lynx -dump $< | sed "s%file://localhost`pwd`%..%" > $@ 17_intro/porting.html: 17_intro/porting.texi ${MAKEINFO} -I ${INC} --html --no-split $< -o $@ --- 7,13 ---- faq/index.txt: faq/index.html ! lynx -dump $< | sed "s%file://localhost`${PWD}`%..%" > $@ 17_intro/porting.html: 17_intro/porting.texi ${MAKEINFO} -I ${INC} --html --no-split $< -o $@ diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/configopts.html gcc-3.1.1/libstdc++-v3/docs/html/configopts.html *** gcc-3.1/libstdc++-v3/docs/html/configopts.html Mon Mar 11 21:12:59 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/configopts.html Tue Jul 2 06:22:38 2002 *************** options *** 26,32 ****

          Here are some of the non-obvious options to libstdc++'s configure. Keep in mind that ! they all have opposite forms as well (enable/disable and with/without). The defaults are for current development sources. --- 26,32 ----

          Here are some of the non-obvious options to libstdc++'s configure. Keep in mind that ! they all have opposite forms as well (enable/disable and with/without). The defaults are for current development sources. *************** options *** 46,59 ****

          --enable-debug

          The configure script will automatically detect the highest ! level of optimization that the compiler in use can use ! (certain versions of g++ will ICE if given the -O2 ! option, but this is fixed in later versions of the compiler). This --enable flag will disable all optimizations and instruct the compiler to emit as much extra debugging information as it ! can, for use inside GDB. Note this make command, executed in the build directory, will do much the same thing, without the ! configuration difference:make CXXFLAGS='-g -O0' all

          --enable-cstdio --- 46,58 ----
          --enable-debug

          The configure script will automatically detect the highest ! level of optimization that the compiler in use can use. This --enable flag will disable all optimizations and instruct the compiler to emit as much extra debugging information as it ! can, for use inside GDB. Note this make command, executed in the build directory, will do much the same thing, without the ! configuration difference: ! make CXXFLAGS='-g -O0' all

          --enable-cstdio diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/documentation.html gcc-3.1.1/libstdc++-v3/docs/html/documentation.html *** gcc-3.1/libstdc++-v3/docs/html/documentation.html Mon May 6 11:44:55 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/documentation.html Sat Jul 20 06:34:50 2002 *************** *** 7,19 **** !

          All of these documents (in fact, this entire homepage set) are ! bundled with the library source, under the docs subdirectory, ! for releases and snapshots. The sole exception is the automatically-generated source documentation, available separately.

          !

          Source Documentation

          In addition to the distribution documentation (these pages), we also have a set of HTML documents generated from the sources themselves, --- 7,20 ---- !

          All of these documents (in fact, this entire homepage set) ! are bundled with the library source, under the docs ! subdirectory, for releases and snapshots. The sole exception is the automatically-generated source documentation, available separately.

          !
          !

          Source Documentation

          In addition to the distribution documentation (these pages), we also have a set of HTML documents generated from the sources themselves, *************** *** 33,39 ****

        • docs for the most recent libstdc++ snapshot (3.0.96)
        • "the latest collection" ! (usually the snapshot collection or later; see the date on the first page)
        Other collections (man pages, maintainer docs) are only available on the FTP sites. --- 34,40 ----
      • docs for the most recent libstdc++ snapshot (3.0.96)
      • "the latest collection" ! (for the snapshot or later; see the date on the first page) Other collections (man pages, maintainer docs) are only available on the FTP sites. *************** *** 43,61 **** the same place as the HTML collections. Start with Intro(3).

        !

        Configuring, Building, Installing

        !

        Introductory notes for libstdc++

        This is a short list of text files pertaining to this implementation of ! ISO 14882. A brief description follows the name of the file. !

        !

        !
        !

        Chapter-Specific Information, Extensions, Notes and Advice

        1. Chapter 17 (Intro) diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/ext/howto.html gcc-3.1.1/libstdc++-v3/docs/html/ext/howto.html *** gcc-3.1/libstdc++-v3/docs/html/ext/howto.html Wed May 1 22:58:58 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/ext/howto.html Sat Jul 20 06:34:51 2002 *************** *** 37,43 **** --- 37,44 ---- *************** *** 154,160 ****


          !

          Allocators

          Thread-safety, space efficiency, high speed, portability... this is a mess. Where to begin?

          --- 155,161 ----


          !

          Allocators (versions 3.0, 3.1, 3.2)

          Thread-safety, space efficiency, high speed, portability... this is a mess. Where to begin?

          *************** *** 219,236 ****

          Well then:

          Available allocators in namespace std

          !

          First I'll describe the situation as it exists for the code which will ! be released in GCC 3.1. This situation is extremely fluid. Then I'll ! describe the differences for 3.0.x, which will not change much in ! this respect.

          As a general rule of thumb, users are not allowed to use names which begin with an underscore. This means that to be portable between compilers, none of the following may be used in your program directly. (If you decide to be unportable, then you're free do do what you want, but it's not our fault if stuff breaks.) They are presented here for ! information for maintainers and contributors in addition to users, but ! we will probably make them available for users in 3.2 somehow.

          These classes are always available:

            --- 220,238 ----

            Well then:

            Available allocators in namespace std

            !

            First I'll describe the situation as it exists for the code which ! was released in GCC 3.1 and 3.2. Then I'll describe the differences ! for 3.0. The allocator classes also have source documentation, ! which is described here (you ! will need to retrieve the maintainer-level docs, as almost none of ! these entities are in the ISO standard).

            As a general rule of thumb, users are not allowed to use names which begin with an underscore. This means that to be portable between compilers, none of the following may be used in your program directly. (If you decide to be unportable, then you're free do do what you want, but it's not our fault if stuff breaks.) They are presented here for ! information for maintainers and contributors in addition to users.

            These classes are always available:

              *************** *** 301,307 ****
            • __single_client_alloc are all typedef'd to __malloc_alloc_template.
            • __default_alloc_template is no longer available. ! At all. Anywhere.

        Writing your own allocators

        --- 303,309 ----
      • __single_client_alloc are all typedef'd to __malloc_alloc_template.
      • __default_alloc_template is no longer available. ! At all. Anywhere.

        Writing your own allocators

        *************** *** 359,365 **** can affect the 3.0.x allocators. Do not use them. Those macros have been completely removed for 3.1.

        !

        More notes as we remember them...

        Return to top of page or to the FAQ. --- 361,373 ---- can affect the 3.0.x allocators. Do not use them. Those macros have been completely removed for 3.1.

        !

        Return to top of page or ! to the FAQ. !

        ! !
        !

        Allocators (version 3.3)

        !

        Changes are coming...

        Return to top of page or to the FAQ. *************** *** 540,545 **** --- 548,554 ----

        Return to top of page or to the FAQ. +

        diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/ext/lwg-active.html gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-active.html *** gcc-3.1/libstdc++-v3/docs/html/ext/lwg-active.html Mon Dec 3 00:33:57 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-active.html Sat Jul 20 06:34:51 2002 *************** *** 5,15 ****
      • Table 65 --- Container Requirements

        Anything calling itself a container must meet these minimum requirements.
        expression result typeoperational semantics notes, pre-/post-conditions, assertions complexity
        X::value_type T  T is Assignable compile time
        X::reference lvalue of T    compile time
        X::const_reference const lvalue of T    compile time
        X::iterator iterator type pointing to T  Any iterator category except output iterator. Convertible to X::const_iterator. compile time
        X::const_iterator iterator type pointing to const T  Any iterator category except output iterator. compile time
        X::difference_type signed integral type  identical to the difference type of X::iterator and X::const_iterator compile time
        X::size_type unsigned integral type  size_type can represent any non-negative value of difference_type compile time
        X u;    post: u.size() == 0 constant
        X();    X().size == 0 constant
        X(a);    a == X(a) linear
        X u(a);
        X u = a;
           post: u == a. Equivalent to: X u; u = a; linear
        (&a)->~X(); void  dtor is applied to every element of a; all the memory is deallocated linear
        a.begin() iterator; const_iterator for constant a    constant
        a.end() iterator; const_iterator for constant a    constant
        a == b convertible to bool  == is an equivalence relation. a.size()==b.size() && equal(a.begin(),a.end(),b.begin()) linear
        a != b convertible to bool  equivalent to !(a==b) linear
        a.swap(b) void  swap(a,b) may or may not have constant complexity
        r = a X&  r == a linear
        a.size() size_type  may or may not have constant complexity
        a.size() size_typea.end() - a.begin()   may or may not have constant complexity
        a.max_size() size_type  may or may not have constant complexity
        a.max_size() size_typesize() of the largest possible container   may or may not have constant complexity
        a.empty() convertible to bool  constant
        a.empty() convertible to boola.size() == 0   constant
        a < b convertible to boolpre: < is defined for T and is a total ordering relation linear
        a < b convertible to boollexographical_compare( a.begin, a.end(), b.begin(), b.end()) pre: < is defined for T and is a total ordering relation linear
        a > b convertible to bool  linear
        a > b convertible to boolb < a   linear
        a <= b convertible to bool  linear
        a <= b convertible to bool!(a > b)   linear
        a >= b convertible to bool  linear
        a >= b convertible to bool!(a < b)   linear
        ! ! --- 5,15 ----
        Doc. no.J16/01-0052 = WG21 N1337
        Date:09 Nov 2001
        Project:
        ! ! *************** *** 20,26 ****
        Doc. no.J16/02-0027 = WG21 N1369
        Date:10 May 2002
        Project:Matt Austern <austern@research.att.com>
        !

        C++ Standard Library Active Issues List (Revision 20)

        Reference ISO/IEC IS 14882:1998(E)

        Also see:

          --- 20,26 ---- Matt Austern <austern@research.att.com> !

          C++ Standard Library Active Issues List (Revision 22)

          Reference ISO/IEC IS 14882:1998(E)

          Also see:

            *************** *** 88,93 **** --- 88,99 ---- directory as the issues list files.

            Revision History

              +
            • R22: + Post-Curaçao mailing. Added new issues 362-366. +
            • +
            • R21: + Pre-Curaçao mailing. Added new issues 351-361. +
            • R20: Post-Redmond mailing; reflects actions taken in Redmond. Added new issues 336-350, of which issues *************** new issues 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
            • R19: Pre-Redmond mailing. Added new issues ! 323-335.
            • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues --- 101,119 ---- not discussed at the meeting. All Ready issues were moved to DR status, with the exception of issues ! 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
            • R19: Pre-Redmond mailing. Added new issues ! 323-335.
            • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues *************** Changed status of issues *** 126,132 **** 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 --- 132,138 ---- 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 *************** as NAD. *** 141,148 ****
            • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
            • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new --- 147,154 ----
            • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
            • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new *************** of issue 2 *** 188,194 **** post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. --- 194,200 ---- post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. *************** format, 64 *** 272,278 ****

              Dup - The LWG has reached consensus that the issue is a duplicate of another issue, and will not be further ! dealt with. A Rationale identities the duplicated issue's issue number.

              --- 278,284 ----

              Dup - The LWG has reached consensus that the issue is a duplicate of another issue, and will not be further ! dealt with. A Rationale identifies the duplicated issue's issue number.

              *************** review of clause 27 as the changes are c *** 439,559 **** ]


              -

              76. Can a codecvt facet always convert one internal character at a time?

              - Section: 22.2.1.5 [lib.locale.codecvt]  Status: Ready  Submitter: Matt Austern  Date: 25 Sep 1998

              -

              This issue concerns the requirements on classes derived from - codecvt, including user-defined classes. What are the - restrictions on the conversion from external characters - (e.g. char) to internal characters (e.g. wchar_t)? - Or, alternatively, what assumptions about codecvt facets can - the I/O library make?

              - -

              The question is whether it's possible to convert from internal - characters to external characters one internal character at a time, - and whether, given a valid sequence of external characters, it's - possible to pick off internal characters one at a time. Or, to put it - differently: given a sequence of external characters and the - corresponding sequence of internal characters, does a position in the - internal sequence correspond to some position in the external - sequence?

              - -

              To make this concrete, suppose that [first, last) is a - sequence of M external characters and that [ifirst, - ilast) is the corresponding sequence of N internal - characters, where N > 1. That is, my_encoding.in(), - applied to [first, last), yields [ifirst, - ilast). Now the question: does there necessarily exist a - subsequence of external characters, [first, last_1), such - that the corresponding sequence of internal characters is the single - character *ifirst? -

              - -

              (What a "no" answer would mean is that - my_encoding translates sequences only as blocks. There's a - sequence of M external characters that maps to a sequence of - N internal characters, but that external sequence has no - subsequence that maps to N-1 internal characters.)

              - -

              Some of the wording in the standard, such as the description of - codecvt::do_max_length (22.2.1.5.2 [lib.locale.codecvt.virtuals], - paragraph 11) and basic_filebuf::underflow (27.8.1.4 [lib.filebuf.virtuals], paragraph 3) suggests that it must always be - possible to pick off internal characters one at a time from a sequence - of external characters. However, this is never explicitly stated one - way or the other.

              - -

              This issue seems (and is) quite technical, but it is important if - we expect users to provide their own encoding facets. This is an area - where the standard library calls user-supplied code, so a well-defined - set of requirements for the user-supplied code is crucial. Users must - be aware of the assumptions that the library makes. This issue affects - positioning operations on basic_filebuf, unbuffered input, - and several of codecvt's member functions.

              -

              Proposed resolution:

              -

              Add the following text as a new paragraph, following 22.2.1.5.2 [lib.locale.codecvt.virtuals] paragraph 2:

              - -
              -

              A codecvt facet that is used by basic_filebuf - (27.8 [lib.file.streams]) must have the property that if

              -
              -     do_out(state, from, from_end, from_next, to, to_lim, to_next)
              - 
              - would return ok, where from != from_end, then -
              -     do_out(state, from, from + 1, from_next, to, to_end, to_next)
              - 
              - must also return ok, and that if -
              -     do_in(state, from, from_end, from_next, to, to_lim, to_next)
              - 
              - would return ok, where to != to_lim, then -
              -     do_in(state, from, from_end, from_next, to, to + 1, to_next)
              - 
              -

              must also return ok. [Footnote: Informally, this - means that basic_filebuf assumes that the mapping from - internal to external characters is 1 to N: a codecvt that is - used by basic_filebuf must be able to translate characters - one internal character at a time. --End Footnote]

              -
              - -

              [Redmond: Minor change in proposed resolution. Original - proposed resolution talked about "success", with a parenthetical - comment that success meant returning ok. New wording - removes all talk about "success", and just talks about the - return value.]

              - -

              Rationale:

              - -

              The proposed resoluion says that conversions can be performed one - internal character at a time. This rules out some encodings that - would otherwise be legal. The alternative answer would mean there - would be some internal positions that do not correspond to any - external file position.

              -

              - An example of an encoding that this rules out is one where the - internT and externT are of the same type, and - where the internal sequence c1 c2 corresponds to the - external sequence c2 c1. -

              -

              It was generally agreed that basic_filebuf relies - on this property: it was designed under the assumption that - the external-to-internal mapping is N-to-1, and it is not clear - that basic_filebuf is implementable without that - restriction. -

              -

              - The proposed resolution is expressed as a restriction on - codecvt when used by basic_filebuf, rather - than a blanket restriction on all codecvt facets, - because basic_filebuf is the only other part of the - library that uses codecvt. If a user wants to define - a codecvt facet that implements a more general N-to-M - mapping, there is no reason to prohibit it, so long as the user - does not expect basic_filebuf to be able to use it. -

              -

              91. Description of operator>> and getline() for string<> might cause endless loop

              ! Section: 21.3.7.9 [lib.string.io]  Status: Review  Submitter: Nico Josuttis  Date: 29 Sep 1998

              Operator >> and getline() for strings read until eof() in the input stream is true. However, this might never happen, if the stream can't read anymore without reaching EOF. So shouldn't it be --- 445,452 ---- ]


              91. Description of operator>> and getline() for string<> might cause endless loop

              ! Section: 21.3.7.9 [lib.string.io]  Status: Ready  Submitter: Nico Josuttis  Date: 29 Sep 1998

              Operator >> and getline() for strings read until eof() in the input stream is true. However, this might never happen, if the stream can't read anymore without reaching EOF. So shouldn't it be *************** should be a formatted input function, no *** 604,609 **** --- 497,504 ---- there is no mechanism for gcount to be set except by one of basic_istream's member functions.]

              +

              [Curaçao: Nico agrees with proposed resolution.]

              +

              Rationale:

              The real issue here is whether or not these string input functions get their characters from a streambuf, rather than by calling an *************** multiple problems beyond the underlying *** 725,730 **** --- 620,628 ----

              [Post-Tokyo: Nico provided the above proposed resolutions.]

              +

              [Curaçao: Nico will provide wording to make options clearer: are + the exclusive, or is one a superset of the other?]

              +

              96. Vector<bool> is not a container

              Section: 23.2.5 [lib.vector.bool]  Status: Open  Submitter: AFNOR  Date: 7 Oct 1998

              *************** how many times a copy constructor is cal *** 810,815 **** --- 708,716 ---- constructor has observable behavior. (See issue 334 for a similar problem.)

              +

              [Issue still isn't clear. Matt will try to explain it more + clearly at the next meeting.]

              +

              Proposed resolution:


              120. Can an implementor add specializations?

              *************** different explicit instantiations might *** 881,915 ****

        !

        [Copenhagen: LWG discussed three options. (A) Users may not explicitly instantiate standard library templates, except on user-defined types. Consequence: library implementors may freely ! specialize or instantiate templates. (B) It is implementation defined ! whether users may explicitly instantiate standard library templates on ! non-user-defined types. Consequence: library implementors may freely ! specialize or instantiate templates, but may need to document some or ! all templates that have been explicitly instantiated. (C) Users may ! explicitly instantiate any standard library template. ]

        !

        [Straw poll (first number is favor, second is strongly oppose): ! A - 4, 0; B - 0, 9; C - 9, 1. Proposed resolution 1, above, is ! option A. (It is the original proposed resolution.) Proposed ! resolution 2, above, is option C. Because there was no support ! for option B, no wording is provided.]

        [Redmond: discussed again; straw poll had results similar to ! those of Copenhagen (A - 1, 3; B - 6, 2; C - 8, 4). Most people said ! they could live with any option. The only objection to option A is potential implementation difficulty. Steve Clamage volunteered do a ! survey to see if there are any popular platforms where option A would present a real problem for implementors. See his reflector message, c++std-lib-9002. ]


        123. Should valarray helper arrays fill functions be const?

        ! Section: 26.3.5.4 [lib.slice.arr.fill], 26.3.7.4 [lib.gslice.array.fill], 26.3.8.4 [lib.mask.array.fill], 26.3.9.4 [lib.indirect.array.fill]  Status: Review  Submitter: Judy Ward  Date: 15 Dec 1998

        One of the operator= in the valarray helper arrays is const and one is not. For example, look at slice_array. This operator= in Section 26.3.5.2 [lib.slice.arr.assign] is const:

        --- 782,824 ---- !

        [Copenhagen: LWG discussed three options. (1) Users may not explicitly instantiate standard library templates, except on user-defined types. Consequence: library implementors may freely ! specialize or instantiate templates. (2) Users may explicitly ! instantiate any standard library template. Consequence: if ! implementors specialize or instantiate library templates, they may ! need to take special steps to make sure users can do it too. (3) It ! is implementation defined whether users may explicitly instantiate ! standard library templates on non-user-defined types. Consequence: ! library implementors may freely specialize or instantiate templates, ! but may need to document some or all templates that have been ! explicitly instantiated. ]

        !

        [Straw poll (first number is favor, second is strongly oppose): 1 ! - 4, 0; 2 - 9, 1; 3 - 0, 9. (Proposed resolution 1 was the original ! proposed resolution.) Because there was no support for option 3, no ! wording is provided.]

        [Redmond: discussed again; straw poll had results similar to ! those of Copenhagen (1 - 1, 3; 2 - 8, 4; 3 - 6, 2). Most people said ! they could live with any option. The only objection to option 2 is potential implementation difficulty. Steve Clamage volunteered do a ! survey to see if there are any popular platforms where option 2 would present a real problem for implementors. See his reflector message, c++std-lib-9002. ]

        +

        [Steve and Pete Becker will talk to Jonathan Caves. The + Microsoft linker might present a problem if there are multiple copies, + some of which have static data and some of which are in DLLs. There + may be similar problems with the Apple linker; Matt will clarify + that.]

        +

        123. Should valarray helper arrays fill functions be const?

        ! Section: 26.3.5.4 [lib.slice.arr.fill], 26.3.7.4 [lib.gslice.array.fill], 26.3.8.4 [lib.mask.array.fill], 26.3.9.4 [lib.indirect.array.fill]  Status: Ready  Submitter: Judy Ward  Date: 15 Dec 1998

        One of the operator= in the valarray helper arrays is const and one is not. For example, look at slice_array. This operator= in Section 26.3.5.2 [lib.slice.arr.assign] is const:

        *************** text got garbled when the signed char/un *** 1098,1104 **** were removed. Dietmar will provide revised wording.]


        179. Comparison of const_iterators to iterators doesn't work

        ! Section: 23.1 [lib.container.requirements]  Status: Review  Submitter: Judy Ward  Date: 2 Jul 1998

        Currently the following will not compile on two well-known standard library implementations:

        --- 1007,1013 ---- were removed. Dietmar will provide revised wording.]


        179. Comparison of const_iterators to iterators doesn't work

        ! Section: 23.1 [lib.container.requirements]  Status: Ready  Submitter: Judy Ward  Date: 2 Jul 1998

        Currently the following will not compile on two well-known standard library implementations:

        *************** function than as an allocator member fun *** 1336,1469 **** it is probably best thought of as an architectural limit. Nathan will provide new wording.]


        -

        198. Validity of pointers and references unspecified after iterator destruction

        - Section: 24.1 [lib.iterator.requirements]  Status: Ready  Submitter: Beman Dawes  Date: 3 Nov 1999

        -

        - Is a pointer or reference obtained from an iterator still valid after - destruction of the iterator? -

        -

        - Is a pointer or reference obtained from an iterator still valid after the value - of the iterator changes? -

        -
        -
        - #include <iostream>
        - #include <vector>
        - #include <iterator>
        - 
        - int main()
        - {
        -     typedef std::vector<int> vec_t;
        -     vec_t v;
        -     v.push_back( 1 );
        - 
        -     // Is a pointer or reference obtained from an iterator still
        -     // valid after destruction of the iterator?
        -     int * p = &*v.begin();
        -     std::cout << *p << '\n';  // OK?
        - 
        -     // Is a pointer or reference obtained from an iterator still
        -     // valid after the value of the iterator changes?
        -     vec_t::iterator iter( v.begin() );
        -     p = &*iter++;
        -     std::cout << *p << '\n';  // OK?
        - 
        -     return 0;
        - }
        - 
        -
        - -

        The standard doesn't appear to directly address these - questions. The standard needs to be clarified. At least two real-world - cases have been reported where library implementors wasted - considerable effort because of the lack of clarity in the - standard. The question is important because requiring pointers and - references to remain valid has the effect for practical purposes of - prohibiting iterators from pointing to cached rather than actual - elements of containers.

        - -

        The standard itself assumes that pointers and references obtained - from an iterator are still valid after iterator destruction or - change. The definition of reverse_iterator::operator*(), 24.4.1.3.3 [lib.reverse.iter.op.star], which returns a reference, defines - effects:

        - -
        -
        Iterator tmp = current;
        - return *--tmp;
        -
        -

        The definition of reverse_iterator::operator->(), 24.4.1.3.4 [lib.reverse.iter.opref], which returns a pointer, defines effects:

        -
        -
        return &(operator*());
        -
        - -

        Because the standard itself assumes pointers and references remain - valid after iterator destruction or change, the standard should say so - explicitly. This will also reduce the chance of user code breaking - unexpectedly when porting to a different standard library - implementation.

        -

        Proposed resolution:

        -

        Add a new paragraph to 24.1 [lib.iterator.requirements]:

        -
        - Destruction of an iterator may invalidate pointers and references - previously obtained from that iterator. -
        - -

        Replace paragraph 1 of 24.4.1.3.3 [lib.reverse.iter.op.star] with:

        - -
        -

        Effects:

        -
        -   this->tmp = current;
        -   --this->tmp;
        -   return *this->tmp;
        - 
        - -

        - [Note: This operation must use an auxiliary member variable, - rather than a temporary variable, to avoid returning a reference that - persists beyond the lifetime of its associated iterator. (See - 24.1 [lib.iterator.requirements].) The name of this member variable is shown for - exposition only. --end note] -

        -
        - -

        [Post-Tokyo: The issue has been reformulated purely - in terms of iterators.]

        - -

        [Pre-Toronto: Steve Cleary pointed out the no-invalidation - assumption by reverse_iterator. The issue and proposed resolution was - reformulated yet again to reflect this reality.]

        - -

        [Copenhagen: Steve Cleary pointed out that reverse_iterator - assumes its underlying iterator has persistent pointers and - references. Andy Koenig pointed out that it is possible to rewrite - reverse_iterator so that it no longer makes such an assupmption. - However, this issue is related to issue 299. If we - decide it is intentional that p[n] may return by value - instead of reference when p is a Random Access Iterator, - other changes in reverse_iterator will be necessary.]

        -

        Rationale:

        -

        This issue has been discussed extensively. Note that it is - not an issue about the behavior of predefined iterators. It is - asking whether or not user-defined iterators are permitted to have - transient pointers and references. Several people presented examples - of useful user-defined iterators that have such a property; examples - include a B-tree iterator, and an "iota iterator" that doesn't point - to memory. Library implementors already seem to be able to cope with - such iterators: they take pains to avoid forming references to memory - that gets iterated past. The only place where this is a problem is - reverse_iterator, so this issue changes - reverse_iterator to make it work.

        - -

        This resolution does not weaken any guarantees provided by - predefined iterators like list<int>::iterator. - Clause 23 should be reviewed to make sure that guarantees for - predefined iterators are as strong as users expect.

        - -

        200. Forward iterator requirements don't allow constant iterators

        ! Section: 24.1.3 [lib.forward.iterators]  Status: Review  Submitter: Matt Austern  Date: 19 Nov 1999

        In table 74, the return type of the expression *a is given as T&, where T is the iterator's value type. --- 1245,1252 ---- it is probably best thought of as an architectural limit. Nathan will provide new wording.]


        200. Forward iterator requirements don't allow constant iterators

        ! Section: 24.1.3 [lib.forward.iterators]  Status: Ready  Submitter: Matt Austern  Date: 19 Nov 1999

        In table 74, the return type of the expression *a is given as T&, where T is the iterator's value type. *************** clear how numeric_limits applies to each *** 1581,1587 **** review of numeric_limits is needed. A paper would be welcome.]


        202. unique() effects unclear when predicate not an equivalence relation

        ! Section: 25.2.8 [lib.alg.unique]  Status: Review  Submitter: Andrew Koenig  Date: 13 Jan 2000

        What should unique() do if you give it a predicate that is not an equivalence relation? There are at least two plausible answers: --- 1364,1370 ---- review of numeric_limits is needed. A paper would be welcome.]


        202. unique() effects unclear when predicate not an equivalence relation

        ! Section: 25.2.8 [lib.alg.unique]  Status: Ready  Submitter: Andrew Koenig  Date: 13 Jan 2000

        What should unique() do if you give it a predicate that is not an equivalence relation? There are at least two plausible answers: *************** In fact, the SGI implementation of uniqu *** 1652,1658 ****

        For a nonempty range, eliminates all but the first element from every consecutive group of equivalent elements referred to by the iterator ! i in the range (first, last) for which the following conditions hold: *(i-1) == *i or pred(*(i-1), *i) != false.
        --- 1435,1441 ----
        For a nonempty range, eliminates all but the first element from every consecutive group of equivalent elements referred to by the iterator ! i in the range [first+1, last) for which the following conditions hold: *(i-1) == *i or pred(*(i-1), *i) != false.
        *************** pointed out that "i-1" is inco *** 1672,1677 **** --- 1455,1465 ---- iterator in the range. Matt provided wording to address this problem.]

        +

        [Curaçao: The LWG changed "... the range (first, + last)..." to "... the range [first+1, last)..." for + clarity. They considered this change close enough to editorial to not + require another round of review.]

        +

        Rationale:

        The LWG also considered an alternative resolution: change 25.2.8 [lib.alg.unique] paragraph 1 to:

        *************** illegal, since, under certain circumstan *** 1795,1800 **** --- 1583,1595 ---- those specified in the standard. The standard's description of unique does not say that overloading adjacent_find should have any effect.]

        + +

        [Curaçao: An LWG-subgroup spent an afternoon working on issues + 225, 226, and 229. Their conclusion was that the issues should be + separated into an LWG portion (Howard will write a proposal), and a + EWG portion (Dave will write a proposal). The LWG and EWG had + (separate) discussions of this plan the next day.]

        +

        226. User supplied specializations or overloads of namespace std function templates

        Section: 17.4.3.1 [lib.reserved.names]  Status: Open  Submitter: Dave Abrahams  Date: 01 Apr 2000

        *************** similar set of concerns was earlier rais *** 1867,1872 **** --- 1662,1680 ---- list and the ACCU-general mailing list. Also see library reflector message c++std-lib-7354.

        +

        + J. C. van Winkel points out (in c++std-lib-9565) another unexpected + fact: it's impossible to output a container of std::pair's using copy + and an ostream_iterator, as long as both pair-members are built-in or + std:: types. That's because a user-defined operator<< for (for + example) std::pair<const std::string, int> will not be found: + lookup for operator<< will be performed only in namespace std. + Opinions differed on whether or not this was a defect, and, if so, + whether the defect is that something is wrong with user-defined + functionality and std, or whether it's that the standard library does + not provide an operator<< for std::pair<>. +

        +

        Proposed resolution:

        [Tokyo: Summary, "There is no conforming way to extend *************** unqualified call of swap. (And *** 1924,1929 **** --- 1732,1743 ---- A small group (Nathan, Howard, Jeremy, Dave, Matt, Walter, Marc) will try to put together a proposal before the next meeting.]

        +

        [Curaçao: An LWG-subgroup spent an afternoon working on issues + 225, 226, and 229. Their conclusion was that the issues should be + separated into an LWG portion (Howard will write a proposal), and a + EWG portion (Dave will write a proposal). The LWG and EWG had + (separate) discussions of this plan the next day.]

        +

        229. Unqualified references of other library entities

        Section: 17.4.1.1 [lib.contents]  Status: Open  Submitter: Steve Clamage  Date: 19 Apr 2000

        *************** are intended to be called by library cod *** 1967,1975 **** concerned that valarray appears to require argument-dependent lookup, but that the wording may not be clear enough to fall under "unless explicitly described otherwise".]


        231. Precision in iostream?

        ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Ready  Submitter: James Kanze, Stephen Clamage  Date:  25 Apr 2000

        What is the following program supposed to output?

        #include <iostream>
          
        --- 1781,1796 ----
          concerned that valarray appears to require argument-dependent lookup,
          but that the wording may not be clear enough to fall under
          "unless explicitly described otherwise".]

        + +

        [Curaçao: An LWG-subgroup spent an afternoon working on issues + 225, 226, and 229. Their conclusion was that the issues should be + separated into an LWG portion (Howard will write a proposal), and a + EWG portion (Dave will write a proposal). The LWG and EWG had + (separate) discussions of this plan the next day.]

        +

        231. Precision in iostream?

        ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Open  Submitter: James Kanze, Stephen Clamage  Date:  25 Apr 2000

        What is the following program supposed to output?

        #include <iostream>
          
        *************** for %f and %e, but not for %g: for %g, p
        *** 2025,2033 ****
          to be the same as precision 1.

        The proposed resolution has the effect that the output of the above program will be "1e+00".


        233. Insertion hints in associative containers

        ! Section: 23.1.2 [lib.associative.reqmts]  Status: Review  Submitter: Andrew Koenig  Date: 30 Apr 2000

        If mm is a multimap and p is an iterator into the multimap, then mm.insert(p, x) inserts --- 1846,1858 ---- to be the same as precision 1.

        The proposed resolution has the effect that the output of the above program will be "1e+00".

        + +

        [Curaçao: Howard will send Matt improved wording dealing with + case not covered by current PR.]

        +

        233. Insertion hints in associative containers

        ! Section: 23.1.2 [lib.associative.reqmts]  Status: Open  Submitter: Andrew Koenig  Date: 30 Apr 2000

        If mm is a multimap and p is an iterator into the multimap, then mm.insert(p, x) inserts *************** t is inserted adjacent to iterator p. *** 2095,2112 ****

        [Toronto: there was general agreement that this is a real defect: when inserting an element x into a multiset that already contains several copies of x, there is no way to know whether the hint will be ! used. There was some support for an alternative resolution: we check ! on both sides of the hint (both before and after, in that order). If ! either is the correct location, the hint is used; otherwise it is not. ! This would be different from the original proposed resolution, because ! in the proposed resolution the hint will be used even if it is very ! far from the insertion point. JC van Winkel supplied precise wording ! for both options.]

        !

        [Copenhagen: the LWG looked at both options, and preferred the ! original. This preference is contingent on seeing a reference implementation showing that it is possible to implement this ! requirement without loss of efficiency.]

        [Redmond: The LWG was reluctant to adopt the proposal that emerged from Copenhagen: it seemed excessively complicated, and went --- 1920,1940 ----

        [Toronto: there was general agreement that this is a real defect: when inserting an element x into a multiset that already contains several copies of x, there is no way to know whether the hint will be ! used. The proposed resolution was that the new element should always ! be inserted as close to the hint as possible. So, for example, if ! there is a subsequence of equivalent values, then providing a.begin() ! as the hint means that the new element should be inserted before the ! subsequence even if a.begin() is far away. JC van Winkel supplied ! precise wording for this proposed resolution, and also for an ! alternative resolution in which hints are only used when they are ! adjacent to the insertion point.]

        !

        [Copenhagen: the LWG agreed to the original proposed resolution, ! in which an insertion hint would be used even when it is far from the ! insertion point. This was contingent on seeing a reference implementation showing that it is possible to implement this ! requirement without loss of efficiency. John Potter provided such a ! reference implementation.]

        [Redmond: The LWG was reluctant to adopt the proposal that emerged from Copenhagen: it seemed excessively complicated, and went *************** you can do it efficiently enough with a *** 2117,2208 **** other (perhaps better) balanced tree techniques that might differ enough to make the detailed semantics hard to satisfy."]

        !
        !

        239. Complexity of unique() and/or unique_copy incorrect

        ! Section: 25.2.8 [lib.alg.unique]  Status: Review  Submitter: Angelika Langer  Date: May 15 2000

        !

        The complexity of unique and unique_copy are inconsistent with each ! other and inconsistent with the implementations.  The standard ! specifies:

        ! !

        for unique():

        ! !
        -3- Complexity: If the range (last - first) is not empty, exactly ! (last - first) - 1 applications of the corresponding predicate, otherwise ! no applications of the predicate.
        ! !

        for unique_copy():

        ! !
        -7- Complexity: Exactly last - first applications of the corresponding ! predicate.
        ! !

        ! The implementations do it the other way round: unique() applies the ! predicate last-first times and unique_copy() applies it last-first-1 ! times.

        ! !

        As both algorithms use the predicate for pair-wise comparison of ! sequence elements I don't see a justification for unique_copy() ! applying the predicate last-first times, especially since it is not ! specified to which pair in the sequence the predicate is applied ! twice.

        !

        Proposed resolution:

        !

        Change both complexity sections in 25.2.8 [lib.alg.unique] to:

        ! !
        Complexity: For nonempty ranges, exactly last - first - 1 ! applications of the corresponding predicate.
        ! !
        !

        240. Complexity of adjacent_find() is meaningless

        ! Section: 25.1.5 [lib.alg.adjacent.find]  Status: Ready  Submitter: Angelika Langer  Date: May 15 2000

        !

        The complexity section of adjacent_find is defective:

        ! !
        !
        ! template <class ForwardIterator>
        ! ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last
        !                               BinaryPredicate pred);
        ! 
        ! !

        -1- Returns: The first iterator i such that both i and i + 1 are in ! the range [first, last) for which the following corresponding ! conditions hold: *i == *(i + 1), pred(*i, *(i + 1)) != false. Returns ! last if no such iterator is found.

        ! !

        -2- Complexity: Exactly find(first, last, value) - first applications ! of the corresponding predicate. !

        !
        ! !

        In the Complexity section, it is not defined what "value" ! is supposed to mean. My best guess is that "value" means an ! object for which one of the conditions pred(*i,value) or ! pred(value,*i) is true, where i is the iterator defined in the Returns ! section. However, the value type of the input sequence need not be ! equality-comparable and for this reason the term find(first, last, ! value) - first is meaningless.

        ! !

        A term such as find_if(first, last, bind2nd(pred,*i)) - first or ! find_if(first, last, bind1st(pred,*i)) - first might come closer to ! the intended specification. Binders can only be applied to function ! objects that have the function call operator declared const, which is ! not required of predicates because they can have non-const data ! members. For this reason, a specification using a binder could only be ! an "as-if" specification.

        !

        Proposed resolution:

        !

        Change the complexity section in 25.1.5 [lib.alg.adjacent.find] to:

        !
        ! For a nonempty range, exactly min((i - first) + 1, ! (last - first) - 1) applications of the ! corresponding predicate, where i is adjacent_find's ! return value. !
        ! !

        [Copenhagen: the original resolution specified an upper ! bound. The LWG preferred an exact count.]


        241. Does unique_copy() require CopyConstructible and Assignable?

        ! Section: 25.2.8 [lib.alg.unique]  Status: Review  Submitter: Angelika Langer  Date: May 15 2000

        Some popular implementations of unique_copy() create temporary copies of values in the input sequence, at least if the input iterator --- 1945,1956 ---- other (perhaps better) balanced tree techniques that might differ enough to make the detailed semantics hard to satisfy."]

        !

        [Curaçao: Nathan should give us the alternative wording he ! suggests so the LWG can decide between the two options.]


        241. Does unique_copy() require CopyConstructible and Assignable?

        ! Section: 25.2.8 [lib.alg.unique]  Status: Ready  Submitter: Angelika Langer  Date: May 15 2000

        Some popular implementations of unique_copy() create temporary copies of values in the input sequence, at least if the input iterator *************** shall not overlap. *** 2231,2241 ****

        to:

        ! -4- Requires: The ranges [first, last) and [result, result+(last-first)) ! shall not overlap. The expression *result = *first must be valid. If ! both InputIterator and OutputIterator do not meet the requirements of ! forward iterator then the value type of InputIterator must be copy ! constructible. Otherwise copy constructible is not required.

        [Redmond: the original proposed resolution didn't impose an --- 1979,1990 ----

        to:

        !

        -4- Requires: The ranges [first, last) and [result, ! result+(last-first)) shall not overlap. The expression *result = ! *first must be valid. If neither InputIterator nor OutputIterator ! meets the requirements of forward iterator then the value type of ! InputIterator must be copy constructible. Otherwise copy ! constructible is not required.

        [Redmond: the original proposed resolution didn't impose an *************** it might be possible to implement un *** 2247,2252 **** --- 1996,2008 ---- requiring assignability, although current implementations do impose that requirement. Howard provided new wording.]

        +

        [ + Curaçao: The LWG changed the PR editorially to specify + "neither...nor...meet..." as clearer than + "both...and...do not meet...". Change believed to be so + minor as not to require re-review. + ]

        +

        247. vector, deque::insert complexity

        Section: 23.2.4.3 [lib.vector.modifiers]  Status: Open  Submitter: Lisa Lippincott  Date: 06 June 2000

        *************** complicated than a while loop whose body *** 2319,2325 **** insert.]


        253. valarray helper functions are almost entirely useless

        ! Section: 26.3.2.1 [lib.valarray.cons], 26.3.2.2 [lib.valarray.assign]  Status: Review  Submitter: Robert Klarer  Date: 31 Jul 2000

        This discussion is adapted from message c++std-lib-7056 posted November 11, 1999. I don't think that anyone can reasonably claim that the problem described below is NAD.

        --- 2075,2081 ---- insert.]


        253. valarray helper functions are almost entirely useless

        ! Section: 26.3.2.1 [lib.valarray.cons], 26.3.2.2 [lib.valarray.assign]  Status: Ready  Submitter: Robert Klarer  Date: 31 Jul 2000

        This discussion is adapted from message c++std-lib-7056 posted November 11, 1999. I don't think that anyone can reasonably claim that the problem described below is NAD.

        *************** copy constructor is potentially invoked *** 2570,2576 ****

        The copy constructor is a more serious problem, becuase failure during stack unwinding invokes terminate. The copy ! constructor must be nothrow.

        The fundamental problem is that it's difficult to get the nothrow requirement to work well with the requirement that the exception --- 2326,2334 ----

        The copy constructor is a more serious problem, becuase failure during stack unwinding invokes terminate. The copy ! constructor must be nothrow. Curaçao: Howard thinks this ! requirement is already present. !

        The fundamental problem is that it's difficult to get the nothrow requirement to work well with the requirement that the exception *************** members thought there was a real defect *** 2607,2612 **** --- 2365,2372 ---- (Herb, Kevlin, Howard, Martin, Dave) will try to make a recommendation.]

        +

        [Curaçao: Howard will nag the others to work on a recommendation.]

        +

        258. Missing allocator requirement

        Section: 20.1.5 [lib.allocator.requirements]  Status: Open  Submitter: Matt Austern  Date: 22 Aug 2000

        *************** the second line from the bottom in table *** 2678,3134 **** desired property. This issue should be considered in light of other issues related to allocator instances.]


        -

        270. Binary search requirements overly strict

        - Section: 25.3.3 [lib.alg.binary.search]  Status: Ready  Submitter: Matt Austern  Date: 18 Oct 2000

        -

        - Each of the four binary search algorithms (lower_bound, upper_bound, - equal_range, binary_search) has a form that allows the user to pass a - comparison function object. According to 25.3, paragraph 2, that - comparison function object has to be a strict weak ordering. -

        - -

        - This requirement is slightly too strict. Suppose we are searching - through a sequence containing objects of type X, where X is some - large record with an integer key. We might reasonably want to look - up a record by key, in which case we would want to write something - like this: -

        -
        -     struct key_comp {
        -       bool operator()(const X& x, int n) const {
        -         return x.key() < n;
        -       }
        -     }
        - 
        -     std::lower_bound(first, last, 47, key_comp());
        - 
        - -

        - key_comp is not a strict weak ordering, but there is no reason to - prohibit its use in lower_bound. -

        - -

        - There's no difficulty in implementing lower_bound so that it allows - the use of something like key_comp. (It will probably work unless an - implementor takes special pains to forbid it.) What's difficult is - formulating language in the standard to specify what kind of - comparison function is acceptable. We need a notion that's slightly - more general than that of a strict weak ordering, one that can encompass - a comparison function that involves different types. Expressing that - notion may be complicated. -

        - -

        Additional questions raised at the Toronto meeting:

        -
          -
        • Do we really want to specify what ordering the implementor must - use when calling the function object? The standard gives - specific expressions when describing these algorithms, but it also - says that other expressions (with different argument order) are - equivalent.
        • -
        • If we are specifying ordering, note that the standard uses both - orderings when describing equal_range.
        • -
        • Are we talking about requiring these algorithms to work properly - when passed a binary function object whose two argument types - are not the same, or are we talking about requirements when - they are passed a binary function object with several overloaded - versions of operator()?
        • -
        • The definition of a strict weak ordering does not appear to give - any guidance on issues of overloading; it only discusses expressions, - and all of the values in these expressions are of the same type. - Some clarification would seem to be in order.
        • -
        - -

        Additional discussion from Copenhagen:

        -
          -
        • It was generally agreed that there is a real defect here: if - the predicate is merely required to be a Strict Weak Ordering, then - it's possible to pass in a function object with an overloaded - operator(), where the version that's actually called does something - completely inappropriate. (Such as returning a random value.)
        • - -
        • An alternative formulation was presented in a paper distributed by - David Abrahams at the meeting, "Binary Search with Heterogeneous - Comparison", J16-01/0027 = WG21 N1313: Instead of viewing the - predicate as a Strict Weak Ordering acting on a sorted sequence, view - the predicate/value pair as something that partitions a sequence. - This is almost equivalent to saying that we should view binary search - as if we are given a unary predicate and a sequence, such that f(*p) - is true for all p below a specific point and false for all p above it. - The proposed resolution is based on that alternative formulation.
        • -
        -

        Proposed resolution:

        - -

        Change 25.3 [lib.alg.sorting] paragraph 3 from:

        - -
        - 3 For all algorithms that take Compare, there is a version that uses - operator< instead. That is, comp(*i, *j) != false defaults to *i < - *j != false. For the algorithms to work correctly, comp has to - induce a strict weak ordering on the values. -
        - -

        to:

        - -
        - 3 For all algorithms that take Compare, there is a version that uses - operator< instead. That is, comp(*i, *j) != false defaults to *i - < *j != false. For algorithms other than those described in - lib.alg.binary.search (25.3.3) to work correctly, comp has to induce - a strict weak ordering on the values. -
        - -

        Add the following paragraph after 25.3 [lib.alg.sorting] paragraph 5:

        - -
        - -6- A sequence [start, finish) is partitioned with respect to an - expression f(e) if there exists an integer n such that - for all 0 <= i < distance(start, finish), f(*(begin+i)) is true if - and only if i < n. -
        - -

        Change 25.3.3 [lib.alg.binary.search] paragraph 1 from:

        - -
        - -1- All of the algorithms in this section are versions of binary - search and assume that the sequence being searched is in order - according to the implied or explicit comparison function. They work - on non-random access iterators minimizing the number of - comparisons, which will be logarithmic for all types of - iterators. They are especially appropriate for random access - iterators, because these algorithms do a logarithmic number of - steps through the data structure. For non-random access iterators - they execute a linear number of steps. -
        - -

        to:

        - -
        - -1- All of the algorithms in this section are versions of binary - search and assume that the sequence being searched is partitioned - with respect to an expression formed by binding the search key to - an argument of the implied or explicit comparison function. They - work on non-random access iterators minimizing the number of - comparisons, which will be logarithmic for all types of - iterators. They are especially appropriate for random access - iterators, because these algorithms do a logarithmic number of - steps through the data structure. For non-random access iterators - they execute a linear number of steps. -
        - -

        Change 25.3.3.1 [lib.lower.bound] paragraph 1 from:

        - -
        - -1- Requires: Type T is LessThanComparable - (lib.lessthancomparable). -
        - -

        to:

        - -
        - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expression e < value or comp(e, value) -
        - - -

        Remove 25.3.3.1 [lib.lower.bound] paragraph 2:

        - -
        - -2- Effects: Finds the first position into which value can be - inserted without violating the ordering. -
        - -

        Change 25.3.3.2 [lib.upper.bound] paragraph 1 from:

        - -
        - -1- Requires: Type T is LessThanComparable (lib.lessthancomparable). -
        - -

        to:

        - -
        - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expression !(value < e) or !comp(value, e) -
        - -

        Remove 25.3.3.2 [lib.upper.bound] paragraph 2:

        - -
        - -2- Effects: Finds the furthermost position into which value can be - inserted without violating the ordering. -
        - -

        Change 25.3.3.3 [lib.equal.range] paragraph 1 from:

        - -
        - -1- Requires: Type T is LessThanComparable - (lib.lessthancomparable). -
        - -

        to:

        - -
        - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expressions e < value and !(value < e) or - comp(e, value) and !comp(value, e). Also, for all elements e of - [first, last), e < value implies !(value < e) or comp(e, - value) implies !comp(value, e) -
        - -

        Change 25.3.3.3 [lib.equal.range] paragraph 2 from:

        - -
        - -2- Effects: Finds the largest subrange [i, j) such that the value - can be inserted at any iterator k in it without violating the - ordering. k satisfies the corresponding conditions: !(*k < value) - && !(value < *k) or comp(*k, value) == false && comp(value, *k) == - false. -
        - -

        to:

        - -
        -    -2- Returns: 
        -          make_pair(lower_bound(first, last, value),
        -                    upper_bound(first, last, value))
        -        or
        -          make_pair(lower_bound(first, last, value, comp),
        -                    upper_bound(first, last, value, comp))
        - 
        - -

        Change 25.3.3.3 [lib.binary.search] paragraph 1 from:

        - -
        - -1- Requires: Type T is LessThanComparable - (lib.lessthancomparable). -
        - -

        to:

        - -
        - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expressions e < value and !(value < e) or comp(e, - value) and !comp(value, e). Also, for all elements e of [first, - last), e < value implies !(value < e) or comp(e, value) implies - !comp(value, e) -
        - -

        [Copenhagen: Dave Abrahams provided this wording]

        - -

        [Redmond: Minor changes in wording. (Removed "non-negative", and - changed the "other than those described in" wording.) Also, the LWG - decided to accept the "optional" part.]

        - -

        Rationale:

        -

        The proposed resolution reinterprets binary search. Instead of - thinking about searching for a value in a sorted range, we view that - as an important special case of a more general algorithm: searching - for the partition point in a partitioned range.

        - -

        We also add a guarantee that the old wording did not: we ensure - that the upper bound is no earlier than the lower bound, that - the pair returned by equal_range is a valid range, and that the first - part of that pair is the lower bound.

        -
        -

        274. a missing/impossible allocator requirement

        - Section: 20.1.5 [lib.allocator.requirements]  Status: Ready  Submitter: Martin Sebor  Date: 02 Nov 2000

        -

        - I see that table 31 in 20.1.5, p3 allows T in std::allocator<T> to be of - any type. But the synopsis in 20.4.1 calls for allocator<>::address() to - be overloaded on reference and const_reference, which is ill-formed for - all T = const U. In other words, this won't work: -

        - -

        - template class std::allocator<const int>; -

        - -

        - The obvious solution is to disallow specializations of allocators on - const types. However, while containers' elements are required to be - assignable (which rules out specializations on const T's), I think that - allocators might perhaps be potentially useful for const values in other - contexts. So if allocators are to allow const types a partial - specialization of std::allocator<const T> would probably have to be - provided. -

        -

        Proposed resolution:

        -

        Change the text in row 1, column 2 of table 32 in 20.1.5, p3 from

        - -
        - any type -
        - -

        to

        -
        - any non-const, non-reference type -
        - -

        [Redmond: previous proposed resolution was "any non-const, - non-volatile, non-reference type". Got rid of the "non-volatile".]

        - -

        Rationale:

        -

        - Two resolutions were originally proposed: one that partially - specialized std::allocator for const types, and one that said an - allocator's value type may not be const. The LWG chose the second. - The first wouldn't be appropriate, because allocators are intended for - use by containers, and const value types don't work in containers. - Encouraging the use of allocators with const value types would only - lead to unsafe code. -

        -

        - The original text for proposed resolution 2 was modified so that it - also forbids volatile types and reference types. -

        -
        -

        276. Assignable requirement for container value type overly strict

        - Section: 23.1 [lib.container.requirements]  Status: Ready  Submitter: Peter Dimov  Date: 07 Nov 2000

        -

        - 23.1/3 states that the objects stored in a container must be - Assignable. 23.3.1 [lib.map], paragraph 2, - states that map satisfies all requirements for a container, while in - the same time defining value_type as pair<const Key, T> - a type - that is not Assignable. -

        - -

        - It should be noted that there exists a valid and non-contradictory - interpretation of the current text. The wording in 23.1/3 avoids - mentioning value_type, referring instead to "objects stored in a - container." One might argue that map does not store objects of - type map::value_type, but of map::mapped_type instead, and that the - Assignable requirement applies to map::mapped_type, not - map::value_type. -

        - -

        - However, this makes map a special case (other containers store objects of - type value_type) and the Assignable requirement is needlessly restrictive in - general. -

        - -

        - For example, the proposed resolution of active library issue - 103 is to make set::iterator a constant iterator; this - means that no set operations can exploit the fact that the stored - objects are Assignable. -

        - -

        - This is related to, but slightly broader than, closed issue - 140. -

        -

        Proposed resolution:

        -

        23.1/3: Strike the trailing part of the sentence:

        -
        - , and the additional requirements of Assignable types from 23.1/3 -
        -

        so that it reads:

        -
        - -3- The type of objects stored in these components must meet the - requirements of CopyConstructible types (lib.copyconstructible). -
        - -

        23.1/4: Modify to make clear that this requirement is not for all - containers. Change to:

        - -
        - -4- Table 64 defines the Assignable requirement. Some containers - require this property of the types to be stored in the container. T is - the type used to instantiate the container. t is a value of T, and u is - a value of (possibly const) T. -
        - -

        23.1, Table 65: in the first row, change "T is Assignable" to "T is - CopyConstructible".

        - -

        23.2.1/2: Add sentence for Assignable requirement. Change to:

        - -
        - -2- A deque satisfies all of the requirements of a container and of a - reversible container (given in tables in lib.container.requirements) and - of a sequence, including the optional sequence requirements - (lib.sequence.reqmts). In addition to the requirements on the stored - object described in 23.1[lib.container.requirements], the stored object - must also meet the requirements of Assignable. Descriptions are - provided here only for operations on deque that are not described in one - of these tables or for operations where there is additional semantic - information. -
        - -

        23.2.2/2: Add Assignable requirement to specific methods of list. - Change to:

        - -
        -

        -2- A list satisfies all of the requirements of a container and of a - reversible container (given in two tables in lib.container.requirements) - and of a sequence, including most of the the optional sequence - requirements (lib.sequence.reqmts). The exceptions are the operator[] - and at member functions, which are not provided. - - [Footnote: These member functions are only provided by containers whose - iterators are random access iterators. --- end foonote] -

        - -

        list does not require the stored type T to be Assignable unless the - following methods are instantiated: - - [Footnote: Implementors are permitted but not required to take advantage - of T's Assignable properties for these methods. -- end foonote] -

        -
        -      list<T,Allocator>& operator=(const list<T,Allocator>&  x );
        -      template <class InputIterator>
        -        void assign(InputIterator first, InputIterator last);
        -      void assign(size_type n, const T& t);
        - 
        - - -

        Descriptions are provided here only for operations on list that are not - described in one of these tables or for operations where there is - additional semantic information.

        -
        - -

        23.2.4/2: Add sentence for Assignable requirement. Change to:

        - -
        - -2- A vector satisfies all of the requirements of a container and of a - reversible container (given in two tables in lib.container.requirements) - and of a sequence, including most of the optional sequence requirements - (lib.sequence.reqmts). The exceptions are the push_front and pop_front - member functions, which are not provided. In addition to the - requirements on the stored object described in - 23.1[lib.container.requirements], the stored object must also meet the - requirements of Assignable. Descriptions are provided here only for - operations on vector that are not described in one of these tables or - for operations where there is additional semantic information. -
        -

        Rationale:

        -

        list, set, multiset, map, multimap are able to store non-Assignables. - However, there is some concern about list<T>: - although in general there's no reason for T to be Assignable, some - implementations of the member functions operator= and - assign do rely on that requirement. The LWG does not want - to forbid such implementations.

        - -

        Note that the type stored in a standard container must still satisfy - the requirements of the container's allocator; this rules out, for - example, such types as "const int". See issue 274 - for more details. -

        - -

        In principle we could also relax the "Assignable" requirement for - individual vector member functions, such as - push_back. However, the LWG did not see great value in such - selective relaxation. Doing so would remove implementors' freedom to - implement vector::push_back in terms of - vector::insert.

        - -

        278. What does iterator validity mean?

        ! Section: 23.2.2.4 [lib.list.ops]  Status: Review  Submitter: P.J. Plauger  Date: 27 Nov 2000

        Section 23.2.2.4 [lib.list.ops] states that

        --- 2438,2445 ---- desired property. This issue should be considered in light of other issues related to allocator instances.]


        278. What does iterator validity mean?

        ! Section: 23.2.2.4 [lib.list.ops]  Status: Open  Submitter: P.J. Plauger  Date: 27 Nov 2000

        Section 23.2.2.4 [lib.list.ops] states that

        *************** has been invalidated is undefined.] *** 3171,3176 **** --- 2482,2492 ----

        [Redmond: General agreement with the intent, some objections to the wording. Dave provided new wording.]

        +

        [Curaçao: The definition of "singular" is + contentious.  The 278 resolution must be made consistent with + issue 208 and 24.1/5. Furthermore, a Rationale paragraph + is required.]

        +

        280. Comparison of reverse_iterator to const reverse_iterator

        Section: 24.4.1 [lib.reverse.iterators]  Status: Open  Submitter: Steve Cleary  Date: 27 Nov 2000

        *************** floating-point input even though this is *** 3277,3285 **** standard. ]


        283. std::replace() requirement incorrect/insufficient

        ! Section: 25.2.4 [lib.alg.replace]  Status: Review  Submitter: Martin Sebor  Date: 15 Dec 2000

        The requirements in 25.2.4 [lib.alg.replace], p1 that T to be Assignable (23.1 [lib.container.requirements]) is not necessary or --- 2593,2604 ---- standard. ]

        +

        [Curaçao: Howard will email Bill and other implementors to try to + move the issue forward.]

        +

        283. std::replace() requirement incorrect/insufficient

        ! Section: 25.2.4 [lib.alg.replace]  Status: Open  Submitter: Martin Sebor  Date: 15 Dec 2000

        The requirements in 25.2.4 [lib.alg.replace], p1 that T to be Assignable (23.1 [lib.container.requirements]) is not necessary or *************** std::iterator_traits<ForwardIterator& *** 3526,3578 **** (23.1 [lib.container.requirements]). !


        !

        284. unportable example in 20.3.7, p6

        ! Section: 20.3.7 [lib.function.pointer.adaptors]  Status: Ready  Submitter: Martin Sebor  Date: 26 Dec 2000

        !

        The example in 20.3.7 [lib.function.pointer.adaptors], p6 shows how to use the C ! library function strcmp() with the function pointer adapter ! ptr_fun(). But since it's unspecified whether the C library ! functions have extern "C" or extern ! "C++" linkage [17.4.2.2 [lib.using.linkage]], and since ! function pointers with different the language linkage specifications ! (7.5 [dcl.link]) are incompatible, whether this example is ! well-formed is unspecified. !

        !

        Proposed resolution:

        !

        Change 20.3.7 [lib.function.pointer.adaptors] paragraph 6 from:

        !
        !

        [Example: !

        !
        !     replace_if(v.begin(), v.end(), not1(bind2nd(ptr_fun(strcmp), "C")), "C++");
        !   
        !

        replaces each C with C++ in sequence v.

        !
        ! ! !

        to:

        !
        !

        [Example: !

        !
        !     int compare(const char*, const char*);
        !     replace_if(v.begin(), v.end(),
        !                not1(bind2nd(ptr_fun(compare), "abc")), "def");
        !   
        !

        replaces each abc with def in sequence v.

        !
        ! !

        Also, remove footnote 215 in that same paragraph.

        ! !

        [Copenhagen: Minor change in the proposed resolution. Since this ! issue deals in part with C and C++ linkage, it was believed to be too ! confusing for the strings in the example to be "C" and "C++". ! ]

        ! !

        [Redmond: More minor changes. Got rid of the footnote (which ! seems to make a sweeping normative requirement, even though footnotes ! aren't normative), and changed the sentence after the footnote so that ! it corresponds to the new code fragment.]


        290. Requirements to for_each and its function object

        --- 2845,2854 ---- (23.1 [lib.container.requirements]). !

        [Curaçao: Jeremy reports he has run the changes through his ! automated test tools. At the request of the LWG, Jeremy will reword ! the PR in terms of valid expressions rather than "equality ! operator".]


        290. Requirements to for_each and its function object

        *************** blanket statement in Clause 25, not just *** 3621,3627 ****


        291. Underspecification of set algorithms

        ! Section: 25.3.5 [lib.alg.set.operations]  Status: Open  Submitter: Matt Austern  Date: 03 Jan 2001

        The standard library contains four algorithms that compute set operations on sorted ranges: set_union, set_intersection, --- 2897,2903 ----


        291. Underspecification of set algorithms

        ! Section: 25.3.5 [lib.alg.set.operations]  Status: Review  Submitter: Matt Austern  Date: 03 Jan 2001

        The standard library contains four algorithms that compute set operations on sorted ranges: set_union, set_intersection, *************** same way. *** 3671,3678 ****

        Proposed resolution:

        !

        [The LWG agrees that the standard should answer these questions. ! Matt will provide wording.]


        294. User defined macros and standard headers

        Section: 17.4.3.1.1 [lib.macro.names]  Status: Open  Submitter: James Kanze  Date: 11 Jan 2001

        --- 2947,2996 ----

        Proposed resolution:

        ! !

        Add the following to the end of 25.3.5.2 [lib.set.union] paragraph 5:

        !
        ! If [first1, last1) contains m elements that are equivalent to ! each other and [first2, last2) contains n elements that are ! equivalent to them, then max(m, n) of these elements ! will be copied to the output range: all m of these elements ! from [first1, last1), and the last max(n-m, 0) of them from ! [first2, last2), in that order. !
        ! !

        Add the following to the end of 25.3.5.3 [lib.set.intersection] paragraph 5:

        !
        ! If [first1, last1) contains m elements that are equivalent to each ! other and [first2, last2) contains n elements that are ! equivalent to them, the first min(m, n) of those ! elements from [first1, last1) are copied to the output range. !
        ! !

        Add a new paragraph, Notes, after 25.3.5.4 [lib.set.difference] ! paragraph 4:

        !
        ! If [first1, last1) contains m elements that are equivalent to each ! other and [first2, last2) contains n elements that are ! equivalent to them, the last max(m-n, 0) elements from ! [first1, last1) are copied to the output range. !
        ! !

        Add a new paragraph, Notes, after 25.3.5.5 [lib.set.symmetric.difference] ! paragraph 4:

        !
        ! If [first1, last1) contains m elements that are equivalent to ! each other and [first2, last2) contains n elements that are ! equivalent to them, then |m - n| of those elements will be ! copied to the output range: the last m - n of these elements ! from [first1, last1) if m > n, and the last n - ! m of these elements from [first2, last2) if m < n. !
        ! !

        [Curaçao: Missing Rationale and missing status comments from ! Redmond made discussion difficult. For union, doesn't the standard ! already say this? Howard, others think maybe so. Several thought the ! PR may be "too complicated".]

        !

        294. User defined macros and standard headers

        Section: 17.4.3.1.1 [lib.macro.names]  Status: Open  Submitter: James Kanze  Date: 11 Jan 2001

        *************** about issue 299 should keep this possibi *** 3768,3773 **** --- 3086,3093 ----

        In section 24.1.5 [lib.random.access.iterators], change the return type in table 76 from "convertible to T" to T&.

        +

        [Curaçao: Jeremy volunteered to work on this issue.]

        +

        300. list::merge() specification incomplete

        Section: 23.2.2.4 [lib.list.ops]  Status: Open  Submitter: John Pedretti  Date: 23 Jan 2001

        *************** Changing p23, without changing the other *** 3794,3799 **** --- 3114,3121 ---- contradictions. Additionally, "merges the argument list into the list" is excessively vague.]

        +

        [Curaçao: Robert Klarer volunteers to work on this issue.]

        +

        304. Must *a return an lvalue when a is an input iterator?

        Section: 24.1 [lib.iterator.requirements]  Status: Open  Submitter: Dave Abrahams  Date: 5 Feb 2001

        *************** it has no operator->. A str *** 3834,3840 **** support for the two options.]


        305. Default behavior of codecvt<wchar_t, char, mbstate_t>::length()

        ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: Review  Submitter: Howard Hinnant  Date: 24 Jan 2001

        22.2.1.5/3 introduces codecvt in part with:

        --- 3156,3162 ---- support for the two options.]


        305. Default behavior of codecvt<wchar_t, char, mbstate_t>::length()

        ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: Ready  Submitter: Howard Hinnant  Date: 24 Jan 2001

        22.2.1.5/3 introduces codecvt in part with:

        *************** would expect the default encoding to be *** 3939,3946 **** "C" locale. We could impose a guarantee like the one Nathan suggested (a character from the basic execution character set must map to a single external character), but this would rule out important ! encodings that are in common use: it would rule out Shift-JIS, for example, and it would rule out a fixed-width encoding of UCS-4.


        309. Does sentry catch exceptions?

        Section: 27.6 [lib.iostream.format]  Status: Open  Submitter: Martin Sebor  Date: 19 Mar 2001

        --- 3261,3272 ---- "C" locale. We could impose a guarantee like the one Nathan suggested (a character from the basic execution character set must map to a single external character), but this would rule out important ! encodings that are in common use: it would rule out JIS, for example, and it would rule out a fixed-width encoding of UCS-4.

        + +

        [Curaçao: fixed rationale typo at the request of Ichiro Koshida; + "shift-JIS" changed to "JIS".]

        +

        309. Does sentry catch exceptions?

        Section: 27.6 [lib.iostream.format]  Status: Open  Submitter: Martin Sebor  Date: 19 Mar 2001

        *************** the sentries. *** 4045,4313 **** ]


        -

        310. Is errno a macro?

        - Section: 17.4.1.2 [lib.headers], 19.3 [lib.errno]  Status: Ready  Submitter: Steve Clamage  Date: 21 Mar 2001

        -

        - Exactly how should errno be declared in a conforming C++ header? -

        - -

        - The C standard says in 7.1.4 that it is unspecified whether errno is a - macro or an identifier with external linkage. In some implementations - it can be either, depending on compile-time options. (E.g., on - Solaris in multi-threading mode, errno is a macro that expands to a - function call, but is an extern int otherwise. "Unspecified" allows - such variability.) -

        - -

        The C++ standard:

        -
          -
        • 17.4.1.2 says in a note that errno must be macro in C. (false)
        • -
        • 17.4.3.1.3 footnote 166 says errno is reserved as an external - name (true), and implies that it is an identifier.
        • -
        • 19.3 simply lists errno as a macro (by what reasoning?) and goes - on to say that the contents of of C++ <errno.h> are the - same as in C, begging the question.
        • -
        • C.2, table 95 lists errno as a macro, without comment.
        • -
        - -

        I find no other references to errno.

        - -

        We should either explicitly say that errno must be a macro, even - though it need not be a macro in C, or else explicitly leave it - unspecified. We also need to say something about namespace std. - A user who includes <cerrno> needs to know whether to write - errno, or ::errno, or std::errno, or - else <cerrno> is useless.

        - -

        Two acceptable fixes:

        -
          -
        • errno must be a macro. This is trivially satisfied by adding
          -   #define errno (::std::errno)
          - to the headers if errno is not already a macro. You then always - write errno without any scope qualification, and it always expands - to a correct reference. Since it is always a macro, you know to - avoid using errno as a local identifer.

        • -
        • errno is in the global namespace. This fix is inferior, because - ::errno is not guaranteed to be well-formed.

        • -
        - -

        [ - This issue was first raised in 1999, but it slipped through - the cracks. - ]

        -

        Proposed resolution:

        -

        Change the Note in section 17.4.1.2p5 from

        - -
        - Note: the names defined as macros in C include the following: - assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. -
        - -

        to

        - -
        - Note: the names defined as macros in C include the following: - assert, offsetof, setjmp, va_arg, va_end, and va_start. -
        - -

        In section 19.3, change paragraph 2 from

        - -
        - The contents are the same as the Standard C library header - <errno.h>. -
        - -

        to

        - -
        - The contents are the same as the Standard C library header - <errno.h>, except that errno shall be defined as a macro. -
        -

        Rationale:

        -

        C++ must not leave it up to the implementation to decide whether - or not a name is a macro; it must explicitly specify exactly which - names are required to be macros.

        -
        -

        311. Incorrect wording in basic_ostream class synopsis

        - Section: 27.6.2.1 [lib.ostream]  Status: Ready  Submitter: Andy Sawyer  Date: 21 Mar 2001

        - -

        In 27.6.2.1 [lib.ostream], the synopsis of class basic_ostream says:

        - -
        -   // partial specializationss
        -   template<class traits>
        -     basic_ostream<char,traits>& operator<<( basic_ostream<char,traits>&,
        -                                             const char * );
        - 
        - -

        Problems:

        -
          -
        • Too many 's's at the end of "specializationss"
        • -
        • This is an overload, not a partial specialization
        • -
        - -

        Proposed resolution:

        -

        In the synopsis in 27.6.2.1 [lib.ostream], remove the - // partial specializationss comment. Also remove the same - comment (correctly spelled, but still incorrect) from the synopsis in - 27.6.2.5.4 [lib.ostream.inserters.character]. -

        - -

        [ - Pre-Redmond: added 27.6.2.5.4 [lib.ostream.inserters.character] because of Martin's - comment in c++std-lib-8939. - ]

        - -
        -

        315. Bad "range" in list::unique complexity

        - Section: 23.2.2.4 [lib.list.ops]  Status: Ready  Submitter: Andy Sawyer  Date: 1 May 2001

        -

        - 23.2.2.4 [lib.list.ops], Para 21 describes the complexity of - list::unique as: "If the range (last - first) is not empty, exactly - (last - first) -1 applications of the corresponding predicate, - otherwise no applications of the predicate)". -

        - -

        - "(last - first)" is not a range. -

        -

        Proposed resolution:

        -

        - Change the "range" from (last - first) to [first, last). -

        -
        -

        316. Vague text in Table 69

        - Section: 23.1.2 [lib.associative.reqmts]  Status: Ready  Submitter: Martin Sebor  Date: 4 May 2001

        -

        Table 69 says this about a_uniq.insert(t):

        - -
        - inserts t if and only if there is no element in the container with key - equivalent to the key of t. The bool component of the returned pair - indicates whether the insertion takes place and the iterator component of the - pair points to the element with key equivalent to the key of t. -
        - -

        The description should be more specific about exactly how the bool component - indicates whether the insertion takes place.

        -

        Proposed resolution:

        -

        Change the text in question to

        - -
        - ...The bool component of the returned pair is true if and only if the insertion - takes place... -
        -
        -

        317. Instantiation vs. specialization of facets

        - Section: 22 [lib.localization]  Status: Ready  Submitter: Martin Sebor  Date: 4 May 2001

        -

        - The localization section of the standard refers to specializations of - the facet templates as instantiations even though the required facets - are typically specialized rather than explicitly (or implicitly) - instantiated. In the case of ctype<char> and - ctype_byname<char> (and the wchar_t versions), these facets are - actually required to be specialized. The terminology should be - corrected to make it clear that the standard doesn't mandate explicit - instantiation (the term specialization encompasses both explicit - instantiations and specializations). -

        -

        Proposed resolution:

        -

        - In the following paragraphs, replace all occurrences of the word - instantiation or instantiations with specialization or specializations, - respectively: -

        - -
        - 22.1.1.1.1, p4, Table 52, 22.2.1.1, p2, 22.2.1.5, p3, 22.2.1.5.1, p5, - 22.2.1.5.2, p10, 22.2.2, p2, 22.2.3.1, p1, 22.2.3.1.2, p1, p2 and p3, - 22.2.4.1, p1, 22.2.4.1.2, p1, 22,2,5, p1, 22,2,6, p2, 22.2.6.3.2, p7, and - Footnote 242. -
        - -

        And change the text in 22.1.1.1.1, p4 from

        - -
        - An implementation is required to provide those instantiations - for facet templates identified as members of a category, and - for those shown in Table 52: -
        - -

        to

        - -
        - An implementation is required to provide those specializations... -
        - -

        [Nathan will review these changes, and will look for places where - explicit specialization is necessary.]

        - -

        Rationale:

        -

        This is a simple matter of outdated language. The language to - describe templates was clarified during the standardization process, - but the wording in clause 22 was never updated to reflect that - change.

        -
        -

        318. Misleading comment in definition of numpunct_byname

        - Section: 22.2.3.2 [lib.locale.numpunct.byname]  Status: Ready  Submitter: Martin Sebor  Date: 12 May 2001

        -

        The definition of the numpunct_byname template contains the following - comment:

        - -
        -     namespace std {
        -         template <class charT>
        -         class numpunct_byname : public numpunct<charT> {
        -     // this class is specialized for char and wchar_t.
        -         ...
        - 
        - -

        There is no documentation of the specializations and it seems - conceivable that an implementation will not explicitly specialize the - template at all, but simply provide the primary template.

        -

        Proposed resolution:

        -

        Remove the comment from the text in 22.2.3.2 and from the proposed - resolution of library issue 228.

        -
        -

        319. Storage allocation wording confuses "Required behavior", "Requires"

        - Section: 18.4.1.1 [lib.new.delete.single], 18.4.1.2 [lib.new.delete.array]  Status: Ready  Submitter: Beman Dawes  Date: 15 May 2001

        -

        The standard specifies 17.3.1.3 [lib.structure.specifications] that "Required - behavior" elements describe "the semantics of a function definition - provided by either the implementation or a C++ program."

        - -

        The standard specifies 17.3.1.3 [lib.structure.specifications] that "Requires" - elements describe "the preconditions for calling the function."

        - -

        In the sections noted below, the current wording specifies - "Required Behavior" for what are actually preconditions, and thus - should be specified as "Requires".

        - -

        Proposed resolution:

        - -

        In 18.4.1.1 [lib.new.delete.single] Para 12 Change:

        -
        -

        Required behavior: accept a value of ptr that is null or that was - returned by an earlier call ...

        -
        -

        to:

        -
        -

        Requires: the value of ptr is null or the value returned by an - earlier call ...

        -
        - -

        In 18.4.1.2 [lib.new.delete.array] Para 11 Change:

        -
        -

        Required behavior: accept a value of ptr that is null or that was - returned by an earlier call ...

        -
        -

        to:

        -
        -

        Requires: the value of ptr is null or the value returned by an - earlier call ...

        -
        - -

        320. list::assign overspecified

        ! Section: 23.2.2.1 [lib.list.cons]  Status: Review  Submitter: Howard Hinnant  Date: 17 May 2001

        Section 23.2.2.1, paragraphs 6-8 specify that list assign (both forms) have the "effects" of a call to erase followed by a call to insert. --- 3371,3378 ---- ]


        320. list::assign overspecified

        ! Section: 23.2.2.1 [lib.list.cons]  Status: Ready  Submitter: Howard Hinnant  Date: 17 May 2001

        Section 23.2.2.1, paragraphs 6-8 specify that list assign (both forms) have the "effects" of a call to erase followed by a call to insert. *************** Metrowerks and SGI recycle nodes, Dinkum *** 4351,4361 ****

        In 23.1.1 [lib.sequence.reqmts], in Table 67 (sequence requirements), ! add a new row:

                a.assign(i,j)     void      pre: i,j are not iterators into a.
        !                                   Replaces elements in a with copies
        !                                   of elements in [i, j).
          

        Change 23.2.2.1/8 from:

        --- 3416,3430 ----

        In 23.1.1 [lib.sequence.reqmts], in Table 67 (sequence requirements), ! add two new rows:

                a.assign(i,j)     void      pre: i,j are not iterators into a.
        !                                   Replaces elements in a with a copy
        !                                   of [i, j).
        ! 
        !       a.assign(n,t)     void      pre: t is not a reference into a.
        !                                   Replaces elements in a with n copies
        !                                   of t.
          

        Change 23.2.2.1/8 from:

        *************** Also, the change in the sequence require *** 4380,4437 **** change, the proposed resolution would have required that assignment of a subrange would have to work. That too would have been overspecification; it would effectively mandate that assignment use a ! temporary. ]

        !
        !

        321. Typo in num_get

        ! Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: Ready  Submitter: Kevin Djang  Date: 17 May 2001

        !

        ! Section 22.2.2.1.2 at p7 states that "A length specifier is added to ! the conversion function, if needed, as indicated in Table 56." ! However, Table 56 uses the term "length modifier", not "length ! specifier". !

        !

        Proposed resolution:

        !

        ! In 22.2.2.1.2 at p7, change the text "A length specifier is added ..." ! to be "A length modifier is added ..." !

        !

        Rationale:

        !

        C uses the term "length modifier". We should be consistent.

        !
        !

        322. iterator and const_iterator should have the same value type

        ! Section: 23.1 [lib.container.requirements]  Status: Ready  Submitter: Matt Austern  Date: 17 May 2001

        !

        ! It's widely assumed that, if X is a container, ! iterator_traits<X::iterator>::value_type and ! iterator_traits<X::const_iterator>::value_type should both be ! X::value_type. However, this is nowhere stated. The language in ! Table 65 is not precise about the iterators' value types (it predates ! iterator_traits), and could even be interpreted as saying that ! iterator_traits<X::const_iterator>::value_type should be "const ! X::value_type". !

        -

        Related issue: 279.

        -

        Proposed resolution:

        -

        In Table 65 ("Container Requirements"), change the return type for - X::iterator to "iterator type whose value type is T". Change the - return type for X::const_iterator to "constant iterator type whose - value type is T".

        -

        Rationale:

        -

        - This belongs as a container requirement, rather than an iterator - requirement, because the whole notion of iterator/const_iterator - pairs is specific to containers' iterator. -

        -

        - It is existing practice that (for example) - iterator_traits<list<int>::const_iterator>::value_type - is "int", rather than "const int". This is consistent with - the way that const pointers are handled: the standard already - requires that iterator_traits<const int*>::value_type is int. -


        323. abs() overloads in different headers

        Section: 26.5 [lib.c.math]  Status: Open  Submitter: Dave Abrahams  Date: 4 June 2001

        --- 3449,3462 ---- change, the proposed resolution would have required that assignment of a subrange would have to work. That too would have been overspecification; it would effectively mandate that assignment use a ! temporary. Howard provided wording. ]

        !

        [Curaçao: Made editorial improvement in wording; changed ! "Replaces elements in a with copies of elements in [i, j)." ! with "Replaces the elements of a with a copy of [i, j)." ! Changes not deemed serious enough to requre rereview.]


        323. abs() overloads in different headers

        Section: 26.5 [lib.c.math]  Status: Open  Submitter: Dave Abrahams  Date: 4 June 2001

        *************** defined in which headers. (See issue

        324. Do output iterators have value types?

        ! Section: 24.1.2 [lib.output.iterators]  Status: Review  Submitter: Dave Abrahams  Date: 7 June 2001

        Table 73 suggests that output iterators have value types. It requires the expression "*a = t". Additionally, although Table 73 --- 3512,3518 ----


        324. Do output iterators have value types?

        ! Section: 24.1.2 [lib.output.iterators]  Status: Ready  Submitter: Dave Abrahams  Date: 7 June 2001

        Table 73 suggests that output iterators have value types. It requires the expression "*a = t". Additionally, although Table 73 *************** output iterators' pointer and reference *** 4540,4546 ****

        All iterators i support the expression *i, resulting in a value of some class, enumeration, or built-in type T, ! called the value type of the itereator.

        to

        --- 3565,3571 ----

        All iterators i support the expression *i, resulting in a value of some class, enumeration, or built-in type T, ! called the value type of the iterator.

        to

        *************** and any language suggesting otherwise is *** 4611,4617 **** decision.


        325. Misleading text in moneypunct<>::do_grouping

        ! Section: 22.2.6.3.2 [lib.locale.moneypunct.virtuals]  Status: Review  Submitter: Martin Sebor  Date: 02 Jul 2001

        The Returns clause in 22.2.6.3.2, p3 says about moneypunct<charT>::do_grouping()

        --- 3636,3642 ---- decision.


        325. Misleading text in moneypunct<>::do_grouping

        ! Section: 22.2.6.3.2 [lib.locale.moneypunct.virtuals]  Status: Ready  Submitter: Martin Sebor  Date: 02 Jul 2001

        The Returns clause in 22.2.6.3.2, p3 says about moneypunct<charT>::do_grouping()

        *************** locale. It is just a reminder that the v *** 4663,4709 **** integers, not ASCII characters.


        -

        327. Typo in time_get facet in table 52

        - Section: 22.1.1.1.1 [lib.locale.category]  Status: Ready  Submitter: Tiki Wan  Date: 06 Jul 2001

        -

        The wchar_t versions of time_get and - time_get_byname are listed incorrectly in table 52, - required instantiations. In both cases the second template - parameter is given as OutputIterator. It should instead be - InputIterator, since these are input facets.

        -

        Proposed resolution:

        -

        - In table 52, required instantiations, in - 22.1.1.1.1 [lib.locale.category], change

        -
        -     time_get<wchar_t, OutputIterator>
        -     time_get_byname<wchar_t, OutputIterator>
        - 
        -

        to

        -
        -     time_get<wchar_t, InputIterator>
        -     time_get_byname<wchar_t, InputIterator>
        - 
        - -

        [Redmond: Very minor change in proposed resolution. Original had - a typo, wchart instead of wchar_t.]

        - -
        -

        328. Bad sprintf format modifier in money_put<>::do_put()

        - Section: 22.2.6.2.2 [lib.locale.money.put.virtuals]  Status: Ready  Submitter: Martin Sebor  Date: 07 Jul 2001

        -

        The sprintf format string , "%.01f" (that's the digit one), in the - description of the do_put() member functions of the money_put facet in - 22.2.6.2.2, p1 is incorrect. First, the f format specifier is wrong - for values of type long double, and second, the precision of 01 - doesn't seem to make sense. What was most likely intended was - "%.0Lf"., that is a precision of zero followed by the L length - modifier.

        -

        Proposed resolution:

        -

        Change the format string to "%.0Lf".

        -

        Rationale:

        -

        Fixes an obvious typo

        -

        329. vector capacity, reserve and reallocation

        ! Section: 23.2.4.2 [lib.vector.capacity], 23.2.4.3 [lib.vector.modifiers]  Status: Review  Submitter: Anthony Williams  Date: 13 Jul 2001

        There is an apparent contradiction about which circumstances can cause a reallocation of a vector in Section 23.2.4.2 [lib.vector.capacity] and --- 3688,3695 ---- integers, not ASCII characters.


        329. vector capacity, reserve and reallocation

        ! Section: 23.2.4.2 [lib.vector.capacity], 23.2.4.3 [lib.vector.modifiers]  Status: Ready  Submitter: Anthony Williams  Date: 13 Jul 2001

        There is an apparent contradiction about which circumstances can cause a reallocation of a vector in Section 23.2.4.2 [lib.vector.capacity] and *************** the argument to the first, the intent wa *** 4784,4828 **** have no effect. Wording implying that such cases have an effect on reallocation guarantees was inadvertant.


        -

        331. bad declaration of destructor for ios_base::failure

        - Section: 27.4.2.1.1 [lib.ios::failure]  Status: Ready  Submitter: PremAnand M. Rao  Date: 23 Aug 2001

        -

        - With the change in 17.4.4.8 [lib.res.on.exception.handling] to state - "An implementation may strengthen the exception-specification for a - non-virtual function by removing listed exceptions." - (issue 119) - and the following declaration of ~failure() in ios_base::failure -

        -
        -     namespace std {
        -        class ios_base::failure : public exception {
        -        public:
        -            ...
        -            virtual ~failure();
        -            ...
        -        };
        -      }
        - 
        -

        the class failure cannot be implemented since in 18.6.1 [lib.exception] the destructor of class exception has an empty - exception specification:

        -
        -     namespace std {
        -        class exception {
        -        public:
        -          ...
        -          virtual ~exception() throw();
        -          ...
        -        };
        -      }
        - 
        -

        Proposed resolution:

        -

        Remove the declaration of ~failure().

        -

        Rationale:

        -

        The proposed resolution is consistent with the way that destructors - of other classes derived from exception are handled.

        -

        333. does endl imply synchronization with the device?

        ! Section: 27.6.2.7 [lib.ostream.manip]  Status: Review  Submitter: PremAnand M. Rao  Date: 27 Aug 2001

        A footnote in 27.6.2.7 [lib.ostream.manip] states:

        [Footnote: The effect of executing cout << endl is to insert a --- 3770,3777 ---- have no effect. Wording implying that such cases have an effect on reallocation guarantees was inadvertant.


        333. does endl imply synchronization with the device?

        ! Section: 27.6.2.7 [lib.ostream.manip]  Status: Ready  Submitter: PremAnand M. Rao  Date: 27 Aug 2001

        A footnote in 27.6.2.7 [lib.ostream.manip] states:

        [Footnote: The effect of executing cout << endl is to insert a *************** because it appears to make promises abou *** 4857,4863 **** does.


        334. map::operator[] specification forces inefficient implementation

        ! Section: 23.3.1.2 [lib.map.access]  Status: Review  Submitter: Andrea Griffini  Date: 02 Sep 2001

        The current standard describes map::operator[] using a code example. That code example is however quite --- 3806,3812 ---- does.


        334. map::operator[] specification forces inefficient implementation

        ! Section: 23.3.1.2 [lib.map.access]  Status: Ready  Submitter: Andrea Griffini  Date: 02 Sep 2001

        The current standard describes map::operator[] using a code example. That code example is however quite *************** clause 17 saying that we do not intend t *** 4957,5005 **** fragments to be interpreted as specifing exactly how many copies are made. See issue 98 for a similar problem.]

        !
        !

        335. minor issue with char_traits, table 37

        ! Section: 21.1.1 [lib.char.traits.require]  Status: Ready  Submitter: Andy Sawyer  Date: 06 Sep 2001

        !

        ! Table 37, in 21.1.1 [lib.char.traits.require], descibes char_traits::assign ! as: !

        !
        !   X::assign(c,d)   assigns c = d.
        ! 
        ! !

        And para 1 says:

        ! !
        ! [...] c and d denote values of type CharT [...] !
        !

        ! Naturally, if c and d are values, then the assignment is ! (effectively) meaningless. It's clearly intended that (in the case of ! assign, at least), 'c' is intended to be a reference type. !

        ! !

        I did a quick survey of the four implementations I happened to have ! lying around, and sure enough they all have signatures:

        !
        !     assign( charT&, const charT& );
        ! 
        ! !

        (or the equivalent). It's also described this way in Nico's book. ! (Not to mention the synopses of char_traits<char> in 21.1.3.1 ! and char_traits<wchar_t> in 21.1.3.2...)

        -

        Proposed resolution:

        -

        Add the following to 21.1.1 para 1:

        -
        - r denotes an lvalue of CharT -
        !

        and change the description of assign in the table to:

        !
        !   X::assign(r,d)   assigns r = d
        ! 

        336. Clause 17 lack of references to deprecated headers

        Section: 17 [lib.library]  Status: Open  Submitter: Detlef Vollmann  Date: 05 Sep 2001

        --- 3906,3920 ---- fragments to be interpreted as specifing exactly how many copies are made. See issue 98 for a similar problem.]

        !

        Rationale:

        ! This is the second solution described above; as noted, it is ! consistent with existing practice.

        !

        Note that we now need to specify the complexity explicitly, because ! we are no longer defining operator[] in terms of ! insert.


        336. Clause 17 lack of references to deprecated headers

        Section: 17 [lib.library]  Status: Open  Submitter: Detlef Vollmann  Date: 05 Sep 2001

        *************** library (though a deprecated one).

        *** 5017,5038 **** to table 11. A review is needed to determine whether there are any other places in clause 17 where clause D material should be referred to. Beman will review clause 17.]

        -
        -

        337. replace_copy_if's template parameter should be InputIterator

        - Section: 25.2.4 [lib.alg.replace]  Status: Ready  Submitter: Detlef Vollmann  Date: 07 Sep 2001

        -

        From c++std-edit-876:

        !

        ! In section 25.2.4 [lib.alg.replace] before p4: The name of the first ! parameter of template replace_copy_if should be "InputIterator" ! instead of "Iterator". According to 17.3.2.1 [lib.type.descriptions] p1 the ! parameter name conveys real normative meaning. !

        !

        Proposed resolution:

        !

        Change Iterator to InputIterator.


        338.  is whitespace allowed between `-' and a digit?

        ! Section: 22.2 [lib.locale.categories]  Status: Review  Submitter: Martin Sebor  Date: 17 Sep 2001

        From Stage 2 processing in 22.2.2.1.2 [lib.facet.num.get.virtuals], p8 and 9 (the original text or the text corrected by the proposed resolution of --- 3932,3944 ---- to table 11. A review is needed to determine whether there are any other places in clause 17 where clause D material should be referred to. Beman will review clause 17.]

        !

        [Curaçao: Beman emailed wording to Matt, but not in time for the ! pre-meeting mailing.]

        !

        338.  is whitespace allowed between `-' and a digit?

        ! Section: 22.2 [lib.locale.categories]  Status: Ready  Submitter: Martin Sebor  Date: 17 Sep 2001

        From Stage 2 processing in 22.2.2.1.2 [lib.facet.num.get.virtuals], p8 and 9 (the original text or the text corrected by the proposed resolution of *************** numeric processing in 22.2.2.1.2


        339. definition of bitmask type restricted to clause 27

        ! Section: 22.2.1 [lib.category.ctype], 17.3.2.1.2 [lib.bitmask.types]  Status: Review  Submitter: Martin Sebor  Date: 17 September 2001

        The ctype_category::mask type is declared to be an enum in 22.2.1 [lib.category.ctype] with p1 then stating that it is a bitmask type, most likely referring to the definition of bitmask type in 17.3.2.1.2 [lib.bitmask.types], p1. However, the said definition only applies to --- 4000,4006 ---- resolution removes all mention of "whitespace" from that format.


        339. definition of bitmask type restricted to clause 27

        ! Section: 22.2.1 [lib.category.ctype], 17.3.2.1.2 [lib.bitmask.types]  Status: Ready  Submitter: Martin Sebor  Date: 17 September 2001

        The ctype_category::mask type is declared to be an enum in 22.2.1 [lib.category.ctype] with p1 then stating that it is a bitmask type, most likely referring to the definition of bitmask type in 17.3.2.1.2 [lib.bitmask.types], p1. However, the said definition only applies to *************** following (note, in particluar, the cros *** 5128,5134 **** namespace std { class ctype_base { public: ! typedef T mask; // numeric values are for exposition only. static const mask space = 1 << 0; --- 4034,4040 ---- namespace std { class ctype_base { public: ! typedef T mask; // numeric values are for exposition only. static const mask space = 1 << 0; *************** namespace std { *** 5149,5158 ****

        The type mask is a bitmask type (17.3.2.1.2 [lib.bitmask.types]).


        340. interpretation of has_facet<Facet>(loc)

        ! Section: 22.1.1.1.1 [lib.locale.category]  Status: Review  Submitter: Martin Sebor  Date: 18 Sep 2001

        It's unclear whether 22.1.1.1.1, p3 says that has_facet<Facet>(loc) returns true for any Facet --- 4055,4067 ----

        The type mask is a bitmask type (17.3.2.1.2 [lib.bitmask.types]).

        +

        [Curaçao: The LWG notes that T above should be bold-italics to be + consistent with the rest of the standard.]

        +

        340. interpretation of has_facet<Facet>(loc)

        ! Section: 22.1.1.1.1 [lib.locale.category]  Status: Ready  Submitter: Martin Sebor  Date: 18 Sep 2001

        It's unclear whether 22.1.1.1.1, p3 says that has_facet<Facet>(loc) returns true for any Facet *************** OutputIterator must be supported. Table *** 5210,5216 **** complete list of the ones we need.


        341. Vector reallocation and swap

        ! Section: 23.2.4.2 [lib.vector.capacity]  Status: Review  Submitter: Anthony Williams  Date: 27 Sep 2001

        It is a common idiom to reduce the capacity of a vector by swapping it with an empty one:

        --- 4119,4125 ----
          complete list of the ones we need.


        341. Vector reallocation and swap

        ! Section: 23.2.4.2 [lib.vector.capacity]  Status: Ready  Submitter: Anthony Williams  Date: 27 Sep 2001

        It is a common idiom to reduce the capacity of a vector by swapping it with an empty one:

        *************** containers.]

        *** 5272,5278 **** swap should be constant time. The clear intent is that it should just do pointer twiddling, and that it should exchange all properties of the two vectors, including their reallocation guarantees. - ay be useful.


        342. seek and eofbit

        --- 4181,4186 ---- *************** examined by the user to determine why so *** 5349,5411 **** places where we have a problem, where the difference between fail() and !good() is important.]


        -

        345. type tm in <cwchar>

        - Section: 21.4 [lib.c.strings]  Status: Ready  Submitter: Clark Nelson  Date: 19 Oct 2001

        -

        - C99, and presumably amendment 1 to C90, specify that <wchar.h> - declares struct tm as an incomplete type. However, table 48 in 21.4 [lib.c.strings] does not mention the type tm as being declared in - <cwchar>. Is this omission intentional or accidental? -

        -

        Proposed resolution:

        -

        In section 21.4 [lib.c.strings], add "tm" to table 48.

        -
        -

        346. Some iterator member functions should be const

        - Section: 24.1 [lib.iterator.requirements]  Status: Ready  Submitter: Jeremy Siek  Date: 20 Oct 2001

        -

        Iterator member functions and operators that do not change the state - of the iterator should be defined as const member functions or as - functions that take iterators either by const reference or by - value. The standard does not explicitly state which functions should - be const. Since this a fairly common mistake, the following changes - are suggested to make this explicit.

        - -

        The tables almost indicate constness properly through naming: r - for non-const and a,b for const iterators. The following changes - make this more explicit and also fix a couple problems.

        -

        Proposed resolution:

        -

        In 24.1 [lib.iterator.requirements] Change the first section of p9 from - "In the following sections, a and b denote values of X..." to - "In the following sections, a and b denote values of type const X...".

        - -

        In Table 73, change

        -
        -     a->m   U&         ...
        - 
        - -

        to

        - -
        -     a->m   const U&   ...
        -     r->m   U&         ...
        - 
        - -

        In Table 73 expression column, change

        - -
        -     *a = t
        - 
        - -

        to

        - -
        -     *r = t
        - 
        - -

        [Redmond: The container requirements should be reviewed to see if - the same problem appears there.]

        - -

        347. locale::category and bitmask requirements

        ! Section: 22.1.1.1.1 [lib.locale.category]  Status: New  Submitter: P.J. Plauger, Nathan Myers  Date: 23 Oct 2001

        In 22.1.1.1.1 [lib.locale.category] paragraph 1, the category members are described as bitmask elements. In fact, the bitmask requirements --- 4257,4264 ---- places where we have a problem, where the difference between fail() and !good() is important.]


        347. locale::category and bitmask requirements

        ! Section: 22.1.1.1.1 [lib.locale.category]  Status: Open  Submitter: P.J. Plauger, Nathan Myers  Date: 23 Oct 2001

        In 22.1.1.1.1 [lib.locale.category] paragraph 1, the category members are described as bitmask elements. In fact, the bitmask requirements *************** of the other enumerated values; implemen *** 5485,5493 ****


        348. Minor issue with std::pair operator<

        ! Section: 20.2.2 [lib.pairs]  Status: New  Submitter: Andy Sawyer  Date: 23 Oct 2001

        The current wording of 20.2.2 [lib.pairs] p6 precludes the use of operator< on any pair type which contains a pointer. --- 4338,4348 ----

        +

        [Curaçao: need input from locale experts.]

        +

        348. Minor issue with std::pair operator<

        ! Section: 20.2.2 [lib.pairs]  Status: Open  Submitter: Andy Sawyer  Date: 23 Oct 2001

        The current wording of 20.2.2 [lib.pairs] p6 precludes the use of operator< on any pair type which contains a pointer. *************** operator< on any pair type which cont *** 5504,5512 **** (!std::less<T1>()( y.first, x.first) && std::less<T2>()( x.second, y.second ) )


        349. Minor typographical error in ostream_iterator

        ! Section: 24.5.2 [lib.ostream.iterator]  Status: New  Submitter: Andy Sawyer  Date: 24 Oct 2001

        24.5.2 [lib.ostream.iterator] states:

              [...]
        --- 4359,4376 ----
                       (!std::less<T1>()( y.first, x.first) && 
                       std::less<T2>()( x.second, y.second ) )
          
        + +

        [Curaçao: LWG leaning toward NAD.  In favor of the PR is + that it removes a trap for users.  Concerns: 1) will break some + small amount of existing code (which define less and operator < + with different behavior), 2) don't have any indication of rationale + for current design (and unwilling to change without knowing + rationale), 3) consistency; pairs of ptrs would behave differenly from + individual pointers.]

        +

        349. Minor typographical error in ostream_iterator

        ! Section: 24.5.2 [lib.ostream.iterator]  Status: Ready  Submitter: Andy Sawyer  Date: 24 Oct 2001

        24.5.2 [lib.ostream.iterator] states:

              [...]
        *************** In 24.5.2 

        350. allocator<>::address

        ! Section: 20.4.1.1 [lib.allocator.members], 20.1.5 [lib.allocator.requirements], 17.4.1.1 [lib.contents]  Status: New  Submitter: Nathan Myers  Date: 25 Oct 2001

        See c++std-lib-9006 and c++std-lib-9007. This issue is taken verbatim from -9007.

        --- 4389,4395 ----


        350. allocator<>::address

        ! Section: 20.4.1.1 [lib.allocator.members], 20.1.5 [lib.allocator.requirements], 17.4.1.1 [lib.contents]  Status: Open  Submitter: Nathan Myers  Date: 25 Oct 2001

        See c++std-lib-9006 and c++std-lib-9007. This issue is taken verbatim from -9007.

        *************** no semantics at all for member address() *** 5550,5555 **** --- 4414,4427 ---- defined in terms of unadorned operator &.

        +

        [Curaçao: The LWG believes both examples are ill-formed.  + The contained type is required to be CopyConstructible (20.1.3), and + that includes the requirement that &t return the usual types and + values. Since the CopyConstructible requirements appear to have been + written to deal with the concerns of this issue, the LWG feels it is + NAD unless someone can come up with a well-formed example exhibiting a + problem.]

        +

        Proposed resolution:

        In 20.4.1.1, Change the definition of allocator<>::address from:

        *************** a.address(s) lines, respectively: *** 5581,5586 **** --- 4453,4461 ---- operator& may be overloaded. +

        [Curaçao: If the issues isn't NAD, suggest changing "if not + overloaded" to "ignoring all overloads".]

        +

        Rationale:

        The obvious implementations for std::allocator<>::address are

        *************** but to define them formally in terms of 
        *** 5598,5603 ****
        --- 4473,5288 ----
          to introduce semantic difficulties best avoided.  Using a.address()
          should not introduce unspecified or implementation-defined semantics
          into a user program.

        +
        +

        352. missing fpos requirements

        + Section: 21.1.2 [lib.char.traits.typedefs]  Status: Open  Submitter: Martin Sebor  Date: 2 Dec 2001

        +

        + (1) + There are no requirements on the stateT template parameter of + fpos listed in 27.4.3. The interface appears to require that + the type be at least Assignable and CopyConstructible (27.4.3.1, p1), + and I think also DefaultConstructible (to implement the operations in + Table 88). +

        +

        + 21.1.2, p3, however, only requires that + char_traits<charT>::state_type meet the requirements of + CopyConstructible types. +

        +

        + (2) + Additionally, the stateT template argument has no + corresponding typedef in fpos which might make it difficult to use in + generic code. +

        +

        Proposed resolution:

        +

        + Modify 21.1.2, p4 from +

        +

        + Requires: state_type shall meet the requirements of + CopyConstructible types (20.1.3). +

        +

        + Requires: state_type shall meet the requirements of Assignable + (23.1, p4), CopyConstructible (20.1.3), and + DefaultConstructible (20.1.4) types. +

        +

        + Add to the definition of the fpos class template the following member: +

        +
        +     typedef stateT state_type;
        + 
        +

        + and add to 27.4.3.1 a paragraph with the following text: +

        +
        +     typedef stateT state_type;
        + 
        +

        + Requires: state_type shall meet the requirements of + Assignable (23.1, p4), CopyConstructible (20.1.3), and + DefaultConstructible (20.1.4) types. +

        + +

        [Curaçao: The LWG feels this is two issues, as indicated + above. The first is a defect; more I/O experts need to review + the PR. The second is questionable; who would use it? Unless + motivation is provided, the second should be considered NAD.]

        + +
        +

        354. Associative container lower/upper bound requirements

        + Section: 23.1.2 [lib.associative.reqmts]  Status: Ready  Submitter: Hans Aberg  Date: 17 Dec 2001

        +

        + Discussions in the thread "Associative container lower/upper bound + requirements" on comp.std.c++ suggests that there is a defect in the + C++ standard, Table 69 of section 23.1.2, "Associative containers", + [lib.associative.reqmts]. It currently says:

        + +
        +

        + a.find(k): returns an iterator pointing to an element with the key equivalent to + k, or a.end() if such an element is not found. +

        + +

        + a.lower_bound(k): returns an iterator pointing to the first element with + key not less than k. +

        + +

        + a.upper_bound(k): returns an iterator pointing to the first element with + key greater than k. +

        +
        + +

        + We have "or a.end() if such an element is not found" for + find, but not for upper_bound or + lower_bound. As the text stands, one would be forced to + insert a new element into the container and return an iterator to that + in case the sought iterator does not exist, which does not seem to be + the intention (and not possible with the "const" versions). +

        +

        Proposed resolution:

        + +

        Change Table 69 of section 23.1.2 [lib.associative.reqmts] indicated entries + to:

        + +
        +

        + a.lower_bound(k): returns an iterator pointing to the first element with + key not less than k, or a.end() if such an element is not found. +

        + +

        + a.upper_bound(k): returns an iterator pointing to the first element with + key greater than k, or a.end() if such an element is not found. +

        +
        + +

        [Curaçao: LWG reviewed PR.]

        + +
        +

        355. Operational semantics for a.back()

        + Section: 23.1.1 [lib.sequence.reqmts]  Status: Review  Submitter: Yaroslav Mironov  Date: 23 Jan 2002

        + +

        Table 68 "Optional Sequence Operations" in 23.1.1/12 + specifies operational semantics for "a.back()" as + "*--a.end()", which may be ill-formed [because calling + operator-- on a temporary (the return) of a built-in type is + ill-formed], provided a.end() returns a simple pointer rvalue + (this is almost always the case for std::vector::end(), for + example). Thus, the specification is not only incorrect, it + demonstrates a dangerous construct: "--a.end()" may + successfully compile and run as intended, but after changing the type + of the container or the mode of compilation it may produce + compile-time error.

        + +

        Proposed resolution:

        +

        Change the specification in table 68 "Optional Sequence + Operations" in 23.1.1/12 for "a.back()" from

        + + +
        + *--a.end() +
        + +

        to

        + +
        +

        *a.rbegin()

        +
        + +

        and the specification for "a.pop_back()" from

        + +
        + a.erase(--a.end()) +
        + +

        to

        + +
        +

        a.erase(rbegin())

        +
        + +

        [Curaçao: LWG changed PR from "{ X::iterator tmp = + a.end(); return *--tmp; }" to "*a.rbegin()", and from + "{ X::iterator tmp = a.end(); a.erase(--tmp); }" to + "a.erase(rbegin())".]

        + +

        [There is a second possible defect; table 68 "Optional + Sequence Operations" in the "Operational Semantics" + column uses operations present only in the "Reversible + Container" requirements, yet there is no stated dependency + between these separate requirements tables. Ask in Santa Cruz if the + LWG would like a new issue opened.]

        + +
        +

        356. Meaning of ctype_base::mask enumerators

        + Section: 22.2.1 [lib.category.ctype]  Status: New  Submitter: Matt Austern  Date: 23 Jan 2002

        + +

        What should the following program print?

        + +
        +   #include <locale>
        +   #include <iostream>
        + 
        +   class my_ctype : public std::ctype<char>
        +   {
        +     typedef std::ctype<char> base;
        +   public:
        +     my_ctype(std::size_t refs = 0) : base(my_table, false, refs)
        +     {
        +       std::copy(base::classic_table(), base::classic_table() + base::table_size,
        +                 my_table);
        +       my_table[(unsigned char) '_'] = (base::mask) (base::print | base::space);
        +     }
        +   private:
        +     mask my_table[base::table_size];
        +   };
        + 
        +   int main()
        +   {
        +     my_ctype ct;
        +     std::cout << "isspace: " << ct.is(std::ctype_base::space, '_') << "    "
        +               << "isalpha: " << ct.is(std::ctype_base::alpha, '_') << std::endl;
        +   }
        + 
        + +

        The goal is to create a facet where '_' is treated as whitespace.

        + +

        On gcc 3.0, this program prints "isspace: 1 isalpha: 0". On + Microsoft C++ it prints "isspace: 1 isalpha: 1".

        + +

        + I believe that both implementations are legal, and the standard does not + give enough guidance for users to be able to use std::ctype's + protected interface portably.

        + +

        + The above program assumes that ctype_base::mask enumerators like + space and print are disjoint, and that the way to + say that a character is both a space and a printing character is to or + those two enumerators together. This is suggested by the "exposition + only" values in 22.2.1 [lib.category.ctype], but it is nowhere specified in + normative text. An alternative interpretation is that the more + specific categories subsume the less specific. The above program + gives the results it does on the Microsoft compiler because, on that + compiler, print has all the bits set for each specific + printing character class. +

        + +

        From the point of view of std::ctype's public interface, there's no + important difference between these two techniques. From the point of + view of the protected interface, there is. If I'm defining a facet + that inherits from std::ctype<char>, I'm the one who defines the + value that table()['a'] returns. I need to know what combination of + mask values I should use. This isn't so very esoteric: it's exactly + why std::ctype has a protected interface. If we care about users + being able to write their own ctype facets, we have to give them a + portable way to do it. +

        + +

        + Related reflector messages: + lib-9224, lib-9226, lib-9229, lib-9270, lib-9272, lib-9273, lib-9274, + lib-9277, lib-9279. +

        + +

        Issue 339 is related, but not identical. The + proposed resolution if issue 339 says that + ctype_base::mask must be a bitmask type. It does not say that the + ctype_base::mask elements are bitmask elements, so it doesn't + directly affect this issue.

        + +

        Proposed resolution:

        +

        Informally, we have three choices:

        +
          +
        1. Require that the enumerators are disjoint (except for alnum and + graph)
        2. +
        3. Require that the enumerators are not disjoint, and specify which + of them subsume which others. (e.g. mandate that lower includes alpha + and print)
        4. +
        5. Explicitly leave this unspecified, which the result that the above + program is not portable.
        6. +
        + +

        Either of the first two options is just as good from the standpoint + of portability. Either one will require some implementations to + change.

        + +
        +

        357. <cmath> float functions cannot return HUGE_VAL

        + Section: 26.5 [lib.c.math]  Status: Open  Submitter: Ray Lischner  Date: 26 Feb 2002

        +

        + The float versions of the math functions have no meaningful value to return + for a range error. The long double versions have a value they can return, + but it isn't necessarily the most reasonable value. +

        + +

        + Section 26.5 [lib.c.math], paragraph 5, says that C++ "adds float and long + double overloaded versions of these functions, with the same semantics," + referring to the math functions from the C90 standard. +

        + +

        + The C90 standard, in section 7.5.1, paragraph 3, says that functions return + "the value of the macro HUGE_VAL" when they encounter a range error. + Section 7.5, paragraph 2, defines HUGE_VAL as a macro that "expands to a + positive double expression, not necessarily representable as a float." +

        + +

        + Therefore, the float versions of the math functions have no way to + signal a range error. [Curaçao: The LWG notes that this isn't + strictly correct, since errno is set.] The semantics require that they + return HUGE_VAL, but they cannot because HUGE_VAL might not be + representable as a float. +

        + +

        + The problem with long double functions is less severe because HUGE_VAL is + representable as a long double. On the other hand, it might not be a "huge" + long double value, and might fall well within the range of normal return + values for a long double function. Therefore, it does not make sense for a + long double function to return a double (HUGE_VAL) for a range error. +

        +

        Proposed resolution:

        +

        Curaçao: C99 was faced with a similar problem, which they fixed by + adding HUGE_VALF and HUGE_VALL in addition to HUGE_VAL.

        + +

        C++ must also fix, but it should be done in the context of the + general C99 based changes to C++, not via DR. Thus the LWG in Curaçao + felt the resolution should be NAD, FUTURE, but the issue is being held + open for one more meeting to ensure LWG members not present during the + discussion concur.

        +
        +

        358. interpreting thousands_sep after a decimal_point +

        + Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

        +

        + I don't think thousands_sep is being treated correctly after + decimal_point has been seen. Since grouping applies only to the + integral part of the number, the first such occurrence should, IMO, + terminate Stage 2. (If it does not terminate it, then 22.2.2.1.2, p12 + and 22.2.3.1.2, p3 need to explain how thousands_sep is to be + interpreted in the fractional part of a number.) +

        + +

        + The easiest change I can think of that resolves this issue would be + something like below. +

        +

        Proposed resolution:

        +

        + Change the first sentence of 22.2.2.1.2, p9 from +

        + +
        + If discard is true then the position of the character is + remembered, but the character is otherwise ignored. If it is not + discarded, then a check is made to determine if c is allowed as + the next character of an input field of the conversion specifier + returned by stage 1. If so it is accumulated. +
        + +

        to

        + +
        + If discard is true, then if '.' has not yet been + accumulated, then the position of the character is remembered, but + the character is otherwise ignored. Otherwise, if '.' has + already been accumulated, the character is discarded and Stage 2 + terminates. ... +
        + +
        +

        359. num_put<>::do_put (..., bool) undocumented

        + Section: 22.2.2.2.1 [lib.facet.num.put.members]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

        +

        22.2.2.2.1, p1:

        + +
        +     iter_type put (iter_type out, ios_base& str, char_type fill,
        +                    bool val) const;
        +     ...
        + 
        +     1   Returns: do_put (out, str, fill, val).
        +     
        + +

        AFAICS, the behavior of do_put (..., bool) is not documented anywhere, + however, 22.2.2.2.2, p23:

        + +
        +
        + iter_type put (iter_type out, ios_base& str, char_type fill,
        +                bool val) const;
        + 
        + + + Effects: If (str.flags() & ios_base::boolalpha) == 0 then do + out = do_put(out, str, fill, (int)val) + Otherwise do +
        +              string_type s =
        +                  val ? use_facet<ctype<charT> >(loc).truename()
        +                      : use_facet<ctype<charT> >(loc).falsename();
        + 
        + and then insert the characters of s into out. out. +
        + +

        + This means that the bool overload of do_put() will never be called, + which contradicts the first paragraph. Perhaps the declaration + should read do_put(), and not put()? +

        + +

        + Note also that there is no Returns clause for this function, which + should probably be corrected, just as should the second occurrence + of "out." in the text. +

        + +

        + I think the least invasive change to fix it would be something like + the following: +

        +

        Proposed resolution:

        +

        + In 22.2.2.2.2, p23, make the following changes +

        + +
        + Replace put() with do_put() in the declaration + of the member function. +
        + +
        + Change the Effects clause to a Returns clause (to + avoid the requirement to call do_put(..., int) from + do_put (..., bool)) + like so: +
        + +
        + 23 Returns: If (str.flags() & + ios_base::boolalpha) == 0 then + do_put (out, str, fill, (int)val) + Otherwise the function obtains a string s as if by +
        +              string_type s =
        +                 val ? use_facet<ctype<charT> >(loc).truename()
        +                     : use_facet<ctype<charT> >(loc).falsename();
        + 
        + and then inserts each character c of s into out via + *out++ = c + and returns out. +
        + +
        +

        360. locale mandates inefficient implementation

        + Section: 22.1.1 [lib.locale]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

        +

        + 22.1.1, p7 (copied below) allows iostream formatters and extractors + to make assumptions about the values returned from facet members. + However, such assumptions are apparently not guaranteed to hold + in other cases (e.g., when the facet members are being called directly + rather than as a result of iostream calls, or between successive + calls to the same iostream functions with no interevening calls to + imbue(), or even when the facet member functions are called + from other member functions of other facets). This restriction + prevents locale from being implemented efficiently. +

        +

        Proposed resolution:

        +

        Change the first sentence in 22.1.1, p7 from

        +
        + In successive calls to a locale facet member function during + a call to an iostream inserter or extractor or a streambuf member + function, the returned result shall be identical. [Note: This + implies that such results may safely be reused without calling + the locale facet member function again, and that member functions + of iostream classes cannot safely call imbue() + themselves, except as specified elsewhere. --end note] +
        + +

        to

        + +
        + In successive calls to a locale facet member function on a facet + object installed in the same locale, the returned result shall be + identical. ... +
        + +
        +

        361. num_get<>::do_get (..., void*&) checks grouping

        + Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

        +

        + 22.2.2.2.2, p12 specifies that thousands_sep is to be inserted only + for integral types (issue 282 suggests that this should be done for + all arithmetic types). +

        + +

        + 22.2.2.1.2, p12 requires that grouping be checked for all extractors + including that for void*. +

        + +

        + I don't think that's right. void* values should not be checked for + grouping, should they? (Although if they should, then num_put needs + to write them out, otherwise their extraction will fail.) +

        +

        Proposed resolution:

        +

        + Change the first sentence of 22.2.2.2.2, p12 from +

        +
        + Digit grouping is checked. That is, the positions of discarded + separators is examined for consistency with + use_facet<numpunct<charT> >(loc).grouping(). + If they are not consistent then ios_base::failbit is assigned + to err. +
        + +

        to

        +
        + Except for conversions to void*, digit grouping is checked... +
        + +
        +

        362. bind1st/bind2nd type safety

        + Section: 20.3.6.2 [lib.bind.1st]  Status: New  Submitter: Andrew Demkin  Date: 26 Apr 2002

        +

        + The definition of bind1st() (20.3.6.2 [lib.bind.1st]) can result in + the construction of an unsafe binding between incompatible pointer + types. For example, given a function whose first parameter type is + 'pointer to T', it's possible without error to bind an argument of + type 'pointer to U' when U does not derive from T: +

        +
        +    foo(T*, int);
        + 
        +    struct T {};
        +    struct U {};
        + 
        +    U u;
        + 
        +    int* p;
        +    int* q;
        + 
        +    for_each(p, q, bind1st(ptr_fun(foo), &u));    // unsafe binding
        + 
        + +

        + The definition of bind1st() includes a functional-style conversion to + map its argument to the expected argument type of the bound function + (see below): +

        +
        +   typename Operation::first_argument_type(x)
        + 
        + +

        + A functional-style conversion (5.2.3 [expr.type.conv]) is defined to be + semantically equivalent to an explicit cast expression (5.4 [expr.cast]), which may (according to 5.4, paragraph 5) be interpreted + as a reinterpret_cast, thus masking the error. +

        + +

        The problem and proposed change also apply to 20.3.6.4 [lib.bind.2nd].

        +

        Proposed resolution:

        +

        + The simplest and most localized change to prevent such errors is to + require bind1st() use a static_cast expression rather than the + functional-style conversion; that is, have bind1st() return: +

        +
        +    binder1st<Operation>( op,
        +      static_cast<typename Operation::first_argument_type>(x)).
        + 
        + +

        + A more agressive solution is to change the semantics of + functional-style conversions to not permit a reinterpret_cast. For + contexts that require the semantics of reinterpret_cast, the language + may want to require the use of an explicit cast expression such as + '(T) x' or 'reinterpret_cast<T>(x)' and limit the behavior of + the functional notation to match statically-checked and standard + conversions (as defined by 5.2.9 and 4.10, etc.). Although changing + the semantics of functional-style conversions may seem drastic and + does have language-wide ramifications, it has the benefit of better + unifying the conversion rules for user defined types and built-in + types, which can be especially important for generic template + programming. +

        +
        +

        363. Missing exception specification in 27.4.2.1.1

        + Section: 27.4.2.1.1 [lib.ios::failure]  Status: New  Submitter: Walter Brown  Date: 20 May 2002

        +

        + The destructor of ios_base::failure should have an empty throw + specification, because the destructor of its base class, exception, is + declared in this way. +

        +

        Proposed resolution:

        +

        Change the destructor to

        +
        +   virtual ~failure() throw();
        + 
        +
        +

        364. Inconsistent wording in 27.5.2.4.2

        + Section: 27.5.2.4.2 [lib.streambuf.virt.buffer]  Status: New  Submitter: Walter Brown  Date: 10 May 2002

        +

        + 27.5.2.4.2 [lib.streambuf.virt.buffer] paragraph 1 is inconsistent with the Effects + clause for seekoff. +

        +

        Proposed resolution:

        +

        + Make this paragraph, the Effects clause for setbuf, consistent in wording + with the Effects clause for seekoff in paragraph 3 by amending paragraph 1 + to indicate the purpose of setbuf: +

        + +

        Original text:

        + +
        + 1 Effects: Performs an operation that is defined separately for each + class derived from basic_streambuf in this clause (27.7.1.3, 27.8.1.4). +
        + +

        Proposed text:

        + +
        + 1 Effects: Influences stream buffering in a way that is defined separately + for each class derived from basic_streambuf in this clause + (27.7.1.3, 27.8.1.4). +
        + +
        +

        365. Lack of const-qualification in clause 27

        + Section: 27 [lib.input.output]  Status: New  Submitter: Walter Brown  Date: 10 May 2002

        +

        + None of the following member functions are declared const, but we + believe each should be. See document N1360 for details and rationale. +

        +

        Proposed resolution:

        +

        In 27.5.2 and 27.5.2.2.3

        +

        Replace

        +
        +   streamsize in_avail();
        + 
        +

        with

        +
        +   streamsize in_avail() const;
        + 
        + +

        In 27.5.2 and 27.5.2.4.3, and 27.8.1.1 and 27.8.1.4

        +

        Replace

        +
        +   virtual streamsize showmanyc();
        + 
        +

        with

        +
        +   virtual streamsize showmanyc() const;
        + 
        + +

        In 27.6.1.1 and 27.6.1.3

        +

        Replace

        +
        +   pos_type tellg();
        + 
        +

        with

        +
        +   pos_type tellg() const;
        + 
        + +

        This requires additional change, because paragraph 37 describes the + return value in terms of calls to non-const member functions. Either of + the two following solutions would allow tellg to be declared const.

        + +

        Option 1: Implementers may cast away const-ness, to allow calling the + non-const rdbuf.

        +

        In paragraph 37, replace:

        +
        +   .... rdbuf()
        +   ->pubseekoff(0, cur, in).
        + 
        +

        by

        +
        +   .... const_cast<basic_istream<charT, traits>*>(this)->rdbuf()
        +   ->pubseekoff(0, cur, in).
        + 
        + +

        Option 2: Provide const member functions to do the job. The proposals in + a later section (specifically, the modifications concerning rdbuf + throughout the iostream library) meet most of this need; we would also + need the following addition to basic_streambuf:

        + +
        +
        + basic_streambuf<charT,traits>::pos_type
        + basic_streambuf<charT,traits>::position(ios_base::openmode mode =
        +                                         ios_base::in|ios_base::out)
        +                                         const;
        + 
        +

        Effects: same as calling basic_streambuf::pubseekoff(0, ios base::cur, mode)

        +
        + +

        In 27.6.2.1 and 27.6.2.4

        +

        Replace

        +
        +   pos_type tellp();
        + 
        +

        with

        +
        +   pos_type tell() const;
        + 
        + +

        This requires additional change; see the discussion for tellg() above.

        + +

        In 27.8.1.5, 27.8.1.7, 27.8.1.8, 27.8.1.10, 27.8.1.11, and 27.8.1.13

        +

        Replace

        +
        +   bool is_open();
        + 
        +

        with

        +
        +   bool is_open() const;
        + 
        +
        +

        366. Excessive const-qualification

        + Section: 27 [lib.input.output]  Status: New  Submitter: Walter Brown  Date: 10 May 2002

        +

        + The following member functions are declared const, yet return non-const + pointers. We believe they are should be changed, because they allow code + that may surprise the user. See document N1360 for details and + rationale. +

        +

        Proposed resolution:

        +

        In 27.4.4 and 27.4.4.2

        +

        Replace

        +
        +   basic_ostream<charT,traits>* tie() const;
        + 
        +

        with

        +
        +   basic_ostream<charT,traits>* tie();
        +   const basic_ostream<charT,traits>* tie() const;
        + 
        + +

        and replace

        +
        +   basic_streambuf<charT,traits>* rdbuf() const;
        + 
        +

        with

        +
        +   basic_streambuf<charT,traits>* rdbuf();
        +   const basic_streambuf<charT,traits>* rdbuf() const;
        + 
        + +

        In 27.5.2 and 27.5.2.3.1

        +

        Replace

        +
        +   char_type* eback() const;
        + 
        +

        with

        +
        +   char_type* eback();
        +   const char_type* eback() const;
        + 
        + +

        Replace

        +
        +   char_type gptr() const;
        + 
        +

        with

        +
        +   char_type* gptr();
        +   const char_type* gptr() const;
        + 
        + +

        Replace

        +
        +   char_type* egptr() const;
        + 
        +

        with

        +
        +   char_type* egptr();
        +   const char_type* egptr() const;
        + 
        + +

        In 27.5.2 and 27.5.2.3.2

        +

        Replace

        +
        +   char_type* pbase() const;
        + 
        +

        with

        +
        +   char_type* pbase();
        +   const char_type* pbase() const;
        + 
        + +

        Replace

        +
        +   char_type* pptr() const;
        + 
        +

        with

        +
        +   char_type* pptr();
        +   const char_type* pptr() const;
        + 
        + +

        Replace

        +
        +   char_type* epptr() const;
        + 
        +

        with

        +
        +   char_type* epptr();
        +   const char_type* epptr() const;
        + 
        + +

        In 27.7.2, 27.7.2.2, 27.7.3 27.7.3.2, 27.7.4, and 27.7.6

        +

        Replace

        +
        +   basic_stringbuf<charT,traits,Allocator>* rdbuf() const;
        + 
        +

        with

        +
        +   basic_stringbuf<charT,traits,Allocator>* rdbuf();
        +   const basic_stringbuf<charT,traits,Allocator>* rdbuf() const;
        + 
        + +

        In 27.8.1.5, 27.8.1.7, 27.8.1.8, 27.8.1.10, 27.8.1.11, and 27.8.1.13

        +

        Replace

        +
        +   basic_filebuf<charT,traits>* rdbuf() const;
        + 
        +

        with

        +
        +   basic_filebuf<charT,traits>* rdbuf();
        +   const basic_filebuf<charT,traits>* rdbuf() const;
        + 

        ----- End of document -----

        diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/ext/lwg-defects.html gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-defects.html *** gcc-3.1/libstdc++-v3/docs/html/ext/lwg-defects.html Mon Dec 3 00:33:57 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-defects.html Sat Jul 20 06:34:51 2002 *************** *** 5,15 **** ! ! --- 5,15 ----
        Doc. no.J16/01-0053 = WG21 N1338
        Date:09 Nov 2001
        Project:
        ! ! *************** *** 20,26 ****
        Doc. no.J16/02-0028 = WG21 N1370
        Date:10 May 2002
        Project:Matt Austern <austern@research.att.com>
        !

        C++ Standard Library Defect Report List (Revision 20)

        Reference ISO/IEC IS 14882:1998(E)

        Also see:

          --- 20,26 ---- Matt Austern <austern@research.att.com> !

          C++ Standard Library Defect Report List (Revision 22)

          Reference ISO/IEC IS 14882:1998(E)

          Also see:

            *************** *** 42,47 **** --- 42,53 ---- document.

            Revision History

              +
            • R22: + Post-Curaçao mailing. Added new issues 362-366. +
            • +
            • R21: + Pre-Curaçao mailing. Added new issues 351-361. +
            • R20: Post-Redmond mailing; reflects actions taken in Redmond. Added new issues 336-350, of which issues *************** new issues 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
            • R19: Pre-Redmond mailing. Added new issues ! 323-335.
            • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues --- 55,73 ---- not discussed at the meeting. All Ready issues were moved to DR status, with the exception of issues ! 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
            • R19: Pre-Redmond mailing. Added new issues ! 323-335.
            • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues *************** Changed status of issues *** 80,86 **** 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 --- 86,92 ---- 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 *************** as NAD. *** 95,102 ****
            • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
            • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new --- 101,108 ----
            • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
            • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new *************** of issue 2 *** 142,148 **** post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. --- 148,154 ---- post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. *************** change the stateT argument type *** 2229,2234 **** --- 2235,2353 ---- max elements.


              +

              76. Can a codecvt facet always convert one internal character at a time?

              + Section: 22.2.1.5 [lib.locale.codecvt]  Status: DR  Submitter: Matt Austern  Date: 25 Sep 1998

              +

              This issue concerns the requirements on classes derived from + codecvt, including user-defined classes. What are the + restrictions on the conversion from external characters + (e.g. char) to internal characters (e.g. wchar_t)? + Or, alternatively, what assumptions about codecvt facets can + the I/O library make?

              + +

              The question is whether it's possible to convert from internal + characters to external characters one internal character at a time, + and whether, given a valid sequence of external characters, it's + possible to pick off internal characters one at a time. Or, to put it + differently: given a sequence of external characters and the + corresponding sequence of internal characters, does a position in the + internal sequence correspond to some position in the external + sequence?

              + +

              To make this concrete, suppose that [first, last) is a + sequence of M external characters and that [ifirst, + ilast) is the corresponding sequence of N internal + characters, where N > 1. That is, my_encoding.in(), + applied to [first, last), yields [ifirst, + ilast). Now the question: does there necessarily exist a + subsequence of external characters, [first, last_1), such + that the corresponding sequence of internal characters is the single + character *ifirst? +

              + +

              (What a "no" answer would mean is that + my_encoding translates sequences only as blocks. There's a + sequence of M external characters that maps to a sequence of + N internal characters, but that external sequence has no + subsequence that maps to N-1 internal characters.)

              + +

              Some of the wording in the standard, such as the description of + codecvt::do_max_length (22.2.1.5.2 [lib.locale.codecvt.virtuals], + paragraph 11) and basic_filebuf::underflow (27.8.1.4 [lib.filebuf.virtuals], paragraph 3) suggests that it must always be + possible to pick off internal characters one at a time from a sequence + of external characters. However, this is never explicitly stated one + way or the other.

              + +

              This issue seems (and is) quite technical, but it is important if + we expect users to provide their own encoding facets. This is an area + where the standard library calls user-supplied code, so a well-defined + set of requirements for the user-supplied code is crucial. Users must + be aware of the assumptions that the library makes. This issue affects + positioning operations on basic_filebuf, unbuffered input, + and several of codecvt's member functions.

              +

              Proposed resolution:

              +

              Add the following text as a new paragraph, following 22.2.1.5.2 [lib.locale.codecvt.virtuals] paragraph 2:

              + +
              +

              A codecvt facet that is used by basic_filebuf + (27.8 [lib.file.streams]) must have the property that if

              +
              +     do_out(state, from, from_end, from_next, to, to_lim, to_next)
              + 
              + would return ok, where from != from_end, then +
              +     do_out(state, from, from + 1, from_next, to, to_end, to_next)
              + 
              + must also return ok, and that if +
              +     do_in(state, from, from_end, from_next, to, to_lim, to_next)
              + 
              + would return ok, where to != to_lim, then +
              +     do_in(state, from, from_end, from_next, to, to + 1, to_next)
              + 
              +

              must also return ok. [Footnote: Informally, this + means that basic_filebuf assumes that the mapping from + internal to external characters is 1 to N: a codecvt that is + used by basic_filebuf must be able to translate characters + one internal character at a time. --End Footnote]

              +
              + +

              [Redmond: Minor change in proposed resolution. Original + proposed resolution talked about "success", with a parenthetical + comment that success meant returning ok. New wording + removes all talk about "success", and just talks about the + return value.]

              + +

              Rationale:

              + +

              The proposed resoluion says that conversions can be performed one + internal character at a time. This rules out some encodings that + would otherwise be legal. The alternative answer would mean there + would be some internal positions that do not correspond to any + external file position.

              +

              + An example of an encoding that this rules out is one where the + internT and externT are of the same type, and + where the internal sequence c1 c2 corresponds to the + external sequence c2 c1. +

              +

              It was generally agreed that basic_filebuf relies + on this property: it was designed under the assumption that + the external-to-internal mapping is N-to-1, and it is not clear + that basic_filebuf is implementable without that + restriction. +

              +

              + The proposed resolution is expressed as a restriction on + codecvt when used by basic_filebuf, rather + than a blanket restriction on all codecvt facets, + because basic_filebuf is the only other part of the + library that uses codecvt. If a user wants to define + a codecvt facet that implements a more general N-to-M + mapping, there is no reason to prohibit it, so long as the user + does not expect basic_filebuf to be able to use it. +

              +

              78. Typo: event_call_back

              Section: 27.4.2 [lib.ios.base]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

              typo: event_call_back should be event_callback  

              *************** with:

              *** 3210,3216 ****

              Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1 surely have misprints where they say:

              ! — xpos <= pos and pos < size();

              Surely the document meant to say ``xpos < size()'' in both places.

              --- 3329,3335 ----

              Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1 surely have misprints where they say:

              ! — xpos <= pos and pos < size();

              Surely the document meant to say ``xpos < size()'' in both places.

              *************** proposed resolution.]

              *** 3220,3230 ****

              Proposed resolution:

              Change Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1, the line which says:

              ! — xpos <= pos and pos < size();

              to:

              !
              xpos <= pos and xpos < size();


              142. lexicographical_compare complexity wrong

              --- 3339,3349 ----

              Proposed resolution:

              Change Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1, the line which says:

              ! — xpos <= pos and pos < size();

              to:

              !
              xpos <= pos and xpos < size();


              142. lexicographical_compare complexity wrong

              *************** proposed resolution passed their test su *** 3989,3998 **** omit the std:: namespace qualification.

              For example, 17.4.3.4 [lib.replacement.functions] paragraph 2:

              !
              — operator new(size_t)
              ! — operator new(size_t, const std::nothrow_t&)
              ! — operator new[](size_t)
              ! — operator new[](size_t, const std::nothrow_t&)

              Proposed resolution:

              In 17.4.3.4 [lib.replacement.functions] paragraph 2: replace:

              --- 4108,4117 ---- omit the std:: namespace qualification.

              For example, 17.4.3.4 [lib.replacement.functions] paragraph 2:

              !
              — operator new(size_t)
              ! — operator new(size_t, const std::nothrow_t&)
              ! — operator new[](size_t)
              ! — operator new[](size_t, const std::nothrow_t&)

              Proposed resolution:

              In 17.4.3.4 [lib.replacement.functions] paragraph 2: replace:

              *************** returns traits::eof(), the func *** 4522,4527 **** --- 4641,4772 ----


              +

              198. Validity of pointers and references unspecified after iterator destruction

              + Section: 24.1 [lib.iterator.requirements]  Status: DR  Submitter: Beman Dawes  Date: 3 Nov 1999

              +

              + Is a pointer or reference obtained from an iterator still valid after + destruction of the iterator? +

              +

              + Is a pointer or reference obtained from an iterator still valid after the value + of the iterator changes? +

              +
              +
              + #include <iostream>
              + #include <vector>
              + #include <iterator>
              + 
              + int main()
              + {
              +     typedef std::vector<int> vec_t;
              +     vec_t v;
              +     v.push_back( 1 );
              + 
              +     // Is a pointer or reference obtained from an iterator still
              +     // valid after destruction of the iterator?
              +     int * p = &*v.begin();
              +     std::cout << *p << '\n';  // OK?
              + 
              +     // Is a pointer or reference obtained from an iterator still
              +     // valid after the value of the iterator changes?
              +     vec_t::iterator iter( v.begin() );
              +     p = &*iter++;
              +     std::cout << *p << '\n';  // OK?
              + 
              +     return 0;
              + }
              + 
              +
              + +

              The standard doesn't appear to directly address these + questions. The standard needs to be clarified. At least two real-world + cases have been reported where library implementors wasted + considerable effort because of the lack of clarity in the + standard. The question is important because requiring pointers and + references to remain valid has the effect for practical purposes of + prohibiting iterators from pointing to cached rather than actual + elements of containers.

              + +

              The standard itself assumes that pointers and references obtained + from an iterator are still valid after iterator destruction or + change. The definition of reverse_iterator::operator*(), 24.4.1.3.3 [lib.reverse.iter.op.star], which returns a reference, defines + effects:

              + +
              +
              Iterator tmp = current;
              + return *--tmp;
              +
              +

              The definition of reverse_iterator::operator->(), 24.4.1.3.4 [lib.reverse.iter.opref], which returns a pointer, defines effects:

              +
              +
              return &(operator*());
              +
              + +

              Because the standard itself assumes pointers and references remain + valid after iterator destruction or change, the standard should say so + explicitly. This will also reduce the chance of user code breaking + unexpectedly when porting to a different standard library + implementation.

              +

              Proposed resolution:

              +

              Add a new paragraph to 24.1 [lib.iterator.requirements]:

              +
              + Destruction of an iterator may invalidate pointers and references + previously obtained from that iterator. +
              + +

              Replace paragraph 1 of 24.4.1.3.3 [lib.reverse.iter.op.star] with:

              + +
              +

              Effects:

              +
              +   this->tmp = current;
              +   --this->tmp;
              +   return *this->tmp;
              + 
              + +

              + [Note: This operation must use an auxiliary member variable, + rather than a temporary variable, to avoid returning a reference that + persists beyond the lifetime of its associated iterator. (See + 24.1 [lib.iterator.requirements].) The name of this member variable is shown for + exposition only. --end note] +

              +
              + +

              [Post-Tokyo: The issue has been reformulated purely + in terms of iterators.]

              + +

              [Pre-Toronto: Steve Cleary pointed out the no-invalidation + assumption by reverse_iterator. The issue and proposed resolution was + reformulated yet again to reflect this reality.]

              + +

              [Copenhagen: Steve Cleary pointed out that reverse_iterator + assumes its underlying iterator has persistent pointers and + references. Andy Koenig pointed out that it is possible to rewrite + reverse_iterator so that it no longer makes such an assupmption. + However, this issue is related to issue 299. If we + decide it is intentional that p[n] may return by value + instead of reference when p is a Random Access Iterator, + other changes in reverse_iterator will be necessary.]

              +

              Rationale:

              +

              This issue has been discussed extensively. Note that it is + not an issue about the behavior of predefined iterators. It is + asking whether or not user-defined iterators are permitted to have + transient pointers and references. Several people presented examples + of useful user-defined iterators that have such a property; examples + include a B-tree iterator, and an "iota iterator" that doesn't point + to memory. Library implementors already seem to be able to cope with + such iterators: they take pains to avoid forming references to memory + that gets iterated past. The only place where this is a problem is + reverse_iterator, so this issue changes + reverse_iterator to make it work.

              + +

              This resolution does not weaken any guarantees provided by + predefined iterators like list<int>::iterator. + Clause 23 should be reviewed to make sure that guarantees for + predefined iterators are as strong as users expect.

              + +

              199. What does allocate(0) return?

              Section: 20.1.5 [lib.allocator.requirements]  Status: DR  Submitter: Matt Austern  Date: 19 Nov 1999

              *************** defined to be basic_string<cT> *** 5218,5223 **** --- 5463,5551 ---- we fixed it, it would say just the same thing as text that's already in the standard.


              +

              239. Complexity of unique() and/or unique_copy incorrect

              + Section: 25.2.8 [lib.alg.unique]  Status: DR  Submitter: Angelika Langer  Date: May 15 2000

              +

              The complexity of unique and unique_copy are inconsistent with each + other and inconsistent with the implementations.  The standard + specifies:

              + +

              for unique():

              + +
              -3- Complexity: If the range (last - first) is not empty, exactly + (last - first) - 1 applications of the corresponding predicate, otherwise + no applications of the predicate.
              + +

              for unique_copy():

              + +
              -7- Complexity: Exactly last - first applications of the corresponding + predicate.
              + +

              + The implementations do it the other way round: unique() applies the + predicate last-first times and unique_copy() applies it last-first-1 + times.

              + +

              As both algorithms use the predicate for pair-wise comparison of + sequence elements I don't see a justification for unique_copy() + applying the predicate last-first times, especially since it is not + specified to which pair in the sequence the predicate is applied + twice.

              +

              Proposed resolution:

              +

              Change both complexity sections in 25.2.8 [lib.alg.unique] to:

              + +
              Complexity: For nonempty ranges, exactly last - first - 1 + applications of the corresponding predicate.
              + +
              +

              240. Complexity of adjacent_find() is meaningless

              + Section: 25.1.5 [lib.alg.adjacent.find]  Status: DR  Submitter: Angelika Langer  Date: May 15 2000

              +

              The complexity section of adjacent_find is defective:

              + +
              +
              + template <class ForwardIterator>
              + ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last
              +                               BinaryPredicate pred);
              + 
              + +

              -1- Returns: The first iterator i such that both i and i + 1 are in + the range [first, last) for which the following corresponding + conditions hold: *i == *(i + 1), pred(*i, *(i + 1)) != false. Returns + last if no such iterator is found.

              + +

              -2- Complexity: Exactly find(first, last, value) - first applications + of the corresponding predicate. +

              +
              + +

              In the Complexity section, it is not defined what "value" + is supposed to mean. My best guess is that "value" means an + object for which one of the conditions pred(*i,value) or + pred(value,*i) is true, where i is the iterator defined in the Returns + section. However, the value type of the input sequence need not be + equality-comparable and for this reason the term find(first, last, + value) - first is meaningless.

              + +

              A term such as find_if(first, last, bind2nd(pred,*i)) - first or + find_if(first, last, bind1st(pred,*i)) - first might come closer to + the intended specification. Binders can only be applied to function + objects that have the function call operator declared const, which is + not required of predicates because they can have non-const data + members. For this reason, a specification using a binder could only be + an "as-if" specification.

              +

              Proposed resolution:

              +

              Change the complexity section in 25.1.5 [lib.alg.adjacent.find] to:

              +
              + For a nonempty range, exactly min((i - first) + 1, + (last - first) - 1) applications of the + corresponding predicate, where i is adjacent_find's + return value. +
              + +

              [Copenhagen: the original resolution specified an upper + bound. The LWG preferred an exact count.]

              + +

              242. Side effects of function objects

              Section: 25.2.3 [lib.alg.transform], 26.4 [lib.numeric.ops]  Status: DR  Submitter: Angelika Langer  Date: May 15 2000

              The algorithms transform(), accumulate(), inner_product(), *************** are missing.

              *** 5894,5899 **** --- 6222,6480 ---- locale(const locale& other) throw();

        +

        270. Binary search requirements overly strict

        + Section: 25.3.3 [lib.alg.binary.search]  Status: DR  Submitter: Matt Austern  Date: 18 Oct 2000

        +

        + Each of the four binary search algorithms (lower_bound, upper_bound, + equal_range, binary_search) has a form that allows the user to pass a + comparison function object. According to 25.3, paragraph 2, that + comparison function object has to be a strict weak ordering. +

        + +

        + This requirement is slightly too strict. Suppose we are searching + through a sequence containing objects of type X, where X is some + large record with an integer key. We might reasonably want to look + up a record by key, in which case we would want to write something + like this: +

        +
        +     struct key_comp {
        +       bool operator()(const X& x, int n) const {
        +         return x.key() < n;
        +       }
        +     }
        + 
        +     std::lower_bound(first, last, 47, key_comp());
        + 
        + +

        + key_comp is not a strict weak ordering, but there is no reason to + prohibit its use in lower_bound. +

        + +

        + There's no difficulty in implementing lower_bound so that it allows + the use of something like key_comp. (It will probably work unless an + implementor takes special pains to forbid it.) What's difficult is + formulating language in the standard to specify what kind of + comparison function is acceptable. We need a notion that's slightly + more general than that of a strict weak ordering, one that can encompass + a comparison function that involves different types. Expressing that + notion may be complicated. +

        + +

        Additional questions raised at the Toronto meeting:

        +
          +
        • Do we really want to specify what ordering the implementor must + use when calling the function object? The standard gives + specific expressions when describing these algorithms, but it also + says that other expressions (with different argument order) are + equivalent.
        • +
        • If we are specifying ordering, note that the standard uses both + orderings when describing equal_range.
        • +
        • Are we talking about requiring these algorithms to work properly + when passed a binary function object whose two argument types + are not the same, or are we talking about requirements when + they are passed a binary function object with several overloaded + versions of operator()?
        • +
        • The definition of a strict weak ordering does not appear to give + any guidance on issues of overloading; it only discusses expressions, + and all of the values in these expressions are of the same type. + Some clarification would seem to be in order.
        • +
        + +

        Additional discussion from Copenhagen:

        +
          +
        • It was generally agreed that there is a real defect here: if + the predicate is merely required to be a Strict Weak Ordering, then + it's possible to pass in a function object with an overloaded + operator(), where the version that's actually called does something + completely inappropriate. (Such as returning a random value.)
        • + +
        • An alternative formulation was presented in a paper distributed by + David Abrahams at the meeting, "Binary Search with Heterogeneous + Comparison", J16-01/0027 = WG21 N1313: Instead of viewing the + predicate as a Strict Weak Ordering acting on a sorted sequence, view + the predicate/value pair as something that partitions a sequence. + This is almost equivalent to saying that we should view binary search + as if we are given a unary predicate and a sequence, such that f(*p) + is true for all p below a specific point and false for all p above it. + The proposed resolution is based on that alternative formulation.
        • +
        +

        Proposed resolution:

        + +

        Change 25.3 [lib.alg.sorting] paragraph 3 from:

        + +
        + 3 For all algorithms that take Compare, there is a version that uses + operator< instead. That is, comp(*i, *j) != false defaults to *i < + *j != false. For the algorithms to work correctly, comp has to + induce a strict weak ordering on the values. +
        + +

        to:

        + +
        + 3 For all algorithms that take Compare, there is a version that uses + operator< instead. That is, comp(*i, *j) != false defaults to *i + < *j != false. For algorithms other than those described in + lib.alg.binary.search (25.3.3) to work correctly, comp has to induce + a strict weak ordering on the values. +
        + +

        Add the following paragraph after 25.3 [lib.alg.sorting] paragraph 5:

        + +
        + -6- A sequence [start, finish) is partitioned with respect to an + expression f(e) if there exists an integer n such that + for all 0 <= i < distance(start, finish), f(*(begin+i)) is true if + and only if i < n. +
        + +

        Change 25.3.3 [lib.alg.binary.search] paragraph 1 from:

        + +
        + -1- All of the algorithms in this section are versions of binary + search and assume that the sequence being searched is in order + according to the implied or explicit comparison function. They work + on non-random access iterators minimizing the number of + comparisons, which will be logarithmic for all types of + iterators. They are especially appropriate for random access + iterators, because these algorithms do a logarithmic number of + steps through the data structure. For non-random access iterators + they execute a linear number of steps. +
        + +

        to:

        + +
        + -1- All of the algorithms in this section are versions of binary + search and assume that the sequence being searched is partitioned + with respect to an expression formed by binding the search key to + an argument of the implied or explicit comparison function. They + work on non-random access iterators minimizing the number of + comparisons, which will be logarithmic for all types of + iterators. They are especially appropriate for random access + iterators, because these algorithms do a logarithmic number of + steps through the data structure. For non-random access iterators + they execute a linear number of steps. +
        + +

        Change 25.3.3.1 [lib.lower.bound] paragraph 1 from:

        + +
        + -1- Requires: Type T is LessThanComparable + (lib.lessthancomparable). +
        + +

        to:

        + +
        + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expression e < value or comp(e, value) +
        + + +

        Remove 25.3.3.1 [lib.lower.bound] paragraph 2:

        + +
        + -2- Effects: Finds the first position into which value can be + inserted without violating the ordering. +
        + +

        Change 25.3.3.2 [lib.upper.bound] paragraph 1 from:

        + +
        + -1- Requires: Type T is LessThanComparable (lib.lessthancomparable). +
        + +

        to:

        + +
        + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expression !(value < e) or !comp(value, e) +
        + +

        Remove 25.3.3.2 [lib.upper.bound] paragraph 2:

        + +
        + -2- Effects: Finds the furthermost position into which value can be + inserted without violating the ordering. +
        + +

        Change 25.3.3.3 [lib.equal.range] paragraph 1 from:

        + +
        + -1- Requires: Type T is LessThanComparable + (lib.lessthancomparable). +
        + +

        to:

        + +
        + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expressions e < value and !(value < e) or + comp(e, value) and !comp(value, e). Also, for all elements e of + [first, last), e < value implies !(value < e) or comp(e, + value) implies !comp(value, e) +
        + +

        Change 25.3.3.3 [lib.equal.range] paragraph 2 from:

        + +
        + -2- Effects: Finds the largest subrange [i, j) such that the value + can be inserted at any iterator k in it without violating the + ordering. k satisfies the corresponding conditions: !(*k < value) + && !(value < *k) or comp(*k, value) == false && comp(value, *k) == + false. +
        + +

        to:

        + +
        +    -2- Returns: 
        +          make_pair(lower_bound(first, last, value),
        +                    upper_bound(first, last, value))
        +        or
        +          make_pair(lower_bound(first, last, value, comp),
        +                    upper_bound(first, last, value, comp))
        + 
        + +

        Change 25.3.3.3 [lib.binary.search] paragraph 1 from:

        + +
        + -1- Requires: Type T is LessThanComparable + (lib.lessthancomparable). +
        + +

        to:

        + +
        + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expressions e < value and !(value < e) or comp(e, + value) and !comp(value, e). Also, for all elements e of [first, + last), e < value implies !(value < e) or comp(e, value) implies + !comp(value, e) +
        + +

        [Copenhagen: Dave Abrahams provided this wording]

        + +

        [Redmond: Minor changes in wording. (Removed "non-negative", and + changed the "other than those described in" wording.) Also, the LWG + decided to accept the "optional" part.]

        + +

        Rationale:

        +

        The proposed resolution reinterprets binary search. Instead of + thinking about searching for a value in a sorted range, we view that + as an important special case of a more general algorithm: searching + for the partition point in a partitioned range.

        + +

        We also add a guarantee that the old wording did not: we ensure + that the upper bound is no earlier than the lower bound, that + the pair returned by equal_range is a valid range, and that the first + part of that pair is the lower bound.

        +

        271. basic_iostream missing typedefs

        Section: 27.6.1.5 [lib.iostreamclass]  Status: DR  Submitter: Martin Sebor  Date: 02 Nov 2000

        *************** class (14.6.2 [temp.dep]) and thus not v *** 5943,5948 **** --- 6524,6585 ----

        Qualify the names with the name of the class of which they are members, i.e., ios_base.


        +

        274. a missing/impossible allocator requirement

        + Section: 20.1.5 [lib.allocator.requirements]  Status: DR  Submitter: Martin Sebor  Date: 02 Nov 2000

        +

        + I see that table 31 in 20.1.5, p3 allows T in std::allocator<T> to be of + any type. But the synopsis in 20.4.1 calls for allocator<>::address() to + be overloaded on reference and const_reference, which is ill-formed for + all T = const U. In other words, this won't work: +

        + +

        + template class std::allocator<const int>; +

        + +

        + The obvious solution is to disallow specializations of allocators on + const types. However, while containers' elements are required to be + assignable (which rules out specializations on const T's), I think that + allocators might perhaps be potentially useful for const values in other + contexts. So if allocators are to allow const types a partial + specialization of std::allocator<const T> would probably have to be + provided. +

        +

        Proposed resolution:

        +

        Change the text in row 1, column 2 of table 32 in 20.1.5, p3 from

        + +
        + any type +
        + +

        to

        +
        + any non-const, non-reference type +
        + +

        [Redmond: previous proposed resolution was "any non-const, + non-volatile, non-reference type". Got rid of the "non-volatile".]

        + +

        Rationale:

        +

        + Two resolutions were originally proposed: one that partially + specialized std::allocator for const types, and one that said an + allocator's value type may not be const. The LWG chose the second. + The first wouldn't be appropriate, because allocators are intended for + use by containers, and const value types don't work in containers. + Encouraging the use of allocators with const value types would only + lead to unsafe code. +

        +

        + The original text for proposed resolution 2 was modified so that it + also forbids volatile types and reference types. +

        + +

        [Curaçao: LWG double checked and believes volatile is correctly + excluded from the PR.]

        + +

        275. Wrong type in num_get::get() overloads

        Section: 22.2.2.1.1 [lib.facet.num.get.members]  Status: DR  Submitter: Matt Austern  Date: 02 Nov 2000

        *************** the arguments it was given. *** 5994,5999 **** --- 6631,6780 ---- ios_base::iostate& err, float& val) const;


        +

        276. Assignable requirement for container value type overly strict

        + Section: 23.1 [lib.container.requirements]  Status: DR  Submitter: Peter Dimov  Date: 07 Nov 2000

        +

        + 23.1/3 states that the objects stored in a container must be + Assignable. 23.3.1 [lib.map], paragraph 2, + states that map satisfies all requirements for a container, while in + the same time defining value_type as pair<const Key, T> - a type + that is not Assignable. +

        + +

        + It should be noted that there exists a valid and non-contradictory + interpretation of the current text. The wording in 23.1/3 avoids + mentioning value_type, referring instead to "objects stored in a + container." One might argue that map does not store objects of + type map::value_type, but of map::mapped_type instead, and that the + Assignable requirement applies to map::mapped_type, not + map::value_type. +

        + +

        + However, this makes map a special case (other containers store objects of + type value_type) and the Assignable requirement is needlessly restrictive in + general. +

        + +

        + For example, the proposed resolution of active library issue + 103 is to make set::iterator a constant iterator; this + means that no set operations can exploit the fact that the stored + objects are Assignable. +

        + +

        + This is related to, but slightly broader than, closed issue + 140. +

        +

        Proposed resolution:

        +

        23.1/3: Strike the trailing part of the sentence:

        +
        + , and the additional requirements of Assignable types from 23.1/3 +
        +

        so that it reads:

        +
        + -3- The type of objects stored in these components must meet the + requirements of CopyConstructible types (lib.copyconstructible). +
        + +

        23.1/4: Modify to make clear that this requirement is not for all + containers. Change to:

        + +
        + -4- Table 64 defines the Assignable requirement. Some containers + require this property of the types to be stored in the container. T is + the type used to instantiate the container. t is a value of T, and u is + a value of (possibly const) T. +
        + +

        23.1, Table 65: in the first row, change "T is Assignable" to "T is + CopyConstructible".

        + +

        23.2.1/2: Add sentence for Assignable requirement. Change to:

        + +
        + -2- A deque satisfies all of the requirements of a container and of a + reversible container (given in tables in lib.container.requirements) and + of a sequence, including the optional sequence requirements + (lib.sequence.reqmts). In addition to the requirements on the stored + object described in 23.1[lib.container.requirements], the stored object + must also meet the requirements of Assignable. Descriptions are + provided here only for operations on deque that are not described in one + of these tables or for operations where there is additional semantic + information. +
        + +

        23.2.2/2: Add Assignable requirement to specific methods of list. + Change to:

        + +
        +

        -2- A list satisfies all of the requirements of a container and of a + reversible container (given in two tables in lib.container.requirements) + and of a sequence, including most of the the optional sequence + requirements (lib.sequence.reqmts). The exceptions are the operator[] + and at member functions, which are not provided. + + [Footnote: These member functions are only provided by containers whose + iterators are random access iterators. --- end foonote] +

        + +

        list does not require the stored type T to be Assignable unless the + following methods are instantiated: + + [Footnote: Implementors are permitted but not required to take advantage + of T's Assignable properties for these methods. -- end foonote] +

        +
        +      list<T,Allocator>& operator=(const list<T,Allocator>&  x );
        +      template <class InputIterator>
        +        void assign(InputIterator first, InputIterator last);
        +      void assign(size_type n, const T& t);
        + 
        + + +

        Descriptions are provided here only for operations on list that are not + described in one of these tables or for operations where there is + additional semantic information.

        +
        + +

        23.2.4/2: Add sentence for Assignable requirement. Change to:

        + +
        + -2- A vector satisfies all of the requirements of a container and of a + reversible container (given in two tables in lib.container.requirements) + and of a sequence, including most of the optional sequence requirements + (lib.sequence.reqmts). The exceptions are the push_front and pop_front + member functions, which are not provided. In addition to the + requirements on the stored object described in + 23.1[lib.container.requirements], the stored object must also meet the + requirements of Assignable. Descriptions are provided here only for + operations on vector that are not described in one of these tables or + for operations where there is additional semantic information. +
        +

        Rationale:

        +

        list, set, multiset, map, multimap are able to store non-Assignables. + However, there is some concern about list<T>: + although in general there's no reason for T to be Assignable, some + implementations of the member functions operator= and + assign do rely on that requirement. The LWG does not want + to forbid such implementations.

        + +

        Note that the type stored in a standard container must still satisfy + the requirements of the container's allocator; this rules out, for + example, such types as "const int". See issue 274 + for more details. +

        + +

        In principle we could also relax the "Assignable" requirement for + individual vector member functions, such as + push_back. However, the LWG did not see great value in such + selective relaxation. Doing so would remove implementors' freedom to + implement vector::push_back in terms of + vector::insert.

        + +

        281. std::min() and max() requirements overly restrictive

        Section: 25.3.7 [lib.alg.min.max]  Status: DR  Submitter: Martin Sebor  Date: 02 Dec 2000

        The requirements in 25.3.7, p1 and 4 call for T to satisfy the *************** is unnecessary. *** 6016,6021 **** --- 6797,6850 ---- (20.1.2 [lib.lessthancomparable]).


        +

        284. unportable example in 20.3.7, p6

        + Section: 20.3.7 [lib.function.pointer.adaptors]  Status: DR  Submitter: Martin Sebor  Date: 26 Dec 2000

        +

        The example in 20.3.7 [lib.function.pointer.adaptors], p6 shows how to use the C + library function strcmp() with the function pointer adapter + ptr_fun(). But since it's unspecified whether the C library + functions have extern "C" or extern + "C++" linkage [17.4.2.2 [lib.using.linkage]], and since + function pointers with different the language linkage specifications + (7.5 [dcl.link]) are incompatible, whether this example is + well-formed is unspecified. +

        +

        Proposed resolution:

        +

        Change 20.3.7 [lib.function.pointer.adaptors] paragraph 6 from:

        +
        +

        [Example: +

        +
        +     replace_if(v.begin(), v.end(), not1(bind2nd(ptr_fun(strcmp), "C")), "C++");
        +   
        +

        replaces each C with C++ in sequence v.

        +
        + + +

        to:

        +
        +

        [Example: +

        +
        +     int compare(const char*, const char*);
        +     replace_if(v.begin(), v.end(),
        +                not1(bind2nd(ptr_fun(compare), "abc")), "def");
        +   
        +

        replaces each abc with def in sequence v.

        +
        + +

        Also, remove footnote 215 in that same paragraph.

        + +

        [Copenhagen: Minor change in the proposed resolution. Since this + issue deals in part with C and C++ linkage, it was believed to be too + confusing for the strings in the example to be "C" and "C++". + ]

        + +

        [Redmond: More minor changes. Got rid of the footnote (which + seems to make a sweeping normative requirement, even though footnotes + aren't normative), and changed the sentence after the footnote so that + it corresponds to the new code fragment.]

        + +

        285. minor editorial errors in fstream ctors

        Section: 27.8.1.6 [lib.ifstream.cons]  Status: DR  Submitter: Martin Sebor  Date: 31 Dec 2000

        27.8.1.6 [lib.ifstream.cons], p2, 27.8.1.9 [lib.ofstream.cons], p2, and *************** Table 82. However, <cstdio> is me *** 6695,6700 **** --- 7524,7648 ---- section 27.8 [lib.file.streams], including 27.8.2 [lib.c.files].]


        +

        310. Is errno a macro?

        + Section: 17.4.1.2 [lib.headers], 19.3 [lib.errno]  Status: DR  Submitter: Steve Clamage  Date: 21 Mar 2001

        +

        + Exactly how should errno be declared in a conforming C++ header? +

        + +

        + The C standard says in 7.1.4 that it is unspecified whether errno is a + macro or an identifier with external linkage. In some implementations + it can be either, depending on compile-time options. (E.g., on + Solaris in multi-threading mode, errno is a macro that expands to a + function call, but is an extern int otherwise. "Unspecified" allows + such variability.) +

        + +

        The C++ standard:

        +
          +
        • 17.4.1.2 says in a note that errno must be macro in C. (false)
        • +
        • 17.4.3.1.3 footnote 166 says errno is reserved as an external + name (true), and implies that it is an identifier.
        • +
        • 19.3 simply lists errno as a macro (by what reasoning?) and goes + on to say that the contents of of C++ <errno.h> are the + same as in C, begging the question.
        • +
        • C.2, table 95 lists errno as a macro, without comment.
        • +
        + +

        I find no other references to errno.

        + +

        We should either explicitly say that errno must be a macro, even + though it need not be a macro in C, or else explicitly leave it + unspecified. We also need to say something about namespace std. + A user who includes <cerrno> needs to know whether to write + errno, or ::errno, or std::errno, or + else <cerrno> is useless.

        + +

        Two acceptable fixes:

        +
          +
        • errno must be a macro. This is trivially satisfied by adding
          +   #define errno (::std::errno)
          + to the headers if errno is not already a macro. You then always + write errno without any scope qualification, and it always expands + to a correct reference. Since it is always a macro, you know to + avoid using errno as a local identifer.

        • +
        • errno is in the global namespace. This fix is inferior, because + ::errno is not guaranteed to be well-formed.

        • +
        + +

        [ + This issue was first raised in 1999, but it slipped through + the cracks. + ]

        +

        Proposed resolution:

        +

        Change the Note in section 17.4.1.2p5 from

        + +
        + Note: the names defined as macros in C include the following: + assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. +
        + +

        to

        + +
        + Note: the names defined as macros in C include the following: + assert, offsetof, setjmp, va_arg, va_end, and va_start. +
        + +

        In section 19.3, change paragraph 2 from

        + +
        + The contents are the same as the Standard C library header + <errno.h>. +
        + +

        to

        + +
        + The contents are the same as the Standard C library header + <errno.h>, except that errno shall be defined as a macro. +
        +

        Rationale:

        +

        C++ must not leave it up to the implementation to decide whether or + not a name is a macro; it must explicitly specify exactly which names + are required to be macros. The only one that really works is for it + to be a macro.

        + +

        [Curaçao: additional rationale added.]

        + +
        +

        311. Incorrect wording in basic_ostream class synopsis

        + Section: 27.6.2.1 [lib.ostream]  Status: DR  Submitter: Andy Sawyer  Date: 21 Mar 2001

        + +

        In 27.6.2.1 [lib.ostream], the synopsis of class basic_ostream says:

        + +
        +   // partial specializationss
        +   template<class traits>
        +     basic_ostream<char,traits>& operator<<( basic_ostream<char,traits>&,
        +                                             const char * );
        + 
        + +

        Problems:

        +
          +
        • Too many 's's at the end of "specializationss"
        • +
        • This is an overload, not a partial specialization
        • +
        + +

        Proposed resolution:

        +

        In the synopsis in 27.6.2.1 [lib.ostream], remove the + // partial specializationss comment. Also remove the same + comment (correctly spelled, but still incorrect) from the synopsis in + 27.6.2.5.4 [lib.ostream.inserters.character]. +

        + +

        [ + Pre-Redmond: added 27.6.2.5.4 [lib.ostream.inserters.character] because of Martin's + comment in c++std-lib-8939. + ]

        + +

        312. Table 27 is missing headers

        Section: 20 [lib.utilities]  Status: DR  Submitter: Martin Sebor  Date: 29 Mar 2001

        Table 27 in section 20 lists the header <memory> (only) for *************** Memory (lib.memory) but neglects to ment *** 6703,6708 **** --- 7651,8038 ----

        Proposed resolution:

        Add <cstdlib> and <cstring> to Table 27, in the same row as <memory>.

        +
        +

        315. Bad "range" in list::unique complexity

        + Section: 23.2.2.4 [lib.list.ops]  Status: DR  Submitter: Andy Sawyer  Date: 1 May 2001

        +

        + 23.2.2.4 [lib.list.ops], Para 21 describes the complexity of + list::unique as: "If the range (last - first) is not empty, exactly + (last - first) -1 applications of the corresponding predicate, + otherwise no applications of the predicate)". +

        + +

        + "(last - first)" is not a range. +

        +

        Proposed resolution:

        +

        + Change the "range" from (last - first) to [first, last). +

        +
        +

        316. Vague text in Table 69

        + Section: 23.1.2 [lib.associative.reqmts]  Status: DR  Submitter: Martin Sebor  Date: 4 May 2001

        +

        Table 69 says this about a_uniq.insert(t):

        + +
        + inserts t if and only if there is no element in the container with key + equivalent to the key of t. The bool component of the returned pair + indicates whether the insertion takes place and the iterator component of the + pair points to the element with key equivalent to the key of t. +
        + +

        The description should be more specific about exactly how the bool component + indicates whether the insertion takes place.

        +

        Proposed resolution:

        +

        Change the text in question to

        + +
        + ...The bool component of the returned pair is true if and only if the insertion + takes place... +
        +
        +

        317. Instantiation vs. specialization of facets

        + Section: 22 [lib.localization]  Status: DR  Submitter: Martin Sebor  Date: 4 May 2001

        +

        + The localization section of the standard refers to specializations of + the facet templates as instantiations even though the required facets + are typically specialized rather than explicitly (or implicitly) + instantiated. In the case of ctype<char> and + ctype_byname<char> (and the wchar_t versions), these facets are + actually required to be specialized. The terminology should be + corrected to make it clear that the standard doesn't mandate explicit + instantiation (the term specialization encompasses both explicit + instantiations and specializations). +

        +

        Proposed resolution:

        +

        + In the following paragraphs, replace all occurrences of the word + instantiation or instantiations with specialization or specializations, + respectively: +

        + +
        + 22.1.1.1.1, p4, Table 52, 22.2.1.1, p2, 22.2.1.5, p3, 22.2.1.5.1, p5, + 22.2.1.5.2, p10, 22.2.2, p2, 22.2.3.1, p1, 22.2.3.1.2, p1, p2 and p3, + 22.2.4.1, p1, 22.2.4.1.2, p1, 22,2,5, p1, 22,2,6, p2, 22.2.6.3.2, p7, and + Footnote 242. +
        + +

        And change the text in 22.1.1.1.1, p4 from

        + +
        + An implementation is required to provide those instantiations + for facet templates identified as members of a category, and + for those shown in Table 52: +
        + +

        to

        + +
        + An implementation is required to provide those specializations... +
        + +

        [Nathan will review these changes, and will look for places where + explicit specialization is necessary.]

        + +

        Rationale:

        +

        This is a simple matter of outdated language. The language to + describe templates was clarified during the standardization process, + but the wording in clause 22 was never updated to reflect that + change.

        +
        +

        318. Misleading comment in definition of numpunct_byname

        + Section: 22.2.3.2 [lib.locale.numpunct.byname]  Status: DR  Submitter: Martin Sebor  Date: 12 May 2001

        +

        The definition of the numpunct_byname template contains the following + comment:

        + +
        +     namespace std {
        +         template <class charT>
        +         class numpunct_byname : public numpunct<charT> {
        +     // this class is specialized for char and wchar_t.
        +         ...
        + 
        + +

        There is no documentation of the specializations and it seems + conceivable that an implementation will not explicitly specialize the + template at all, but simply provide the primary template.

        +

        Proposed resolution:

        +

        Remove the comment from the text in 22.2.3.2 and from the proposed + resolution of library issue 228.

        +
        +

        319. Storage allocation wording confuses "Required behavior", "Requires"

        + Section: 18.4.1.1 [lib.new.delete.single], 18.4.1.2 [lib.new.delete.array]  Status: DR  Submitter: Beman Dawes  Date: 15 May 2001

        +

        The standard specifies 17.3.1.3 [lib.structure.specifications] that "Required + behavior" elements describe "the semantics of a function definition + provided by either the implementation or a C++ program."

        + +

        The standard specifies 17.3.1.3 [lib.structure.specifications] that "Requires" + elements describe "the preconditions for calling the function."

        + +

        In the sections noted below, the current wording specifies + "Required Behavior" for what are actually preconditions, and thus + should be specified as "Requires".

        + +

        Proposed resolution:

        + +

        In 18.4.1.1 [lib.new.delete.single] Para 12 Change:

        +
        +

        Required behavior: accept a value of ptr that is null or that was + returned by an earlier call ...

        +
        +

        to:

        +
        +

        Requires: the value of ptr is null or the value returned by an + earlier call ...

        +
        + +

        In 18.4.1.2 [lib.new.delete.array] Para 11 Change:

        +
        +

        Required behavior: accept a value of ptr that is null or that was + returned by an earlier call ...

        +
        +

        to:

        +
        +

        Requires: the value of ptr is null or the value returned by an + earlier call ...

        +
        + +
        +

        321. Typo in num_get

        + Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: DR  Submitter: Kevin Djang  Date: 17 May 2001

        +

        + Section 22.2.2.1.2 at p7 states that "A length specifier is added to + the conversion function, if needed, as indicated in Table 56." + However, Table 56 uses the term "length modifier", not "length + specifier". +

        +

        Proposed resolution:

        +

        + In 22.2.2.1.2 at p7, change the text "A length specifier is added ..." + to be "A length modifier is added ..." +

        +

        Rationale:

        +

        C uses the term "length modifier". We should be consistent.

        +
        +

        322. iterator and const_iterator should have the same value type

        + Section: 23.1 [lib.container.requirements]  Status: DR  Submitter: Matt Austern  Date: 17 May 2001

        +

        + It's widely assumed that, if X is a container, + iterator_traits<X::iterator>::value_type and + iterator_traits<X::const_iterator>::value_type should both be + X::value_type. However, this is nowhere stated. The language in + Table 65 is not precise about the iterators' value types (it predates + iterator_traits), and could even be interpreted as saying that + iterator_traits<X::const_iterator>::value_type should be "const + X::value_type". +

        + +

        Related issue: 279.

        +

        Proposed resolution:

        +

        In Table 65 ("Container Requirements"), change the return type for + X::iterator to "iterator type whose value type is T". Change the + return type for X::const_iterator to "constant iterator type whose + value type is T".

        +

        Rationale:

        +

        + This belongs as a container requirement, rather than an iterator + requirement, because the whole notion of iterator/const_iterator + pairs is specific to containers' iterator. +

        +

        + It is existing practice that (for example) + iterator_traits<list<int>::const_iterator>::value_type + is "int", rather than "const int". This is consistent with + the way that const pointers are handled: the standard already + requires that iterator_traits<const int*>::value_type is int. +

        +
        +

        327. Typo in time_get facet in table 52

        + Section: 22.1.1.1.1 [lib.locale.category]  Status: DR  Submitter: Tiki Wan  Date: 06 Jul 2001

        +

        The wchar_t versions of time_get and + time_get_byname are listed incorrectly in table 52, + required instantiations. In both cases the second template + parameter is given as OutputIterator. It should instead be + InputIterator, since these are input facets.

        +

        Proposed resolution:

        +

        + In table 52, required instantiations, in + 22.1.1.1.1 [lib.locale.category], change

        +
        +     time_get<wchar_t, OutputIterator>
        +     time_get_byname<wchar_t, OutputIterator>
        + 
        +

        to

        +
        +     time_get<wchar_t, InputIterator>
        +     time_get_byname<wchar_t, InputIterator>
        + 
        + +

        [Redmond: Very minor change in proposed resolution. Original had + a typo, wchart instead of wchar_t.]

        + +
        +

        328. Bad sprintf format modifier in money_put<>::do_put()

        + Section: 22.2.6.2.2 [lib.locale.money.put.virtuals]  Status: DR  Submitter: Martin Sebor  Date: 07 Jul 2001

        +

        The sprintf format string , "%.01f" (that's the digit one), in the + description of the do_put() member functions of the money_put facet in + 22.2.6.2.2, p1 is incorrect. First, the f format specifier is wrong + for values of type long double, and second, the precision of 01 + doesn't seem to make sense. What was most likely intended was + "%.0Lf"., that is a precision of zero followed by the L length + modifier.

        +

        Proposed resolution:

        +

        Change the format string to "%.0Lf".

        +

        Rationale:

        +

        Fixes an obvious typo

        +
        +

        331. bad declaration of destructor for ios_base::failure

        + Section: 27.4.2.1.1 [lib.ios::failure]  Status: DR  Submitter: PremAnand M. Rao  Date: 23 Aug 2001

        +

        + With the change in 17.4.4.8 [lib.res.on.exception.handling] to state + "An implementation may strengthen the exception-specification for a + non-virtual function by removing listed exceptions." + (issue 119) + and the following declaration of ~failure() in ios_base::failure +

        +
        +     namespace std {
        +        class ios_base::failure : public exception {
        +        public:
        +            ...
        +            virtual ~failure();
        +            ...
        +        };
        +      }
        + 
        +

        the class failure cannot be implemented since in 18.6.1 [lib.exception] the destructor of class exception has an empty + exception specification:

        +
        +     namespace std {
        +        class exception {
        +        public:
        +          ...
        +          virtual ~exception() throw();
        +          ...
        +        };
        +      }
        + 
        +

        Proposed resolution:

        +

        Remove the declaration of ~failure().

        +

        Rationale:

        +

        The proposed resolution is consistent with the way that destructors + of other classes derived from exception are handled.

        +
        +

        335. minor issue with char_traits, table 37

        + Section: 21.1.1 [lib.char.traits.require]  Status: DR  Submitter: Andy Sawyer  Date: 06 Sep 2001

        +

        + Table 37, in 21.1.1 [lib.char.traits.require], descibes char_traits::assign + as: +

        +
        +   X::assign(c,d)   assigns c = d.
        + 
        + +

        And para 1 says:

        + +
        + [...] c and d denote values of type CharT [...] +
        + +

        + Naturally, if c and d are values, then the assignment is + (effectively) meaningless. It's clearly intended that (in the case of + assign, at least), 'c' is intended to be a reference type. +

        + +

        I did a quick survey of the four implementations I happened to have + lying around, and sure enough they all have signatures:

        +
        +     assign( charT&, const charT& );
        + 
        + +

        (or the equivalent). It's also described this way in Nico's book. + (Not to mention the synopses of char_traits<char> in 21.1.3.1 + and char_traits<wchar_t> in 21.1.3.2...) +

        +

        Proposed resolution:

        +

        Add the following to 21.1.1 para 1:

        +
        + r denotes an lvalue of CharT +
        + +

        and change the description of assign in the table to:

        +
        +   X::assign(r,d)   assigns r = d
        + 
        +
        +

        337. replace_copy_if's template parameter should be InputIterator

        + Section: 25.2.4 [lib.alg.replace]  Status: DR  Submitter: Detlef Vollmann  Date: 07 Sep 2001

        +

        From c++std-edit-876:

        + +

        + In section 25.2.4 [lib.alg.replace] before p4: The name of the first + parameter of template replace_copy_if should be "InputIterator" + instead of "Iterator". According to 17.3.2.1 [lib.type.descriptions] p1 the + parameter name conveys real normative meaning. +

        +

        Proposed resolution:

        +

        Change Iterator to InputIterator.

        +
        +

        345. type tm in <cwchar>

        + Section: 21.4 [lib.c.strings]  Status: DR  Submitter: Clark Nelson  Date: 19 Oct 2001

        +

        + C99, and presumably amendment 1 to C90, specify that <wchar.h> + declares struct tm as an incomplete type. However, table 48 in 21.4 [lib.c.strings] does not mention the type tm as being declared in + <cwchar>. Is this omission intentional or accidental? +

        +

        Proposed resolution:

        +

        In section 21.4 [lib.c.strings], add "tm" to table 48.

        +
        +

        346. Some iterator member functions should be const

        + Section: 24.1 [lib.iterator.requirements]  Status: DR  Submitter: Jeremy Siek  Date: 20 Oct 2001

        +

        Iterator member functions and operators that do not change the state + of the iterator should be defined as const member functions or as + functions that take iterators either by const reference or by + value. The standard does not explicitly state which functions should + be const. Since this a fairly common mistake, the following changes + are suggested to make this explicit.

        + +

        The tables almost indicate constness properly through naming: r + for non-const and a,b for const iterators. The following changes + make this more explicit and also fix a couple problems.

        +

        Proposed resolution:

        +

        In 24.1 [lib.iterator.requirements] Change the first section of p9 from + "In the following sections, a and b denote values of X..." to + "In the following sections, a and b denote values of type const X...".

        + +

        In Table 73, change

        +
        +     a->m   U&         ...
        + 
        + +

        to

        + +
        +     a->m   const U&   ...
        +     r->m   U&         ...
        + 
        + +

        In Table 73 expression column, change

        + +
        +     *a = t
        + 
        + +

        to

        + +
        +     *r = t
        + 
        + +

        [Redmond: The container requirements should be reviewed to see if + the same problem appears there.]

        +

        ----- End of document -----

        diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/faq/index.html gcc-3.1.1/libstdc++-v3/docs/html/faq/index.html *** gcc-3.1/libstdc++-v3/docs/html/faq/index.html Thu May 2 21:22:14 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/faq/index.html Sat Jul 20 06:34:51 2002 *************** *** 77,83 ****
      • The g++-3 headers are not ours
      • compilation errors from streambuf.h !
      • errors about *Cconcept and constraints in the STL...
      • program crashes when using library code in a dynamically-loaded library --- 77,83 ----
      • The g++-3 headers are not ours
      • compilation errors from streambuf.h !
      • errors about *Concept and constraints in the STL...
      • program crashes when using library code in a dynamically-loaded library *************** *** 112,118 **** as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot and released. The current release is ! the fourteenth snapshot. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over --- 112,118 ---- as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot and released. The current release is ! the fourteenth snapshot. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over *************** *** 170,177 ****

        1.4 How do I get libstdc++?

        The fourteenth (and latest) snapshot of libstdc++-v3 is ! available via ! ftp.

        The homepage has instructions for retrieving the latest CVS sources, and for --- 170,177 ----


        1.4 How do I get libstdc++?

        The fourteenth (and latest) snapshot of libstdc++-v3 is ! available ! via ftp.

        The homepage has instructions for retrieving the latest CVS sources, and for *************** which is no longer available, thanks dej *** 487,495 ****

        For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files ! like gthr.h and gthr-single.h not being found. !

        !

        Please read the configuration instructions for GCC, specifically the part about configuring in a separate build directory, --- 487,493 ----

        For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files ! like gthr.h and gthr-single.h not being found. Please read the configuration instructions for GCC, specifically the part about configuring in a separate build directory, *************** which is no longer available, thanks dej *** 497,502 **** --- 495,512 ---- is fragile, is rarely tested, and tends to break, as in this case. This was fixed for 3.0.2.

        + +

        For 3.1, the most common "bug" is a parse error when using + <fstream>, ending with a message, + "bits/basic_file.h:52: parse error before `{' + token." Please read + the installation instructions for + GCC, specifically the part about not installing newer versions on + top of older versions. If you install 3.1 over a 3.0.x release, then + the wrong basic_file.h header will be found (its location changed + between releases). +

        +

        Please do not report these as bugs. We know about them. Reporting this -- or any other problem that's already been fixed -- hinders the development of GCC, because we have to take time to *************** http://clisp.cons.org/~haible/gccinclude *** 835,848 ****


        5.4 Extensions and Backward Compatibility

        !

        Although you can specify -I options to make the ! preprocessor search the g++-v3/ext and /backward directories, ! it is better to refer to files there by their path, as in: -

        !        #include <ext/hash_map>
        !          

        Extensions to the library have their own page.

        --- 845,860 ----

        5.4 Extensions and Backward Compatibility

        !

        Headers in the ext and backward ! subdirectories should be referred to by their relative paths:

        !       #include <ext/hash_map> 
        ! rather than using -I or other options. This is more ! portable and forward-compatible. (The situation is the same as ! that of other headers whose directories are not searched directly, ! e.g., <sys/stat.h>, <X11/Xlib.h>. !

        Extensions to the library have their own page.

        diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/faq/index.txt gcc-3.1.1/libstdc++-v3/docs/html/faq/index.txt *** gcc-3.1/libstdc++-v3/docs/html/faq/index.txt Thu May 2 21:22:14 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/faq/index.txt Sat Jul 20 06:34:51 2002 *************** *** 45,51 **** header o [35]The g++-3 headers are not ours o [36]compilation errors from streambuf.h ! o [37]errors about *Cconcept and constraints in the STL... o [38]program crashes when using library code in a dynamically-loaded library 5. [39]Aw, that's easy to fix! --- 45,51 ---- header o [35]The g++-3 headers are not ours o [36]compilation errors from streambuf.h ! o [37]errors about *Concept and constraints in the STL... o [38]program crashes when using library code in a dynamically-loaded library 5. [39]Aw, that's easy to fix! *************** *** 403,415 **** For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files like gthr.h and gthr-single.h not ! being found. ! Please read [71]the configuration instructions for GCC, specifically ! the part about configuring in a separate build directory, and how ! strongly recommended it is. Building in the source directory is ! fragile, is rarely tested, and tends to break, as in this case. This ! was fixed for 3.0.2. Please do not report these as bugs. We know about them. Reporting this -- or any other problem that's already been fixed -- hinders the --- 403,421 ---- For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files like gthr.h and gthr-single.h not ! being found. Please read [71]the configuration instructions for GCC, ! specifically the part about configuring in a separate build directory, ! and how strongly recommended it is. Building in the source directory ! is fragile, is rarely tested, and tends to break, as in this case. ! This was fixed for 3.0.2. ! For 3.1, the most common "bug" is a parse error when using , ! ending with a message, "bits/basic_file.h:52: parse error before `{' ! token." Please read [72]the installation instructions for GCC, ! specifically the part about not installing newer versions on top of ! older versions. If you install 3.1 over a 3.0.x release, then the ! wrong basic_file.h header will be found (its location changed between ! releases). Please do not report these as bugs. We know about them. Reporting this -- or any other problem that's already been fixed -- hinders the *************** New: *** 474,503 **** libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. ! Before reporting a bug, examine the [72]bugs database with the category set to "libstdc++". The BUGS file in the source tree also tracks known serious problems. * Debugging is problematic, due to bugs in line-number generation (mostly fixed in the compiler) and gdb lagging behind the compiler (lack of personnel). We recommend configuring the compiler using --with-dwarf2 if the DWARF2 debugging format is not already the ! default on your platform. Also, [73]changing your GDB settings can have a profound effect on your C++ debugging experiences. :-) _________________________________________________________________ 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [74]message to the list, Nathan Myers announced that he has started a list of problems in the ISO C++ Standard itself, especially with regard to the chapters that ! concern the library. The list itself is [75]posted on his website. Developers who are having problems interpreting the Standard may wish to consult his notes. For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place :-), a ! public list of the library defects is occasionally published [76]here. ! Some of these have resulted in [77]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that only look like bugs --- 480,509 ---- libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. ! Before reporting a bug, examine the [73]bugs database with the category set to "libstdc++". The BUGS file in the source tree also tracks known serious problems. * Debugging is problematic, due to bugs in line-number generation (mostly fixed in the compiler) and gdb lagging behind the compiler (lack of personnel). We recommend configuring the compiler using --with-dwarf2 if the DWARF2 debugging format is not already the ! default on your platform. Also, [74]changing your GDB settings can have a profound effect on your C++ debugging experiences. :-) _________________________________________________________________ 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [75]message to the list, Nathan Myers announced that he has started a list of problems in the ISO C++ Standard itself, especially with regard to the chapters that ! concern the library. The list itself is [76]posted on his website. Developers who are having problems interpreting the Standard may wish to consult his notes. For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place :-), a ! public list of the library defects is occasionally published [77]here. ! Some of these have resulted in [78]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that only look like bugs *************** New: *** 529,535 **** state on the previous file. The reason is that the state flags are not cleared on a successful call to open(). The standard unfortunately did not specify behavior in this case, and to everybody's great sorrow, ! the [78]proposed LWG resolution (see DR #22) is to leave the flags unchanged. You must insert a call to fs.clear() between the calls to close() and open(), and then everything will work like we all expect it to work. --- 535,541 ---- state on the previous file. The reason is that the state flags are not cleared on a successful call to open(). The standard unfortunately did not specify behavior in this case, and to everybody's great sorrow, ! the [79]proposed LWG resolution (see DR #22) is to leave the flags unchanged. You must insert a call to fs.clear() between the calls to close() and open(), and then everything will work like we all expect it to work. *************** New: *** 539,545 **** same namespace as other comparison functions (e.g., 'using' them and the header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; ! Nathan Myers [79]sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. The g++-3 headers are not ours --- 545,551 ---- same namespace as other comparison functions (e.g., 'using' them and the header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; ! Nathan Myers [80]sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. The g++-3 headers are not ours *************** New: *** 547,553 **** If you have found an extremely broken header file which is causing problems for you, look carefully before submitting a "high" priority bug report (which you probably shouldn't do anyhow; see the last ! paragraph of the page describing [80]the GCC bug database). If the headers are in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so, --- 553,559 ---- If you have found an extremely broken header file which is causing problems for you, look carefully before submitting a "high" priority bug report (which you probably shouldn't do anyhow; see the last ! paragraph of the page describing [81]the GCC bug database). If the headers are in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so, *************** New: *** 557,563 **** Currently our header files are installed in ${prefix}/include/g++-v3 (see the 'v'?). This may change with the next release of GCC, as it ! may be too confusing, but [81]the question has not yet been decided. glibc If you're on a GNU/Linux system and have just upgraded to glibc 2.2, but are still using gcc 2.95.2, then you should have read the --- 563,569 ---- Currently our header files are installed in ${prefix}/include/g++-v3 (see the 'v'?). This may change with the next release of GCC, as it ! may be too confusing, but [82]the question has not yet been decided. glibc If you're on a GNU/Linux system and have just upgraded to glibc 2.2, but are still using gcc 2.95.2, then you should have read the *************** type has changed in glibc 2.2. The patc *** 570,576 **** http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [82]old v2 library which is no longer maintained. Also note that gcc 2.95.3 fixes this problem, but requires a separate patch for libstdc++-v3. --- 576,582 ---- http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [83]old v2 library which is no longer maintained. Also note that gcc 2.95.3 fixes this problem, but requires a separate patch for libstdc++-v3. *************** http://clisp.cons.org/~haible/gccinclude *** 583,589 **** visibility, or you just plain forgot, etc). More information, including how to optionally enable/disable the ! checks, is available [83]here. dlopen/dlsym If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the --- 589,595 ---- visibility, or you just plain forgot, etc). More information, including how to optionally enable/disable the ! checks, is available [84]here. dlopen/dlsym If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the *************** http://clisp.cons.org/~haible/gccinclude *** 605,620 **** If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page on ! [84]submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the ! GCC patches mailing list. The libstdc++ [85]contributors' page also talks about how to submit patches. In addition to the description, the patch, and the ChangeLog entry, it is a Good Thing if you can additionally create a small test program to test for the presence of the bug that your patch fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be ! caught immediately by the [86]testsuite -- but only if such a test exists. _________________________________________________________________ --- 611,626 ---- If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page on ! [85]submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the ! GCC patches mailing list. The libstdc++ [86]contributors' page also talks about how to submit patches. In addition to the description, the patch, and the ChangeLog entry, it is a Good Thing if you can additionally create a small test program to test for the presence of the bug that your patch fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be ! caught immediately by the [87]testsuite -- but only if such a test exists. _________________________________________________________________ *************** http://clisp.cons.org/~haible/gccinclude *** 648,654 **** libstdc++. Some of that is already happening, see 4.2. Some of those changes are being predicted by the library maintainers, and we add code to the library based on what the current proposed ! resolution specifies. Those additions are listed in [87]the extensions page. 2. Performance tuning. Lots of performance tuning. This too is already underway for post-3.0 releases, starting with memory --- 654,660 ---- libstdc++. Some of that is already happening, see 4.2. Some of those changes are being predicted by the library maintainers, and we add code to the library based on what the current proposed ! resolution specifies. Those additions are listed in [88]the extensions page. 2. Performance tuning. Lots of performance tuning. This too is already underway for post-3.0 releases, starting with memory *************** http://clisp.cons.org/~haible/gccinclude *** 664,676 **** type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [88]This question about the next libstdc++ prompted some brief but ! interesting [89]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [90]STL from SGI, version 3.3, was the most recent merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and it is very likely that the SGI code is no longer under active development. We expect that no future merges will take place. --- 670,682 ---- type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [89]This question about the next libstdc++ prompted some brief but ! interesting [90]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [91]STL from SGI, version 3.3, was the most recent merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and it is very likely that the SGI code is no longer under active development. We expect that no future merges will take place. *************** http://clisp.cons.org/~haible/gccinclude *** 685,697 **** 5.4 Extensions and Backward Compatibility ! Although you can specify -I options to make the preprocessor search ! the g++-v3/ext and /backward directories, it is better to refer to ! files there by their path, as in: ! #include ! Extensions to the library have [91]their own page. _________________________________________________________________ 5.5 [removed] --- 691,706 ---- 5.4 Extensions and Backward Compatibility ! Headers in the ext and backward subdirectories should be referred to ! by their relative paths: ! #include + rather than using -I or other options. This is more portable and + forward-compatible. (The situation is the same as that of other + headers whose directories are not searched directly, e.g., + , . ! Extensions to the library have [92]their own page. _________________________________________________________________ 5.5 [removed] *************** a *** 740,747 **** otherwise documented as safe, do not assume that two threads may access a shared standard library object at the same time. ! See chapters [92]17 (library introduction), [93]23 (containers), and ! [94]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? --- 749,756 ---- otherwise documented as safe, do not assume that two threads may access a shared standard library object at the same time. ! See chapters [93]17 (library introduction), [94]23 (containers), and ! [95]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? *************** a *** 752,762 **** their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is ! right [95]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [96]buy the standard on-line. ! Who is your country's member body? Visit the [97]ISO homepage and find out! _________________________________________________________________ --- 761,771 ---- their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is ! right [96]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [97]buy the standard on-line. ! Who is your country's member body? Visit the [98]ISO homepage and find out! _________________________________________________________________ *************** a *** 807,814 **** encompasses the standard library. _________________________________________________________________ ! See [98]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [99]the libstdc++ mailing list. References --- 816,823 ---- encompasses the standard library. _________________________________________________________________ ! See [99]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [100]the libstdc++ mailing list. References *************** References *** 860,872 **** 46. ../faq/index.html#5_6 47. ../faq/index.html#5_7 48. ../faq/index.html#5_8 ! 49. http://gcc.gnu.org/libstdc++/download.html 50. ../faq/index.html#4_4_interface 51. ../17_intro/DESIGN 52. http://gcc.gnu.org/ 53. http://gcc.gnu.org/gcc-3.0/buildstat.html 54. http://gcc.gnu.org/libstdc++/ ! 55. http://gcc.gnu.org/libstdc++/download.html 56. http://gcc.gnu.org/libstdc++/ 57. ../17_intro/contribute.html 58. http://www.boost.org/ --- 869,881 ---- 46. ../faq/index.html#5_6 47. ../faq/index.html#5_7 48. ../faq/index.html#5_8 ! 49. http://gcc.gnu.org/libstdc++/index.html#download 50. ../faq/index.html#4_4_interface 51. ../17_intro/DESIGN 52. http://gcc.gnu.org/ 53. http://gcc.gnu.org/gcc-3.0/buildstat.html 54. http://gcc.gnu.org/libstdc++/ ! 55. http://gcc.gnu.org/libstdc++/index.html#download 56. http://gcc.gnu.org/libstdc++/ 57. ../17_intro/contribute.html 58. http://www.boost.org/ *************** References *** 883,913 **** 69. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris 70. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html 71. http://gcc.gnu.org/install/configure.html ! 72. http://gcc.gnu.org/bugs.html ! 73. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html ! 74. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 75. http://www.cantrip.org/draft-bugs.txt ! 76. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 77. ../faq/index.html#5_2 ! 78. ../ext/howto.html#5 ! 79. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 80. http://gcc.gnu.org/gnatswrite.html ! 81. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 82. ../faq/index.html#4_4_interface ! 83. ../19_diagnostics/howto.html#3 ! 84. http://gcc.gnu.org/contribute.html ! 85. ../17_intro/contribute.html ! 86. ../faq/index.html#2_4 ! 87. ../ext/howto.html#5 ! 88. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 89. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 90. http://www.sgi.com/Technology/STL/ ! 91. ../ext/howto.html ! 92. ../17_intro/howto.html#3 ! 93. ../23_containers/howto.html#3 ! 94. ../27_io/howto.html#9 ! 95. http://www.ansi.org/ ! 96. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 97. http://www.iso.ch/ ! 98. ../17_intro/license.html ! 99. mailto:libstdc++@gcc.gnu.org --- 892,923 ---- 69. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris 70. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html 71. http://gcc.gnu.org/install/configure.html ! 72. http://gcc.gnu.org/install/ ! 73. http://gcc.gnu.org/bugs.html ! 74. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html ! 75. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 76. http://www.cantrip.org/draft-bugs.txt ! 77. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 78. ../faq/index.html#5_2 ! 79. ../ext/howto.html#5 ! 80. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 81. http://gcc.gnu.org/gnatswrite.html ! 82. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 83. ../faq/index.html#4_4_interface ! 84. ../19_diagnostics/howto.html#3 ! 85. http://gcc.gnu.org/contribute.html ! 86. ../17_intro/contribute.html ! 87. ../faq/index.html#2_4 ! 88. ../ext/howto.html#5 ! 89. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 90. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 91. http://www.sgi.com/Technology/STL/ ! 92. ../ext/howto.html ! 93. ../17_intro/howto.html#3 ! 94. ../23_containers/howto.html#3 ! 95. ../27_io/howto.html#9 ! 96. http://www.ansi.org/ ! 97. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 98. http://www.iso.ch/ ! 99. ../17_intro/license.html ! 100. mailto:libstdc++@gcc.gnu.org diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/install.html gcc-3.1.1/libstdc++-v3/docs/html/install.html *** gcc-3.1/libstdc++-v3/docs/html/install.html Mon Apr 1 22:09:28 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/install.html Tue Jul 2 06:22:38 2002 *************** *** 67,98 ****

        As of June 19, 2000, libstdc++ attempts to use tricky and space-saving features of the GNU toolchain, enabled with ! -ffunction-sections -fdata-sections -Wl,--gc-sections. ! To obtain maximum benefit from this, binutils after this date ! should also be used (bugs were fixed with C++ exception handling ! related to this change in libstdc++-v3). The version of these ! tools should be 2.10.90, and you can get snapshots (as well as releases) of binutils ! here.

        If you are using a 3.1-series libstdc++ snapshot, then the ! requirements are slightly more stringent: the compiler sources must ! also be 3.1 or later (for both technical and licensing reasons), and ! your binutils must be 2.11.95 or later if you want to use symbol ! versioning in shared libraries.

        ! !
        --- 67,127 ----

        As of June 19, 2000, libstdc++ attempts to use tricky and space-saving features of the GNU toolchain, enabled with ! -ffunction-sections -fdata-sections ! -Wl,--gc-sections. To obtain maximum benefit from this, ! binutils after this date should also be used (bugs were fixed ! with C++ exception handling related to this change in ! libstdc++-v3). The version of these tools should be ! 2.10.90, or later, and you can get snapshots (as well as releases) of binutils ! here. The ! configure process will automatically detect and use these ! features if the underlying support is present.

        If you are using a 3.1-series libstdc++ snapshot, then the ! requirements are slightly more stringent: the compiler sources ! must also be 3.1 or later (for both technical and licensing ! reasons), and your binutils must be 2.11.95 or later if you want ! to use symbol versioning in shared libraries. Again, the ! configure process will automatically detect and use these ! features if the underlying support is present.

        ! !

        Finally, a few system-specific requirements:

        !
        linux !
        If you are using gcc 3.1 or later on linux, and are using ! the gnu locale model (enabled by default for sufficient ! versions of glibc), the following locales are used and tested ! in the libstdc++ testsuites: en_HK, en_US, fr_FR, fr_FR@euro, ! de_DE, de_DE@euro, ja_JP.eucjp, and it_IT. Failure to have the ! underlying "C" library locale information installed will mean ! that C++ named locales for the above regions will not work: ! because of this, the libstdc++ testsuite will not pass the ! named locale tests. If this isn't an issue, don't worry about ! it. If named locales are needed, the underlying locale ! information must be installed. Note that rebuilding libstdc++ ! after locales are installed is not necessary. ! !

        To install ! support for locales, do only one of the following:

        !

        !

      • install all locales !

        export LC_ALL=C

        !

        rpm -e glibc-common --nodeps

        !

        rpm -i --define "_install_langs all" ! glibc-common-2.2.5-34.i386.rpm

        !
      • !
      • install just the necessary locales !

        localedef -i de_DE -f ISO-8859-1 de_DE

        !
      • !

        !
        ! !


        *************** *** 102,108 ****
        • gccsrcdir: The directory holding the source of the compiler. It should have several subdirectories like ! gccsrcdir/libio and gccsrcdir/gcc.
        • libsrcdir: The directory holding the source of the C++ library.
        • gccbuilddir: The build directory for the compiler --- 131,137 ----
          • gccsrcdir: The directory holding the source of the compiler. It should have several subdirectories like ! gccsrcdir/libiberty and gccsrcdir/gcc.
          • libsrcdir: The directory holding the source of the C++ library.
          • gccbuilddir: The build directory for the compiler *************** *** 187,193 ****

            [re]building only libstdc++

            To rebuild just libstdc++, use:

            !    make all-target-libstdc++-v3
            This will configure and build the C++ library in the gccbuilddir/cpu-vendor-os/libstdc++ directory.

            --- 216,222 ----

            [re]building only libstdc++

            To rebuild just libstdc++, use:

            !    make all-target-libstdc++-v3
            This will configure and build the C++ library in the gccbuilddir/cpu-vendor-os/libstdc++ directory.

            *************** *** 203,209 ****

            You're done. Now install the rebuilt pieces with

                 make install
            ! or
                 make install-gcc
                 make install-target-libstdc++-v3
            --- 232,238 ----

            You're done. Now install the rebuilt pieces with

                 make install
            ! or
                 make install-gcc
                 make install-target-libstdc++-v3
            diff -Nrc3pad gcc-3.1/libstdc++-v3/include/Makefile.am gcc-3.1.1/libstdc++-v3/include/Makefile.am *** gcc-3.1/libstdc++-v3/include/Makefile.am Tue Apr 30 19:05:42 2002 --- gcc-3.1.1/libstdc++-v3/include/Makefile.am Fri Jun 28 08:22:32 2002 *************** *** 21,27 **** ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = 1.3 gnits MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs --- 21,27 ---- ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = 1.3 cygnus MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs *************** bits_headers = \ *** 96,102 **** ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward backward_builddir = ./backward --- 96,102 ---- ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward backward_builddir = ./backward *************** c_base_headers_rename = \ *** 201,215 **** cwchar \ cwctype # Some of the different "C" header models need extra files. # For --enable-cheaders=c_std if GLIBCPP_C_HEADERS_C_STD ! c_base_headers_extra = \ ! ${c_base_srcdir}/cmath.tcc else c_base_headers_extra = endif std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . std_headers = \ --- 201,245 ---- cwchar \ cwctype + # "C" compatibility headers. + c_compatibility_srcdir = ${glibcpp_srcdir}/include/c_compatibility + c_compatibility_builddir = . + c_compatibility_headers = \ + ${c_compatibility_srcdir}/assert.h \ + ${c_compatibility_srcdir}/ctype.h \ + ${c_compatibility_srcdir}/errno.h \ + ${c_compatibility_srcdir}/float.h \ + ${c_compatibility_srcdir}/iso646.h \ + ${c_compatibility_srcdir}/limits.h \ + ${c_compatibility_srcdir}/locale.h \ + ${c_compatibility_srcdir}/math.h \ + ${c_compatibility_srcdir}/setjmp.h \ + ${c_compatibility_srcdir}/signal.h \ + ${c_compatibility_srcdir}/stdarg.h \ + ${c_compatibility_srcdir}/stddef.h \ + ${c_compatibility_srcdir}/stdio.h \ + ${c_compatibility_srcdir}/stdlib.h \ + ${c_compatibility_srcdir}/string.h \ + ${c_compatibility_srcdir}/time.h \ + ${c_compatibility_srcdir}/wchar.h \ + ${c_compatibility_srcdir}/wctype.h + # Some of the different "C" header models need extra files. + # Some "C" header schemes require the "C" compatibility headers. # For --enable-cheaders=c_std if GLIBCPP_C_HEADERS_C_STD ! c_base_headers_extra = ${c_base_srcdir}/cmath.tcc else c_base_headers_extra = endif + if GLIBCPP_C_HEADERS_COMPATIBILITY + c_compatibility_headers_extra = ${c_compatibility_headers} + else + c_compatibility_headers_extra = + endif + + std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . std_headers = \ *************** target_headers = \ *** 283,290 **** ${target_srcdir}/os_defines.h \ ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These extra_target_headers files are all built with ad hoc naming rules. ! extra_target_headers = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ --- 313,320 ---- ${target_srcdir}/os_defines.h \ ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These target_headers_extra files are all built with ad hoc naming rules. ! target_headers_extra = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ *************** thread_target_headers = \ *** 300,306 **** # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \ ${target_builddir}/stamp-target --- 330,338 ---- # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = \ ! stamp-std stamp-bits stamp-c_base stamp-c_compatibility \ ! stamp-backward stamp-ext \ ${target_builddir}/stamp-target *************** stamp-c_base: ${c_base_headers} ${c_base *** 339,344 **** --- 371,385 ---- fi ;\ echo `date` > stamp-c_base + stamp-c_compatibility: ${c_compatibility_headers_extra} + @if [ ! -d "${c_compatibility_builddir}" ]; then \ + mkdir -p ${c_compatibility_builddir} ;\ + fi ;\ + if [ ! -z "${c_compatibility_headers_extra}" ]; then \ + (cd ${c_compatibility_builddir} && @LN_S@ $? . || true) ;\ + fi ;\ + echo `date` > stamp-c_compatibility + stamp-backward: ${backward_headers} @if [ ! -d "${backward_builddir}" ]; then \ mkdir -p ${backward_builddir} ;\ *************** ${target_builddir}/gthr-default.h: ${top *** 420,426 **** # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # extra_target_headers are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ install-data-local: --- 461,467 ---- # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # target_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ install-data-local: *************** install-data-local: *** 436,452 **** $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} \ ! ${gxx_include_dir}/${c_base_builddir}; done ! c_base_headers_extra_install=${c_base_headers_extra};\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} \ ! ${gxx_include_dir}/${std_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${extra_target_headers} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done --- 477,494 ---- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done ! c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done + c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ + for file in $$c_compatibility_headers_install; do \ + $(INSTALL_DATA) $$file ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done diff -Nrc3pad gcc-3.1/libstdc++-v3/include/Makefile.in gcc-3.1.1/libstdc++-v3/include/Makefile.in *** gcc-3.1/libstdc++-v3/include/Makefile.in Tue Apr 30 19:05:42 2002 --- gcc-3.1.1/libstdc++-v3/include/Makefile.in Fri Jun 28 08:22:32 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,106 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,91 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 111,132 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 96,112 ---- *************** glibcpp_toolexeclibdir = @glibcpp_toolex *** 145,154 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = 1.3 gnits MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs --- 125,133 ---- ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = 1.3 cygnus MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs *************** bits_headers = \ *** 223,229 **** ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward --- 202,208 ---- ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward *************** c_base_headers_rename = \ *** 332,340 **** cwchar \ cwctype ! @GLIBCPP_C_HEADERS_C_STD_TRUE@c_base_headers_extra = @GLIBCPP_C_HEADERS_C_STD_TRUE@\ ! @GLIBCPP_C_HEADERS_C_STD_TRUE@ ${c_base_srcdir}/cmath.tcc @GLIBCPP_C_HEADERS_C_STD_FALSE@c_base_headers_extra = std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . --- 311,344 ---- cwchar \ cwctype ! ! # "C" compatibility headers. ! c_compatibility_srcdir = ${glibcpp_srcdir}/include/c_compatibility ! c_compatibility_builddir = . ! c_compatibility_headers = \ ! ${c_compatibility_srcdir}/assert.h \ ! ${c_compatibility_srcdir}/ctype.h \ ! ${c_compatibility_srcdir}/errno.h \ ! ${c_compatibility_srcdir}/float.h \ ! ${c_compatibility_srcdir}/iso646.h \ ! ${c_compatibility_srcdir}/limits.h \ ! ${c_compatibility_srcdir}/locale.h \ ! ${c_compatibility_srcdir}/math.h \ ! ${c_compatibility_srcdir}/setjmp.h \ ! ${c_compatibility_srcdir}/signal.h \ ! ${c_compatibility_srcdir}/stdarg.h \ ! ${c_compatibility_srcdir}/stddef.h \ ! ${c_compatibility_srcdir}/stdio.h \ ! ${c_compatibility_srcdir}/stdlib.h \ ! ${c_compatibility_srcdir}/string.h \ ! ${c_compatibility_srcdir}/time.h \ ! ${c_compatibility_srcdir}/wchar.h \ ! ${c_compatibility_srcdir}/wctype.h ! ! @GLIBCPP_C_HEADERS_C_STD_TRUE@c_base_headers_extra = @GLIBCPP_C_HEADERS_C_STD_TRUE@${c_base_srcdir}/cmath.tcc @GLIBCPP_C_HEADERS_C_STD_FALSE@c_base_headers_extra = + @GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = @GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@${c_compatibility_headers} + @GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@c_compatibility_headers_extra = std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . *************** target_headers = \ *** 412,419 **** ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These extra_target_headers files are all built with ad hoc naming rules. ! extra_target_headers = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ --- 416,423 ---- ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These target_headers_extra files are all built with ad hoc naming rules. ! target_headers_extra = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ *************** thread_target_headers = \ *** 431,437 **** # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \ ${target_builddir}/stamp-target --- 435,443 ---- # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = \ ! stamp-std stamp-bits stamp-c_base stamp-c_compatibility \ ! stamp-backward stamp-ext \ ${target_builddir}/stamp-target *************** uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_ *** 445,451 **** # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # extra_target_headers are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ CONFIG_HEADER = ../config.h --- 451,457 ---- # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # target_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ CONFIG_HEADER = ../config.h *************** stamp-c_base: ${c_base_headers} ${c_base *** 585,590 **** --- 591,605 ---- fi ;\ echo `date` > stamp-c_base + stamp-c_compatibility: ${c_compatibility_headers_extra} + @if [ ! -d "${c_compatibility_builddir}" ]; then \ + mkdir -p ${c_compatibility_builddir} ;\ + fi ;\ + if [ ! -z "${c_compatibility_headers_extra}" ]; then \ + (cd ${c_compatibility_builddir} && @LN_S@ $? . || true) ;\ + fi ;\ + echo `date` > stamp-c_compatibility + stamp-backward: ${backward_headers} @if [ ! -d "${backward_builddir}" ]; then \ mkdir -p ${backward_builddir} ;\ *************** install-data-local: *** 668,684 **** $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} \ ! ${gxx_include_dir}/${c_base_builddir}; done ! c_base_headers_extra_install=${c_base_headers_extra};\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} \ ! ${gxx_include_dir}/${std_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${extra_target_headers} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done --- 683,700 ---- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done ! c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done + c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ + for file in $$c_compatibility_headers_install; do \ + $(INSTALL_DATA) $$file ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done diff -Nrc3pad gcc-3.1/libstdc++-v3/include/backward/strstream gcc-3.1.1/libstdc++-v3/include/backward/strstream *** gcc-3.1/libstdc++-v3/include/backward/strstream Fri Jan 4 21:27:31 2002 --- gcc-3.1.1/libstdc++-v3/include/backward/strstream Sat Jun 8 15:15:43 2002 *************** *** 1,6 **** // Backward-compat support -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Backward-compat support -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 57,188 **** namespace std { ! //---------------------------------------------------------------------- ! // Class strstreambuf, a streambuf class that manages an array of char. ! // Note that this class is not a template. ! ! class strstreambuf : public basic_streambuf > ! { ! public: // Types. ! typedef char_traits _Traits; ! typedef basic_streambuf _Base; ! ! public: // Constructor, destructor ! explicit strstreambuf(streamsize __initial_capacity = 0); ! strstreambuf(void* (*__alloc)(size_t), void (*__free)(void*)); ! ! strstreambuf(char* __get, streamsize __n, char* __put = 0); ! strstreambuf(signed char* __get, streamsize __n, signed char* __put = 0); ! strstreambuf(unsigned char* __get, streamsize __n, unsigned char* __put=0); ! ! strstreambuf(const char* __get, streamsize __n); ! strstreambuf(const signed char* __get, streamsize __n); ! strstreambuf(const unsigned char* __get, streamsize __n); ! ! virtual ~strstreambuf(); ! ! public: // strstreambuf operations. ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! protected: // Overridden virtual member functions. ! virtual int_type overflow(int_type __c = _Traits::eof()); ! virtual int_type pbackfail(int_type __c = _Traits::eof()); ! virtual int_type underflow(); ! virtual _Base* setbuf(char* __buf, streamsize __n); ! virtual pos_type seekoff(off_type __off, ios_base::seekdir __dir, ! ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! private: // Helper functions. ! // Dynamic allocation, possibly using _M_alloc_fun and _M_free_fun. ! char* _M_alloc(size_t); ! void _M_free(char*); ! // Helper function used in constructors. ! void _M_setup(char* __get, char* __put, streamsize __n); ! private: // Data members. ! void* (*_M_alloc_fun)(size_t); ! void (*_M_free_fun)(void*); ! bool _M_dynamic : 1; ! bool _M_frozen : 1; ! bool _M_constant : 1; ! }; ! //---------------------------------------------------------------------- ! // Class istrstream, an istream that manages a strstreambuf. ! class istrstream : public basic_istream ! { ! public: ! explicit istrstream(char*); ! explicit istrstream(const char*); ! istrstream(char* , streamsize); ! istrstream(const char*, streamsize); ! virtual ~istrstream(); ! strstreambuf* rdbuf() const; ! char* str(); ! private: ! strstreambuf _M_buf; ! }; ! //---------------------------------------------------------------------- ! // Class ostrstream ! class ostrstream : public basic_ostream ! { ! public: ! ostrstream(); ! ostrstream(char*, int, ios_base::openmode = ios_base::out); ! virtual ~ostrstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! private: ! strstreambuf _M_buf; ! }; ! //---------------------------------------------------------------------- ! // Class strstream ! class strstream : public basic_iostream ! { ! public: ! typedef char char_type; ! typedef char_traits::int_type int_type; ! typedef char_traits::pos_type pos_type; ! typedef char_traits::off_type off_type; ! strstream(); ! strstream(char*, int, ios_base::openmode = ios_base::in | ios_base::out); ! virtual ~strstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! int pcount() const; ! char* str(); ! private: ! strstreambuf _M_buf; ! }; } // namespace std ! ! #endif /* __SGI_STL_STRSTREAM */ ! ! // Local Variables: ! // mode:C++ ! // End: ! ! --- 57,174 ---- namespace std { + // Class strstreambuf, a streambuf class that manages an array of char. + // Note that this class is not a template. + class strstreambuf : public basic_streambuf > + { + public: + // Types. + typedef char_traits _Traits; + typedef basic_streambuf _Base; ! public: ! // Constructor, destructor ! explicit strstreambuf(streamsize __initial_capacity = 0); ! strstreambuf(void* (*__alloc)(size_t), void (*__free)(void*)); ! strstreambuf(char* __get, streamsize __n, char* __put = 0); ! strstreambuf(signed char* __get, streamsize __n, signed char* __put = 0); ! strstreambuf(unsigned char* __get, streamsize __n, unsigned char* __put=0); ! strstreambuf(const char* __get, streamsize __n); ! strstreambuf(const signed char* __get, streamsize __n); ! strstreambuf(const unsigned char* __get, streamsize __n); ! virtual ~strstreambuf(); ! public: ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! protected: ! virtual int_type overflow(int_type __c = _Traits::eof()); ! virtual int_type pbackfail(int_type __c = _Traits::eof()); ! virtual int_type underflow(); ! virtual _Base* setbuf(char* __buf, streamsize __n); ! virtual pos_type seekoff(off_type __off, ios_base::seekdir __dir, ! ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! private: ! // Dynamic allocation, possibly using _M_alloc_fun and _M_free_fun. ! char* _M_alloc(size_t); ! void _M_free(char*); ! // Helper function used in constructors. ! void _M_setup(char* __get, char* __put, streamsize __n); ! private: ! // Data members. ! void* (*_M_alloc_fun)(size_t); ! void (*_M_free_fun)(void*); ! bool _M_dynamic : 1; ! bool _M_frozen : 1; ! bool _M_constant : 1; ! }; ! // Class istrstream, an istream that manages a strstreambuf. ! class istrstream : public basic_istream ! { ! public: ! explicit istrstream(char*); ! explicit istrstream(const char*); ! istrstream(char* , streamsize); ! istrstream(const char*, streamsize); ! virtual ~istrstream(); ! strstreambuf* rdbuf() const; ! char* str(); ! private: ! strstreambuf _M_buf; ! }; ! // Class ostrstream ! class ostrstream : public basic_ostream ! { ! public: ! ostrstream(); ! ostrstream(char*, int, ios_base::openmode = ios_base::out); ! virtual ~ostrstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! private: ! strstreambuf _M_buf; ! }; ! // Class strstream ! class strstream : public basic_iostream ! { ! public: ! typedef char char_type; ! typedef char_traits::int_type int_type; ! typedef char_traits::pos_type pos_type; ! typedef char_traits::off_type off_type; ! strstream(); ! strstream(char*, int, ios_base::openmode = ios_base::in | ios_base::out); ! virtual ~strstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! int pcount() const; ! char* str(); + private: + strstreambuf _M_buf; + }; } // namespace std ! #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/basic_string.h gcc-3.1.1/libstdc++-v3/include/bits/basic_string.h *** gcc-3.1/libstdc++-v3/include/bits/basic_string.h Fri Apr 26 19:36:27 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/basic_string.h Sat May 18 20:52:50 2002 *************** namespace std *** 650,657 **** || less()(_M_data() + __size, __s)) return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, __s, __s + __n2); ! else return this->replace(_M_check(__pos), _M_fold(__pos, __n1), ! __s, __s + __n2); } basic_string& --- 650,660 ---- || less()(_M_data() + __size, __s)) return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, __s, __s + __n2); ! // Todo: optimized in-place replace. ! else return ! _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, ! __s, __s + __n2, ! typename iterator_traits::iterator_category()); } basic_string& *************** namespace std *** 685,690 **** --- 688,717 ---- { return _M_replace(__i1, __i2, __k1, __k2, typename iterator_traits<_InputIterator>::iterator_category()); } + // Specializations for the common case of pointer and iterator: + // useful to avoid the overhead of temporary buffering in _M_replace. + basic_string& + replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1, __k2 - __k1); } + + basic_string& + replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1, __k2 - __k1); } + + basic_string& + replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1.base(), __k2 - __k1); + } + + basic_string& + replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1.base(), __k2 - __k1); + } + private: template basic_string& diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/basic_string.tcc gcc-3.1.1/libstdc++-v3/include/bits/basic_string.tcc *** gcc-3.1/libstdc++-v3/include/bits/basic_string.tcc Fri Apr 19 07:59:10 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/basic_string.tcc Tue Jun 4 19:03:45 2002 *************** namespace std *** 140,146 **** size_type __dnew = static_cast(distance(__beg, __end)); // NB: Not required, but considered best practice. ! if (__builtin_expect(__beg == _InIter(0), 0)) __throw_logic_error("attempt to create string with null pointer"); if (__beg == __end && __a == _Alloc()) --- 140,146 ---- size_type __dnew = static_cast(distance(__beg, __end)); // NB: Not required, but considered best practice. ! if (__builtin_expect(__beg == _InIter(), 0)) __throw_logic_error("attempt to create string with null pointer"); if (__beg == __end && __a == _Alloc()) *************** namespace std *** 498,510 **** // else nothing (in particular, avoid calling _M_mutate() unnecessarily.) } ! // This is the general replace helper, which gets instantiated both ! // for input-iterators and forward-iterators. It buffers internally and ! // then calls _M_replace_safe. For input-iterators this is almost the ! // best we can do, but for forward-iterators many optimizations could be ! // conceived: f.i., when source and destination ranges do not overlap ! // buffering is not really needed. In order to easily implement them, it ! // could become useful to add an _M_replace(forward_iterator_tag) template template basic_string<_CharT, _Traits, _Alloc>& --- 498,507 ---- // else nothing (in particular, avoid calling _M_mutate() unnecessarily.) } ! ! // This is the general replace helper, which currently gets instantiated both ! // for input iterators and reverse iterators. It buffers internally and then ! // calls _M_replace_safe. template template basic_string<_CharT, _Traits, _Alloc>& *************** namespace std *** 518,527 **** } // This is a special replace helper, which does not buffer internally ! // and can be used in the "safe" situations involving forward-iterators, // i.e., when source and destination ranges are known to not overlap. - // Presently, is called by _M_replace, by the various append and by - // the assigns. template template basic_string<_CharT, _Traits, _Alloc>& --- 515,522 ---- } // This is a special replace helper, which does not buffer internally ! // and can be used in "safe" situations involving forward iterators, // i.e., when source and destination ranges are known to not overlap. template template basic_string<_CharT, _Traits, _Alloc>& diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/c++config gcc-3.1.1/libstdc++-v3/include/bits/c++config *** gcc-3.1/libstdc++-v3/include/bits/c++config Tue May 14 07:16:21 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/c++config Thu Jul 25 07:16:28 2002 *************** *** 34,40 **** #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20020514 // This is necessary until GCC supports separate template // compilation. --- 34,40 ---- #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20020725 // This is necessary until GCC supports separate template // compilation. *************** *** 69,75 **** // that threads are properly configured on your platform before // assigning blame to the STL container-memory allocator. After doing // so, please report any possible issues to libstdc++@gcc.gnu.org . ! // Do not blindly #define __USE_MALLOC here or on the command line. // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. --- 69,83 ---- // that threads are properly configured on your platform before // assigning blame to the STL container-memory allocator. After doing // so, please report any possible issues to libstdc++@gcc.gnu.org . ! // Do not define __USE_MALLOC on the command line. Enforce it here: ! #ifdef __USE_MALLOC ! #error __USE_MALLOC should only be defined within \ ! libstdc++-v3/include/bits/c++config before full recompilation of the library. ! #endif ! // Define __USE_MALLOC after this point in the file in order to aid debugging ! // or globally change allocation policy. This breaks the ABI, thus ! // completely recompile the library. A patch to better support ! // changing the global allocator policy would be probably be accepted. // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/fstream.tcc gcc-3.1.1/libstdc++-v3/include/bits/fstream.tcc *** gcc-3.1/libstdc++-v3/include/bits/fstream.tcc Fri May 3 18:29:06 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/fstream.tcc Sat May 18 14:37:46 2002 *************** namespace std *** 49,60 **** _M_buf_size = _M_buf_size_opt; // Allocate internal buffer. ! try { _M_buf = new char_type[_M_buf_size]; } ! catch(...) ! { ! delete [] _M_buf; ! __throw_exception_again; ! } _M_buf_allocated = true; } } --- 49,55 ---- _M_buf_size = _M_buf_size_opt; // Allocate internal buffer. ! _M_buf = new char_type[_M_buf_size]; _M_buf_allocated = true; } } diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/istream.tcc gcc-3.1.1/libstdc++-v3/include/bits/istream.tcc *** gcc-3.1/libstdc++-v3/include/bits/istream.tcc Mon Apr 22 19:11:00 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/istream.tcc Mon Jun 10 21:15:05 2002 *************** namespace std *** 679,685 **** { if (__c == __idelim) { ! __sb->snextc(); ++_M_gcount; } else --- 679,685 ---- { if (__c == __idelim) { ! __sb->sbumpc(); ++_M_gcount; } else *************** namespace std *** 726,732 **** this->setstate(ios_base::eofbit); else if (__c == __delim) { ! __sb->snextc(); ++_M_gcount; } } --- 726,732 ---- this->setstate(ios_base::eofbit); else if (__c == __delim) { ! __sb->sbumpc(); ++_M_gcount; } } *************** namespace std *** 1221,1228 **** --- 1221,1230 ---- extern template istream& operator>>(istream&, unsigned char*); extern template istream& operator>>(istream&, signed char*); + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_istream; extern template wistream& ws(wistream&); extern template wistream& operator>>(wistream&, wchar_t&); extern template wistream& operator>>(wistream&, wchar_t*); + #endif } // namespace std diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/locale_facets.tcc gcc-3.1.1/libstdc++-v3/include/bits/locale_facets.tcc *** gcc-3.1/libstdc++-v3/include/bits/locale_facets.tcc Fri Apr 19 07:59:10 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/locale_facets.tcc Sat May 18 22:00:15 2002 *************** namespace std *** 1959,1970 **** _Tv __v, const __c_locale&, int __prec = -1) { int __ret; ! const char* __old = setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = snprintf(__out, __size, __fmt, __prec, __v); else __ret = snprintf(__out, __size, __fmt, __v); setlocale(LC_ALL, __old); return __ret; } #else --- 1959,1972 ---- _Tv __v, const __c_locale&, int __prec = -1) { int __ret; ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = snprintf(__out, __size, __fmt, __prec, __v); else __ret = snprintf(__out, __size, __fmt, __v); setlocale(LC_ALL, __old); + free(__old); return __ret; } #else *************** namespace std *** 1974,1985 **** const __c_locale&, int __prec = -1) { int __ret; ! const char* __old = setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = sprintf(__out, __fmt, __prec, __v); else __ret = sprintf(__out, __fmt, __v); setlocale(LC_ALL, __old); return __ret; } #endif --- 1976,1989 ---- const __c_locale&, int __prec = -1) { int __ret; ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = sprintf(__out, __fmt, __prec, __v); else __ret = sprintf(__out, __fmt, __v); setlocale(LC_ALL, __old); + free(__old); return __ret; } #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/ostream.tcc gcc-3.1.1/libstdc++-v3/include/bits/ostream.tcc *** gcc-3.1/libstdc++-v3/include/bits/ostream.tcc Fri Apr 12 05:45:52 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/ostream.tcc Mon Jun 10 21:15:05 2002 *************** namespace std *** 119,137 **** basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin) { sentry __cerb(*this); ! if (__cerb) { try { ! streamsize __xtrct = 0; ! if (__sbin) ! { ! __streambuf_type* __sbout = this->rdbuf(); ! __xtrct = __copy_streambufs(*this, __sbin, __sbout); ! } ! else ! this->setstate(ios_base::badbit); ! if (!__xtrct) this->setstate(ios_base::failbit); } catch(exception& __fail) --- 119,129 ---- basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin) { sentry __cerb(*this); ! if (__cerb && __sbin) { try { ! if (!__copy_streambufs(*this, __sbin, this->rdbuf())) this->setstate(ios_base::failbit); } catch(exception& __fail) *************** namespace std *** 143,148 **** --- 135,142 ---- __throw_exception_again; } } + else if (!__sbin) + this->setstate(ios_base::badbit); return *this; } *************** namespace std *** 539,545 **** { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb) { try { --- 533,539 ---- { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb && __s) { try { *************** namespace std *** 564,569 **** --- 558,565 ---- __throw_exception_again; } } + else if (!__s) + __out.setstate(ios_base::badbit); return __out; } *************** namespace std *** 575,588 **** #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 167. Improper use of traits_type::length() // Note that this is only in 'Review' status. ! typedef char_traits __ctraits_type; #endif typename __ostream_type::sentry __cerb(__out); ! if (__cerb) { ! size_t __clen = __ctraits_type::length(__s); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1))); ! for (size_t __i = 0; __i <= __clen; ++__i) __ws[__i] = __out.widen(__s[__i]); _CharT* __str = __ws; --- 571,584 ---- #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 167. Improper use of traits_type::length() // Note that this is only in 'Review' status. ! typedef char_traits __traits_type; #endif typename __ostream_type::sentry __cerb(__out); ! if (__cerb && __s) { ! size_t __clen = __traits_type::length(__s); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1))); ! for (size_t __i = 0; __i < __clen; ++__i) __ws[__i] = __out.widen(__s[__i]); _CharT* __str = __ws; *************** namespace std *** 610,615 **** --- 606,613 ---- __throw_exception_again; } } + else if (!__s) + __out.setstate(ios_base::badbit); return __out; } *************** namespace std *** 620,632 **** { typedef basic_ostream __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb) { try { streamsize __w = __out.width(); char* __pads = static_cast(__builtin_alloca(__w)); streamsize __len = static_cast(_Traits::length(__s)); if (__w > __len) { __pad(__out, __out.fill(), __pads, __s, __w, __len, false); --- 618,631 ---- { typedef basic_ostream __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb && __s) { try { streamsize __w = __out.width(); char* __pads = static_cast(__builtin_alloca(__w)); streamsize __len = static_cast(_Traits::length(__s)); + if (__w > __len) { __pad(__out, __out.fill(), __pads, __s, __w, __len, false); *************** namespace std *** 645,650 **** --- 644,651 ---- __throw_exception_again; } } + else if (!__s) + __out.setstate(ios_base::badbit); return __out; } *************** namespace std *** 693,698 **** --- 694,700 ---- extern template ostream& operator<<(ostream&, const unsigned char*); extern template ostream& operator<<(ostream&, const signed char*); + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_ostream; extern template wostream& endl(wostream&); extern template wostream& ends(wostream&); *************** namespace std *** 701,704 **** --- 703,707 ---- extern template wostream& operator<<(wostream&, char); extern template wostream& operator<<(wostream&, const wchar_t*); extern template wostream& operator<<(wostream&, const char*); + #endif } // namespace std diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/stl_bvector.h gcc-3.1.1/libstdc++-v3/include/bits/stl_bvector.h *** gcc-3.1/libstdc++-v3/include/bits/stl_bvector.h Wed Mar 13 06:14:47 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/stl_bvector.h Sat Jun 1 00:51:21 2002 *************** struct _Bit_iterator : public _Bit_itera *** 166,172 **** _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {} ! reference operator*() const { return reference(_M_p, 1U << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; --- 166,172 ---- _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {} ! reference operator*() const { return reference(_M_p, 1UL << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; *************** struct _Bit_const_iterator : public _Bit *** 223,229 **** : _Bit_iterator_base(__x._M_p, __x._M_offset) {} const_reference operator*() const { ! return _Bit_reference(_M_p, 1U << _M_offset); } const_iterator& operator++() { _M_bump_up(); --- 223,229 ---- : _Bit_iterator_base(__x._M_p, __x._M_offset) {} const_reference operator*() const { ! return _Bit_reference(_M_p, 1UL << _M_offset); } const_iterator& operator++() { _M_bump_up(); diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/stl_pair.h gcc-3.1.1/libstdc++-v3/include/bits/stl_pair.h *** gcc-3.1/libstdc++-v3/include/bits/stl_pair.h Thu Dec 6 20:29:31 2001 --- gcc-3.1.1/libstdc++-v3/include/bits/stl_pair.h Tue May 21 21:09:43 2002 *************** inline bool operator==(const pair<_T1, _ *** 95,101 **** return __x.first == __y.first && __x.second == __y.second; } ! /// http://gcc.gnu.org/onlinedocs/libstdc++/20_util/howto.html#pairlt template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { --- 95,101 ---- return __x.first == __y.first && __x.second == __y.second; } ! /// template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cerrno.h gcc-3.1.1/libstdc++-v3/include/c/std_cerrno.h *** gcc-3.1/libstdc++-v3/include/c/std_cerrno.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cerrno.h Fri Jun 28 08:22:33 2002 *************** *** 31,36 **** --- 31,45 ---- // ISO C++ 14882: 19.3 Error numbers // + /** @file cerrno + * This is a Standard C++ Library file. You should @c #include this file + * in your programs, rather than any of the "*.h" implementation files. + * + * This is the C++ version of the Standard C Library header @c errno.h, + * and its contents are (mostly) the same as that header, but are all + * contained in the namespace @c std. + */ + #ifndef _CPP_CERRNO #define _CPP_CERRNO 1 *************** *** 38,41 **** --- 47,55 ---- #include_next + // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998 + #ifndef errno + #define errno errno + #endif + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cmath.h gcc-3.1.1/libstdc++-v3/include/c/std_cmath.h *** gcc-3.1/libstdc++-v3/include/c/std_cmath.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cmath.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,124 ---- #pragma GCC system_header + #include + #include_next + // Get rid of those macros defined in in lieu of real functions. + #undef abs + #undef div + #undef acos + #undef asin + #undef atan + #undef atan2 + #undef ceil + #undef cos + #undef cosh + #undef exp + #undef fabs + #undef floor + #undef fmod + #undef frexp + #undef ldexp + #undef log + #undef log10 + #undef modf + #undef pow + #undef sin + #undef sinh + #undef sqrt + #undef tan + #undef tanh + + #undef fpclassify + #undef isfinite + #undef isinf + #undef isnan + #undef isnormal + #undef signbit + #undef isgreater + #undef isgreaterequal + #undef isless + #undef islessequal + #undef islessgreater + #undef isunordered + + namespace std + { + inline double + abs(double __x) + { return __builtin_fabs(__x); } + + inline float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + #if _GLIBCPP_HAVE_MODFF + inline float + modf(float __x, float* __iptr) { return modff(__x, __iptr); } + #else + inline float + modf(float __x, float* __iptr) + { + double __tmp; + double __res = modf(static_cast(__x), &__tmp); + *__iptr = static_cast(__tmp); + return __res; + } + #endif + + #if _GLIBCPP_HAVE_MODFL + inline long double + modf(long double __x, long double* __iptr) { return modfl(__x, __iptr); } + #else + inline long double + modf(long double __x, long double* __iptr) + { + double __tmp; + double __res = modf(static_cast(__x), &__tmp); + * __iptr = static_cast(__tmp); + return __res; + } + #endif + } #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_csetjmp.h gcc-3.1.1/libstdc++-v3/include/c/std_csetjmp.h *** gcc-3.1/libstdc++-v3/include/c/std_csetjmp.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_csetjmp.h Fri Jun 28 08:22:34 2002 *************** *** 38,41 **** --- 38,49 ---- #include_next + // Get rid of those macros defined in in lieu of real functions. + #undef longjmp + + // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998 + #ifndef setjmp + #define setjmp(env) std::setjmp (env) + #endif + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cstdarg.h gcc-3.1.1/libstdc++-v3/include/c/std_cstdarg.h *** gcc-3.1/libstdc++-v3/include/c/std_cstdarg.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cstdarg.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,42 ---- #pragma GCC system_header + #undef __need___va_list #include_next #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cstddef.h gcc-3.1.1/libstdc++-v3/include/c/std_cstddef.h *** gcc-3.1/libstdc++-v3/include/c/std_cstddef.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cstddef.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,45 ---- #pragma GCC system_header + #define __need_size_t + #define __need_ptrdiff_t + #define __need_NULL + #define __need_offsetof #include_next #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cstdio.h gcc-3.1.1/libstdc++-v3/include/c/std_cstdio.h *** gcc-3.1/libstdc++-v3/include/c/std_cstdio.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cstdio.h Fri Jun 28 08:22:34 2002 *************** *** 38,41 **** --- 38,84 ---- #include_next + // Get rid of those macros defined in in lieu of real functions. + #undef clearerr + #undef fclose + #undef feof + #undef ferror + #undef fflush + #undef fgetc + #undef fgetpos + #undef fgets + #undef fopen + #undef fprintf + #undef fputc + #undef fputs + #undef fread + #undef freopen + #undef fscanf + #undef fseek + #undef fsetpos + #undef ftell + #undef fwrite + #undef getc + #undef getchar + #undef gets + #undef perror + #undef printf + #undef putc + #undef putchar + #undef puts + #undef remove + #undef rename + #undef rewind + #undef scanf + #undef setbuf + #undef setvbuf + #undef sprintf + #undef sscanf + #undef tmpfile + #undef tmpnam + #undef ungetc + #undef vfprintf + #undef vprintf + #undef vsprintf + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cwchar.h gcc-3.1.1/libstdc++-v3/include/c/std_cwchar.h *** gcc-3.1/libstdc++-v3/include/c/std_cwchar.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cwchar.h Thu Jul 4 00:29:27 2002 *************** *** 36,41 **** --- 36,62 ---- #pragma GCC system_header + #include + #include + #include + + #if _GLIBCPP_HAVE_WCHAR_H #include_next + #endif + + // Need to do a bit of trickery here with mbstate_t as char_traits + // assumes it is in wchar.h, regardless of wchar_t specializations. + #ifndef _GLIBCPP_HAVE_MBSTATE_T + namespace std + { + extern "C" + { + typedef struct + { + int __fill[6]; + } mbstate_t; + } + } + #endif #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cwctype.h gcc-3.1.1/libstdc++-v3/include/c/std_cwctype.h *** gcc-3.1/libstdc++-v3/include/c/std_cwctype.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cwctype.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,45 ---- #pragma GCC system_header + #include + + #if _GLIBCPP_HAVE_WCTYPE_H #include_next + #endif #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/assert.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/assert.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/assert.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/assert.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,30 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #include diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/ctype.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/ctype.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/ctype.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/ctype.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,49 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_CTYPE_H_ + #define _CPP_CTYPE_H_ 1 + + #include + + using std::isalnum; + using std::isalpha; + using std::iscntrl; + using std::isdigit; + using std::isgraph; + using std::islower; + using std::isprint; + using std::ispunct; + using std::isspace; + using std::isupper; + using std::isxdigit; + using std::tolower; + using std::toupper; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/errno.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/errno.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/errno.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/errno.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_ERRNO_H_ + #define _CPP_ERRNO_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/float.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/float.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/float.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/float.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_FLOAT_H_ + #define _CPP_FLOAT_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/iso646.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/iso646.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/iso646.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/iso646.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_ISO646_H_ + #define _CPP_ISO646_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/limits.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/limits.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/limits.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/limits.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_LIMITS_H_ + #define _CPP_LIMITS_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/locale.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/locale.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/locale.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/locale.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,39 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_LOCALE_H_ + #define _CPP_LOCALE_H_ 1 + + #include + + using std::lconv; + using std::setlocale; + using std::localeconv; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/math.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/math.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/math.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/math.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,74 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_MATH_H_ + #define _CPP_MATH_H_ 1 + + #include + + using std::abs; + using std::acos; + using std::asin; + using std::atan; + using std::atan2; + using std::cos; + using std::sin; + using std::tan; + using std::cosh; + using std::sinh; + using std::tanh; + using std::exp; + using std::frexp; + using std::ldexp; + using std::log; + using std::log10; + using std::modf; + using std::pow; + using std::sqrt; + using std::ceil; + using std::fabs; + using std::floor; + using std::fmod; + + #if _GLIBCPP_USE_C99 + using std::fpclassify; + using std::isfinite; + using std::isinf; + using std::isnan; + using std::isnormal; + using std::signbit; + using std::isgreater; + using std::isgreaterequal; + using std::isless; + using std::islessequal; + using std::islessgreater; + using std::isunordered; + #endif + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/setjmp.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/setjmp.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/setjmp.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/setjmp.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,38 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_SETJMP_H_ + #define _CPP_SETJMP_H_ 1 + + #include + + using std::jmp_buf; + using std::longjmp; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/signal.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/signal.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/signal.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/signal.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,40 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_SIGNAL_H_ + #define _CPP_SIGNAL_H_ 1 + + #include + + using std::sig_atomic_t; + + using std::raise; + using std::signal; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stdarg.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdarg.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stdarg.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdarg.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,37 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDARG_H_ + #define _CPP_STDARG_H_ 1 + + #include + + using std::va_list; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stddef.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stddef.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stddef.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stddef.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,38 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDDEF_H_ + #define _CPP_STDDEF_H_ 1 + + #include + + using std::size_t; + using std::ptrdiff_t; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stdio.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdio.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stdio.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdio.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,85 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDIO_H_ + #define _CPP_STDIO_H_ 1 + + #include + + using std::FILE; + using std::fpos_t; + + using std::remove; + using std::rename; + using std::tmpfile; + using std::tmpnam; + using std::fclose; + using std::fflush; + using std::fopen; + using std::freopen; + using std::setbuf; + using std::setvbuf; + using std::fprintf; + using std::fscanf; + using std::printf; + using std::scanf; + using std::snprintf; + using std::sprintf; + using std::sscanf; + using std::vfprintf; + using std::vfscanf; + using std::vprintf; + using std::vscanf; + using std::vsnprintf; + using std::vsprintf; + using std::vsscanf; + using std::fgetc; + using std::fgets; + using std::fputc; + using std::fputs; + using std::getc; + using std::getchar; + using std::gets; + using std::putc; + using std::putchar; + using std::puts; + using std::ungetc; + using std::fread; + using std::fwrite; + using std::fgetpos; + using std::fseek; + using std::fsetpos; + using std::ftell; + using std::rewind; + using std::clearerr; + using std::feof; + using std::ferror; + using std::perror; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stdlib.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdlib.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stdlib.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdlib.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,67 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDLIB_H_ + #define _CPP_STDLIB_H_ 1 + + #include + + using std::div_t; + using std::ldiv_t; + + using std::abort; + using std::abs; + using std::atexit; + using std::atof; + using std::atoi; + using std::atol; + using std::bsearch; + using std::calloc; + using std::div; + using std::exit; + using std::free; + using std::getenv; + using std::labs; + using std::ldiv; + using std::malloc; + using std::mblen; + using std::mbstowcs; + using std::mbtowc; + using std::qsort; + using std::rand; + using std::realloc; + using std::srand; + using std::strtod; + using std::strtol; + using std::strtoul; + using std::system; + using std::wcstombs; + using std::wctomb; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/string.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/string.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/string.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/string.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,58 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STRING_H_ + #define _CPP_STRING_H_ 1 + + #include + + using std::memcpy; + using std::memmove; + using std::strcpy; + using std::strncpy; + using std::strcat; + using std::strncat; + using std::memcmp; + using std::strcmp; + using std::strcoll; + using std::strncmp; + using std::strxfrm; + using std::memchr; + using std::strchr; + using std::strcspn; + using std::strpbrk; + using std::strrchr; + using std::strspn; + using std::strstr; + using std::strtok; + using std::memset; + using std::strerror; + using std::strlen; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/time.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/time.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/time.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/time.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,60 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_TIME_H_ + #define _CPP_TIME_H_ 1 + + #include + + // Get rid of those macros defined in in lieu of real functions. + #undef clock + #undef difftime + #undef mktime + #undef time + #undef asctime + #undef ctime + #undef gmtime + #undef localtime + #undef strftime + + using std::clock_t; + using std::time_t; + using std::tm; + + using std::clock; + using std::difftime; + using std::mktime; + using std::time; + using std::asctime; + using std::ctime; + using std::gmtime; + using std::localtime; + using std::strftime; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/wchar.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/wchar.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/wchar.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/wchar.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,106 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_WCHAR_H_ + #define _CPP_WCHAR_H_ 1 + + #include + + using std::mbstate_t; + + #if _GLIBCPP_USE_WCHAR_T + using std::wint_t; + + using std::btowc; + using std::wctob; + using std::fgetwc; + using std::fgetwc; + using std::fgetws; + using std::fputwc; + using std::fputws; + using std::fwide; + using std::fwprintf; + using std::fwscanf; + using std::swprintf; + using std::swscanf; + using std::vfwprintf; + using std::vfwscanf; + using std::vswprintf; + using std::vswscanf; + using std::vwprintf; + using std::vwscanf; + using std::wprintf; + using std::wscanf; + using std::getwc; + using std::getwchar; + using std::mbsinit; + using std::mbrlen; + using std::mbrtowc; + using std::mbsrtowcs; + using std::wcsrtombs; + using std::putwc; + using std::putwchar; + using std::ungetwc; + using std::wcrtomb; + using std::wcstod; + using std::wcstof; + using std::wcstol; + using std::wcstoul; + using std::wcscpy; + using std::wcsncpy; + using std::wcscat; + using std::wcsncat; + using std::wcscmp; + using std::wcscoll; + using std::wcsncmmp; + using std::wcsxfrm; + using std::wcschr; + using std::wcscspn; + using std::wcslen; + using std::wcspbrk; + using std::wcsrchr; + using std::wcsspn; + using std::wcsstr; + using std::wcstok; + using std::wmemchr; + using std::wmemcmp; + using std::wmemcpy; + using std::wmemmove; + using std::wmemset; + using std::wcsftime; + + #if _GLIBCPP_USE_C99 + using std::wcstold; + using std::wcstoll; + using std::wcstoull; + #endif + + #endif //_GLIBCPP_USE_WCHAR_T + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/wctype.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/wctype.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/wctype.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/wctype.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,55 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_CWCTYPE_H_ + #define _CPP_CWCTYPE_H_ 1 + + #include + + using std::wctype_t; + using std::wctrans_t; + using std::iswalpha; + using std::iswupper; + using std::iswlower; + using std::iswdigit; + using std::iswxdigit; + using std::iswalnum; + using std::iswspace; + using std::iswpunct; + using std::iswprint; + using std::iswgraph; + using std::iswcntrl; + using std::iswctype; + using std::towctrans; + using std::towlower; + using std::towupper; + using std::wctrans; + using std::wctype; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_std/std_cmath.h gcc-3.1.1/libstdc++-v3/include/c_std/std_cmath.h *** gcc-3.1/libstdc++-v3/include/c_std/std_cmath.h Fri Mar 29 20:31:01 2002 --- gcc-3.1.1/libstdc++-v3/include/c_std/std_cmath.h Fri Jun 28 08:22:36 2002 *************** namespace std *** 82,94 **** // an `exported' forward declaration. template _Tp __cmath_power(_Tp, unsigned int); - template - inline _Tp - __cmath_abs(_Tp __x) - { - return __x < _Tp() ? -__x : __x; - } - inline double abs(double __x) { return __builtin_fabs(__x); } --- 82,87 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/algorithm gcc-3.1.1/libstdc++-v3/include/ext/algorithm *** gcc-3.1/libstdc++-v3/include/ext/algorithm Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/algorithm Tue Jul 2 06:22:39 2002 *************** namespace __gnu_cxx *** 247,252 **** --- 247,257 ---- // random_sample and random_sample_n (extensions, not part of the standard). + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template _OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, *************** namespace __gnu_cxx *** 273,278 **** --- 278,288 ---- return __out; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template _OutputIter *************** namespace __gnu_cxx *** 353,358 **** --- 363,373 ---- return __out + __m; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _RandomAccessIter random_sample(_InputIter __first, _InputIter __last, *************** namespace __gnu_cxx *** 367,372 **** --- 382,392 ---- __out_first, __out_last - __out_first); } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _RandomAccessIter *************** namespace __gnu_cxx *** 418,423 **** --- 438,448 ---- return true; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last) *************** namespace __gnu_cxx *** 430,435 **** --- 455,465 ---- return __is_heap(__first, __last - __first); } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last, *************** namespace __gnu_cxx *** 448,453 **** --- 478,488 ---- // nondescending order. This is an extension, not part of the C++ // standard. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template bool is_sorted(_ForwardIter __first, _ForwardIter __last) *************** namespace __gnu_cxx *** 469,474 **** --- 504,514 ---- return true; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template bool is_sorted(_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp) diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/hash_map gcc-3.1.1/libstdc++-v3/include/ext/hash_map *** gcc-3.1/libstdc++-v3/include/ext/hash_map Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/hash_map Tue Jul 2 06:22:39 2002 *************** class hash_map; *** 83,89 **** template inline bool operator==(const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&, const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&); ! template class hash_map --- 83,93 ---- template inline bool operator==(const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&, const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&); ! /** ! * This is an SGI extension. ! * @ingroup SGIextensions ! * @doctodo ! */ template class hash_map *************** inline bool *** 235,240 **** --- 239,249 ---- operator==(const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm1, const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm2); + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class hash_multimap { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/hash_set gcc-3.1.1/libstdc++-v3/include/ext/hash_set *** gcc-3.1/libstdc++-v3/include/ext/hash_set Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/hash_set Tue Jul 2 06:22:39 2002 *************** inline bool *** 85,90 **** --- 85,95 ---- operator==(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2); + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class hash_set { *************** operator==(const hash_multiset<_Val,_Has *** 236,241 **** --- 241,251 ---- const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2); + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class hash_multiset { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/iterator gcc-3.1.1/libstdc++-v3/include/ext/iterator *** gcc-3.1/libstdc++-v3/include/ext/iterator Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/iterator Tue Jul 2 06:22:39 2002 *************** namespace __gnu_cxx *** 93,98 **** --- 93,103 ---- __n += __last - __first; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline void distance(_InputIterator __first, _InputIterator __last, diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/numeric gcc-3.1.1/libstdc++-v3/include/ext/numeric *** gcc-3.1/libstdc++-v3/include/ext/numeric Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/numeric Tue Jul 2 06:22:39 2002 *************** namespace __gnu_cxx *** 105,115 **** --- 105,125 ---- // Alias for the internal name __power. Note that power is an extension, // not part of the C++ standard. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _Tp power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op) { return __power(__x, __n, __monoid_op); } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _Tp power(_Tp __x, _Integer __n) *************** namespace __gnu_cxx *** 117,122 **** --- 127,137 ---- // iota is not part of the C++ standard. It is an extension. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template void iota(_ForwardIter __first, _ForwardIter __last, _Tp __value) diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/rb_tree gcc-3.1.1/libstdc++-v3/include/ext/rb_tree *** gcc-3.1/libstdc++-v3/include/ext/rb_tree Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/rb_tree Tue Jul 2 06:22:39 2002 *************** using std::allocator; *** 73,78 **** --- 73,83 ---- // Class rb_tree is not part of the C++ standard. It is provided for // compatibility with the HP STL. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template > struct rb_tree : public _Rb_tree<_Key, _Value, _KeyOfValue, _Compare, _Alloc> diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/slist gcc-3.1.1/libstdc++-v3/include/ext/slist *** gcc-3.1/libstdc++-v3/include/ext/slist Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/slist Tue Jul 2 06:22:39 2002 *************** _Slist_base<_Tp,_Alloc>::_M_erase_after( *** 295,300 **** --- 295,305 ---- return __last_node; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template > class slist : private _Slist_base<_Tp,_Alloc> { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/stdio_filebuf.h gcc-3.1.1/libstdc++-v3/include/ext/stdio_filebuf.h *** gcc-3.1/libstdc++-v3/include/ext/stdio_filebuf.h Tue Apr 30 19:05:44 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/stdio_filebuf.h Tue May 21 21:26:28 2002 *************** *** 27,36 **** --- 27,53 ---- // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. + /** @file ext/stdio_filebuf.h + * This file is a GNU extension to the Standard C++ Library. + */ + + #ifndef _EXT_STDIO_FILEBUF + #define _EXT_STDIO_FILEBUF + + #pragma GCC system_header #include namespace __gnu_cxx { + /** + * @class stdio_filebuf ext/stdio_filebuf.h + * @brief Provides a layer of compatibility for C/POSIX. + * + * This GNU extension provides extensions for working with standard C + * FILE*'s and POSIX file descriptors. It must be instantiated by the + * user with the type of character used in the file stream, e.g., + * stdio_filebuf. + */ template > class stdio_filebuf : public std::basic_filebuf<_CharT, _Traits> { *************** namespace __gnu_cxx *** 47,61 **** --- 64,110 ---- char_type _M_unbuf[4]; public: + /** + * @param fd An open file descriptor. + * @param mode Same meaning as in a standard filebuf. + * @param del Whether to close the file on destruction. + * @param size Optimal or preferred size of internal buffer, in bytes. + * + * This constructor associates a file stream buffer with an open + * POSIX file descriptor. Iff @a del is true, then the associated + * file will be closed when the stdio_filebuf is closed/destroyed. + */ stdio_filebuf(int __fd, std::ios_base::openmode __mode, bool __del, int_type __size); + /** + * @param f An open @c FILE*. + * @param mode Same meaning as in a standard filebuf. + * @param size Optimal or preferred size of internal buffer, in bytes. + * Defaults to system's @c BUFSIZ. + * + * This constructor associates a file stream buffer with an open + * C @c FILE*. The @c FILE* will not be automatically closed when the + * stdio_filebuf is closed/destroyed. + */ stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode, int_type __size = static_cast(BUFSIZ)); + /** + * Possibly closes the external data stream, in the case of the file + * descriptor constructor and @c del @c == @c true. + */ virtual ~stdio_filebuf(); + /** + * @return The underlying file descriptor. + * + * Once associated with an external data stream, this function can be + * used to access the underlying POSIX file descriptor. Note that + * there is no way for the library to track what you do with the + * descriptor, so be careful. + */ int fd() { return _M_file.fd(); } *************** namespace __gnu_cxx *** 111,113 **** --- 160,164 ---- } } } // namespace __gnu_cxx + + #endif /* _EXT_STDIO_FILEBUF */ diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/stl_hashtable.h gcc-3.1.1/libstdc++-v3/include/ext/stl_hashtable.h *** gcc-3.1/libstdc++-v3/include/ext/stl_hashtable.h Sun Apr 28 22:22:57 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/stl_hashtable.h Thu Jul 4 00:48:50 2002 *************** bool operator==(const hashtable<_Val,_Ke *** 610,620 **** for (size_t __n = 0; __n < __ht1._M_buckets.size(); ++__n) { _Node* __cur1 = __ht1._M_buckets[__n]; _Node* __cur2 = __ht2._M_buckets[__n]; ! for ( ; __cur1 && __cur2 && __cur1->_M_val == __cur2->_M_val; __cur1 = __cur1->_M_next, __cur2 = __cur2->_M_next) {} if (__cur1 || __cur2) return false; } return true; } --- 610,637 ---- for (size_t __n = 0; __n < __ht1._M_buckets.size(); ++__n) { _Node* __cur1 = __ht1._M_buckets[__n]; _Node* __cur2 = __ht2._M_buckets[__n]; ! // Check same length of lists ! for ( ; __cur1 && __cur2; __cur1 = __cur1->_M_next, __cur2 = __cur2->_M_next) {} if (__cur1 || __cur2) return false; + // Now check one's elements are in the other + for (__cur1 = __ht1._M_buckets[__n] ; __cur1; __cur1 = __cur1->_M_next) + { + bool _found__cur1 = false; + for (_Node* __cur2 = __ht2._M_buckets[__n]; + __cur2; __cur2 = __cur2->_M_next) + { + if (__cur1->_M_val == __cur2->_M_val) + { + _found__cur1 = true; + break; + } + } + if (!_found__cur1) + return false; + } } return true; } diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/stl_rope.h gcc-3.1.1/libstdc++-v3/include/ext/stl_rope.h *** gcc-3.1/libstdc++-v3/include/ext/stl_rope.h Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/stl_rope.h Tue Jul 2 06:22:39 2002 *************** struct _Rope_base *** 1238,1243 **** --- 1238,1248 ---- }; + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class rope : public _Rope_base<_CharT,_Alloc> { public: diff -Nrc3pad gcc-3.1/libstdc++-v3/include/std/std_bitset.h gcc-3.1.1/libstdc++-v3/include/std/std_bitset.h *** gcc-3.1/libstdc++-v3/include/std/std_bitset.h Wed May 1 22:58:58 2002 --- gcc-3.1.1/libstdc++-v3/include/std/std_bitset.h Fri May 24 18:17:07 2002 *************** *** 61,67 **** #define _GLIBCPP_BITSET_BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long)) #define _GLIBCPP_BITSET_WORDS(__n) \ ! ((__n) < 1 ? 1 : ((__n) + _GLIBCPP_BITSET_BITS_PER_WORD - 1)/_GLIBCPP_BITSET_BITS_PER_WORD) namespace std { --- 61,67 ---- #define _GLIBCPP_BITSET_BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long)) #define _GLIBCPP_BITSET_WORDS(__n) \ ! ((__n) < 1 ? 0 : ((__n) + _GLIBCPP_BITSET_BITS_PER_WORD - 1)/_GLIBCPP_BITSET_BITS_PER_WORD) namespace std { *************** namespace std *** 463,468 **** --- 463,563 ---- _M_do_find_next(size_t __prev, size_t __not_found) const; }; + + /** + * @if maint + * Base class, specialization for no storage (zero-length %bitset). + * + * See documentation for bitset. + * @endif + */ + template<> + struct _Base_bitset<0> + { + typedef unsigned long _WordT; + + _Base_bitset() {} + _Base_bitset(unsigned long) {} + + static size_t + _S_whichword(size_t __pos ) + { return __pos / _GLIBCPP_BITSET_BITS_PER_WORD; } + + static size_t + _S_whichbyte(size_t __pos ) + { return (__pos % _GLIBCPP_BITSET_BITS_PER_WORD) / CHAR_BIT; } + + static size_t + _S_whichbit(size_t __pos ) + { return __pos % _GLIBCPP_BITSET_BITS_PER_WORD; } + + static _WordT + _S_maskbit(size_t __pos ) + { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } + + // This would normally give access to the data. The bounds-checking + // in the bitset class will prevent the user from getting this far, + // but (1) it must still return an lvalue to compile, and (2) the + // user might call _Unchecked_set directly, in which case this /needs/ + // to fail. Let's not penalize zero-length users unless they actually + // make an unchecked call; all the memory ugliness is therefore + // localized to this single should-never-get-this-far function. + _WordT& + _M_getword(size_t) const + { __throw_out_of_range("bitset -- zero-length"); return *new _WordT; } + + _WordT + _M_hiword() const { return 0; } + + void + _M_do_and(const _Base_bitset<0>&) { } + + void + _M_do_or(const _Base_bitset<0>&) { } + + void + _M_do_xor(const _Base_bitset<0>&) { } + + void + _M_do_left_shift(size_t) { } + + void + _M_do_right_shift(size_t) { } + + void + _M_do_flip() { } + + void + _M_do_set() { } + + void + _M_do_reset() { } + + // Are all empty bitsets equal to each other? Are they equal to + // themselves? How to compare a thing which has no state? What is + // the sound of one zero-length bitset clapping? + bool + _M_is_equal(const _Base_bitset<0>&) const { return true; } + + bool + _M_is_any() const { return false; } + + size_t + _M_do_count() const { return 0; } + + unsigned long + _M_do_to_ulong() const { return 0; } + + // Normally "not found" is the size, but that could also be + // misinterpreted as an index in this corner case. Oh well. + size_t + _M_do_find_first(size_t) const { return 0; } + + size_t + _M_do_find_next(size_t, size_t) const { return 0; } + }; + + // Helper class to zero out the unused high-order bits in the highest word. template struct _Sanitize *************** namespace std *** 1115,1121 **** } } ! if (__tmp.empty()) __is.setstate(ios_base::failbit); else __x._M_copy_from_string(__tmp, static_cast(0), _Nb); --- 1210,1216 ---- } } ! if (__tmp.empty() && !_Nb) __is.setstate(ios_base::failbit); else __x._M_copy_from_string(__tmp, static_cast(0), _Nb); diff -Nrc3pad gcc-3.1/libstdc++-v3/include/std/std_memory.h gcc-3.1.1/libstdc++-v3/include/std/std_memory.h *** gcc-3.1/libstdc++-v3/include/std/std_memory.h Wed Mar 27 21:54:38 2002 --- gcc-3.1.1/libstdc++-v3/include/std/std_memory.h Wed Jul 3 22:49:54 2002 *************** *** 58,204 **** #include #include namespace std { ! /** ! * @if maint ! * This is a helper function. The unused second parameter exists to ! * permit the real get_temporary_buffer to use template parameter deduction. ! * @endif ! */ ! template ! pair<_Tp*, ptrdiff_t> ! __get_temporary_buffer(ptrdiff_t __len, _Tp*) ! { ! if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp))) ! __len = INT_MAX / sizeof(_Tp); ! ! while (__len > 0) { ! _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp)); ! if (__tmp != 0) ! return pair<_Tp*, ptrdiff_t>(__tmp, __len); ! __len /= 2; ! } ! ! return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); } ! /** ! * @brief This is a mostly-useless wrapper around malloc(). ! * @param len The number of objects of type Tp. ! * @return See full description. ! * ! * Reinventing the wheel, but this time with prettier spokes! ! * ! * This function tries to obtain storage for @c len adjacent Tp objects. ! * The objects themselves are not constructed, of course. A pair<> is ! * returned containing "the buffer s address and capacity (in the units of ! * sizeof(Tp)), or a pair of 0 values if no storage can be obtained." ! * Note that the capacity obtained may be less than that requested if the ! * memory is unavailable; you should compare len with the .second return ! * value. ! */ ! template ! inline pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) { return __get_temporary_buffer(__len, (_Tp*) 0); } ! /** ! * @brief The companion to get_temporary_buffer(). ! * @param p A buffer previously allocated by get_temporary_buffer. ! * @return None. ! * ! * Frees the memory pointed to by p. ! */ ! template ! void return_temporary_buffer(_Tp* __p) { std::free(__p); } ! template struct auto_ptr_ref { _Tp1* _M_ptr; ! auto_ptr_ref(_Tp1* __p) : _M_ptr(__p) {} }; /** ! * A simple smart pointer providing strict ownership semantics. (More later.) */ ! template class auto_ptr { private: _Tp* _M_ptr; public: typedef _Tp element_type; ! explicit auto_ptr(_Tp* __p = 0) throw() : _M_ptr(__p) {} ! auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) {} ! template auto_ptr(auto_ptr<_Tp1>& __a) throw() ! : _M_ptr(__a.release()) {} ! auto_ptr& operator=(auto_ptr& __a) throw() { ! reset(__a.release()); ! return *this; ! } ! template ! auto_ptr& operator=(auto_ptr<_Tp1>& __a) throw() { ! reset(__a.release()); ! return *this; ! } ! ! // Note: The C++ standard says there is supposed to be an empty throw ! // specification here, but omitting it is standard conforming. Its ! // presence can be detected only if _Tp::~_Tp() throws, but (17.4.3.6/2) ! // this is prohibited. ~auto_ptr() { delete _M_ptr; } - - _Tp& operator*() const throw() { - return *_M_ptr; - } - _Tp* operator->() const throw() { - return _M_ptr; - } - _Tp* get() const throw() { - return _M_ptr; - } - _Tp* release() throw() { - _Tp* __tmp = _M_ptr; - _M_ptr = 0; - return __tmp; - } - void reset(_Tp* __p = 0) throw() { - if (__p != _M_ptr) { - delete _M_ptr; - _M_ptr = __p; - } - } ! public: ! auto_ptr(auto_ptr_ref<_Tp> __ref) throw() : _M_ptr(__ref._M_ptr) {} ! auto_ptr& operator=(auto_ptr_ref<_Tp> __ref) throw() { ! if (__ref._M_ptr != this->get()) { ! delete _M_ptr; ! _M_ptr = __ref._M_ptr; } - return *this; - } ! template operator auto_ptr_ref<_Tp1>() throw() ! { return auto_ptr_ref<_Tp>(this->release()); } ! template operator auto_ptr<_Tp1>() throw() ! { return auto_ptr<_Tp1>(this->release()); } }; } // namespace std #endif /* _CPP_MEMORY */ - --- 58,371 ---- #include #include + // Since this entire file is within namespace std, there's no reason to + // waste two spaces along the left column. Thus the leading indentation is + // slightly violated from here on. namespace std { + /** + * @if maint + * This is a helper function. The unused second parameter exists to + * permit the real get_temporary_buffer to use template parameter deduction. + * + * XXX This should perhaps use the pool. + * @endif + */ + template + pair<_Tp*, ptrdiff_t> + __get_temporary_buffer(ptrdiff_t __len, _Tp*) + { + if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp))) + __len = INT_MAX / sizeof(_Tp); ! while (__len > 0) { ! _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp)); ! if (__tmp != 0) ! return pair<_Tp*, ptrdiff_t>(__tmp, __len); ! __len /= 2; } ! return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); ! } ! ! /** ! * @brief This is a mostly-useless wrapper around malloc(). ! * @param len The number of objects of type Tp. ! * @return See full description. ! * ! * Reinventing the wheel, but this time with prettier spokes! ! * ! * This function tries to obtain storage for @c len adjacent Tp objects. ! * The objects themselves are not constructed, of course. A pair<> is ! * returned containing "the buffer s address and capacity (in the units of ! * sizeof(Tp)), or a pair of 0 values if no storage can be obtained." ! * Note that the capacity obtained may be less than that requested if the ! * memory is unavailable; you should compare len with the .second return ! * value. ! */ ! template ! inline pair<_Tp*,ptrdiff_t> ! get_temporary_buffer(ptrdiff_t __len) ! { return __get_temporary_buffer(__len, (_Tp*) 0); } ! /** ! * @brief The companion to get_temporary_buffer(). ! * @param p A buffer previously allocated by get_temporary_buffer. ! * @return None. ! * ! * Frees the memory pointed to by p. ! */ ! template ! void ! return_temporary_buffer(_Tp* __p) ! { std::free(__p); } ! /** ! * A wrapper class to provide auto_ptr with reference semantics. For ! * example, an auto_ptr can be assigned (or constructed from) the result of ! * a function which returns an auto_ptr by value. ! * ! * All the auto_ptr_ref stuff should happen behind the scenes. ! */ ! template struct auto_ptr_ref { _Tp1* _M_ptr; ! ! explicit ! auto_ptr_ref(_Tp1* __p) ! : _M_ptr(__p) {} }; + /** ! * @brief A simple smart pointer providing strict ownership semantics. ! * ! * The Standard says: ! *
            !  *  An @c auto_ptr owns the object it holds a pointer to.  Copying an
            !  *  @c auto_ptr copies the pointer and transfers ownership to the destination.
            !  *  If more than one @c auto_ptr owns the same object at the same time the
            !  *  behavior of the program is undefined.
            !  *
            !  *  The uses of @c auto_ptr include providing temporary exception-safety for
            !  *  dynamically allocated memory, passing ownership of dynamically allocated
            !  *  memory to a function, and returning dynamically allocated memory from a
            !  *  function.  @c auto_ptr does not meet the CopyConstructible and Assignable
            !  *  requirements for Standard Library container
            !  *  elements and thus instantiating a Standard Library container with an
            !  *  @c auto_ptr results in undefined behavior.
            !  *  
            ! * Quoted from [20.4.5]/3. ! * ! * Good examples of what can and cannot be done with auto_ptr can be found ! * in the libstdc++ testsuite. ! * ! * @if maint ! * _GLIBCPP_RESOLVE_LIB_DEFECTS ! * 127. auto_ptr<> conversion issues ! * These resolutions have all been incorporated. ! * @endif */ ! template class auto_ptr { private: _Tp* _M_ptr; public: + /// The pointed-to type. typedef _Tp element_type; ! /** ! * @brief An %auto_ptr is usually constructed from a raw pointer. ! * @param p A pointer (defaults to NULL). ! * ! * This object now @e owns the object pointed to by @a p. ! */ ! explicit ! auto_ptr(element_type* __p = 0) throw() ! : _M_ptr(__p) { } ! /** ! * @brief An %auto_ptr can be constructed from another %auto_ptr. ! * @param a Another %auto_ptr of the same type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. ! */ ! auto_ptr(auto_ptr& __a) throw() ! : _M_ptr(__a.release()) { } ! /** ! * @brief An %auto_ptr can be constructed from another %auto_ptr. ! * @param a Another %auto_ptr of a different but related type. ! * ! * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. ! */ ! template ! auto_ptr(auto_ptr<_Tp1>& __a) throw() ! : _M_ptr(__a.release()) { } ! /** ! * @brief %auto_ptr assignment operator. ! * @param a Another %auto_ptr of the same type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. The object that this one @e used to own and ! * track has been deleted. ! */ ! auto_ptr& ! operator=(auto_ptr& __a) throw() ! { ! reset(__a.release()); ! return *this; ! } ! ! /** ! * @brief %auto_ptr assignment operator. ! * @param a Another %auto_ptr of a different but related type. ! * ! * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. The object that this one @e used to own and ! * track has been deleted. ! */ ! template ! auto_ptr& ! operator=(auto_ptr<_Tp1>& __a) throw() ! { ! reset(__a.release()); ! return *this; ! } ! ! /** ! * When the %auto_ptr goes out of scope, the object it owns is deleted. ! * If it no longer owns anything (i.e., @c get() is @c NULL), then this ! * has no effect. ! * ! * @if maint ! * The C++ standard says there is supposed to be an empty throw ! * specification here, but omitting it is standard conforming. Its ! * presence can be detected only if _Tp::~_Tp() throws, but this is ! * prohibited. [17.4.3.6]/2 ! * @end maint ! */ ~auto_ptr() { delete _M_ptr; } ! /** ! * @brief Smart pointer dereferencing. ! * ! * If this %auto_ptr no longer owns anything, then this operation will ! * crash. (For a smart pointer, "no longer owns anything" is the same as ! * being a null pointer, and you know what happens when you dereference ! * one of those...) ! */ ! element_type& ! operator*() const throw() { return *_M_ptr; } ! ! /** ! * @brief Smart pointer dereferencing. ! * ! * This returns the pointer itself, which the language then will ! * automatically cause to be dereferenced. ! */ ! element_type* ! operator->() const throw() { return _M_ptr; } ! ! /** ! * @brief Bypassing the smart pointer. ! * @return The raw pointer being managed. ! * ! * You can get a copy of the pointer that this object owns, for ! * situations such as passing to a function which only accepts a raw ! * pointer. ! * ! * @note This %auto_ptr still owns the memory. ! */ ! element_type* ! get() const throw() { return _M_ptr; } ! ! /** ! * @brief Bypassing the smart pointer. ! * @return The raw pointer being managed. ! * ! * You can get a copy of the pointer that this object owns, for ! * situations such as passing to a function which only accepts a raw ! * pointer. ! * ! * @note This %auto_ptr no longer owns the memory. When this object ! * goes out of scope, nothing will happen. ! */ ! element_type* ! release() throw() ! { ! element_type* __tmp = _M_ptr; ! _M_ptr = 0; ! return __tmp; ! } ! ! /** ! * @brief Forcibly deletes the managed object. ! * @param p A pointer (defaults to NULL). ! * ! * This object now @e owns the object pointed to by @a p. The previous ! * object has been deleted. ! */ ! void ! reset(element_type* __p = 0) throw() ! { ! if (__p != _M_ptr) ! { ! delete _M_ptr; ! _M_ptr = __p; ! } ! } ! ! /** @{ ! * @brief Automatic conversions ! * ! * These operations convert an %auto_ptr into and from an auto_ptr_ref ! * automatically as needed. This allows constructs such as ! * @code ! * auto_ptr func_returning_auto_ptr(.....); ! * ... ! * auto_ptr ptr = func_returning_auto_ptr(.....); ! * @endcode ! */ ! auto_ptr(auto_ptr_ref __ref) throw() : _M_ptr(__ref._M_ptr) {} ! auto_ptr& ! operator=(auto_ptr_ref __ref) throw() ! { ! if (__ref._M_ptr != this->get()) ! { ! delete _M_ptr; ! _M_ptr = __ref._M_ptr; ! } ! return *this; } ! template ! operator auto_ptr_ref<_Tp1>() throw() ! { return auto_ptr_ref<_Tp1>(this->release()); } ! ! template ! operator auto_ptr<_Tp1>() throw() ! { return auto_ptr<_Tp1>(this->release()); } ! /** @} */ }; } // namespace std #endif /* _CPP_MEMORY */ diff -Nrc3pad gcc-3.1/libstdc++-v3/libio/ChangeLog gcc-3.1.1/libstdc++-v3/libio/ChangeLog *** gcc-3.1/libstdc++-v3/libio/ChangeLog Wed May 15 02:27:23 2002 --- gcc-3.1.1/libstdc++-v3/libio/ChangeLog Thu Jul 25 23:40:25 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libstdc++-v3/libio/Makefile.in gcc-3.1.1/libstdc++-v3/libio/Makefile.in *** gcc-3.1/libstdc++-v3/libio/Makefile.in Tue Apr 2 02:46:58 2002 --- gcc-3.1.1/libstdc++-v3/libio/Makefile.in Fri Jun 28 08:22:36 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,106 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ --- 75,91 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 110,130 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 95,110 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 147,153 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 127,132 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/libmath/Makefile.in gcc-3.1.1/libstdc++-v3/libmath/Makefile.in *** gcc-3.1/libstdc++-v3/libmath/Makefile.in Tue Apr 2 02:47:01 2002 --- gcc-3.1.1/libstdc++-v3/libmath/Makefile.in Fri Jun 28 08:22:37 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,132 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,112 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 149,155 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 129,134 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/Makefile.am gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.am *** gcc-3.1/libstdc++-v3/libsupc++/Makefile.am Mon Apr 1 22:09:28 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.am Fri Jun 28 08:22:38 2002 *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 49,55 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ --- 49,55 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ *************** WARN_CXXFLAGS = \ *** 58,78 **** # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ INCLUDES = \ ! -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \ ! $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! sources = \ cxa_demangle.c \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ - dyn-string.c \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ --- 58,80 ---- # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ + GCC_INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include INCLUDES = \ ! $(GCC_INCLUDES) $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! c_sources = \ cxa_demangle.c \ + dyn-string.c + + sources = \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ *************** sources = \ *** 92,125 **** tinfo2.cc \ vec.cc ! libsupc___la_SOURCES = $(sources) ! libsupc__convenience_la_SOURCES = $(sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) ! # Use special rules for pulling things out of libiberty. cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared \ ! --mode=compile $(CC) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be --- 94,133 ---- tinfo2.cc \ vec.cc ! libsupc___la_SOURCES = $(sources) $(c_sources) ! libsupc__convenience_la_SOURCES = $(sources) $(c_sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) ! # Use special rules for pulling things out of libiberty. These ! # objects should be compiled with the "C" compiler, not the C++ ! # compiler, and also should not use the C++ includes. ! C_COMPILE = \ ! $(CC) $(DEFS) $(GCC_INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \ ! $(DEFS) $(GCC_INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/Makefile.in gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.in *** gcc-3.1/libstdc++-v3/libsupc++/Makefile.in Tue Apr 2 02:47:02 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.in Fri Jun 28 08:22:38 2002 *************** AS = @AS@ *** 68,104 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ CLOCALE_H = @CLOCALE_H@ CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 68,89 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 108,128 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 93,108 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 145,151 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 125,130 ---- *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 174,180 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. --- 153,159 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. *************** WARN_CXXFLAGS = \ *** 185,207 **** # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ INCLUDES = \ ! -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \ ! $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! sources = \ cxa_demangle.c \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ - dyn-string.c \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ --- 164,189 ---- # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ + GCC_INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include INCLUDES = \ ! $(GCC_INCLUDES) $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! c_sources = \ cxa_demangle.c \ + dyn-string.c + + + sources = \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ *************** sources = \ *** 222,239 **** vec.cc ! libsupc___la_SOURCES = $(sources) ! libsupc__convenience_la_SOURCES = $(sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared \ ! --mode=compile $(CC) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be --- 204,229 ---- vec.cc ! libsupc___la_SOURCES = $(sources) $(c_sources) ! libsupc__convenience_la_SOURCES = $(sources) $(c_sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) + # Use special rules for pulling things out of libiberty. These + # objects should be compiled with the "C" compiler, not the C++ + # compiler, and also should not use the C++ includes. + C_COMPILE = \ + $(CC) $(DEFS) $(GCC_INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + + # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \ ! $(DEFS) $(GCC_INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be *************** LDFLAGS = @LDFLAGS@ *** 296,313 **** LIBS = @LIBS@ libsupc__convenience_la_LDFLAGS = libsupc__convenience_la_LIBADD = ! libsupc__convenience_la_OBJECTS = cxa_demangle.lo del_op.lo del_opnt.lo \ ! del_opv.lo del_opvnt.lo dyn-string.lo eh_alloc.lo eh_aux_runtime.lo \ ! eh_catch.lo eh_exception.lo eh_globals.lo eh_personality.lo \ ! eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo new_op.lo \ ! new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo libsupc___la_LDFLAGS = libsupc___la_LIBADD = ! libsupc___la_OBJECTS = cxa_demangle.lo del_op.lo del_opnt.lo del_opv.lo \ ! del_opvnt.lo dyn-string.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo \ ! eh_exception.lo eh_globals.lo eh_personality.lo eh_terminate.lo \ ! eh_throw.lo eh_type.lo new_handler.lo new_op.lo new_opnt.lo new_opv.lo \ ! new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) --- 286,303 ---- LIBS = @LIBS@ libsupc__convenience_la_LDFLAGS = libsupc__convenience_la_LIBADD = ! libsupc__convenience_la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo \ ! del_opvnt.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo \ ! eh_globals.lo eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo \ ! new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo \ ! tinfo.lo tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo libsupc___la_LDFLAGS = libsupc___la_LIBADD = ! libsupc___la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo del_opvnt.lo \ ! eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo eh_globals.lo \ ! eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo \ ! new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo \ ! tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) *************** mostlyclean-generic distclean-generic cl *** 560,580 **** maintainer-clean-generic clean mostlyclean distclean maintainer-clean - # Use special rules for pulling things out of libiberty. cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # We have to have rules modified from the default to counteract SUN make # prepending each of $(glibcppinstall_HEADERS) with VPATH below. --- 550,569 ---- maintainer-clean-generic clean mostlyclean distclean maintainer-clean cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # We have to have rules modified from the default to counteract SUN make # prepending each of $(glibcppinstall_HEADERS) with VPATH below. diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/eh_alloc.cc gcc-3.1.1/libstdc++-v3/libsupc++/eh_alloc.cc *** gcc-3.1/libstdc++-v3/libsupc++/eh_alloc.cc Mon Jul 2 23:08:28 2001 --- gcc-3.1.1/libstdc++-v3/libsupc++/eh_alloc.cc Fri Jun 28 08:22:38 2002 *************** *** 30,39 **** // This is derived from the C++ ABI for IA-64. Where we diverge // for cross-architecture compatibility are noted with "@@@". - #include #include #include #include #include "unwind-cxx.h" #include "bits/c++config.h" #include "bits/gthr.h" --- 30,39 ---- // This is derived from the C++ ABI for IA-64. Where we diverge // for cross-architecture compatibility are noted with "@@@". #include #include #include + #include #include "unwind-cxx.h" #include "bits/c++config.h" #include "bits/gthr.h" diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/new gcc-3.1.1/libstdc++-v3/libsupc++/new *** gcc-3.1/libstdc++-v3/libsupc++/new Fri Apr 19 07:59:15 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/new Tue Jul 16 20:26:29 2002 *************** namespace std *** 62,68 **** * be of this type. */ typedef void (*new_handler)(); /// Takes a replacement handler as the argument, returns the previous handler. ! new_handler set_new_handler(new_handler); } // namespace std //@{ --- 62,68 ---- * be of this type. */ typedef void (*new_handler)(); /// Takes a replacement handler as the argument, returns the previous handler. ! new_handler set_new_handler(new_handler) throw(); } // namespace std //@{ diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/new_handler.cc gcc-3.1.1/libstdc++-v3/libsupc++/new_handler.cc *** gcc-3.1/libstdc++-v3/libsupc++/new_handler.cc Wed Jan 9 20:39:27 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/new_handler.cc Tue Jul 16 20:26:29 2002 *************** using std::new_handler; *** 37,43 **** new_handler __new_handler; new_handler ! std::set_new_handler (new_handler handler) { new_handler prev_handler = __new_handler; __new_handler = handler; --- 37,43 ---- new_handler __new_handler; new_handler ! std::set_new_handler (new_handler handler) throw() { new_handler prev_handler = __new_handler; __new_handler = handler; diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/new_op.cc gcc-3.1.1/libstdc++-v3/libsupc++/new_op.cc *** gcc-3.1/libstdc++-v3/libsupc++/new_op.cc Wed Oct 24 02:37:55 2001 --- gcc-3.1.1/libstdc++-v3/libsupc++/new_op.cc Fri Jun 28 08:22:38 2002 *************** *** 1,5 **** // Support routines for the -*- C++ -*- dynamic memory management. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation // // This file is part of GNU CC. // --- 1,5 ---- // Support routines for the -*- C++ -*- dynamic memory management. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation // // This file is part of GNU CC. // *************** *** 33,40 **** using std::new_handler; using std::bad_alloc; - extern "C" void *malloc (std::size_t); extern new_handler __new_handler; void * --- 33,40 ---- using std::new_handler; using std::bad_alloc; + using std::malloc; extern new_handler __new_handler; void * diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/pure.cc gcc-3.1.1/libstdc++-v3/libsupc++/pure.cc *** gcc-3.1/libstdc++-v3/libsupc++/pure.cc Wed Mar 28 11:04:50 2001 --- gcc-3.1.1/libstdc++-v3/libsupc++/pure.cc Fri Jun 28 08:22:38 2002 *************** *** 39,46 **** /*# define write(fd, buf, n) __write((fd), (buf), (n))*/ # endif #else ! # include ! # define writestr(str) fputs(str, stderr) #endif extern "C" void --- 39,46 ---- /*# define write(fd, buf, n) __write((fd), (buf), (n))*/ # endif #else ! # include ! # define writestr(str) std::fputs(str, stderr) #endif extern "C" void diff -Nrc3pad gcc-3.1/libstdc++-v3/po/Makefile.in gcc-3.1.1/libstdc++-v3/po/Makefile.in *** gcc-3.1/libstdc++-v3/po/Makefile.in Tue Apr 2 02:47:03 2002 --- gcc-3.1.1/libstdc++-v3/po/Makefile.in Fri Jun 28 08:22:39 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,131 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,112 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 148,154 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ PACKAGE = @PACKAGE@ --- 129,134 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/src/Makefile.am gcc-3.1.1/libstdc++-v3/src/Makefile.am *** gcc-3.1/libstdc++-v3/src/Makefile.am Mon Mar 25 21:02:24 2002 --- gcc-3.1.1/libstdc++-v3/src/Makefile.am Fri Jun 28 08:22:39 2002 *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 41,47 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ --- 41,47 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ *************** INCLUDES = \ *** 63,74 **** sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! cmath.cc bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) --- 63,76 ---- sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc \ ! fstream-inst.cc io-inst.cc istream-inst.cc ostream-inst.cc \ ! streambuf-inst.cc sstream-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) diff -Nrc3pad gcc-3.1/libstdc++-v3/src/Makefile.in gcc-3.1.1/libstdc++-v3/src/Makefile.in *** gcc-3.1/libstdc++-v3/src/Makefile.in Tue Apr 2 02:47:04 2002 --- gcc-3.1.1/libstdc++-v3/src/Makefile.in Fri Jun 28 08:22:40 2002 *************** AS = @AS@ *** 67,75 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 67,72 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 77,104 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBMATHOBJS = @LIBMATHOBJS@ LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@ LIBTOOL = @LIBTOOL@ --- 74,89 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 106,125 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 91,105 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 142,148 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 gnits --- 122,127 ---- *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 164,170 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. --- 143,149 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. *************** INCLUDES = \ *** 189,200 **** sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! cmath.cc bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) --- 168,181 ---- sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc \ ! fstream-inst.cc io-inst.cc istream-inst.cc ostream-inst.cc \ ! streambuf-inst.cc sstream-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) *************** CPPFLAGS = @CPPFLAGS@ *** 273,283 **** LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libstdc___la_OBJECTS = globals.lo limits.lo basic_file.lo complex_io.lo \ ! ios.lo strstream.lo cmath.lo bitset.lo functexcept.lo stdexcept.lo \ ! vterminate.lo c++locale.lo locale.lo localename.lo codecvt.lo \ ! collate.lo ctype.lo messages.lo monetary.lo numeric.lo time.lo \ ! concept-inst.lo locale-inst.lo misc-inst.lo stl-inst.lo string-inst.lo \ ! wstring-inst.lo valarray-inst.lo ext-inst.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) --- 254,265 ---- LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libstdc___la_OBJECTS = globals.lo limits.lo basic_file.lo complex_io.lo \ ! ios.lo strstream.lo bitset.lo functexcept.lo stdexcept.lo vterminate.lo \ ! c++locale.lo locale.lo localename.lo codecvt.lo collate.lo ctype.lo \ ! messages.lo monetary.lo numeric.lo time.lo concept-inst.lo \ ! locale-inst.lo misc-inst.lo stl-inst.lo string-inst.lo wstring-inst.lo \ ! valarray-inst.lo ext-inst.lo fstream-inst.lo io-inst.lo istream-inst.lo \ ! ostream-inst.lo streambuf-inst.lo sstream-inst.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) diff -Nrc3pad gcc-3.1/libstdc++-v3/src/cmath.cc gcc-3.1.1/libstdc++-v3/src/cmath.cc *** gcc-3.1/libstdc++-v3/src/cmath.cc Fri Jan 4 21:27:35 2002 --- gcc-3.1.1/libstdc++-v3/src/cmath.cc Thu Jan 1 00:00:00 1970 *************** *** 1,47 **** - // Explicit instantiation file for -*- C++ -*- math library. - - // Copyright (C) 2001 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 2, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING. If not, write to the Free - // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - // USA. - - // As a special exception, you may use this file as part of a free software - // library without restriction. Specifically, if other files instantiate - // templates or use macros or inline functions from this file, or you compile - // this file and link it with other files to produce an executable, this - // file does not by itself cause the resulting executable to be covered by - // the GNU General Public License. This exception does not however - // invalidate any other reasons why the executable file might be covered by - // the GNU General Public License. - - - // These are explicit instantiations of the behind-the-scenes internal - // helper functions used in the math routines of libstdc++. - - - #include - - namespace std - { - // This function is only declared/used in the cheaders=c_std case. - template float - __cmath_power(float, unsigned int); - template double - __cmath_power(double, unsigned int); - template long double - __cmath_power(long double, unsigned int); - - } // namespace std --- 0 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/src/ext-inst.cc gcc-3.1.1/libstdc++-v3/src/ext-inst.cc *** gcc-3.1/libstdc++-v3/src/ext-inst.cc Mon Dec 31 10:22:00 2001 --- gcc-3.1.1/libstdc++-v3/src/ext-inst.cc Fri Jun 28 08:22:40 2002 *************** *** 1,6 **** // Explicit instantiation file. ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Explicit instantiation file. ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 32,40 **** // #include ! namespace std { template ! const unsigned long __gnu_cxx::rope >::_S_min_len; ! } // namespace std --- 32,62 ---- // #include + #include ! namespace __gnu_cxx { template ! const unsigned long ! rope >::_S_min_len; ! ! template ! char ! rope >:: ! _S_fetch(_Rope_RopeRep >*, size_type); ! ! template class stdio_filebuf; ! ! #ifdef _GLIBCPP_USE_WCHAR_T ! template ! const unsigned long ! rope >::_S_min_len; ! ! template ! wchar_t ! rope >:: ! _S_fetch(_Rope_RopeRep >*, size_type); ! ! template class stdio_filebuf; ! #endif ! } // namespace __gnu_cxx diff -Nrc3pad gcc-3.1/libstdc++-v3/src/fstream-inst.cc gcc-3.1.1/libstdc++-v3/src/fstream-inst.cc *** gcc-3.1/libstdc++-v3/src/fstream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/fstream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,62 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + + namespace std + { + // filebuf + template class basic_filebuf >; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_filebuf >; + #endif + + // ifstream + template class basic_ifstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ifstream; + #endif + + // ofstream + template class basic_ofstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ofstream; + #endif + + // fstream + template class basic_fstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_fstream; + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/io-inst.cc gcc-3.1.1/libstdc++-v3/src/io-inst.cc *** gcc-3.1/libstdc++-v3/src/io-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/io-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,60 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + #include + + namespace std + { + // basic_ios + template class basic_ios; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ios; + #endif + + // iomanip + template class _Setfill; + template _Setfill setfill(char); + #ifdef _GLIBCPP_USE_WCHAR_T + template class _Setfill; + template _Setfill setfill(wchar_t); + #endif + + // iostream + template class basic_iostream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_iostream; + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/istream-inst.cc gcc-3.1.1/libstdc++-v3/src/istream-inst.cc *** gcc-3.1/libstdc++-v3/src/istream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/istream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,70 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + + namespace std + { + // istream + template class basic_istream; + template istream& ws(istream&); + template istream& operator>>(istream&, char&); + template istream& operator>>(istream&, unsigned char&); + template istream& operator>>(istream&, signed char&); + template istream& operator>>(istream&, char*); + template istream& operator>>(istream&, unsigned char*); + template istream& operator>>(istream&, signed char*); + + template istream& operator>>(istream&, _Setfill); + template istream& operator>>(istream&, _Setiosflags); + template istream& operator>>(istream&, _Resetiosflags); + template istream& operator>>(istream&, _Setbase); + template istream& operator>>(istream&, _Setprecision); + template istream& operator>>(istream&, _Setw); + + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_istream; + template wistream& ws(wistream&); + template wistream& operator>>(wistream&, wchar_t&); + template wistream& operator>>(wistream&, wchar_t*); + + template wistream& operator>>(wistream&, _Setfill); + template wistream& operator>>(wistream&, _Setiosflags); + template wistream& operator>>(wistream&, _Resetiosflags); + template wistream& operator>>(wistream&, _Setbase); + template wistream& operator>>(wistream&, _Setprecision); + template wistream& operator>>(wistream&, _Setw); + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/locale-inst.cc gcc-3.1.1/libstdc++-v3/src/locale-inst.cc *** gcc-3.1/libstdc++-v3/src/locale-inst.cc Fri Apr 19 07:59:18 2002 --- gcc-3.1.1/libstdc++-v3/src/locale-inst.cc Mon Jun 10 21:15:01 2002 *************** namespace std *** 181,189 **** // codecvt inline template class __codecvt_abstract_base; - inline template class __codecvt_abstract_base; template class codecvt_byname; #ifdef _GLIBCPP_USE_WCHAR_T template class codecvt_byname; #endif --- 181,189 ---- // codecvt inline template class __codecvt_abstract_base; template class codecvt_byname; #ifdef _GLIBCPP_USE_WCHAR_T + inline template class __codecvt_abstract_base; template class codecvt_byname; #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/src/localename.cc gcc-3.1.1/libstdc++-v3/src/localename.cc *** gcc-3.1/libstdc++-v3/src/localename.cc Fri Apr 19 07:59:19 2002 --- gcc-3.1.1/libstdc++-v3/src/localename.cc Sat May 18 14:37:48 2002 *************** namespace std *** 255,267 **** facet** __old = _M_facets; facet** __new; const size_t __new_size = __index + 4; ! try ! { __new = new facet*[__new_size]; } ! catch(...) ! { ! delete [] __new; ! __throw_exception_again; ! } for (size_t __i = 0; __i < _M_facets_size; ++__i) __new[__i] = _M_facets[__i]; for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2) --- 255,261 ---- facet** __old = _M_facets; facet** __new; const size_t __new_size = __index + 4; ! __new = new facet*[__new_size]; for (size_t __i = 0; __i < _M_facets_size; ++__i) __new[__i] = _M_facets[__i]; for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2) diff -Nrc3pad gcc-3.1/libstdc++-v3/src/misc-inst.cc gcc-3.1.1/libstdc++-v3/src/misc-inst.cc *** gcc-3.1/libstdc++-v3/src/misc-inst.cc Tue Apr 30 19:05:46 2002 --- gcc-3.1.1/libstdc++-v3/src/misc-inst.cc Mon May 27 15:07:11 2002 *************** *** 33,205 **** // #include - #include - #include - #include - #include - #include - #include - #include - #include #include #include ! #include ! #include ! ! // NB: Unnecessary if the .h headers already include these. ! #ifndef _GLIBCPP_FULLY_COMPLIANT_HEADERS ! #include ! #include ! #include ! #include ! #include ! #endif namespace std { - // streambuf - template class basic_streambuf; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_streambuf; - #endif - - // stringbuf - template class basic_stringbuf; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_stringbuf; - #endif - - // filebuf - template class basic_filebuf >; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_filebuf >; - #endif - - // basic_ios - template class basic_ios; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ios; - #endif - - // iomanip - template class _Setfill; - template _Setfill setfill(char); - #ifdef _GLIBCPP_USE_WCHAR_T - template class _Setfill; - template _Setfill setfill(wchar_t); - #endif - - // istream - template class basic_istream; - template istream& ws(istream&); - template istream& operator>>(istream&, char&); - template istream& operator>>(istream&, unsigned char&); - template istream& operator>>(istream&, signed char&); - template istream& operator>>(istream&, char*); - template istream& operator>>(istream&, unsigned char*); - template istream& operator>>(istream&, signed char*); - - template istream& operator>>(istream&, _Setfill); - template istream& operator>>(istream&, _Setiosflags); - template istream& operator>>(istream&, _Resetiosflags); - template istream& operator>>(istream&, _Setbase); - template istream& operator>>(istream&, _Setprecision); - template istream& operator>>(istream&, _Setw); - - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_istream; - template wistream& ws(wistream&); - template wistream& operator>>(wistream&, wchar_t&); - template wistream& operator>>(wistream&, wchar_t*); - - template wistream& operator>>(wistream&, _Setfill); - template wistream& operator>>(wistream&, _Setiosflags); - template wistream& operator>>(wistream&, _Resetiosflags); - template wistream& operator>>(wistream&, _Setbase); - template wistream& operator>>(wistream&, _Setprecision); - template wistream& operator>>(wistream&, _Setw); - #endif - - // ostream - template class basic_ostream; - template ostream& endl(ostream&); - template ostream& ends(ostream&); - template ostream& flush(ostream&); - template ostream& operator<<(ostream&, char); - template ostream& operator<<(ostream&, unsigned char); - template ostream& operator<<(ostream&, signed char); - template ostream& operator<<(ostream&, const char*); - template ostream& operator<<(ostream&, const unsigned char*); - template ostream& operator<<(ostream&, const signed char*); - - template ostream& operator<<(ostream&, _Setfill); - template ostream& operator<<(ostream&, _Setiosflags); - template ostream& operator<<(ostream&, _Resetiosflags); - template ostream& operator<<(ostream&, _Setbase); - template ostream& operator<<(ostream&, _Setprecision); - template ostream& operator<<(ostream&, _Setw); - - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ostream; - template wostream& endl(wostream&); - template wostream& ends(wostream&); - template wostream& flush(wostream&); - template wostream& operator<<(wostream&, wchar_t); - template wostream& operator<<(wostream&, char); - template wostream& operator<<(wostream&, const wchar_t*); - template wostream& operator<<(wostream&, const char*); - - template wostream& operator<<(wostream&, _Setfill); - template wostream& operator<<(wostream&, _Setiosflags); - template wostream& operator<<(wostream&, _Resetiosflags); - template wostream& operator<<(wostream&, _Setbase); - template wostream& operator<<(wostream&, _Setprecision); - template wostream& operator<<(wostream&, _Setw); - #endif - - - // iostream - template class basic_iostream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_iostream; - #endif - - // ifstream - template class basic_ifstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ifstream; - #endif - - // ofstream - template class basic_ofstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ofstream; - #endif - - // fstream - template class basic_fstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_fstream; - #endif - - // istringstream - template class basic_istringstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_istringstream; - #endif - - // ostringstream - template class basic_ostringstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ostringstream; - #endif - - // stringstream - template class basic_stringstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_stringstream; - #endif - // string related to iostreams template basic_istream& --- 33,45 ---- // #include #include #include ! #include ! #include namespace std { // string related to iostreams template basic_istream& *************** namespace std *** 228,233 **** --- 68,77 ---- getline(basic_istream&, wstring&); #endif + #if 1 + // XXX + // 2002-05-24 These are no longer needed and should be deleted. + // algorithm typedef _Char_traits_match > char_match; *************** namespace std *** 254,274 **** __uninitialized_copy_aux::const_iterator, string *> (vector::const_iterator, vector::const_iterator, string*, __false_type); - - template - streamsize - __copy_streambufs(basic_ios&, basic_streambuf*, - basic_streambuf*); - #ifdef _GLIBCPP_USE_WCHAR_T - template - streamsize - __copy_streambufs(basic_ios&, basic_streambuf*, - basic_streambuf*); - #endif - - using __gnu_cxx::stdio_filebuf; - template class stdio_filebuf; - #ifdef _GLIBCPP_USE_WCHAR_T - template class stdio_filebuf; #endif } //std --- 98,102 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/src/ostream-inst.cc gcc-3.1.1/libstdc++-v3/src/ostream-inst.cc *** gcc-3.1/libstdc++-v3/src/ostream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/ostream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,76 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + + namespace std + { + // ostream + template class basic_ostream; + template ostream& endl(ostream&); + template ostream& ends(ostream&); + template ostream& flush(ostream&); + template ostream& operator<<(ostream&, char); + template ostream& operator<<(ostream&, unsigned char); + template ostream& operator<<(ostream&, signed char); + template ostream& operator<<(ostream&, const char*); + template ostream& operator<<(ostream&, const unsigned char*); + template ostream& operator<<(ostream&, const signed char*); + + template ostream& operator<<(ostream&, _Setfill); + template ostream& operator<<(ostream&, _Setiosflags); + template ostream& operator<<(ostream&, _Resetiosflags); + template ostream& operator<<(ostream&, _Setbase); + template ostream& operator<<(ostream&, _Setprecision); + template ostream& operator<<(ostream&, _Setw); + + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ostream; + template wostream& endl(wostream&); + template wostream& ends(wostream&); + template wostream& flush(wostream&); + template wostream& operator<<(wostream&, wchar_t); + template wostream& operator<<(wostream&, char); + template wostream& operator<<(wostream&, const wchar_t*); + template wostream& operator<<(wostream&, const char*); + + template wostream& operator<<(wostream&, _Setfill); + template wostream& operator<<(wostream&, _Setiosflags); + template wostream& operator<<(wostream&, _Resetiosflags); + template wostream& operator<<(wostream&, _Setbase); + template wostream& operator<<(wostream&, _Setprecision); + template wostream& operator<<(wostream&, _Setw); + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/sstream-inst.cc gcc-3.1.1/libstdc++-v3/src/sstream-inst.cc *** gcc-3.1/libstdc++-v3/src/sstream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/sstream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,62 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + + namespace std + { + // stringbuf + template class basic_stringbuf; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_stringbuf; + #endif + + // istringstream + template class basic_istringstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_istringstream; + #endif + + // ostringstream + template class basic_ostringstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ostringstream; + #endif + + // stringstream + template class basic_stringstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_stringstream; + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/streambuf-inst.cc gcc-3.1.1/libstdc++-v3/src/streambuf-inst.cc *** gcc-3.1/libstdc++-v3/src/streambuf-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/streambuf-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,56 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + + namespace std + { + // streambuf + template class basic_streambuf; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_streambuf; + #endif + + template + streamsize + __copy_streambufs(basic_ios&, basic_streambuf*, + basic_streambuf*); + #ifdef _GLIBCPP_USE_WCHAR_T + template + streamsize + __copy_streambufs(basic_ios&, basic_streambuf*, + basic_streambuf*); + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/strstream.cc gcc-3.1.1/libstdc++-v3/src/strstream.cc *** gcc-3.1/libstdc++-v3/src/strstream.cc Wed Jun 27 17:09:53 2001 --- gcc-3.1.1/libstdc++-v3/src/strstream.cc Sat Jun 8 15:15:43 2002 *************** *** 1,6 **** // strstream definitions -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation // // This file is part of GNU CC. // --- 1,6 ---- // strstream definitions -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation // // This file is part of GNU CC. // *************** *** 56,458 **** namespace std { ! ! // strstreambuf constructor, destructor. ! ! strstreambuf::strstreambuf(streamsize initial_capacity) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(true), _M_frozen(false), _M_constant(false) ! { ! streamsize n = max(initial_capacity, streamsize(16)); ! ! char* buf = _M_alloc(n); ! if (buf) { ! setp(buf, buf + n); ! setg(buf, buf, buf); } - } - - strstreambuf::strstreambuf(void* (*alloc_f)(size_t), void (*free_f)(void*)) - : _Base(), - _M_alloc_fun(alloc_f), _M_free_fun(free_f), - _M_dynamic(true), _M_frozen(false), _M_constant(false) - { - streamsize n = 16; ! char* buf = _M_alloc(n); ! if (buf) { ! setp(buf, buf + n); ! setg(buf, buf, buf); } - } - - strstreambuf::strstreambuf(char* get, streamsize n, char* put) - : _Base(), - _M_alloc_fun(0), _M_free_fun(0), - _M_dynamic(false), _M_frozen(false), _M_constant(false) - { - _M_setup(get, put, n); - } ! strstreambuf::strstreambuf(signed char* get, streamsize n, signed char* put) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(false) ! { ! _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); ! } ! strstreambuf::strstreambuf(unsigned char* get, streamsize n, ! unsigned char* put) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(false) ! { ! _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); ! } ! strstreambuf::strstreambuf(const char* get, streamsize n) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(true) ! { ! _M_setup(const_cast(get), 0, n); ! } ! strstreambuf::strstreambuf(const signed char* get, streamsize n) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(true) ! { ! _M_setup(reinterpret_cast(const_cast(get)), 0, n); ! } ! strstreambuf::strstreambuf(const unsigned char* get, streamsize n) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(true) ! { ! _M_setup(reinterpret_cast(const_cast(get)), 0, n); ! } ! strstreambuf::~strstreambuf() ! { ! if (_M_dynamic && !_M_frozen) ! _M_free(eback()); ! } ! void strstreambuf::freeze(bool frozenflag) ! { ! if (_M_dynamic) ! _M_frozen = frozenflag; ! } ! char* strstreambuf::str() ! { ! freeze(true); ! return eback(); ! } ! int strstreambuf::pcount() const ! { ! return pptr() ? pptr() - pbase() : 0; ! } ! strstreambuf::int_type strstreambuf::overflow(int_type c) { ! if (c == traits_type::eof()) ! return traits_type::not_eof(c); ! // Try to expand the buffer. ! if (pptr() == epptr() && _M_dynamic && !_M_frozen && !_M_constant) { ! ptrdiff_t old_size = epptr() - pbase(); ! ptrdiff_t new_size = max(2 * old_size, ptrdiff_t(1)); ! char* buf = _M_alloc(new_size); ! if (buf) { ! memcpy(buf, pbase(), old_size); ! char* old_buffer = pbase(); ! bool reposition_get = false; ! ptrdiff_t old_get_offset; ! if (gptr() != 0) { ! reposition_get = true; ! old_get_offset = gptr() - eback(); } ! ! setp(buf, buf + new_size); ! pbump(old_size); ! ! if (reposition_get) ! setg(buf, buf + old_get_offset, buf + max(old_get_offset, old_size)); ! ! _M_free(old_buffer); ! } ! } ! ! if (pptr() != epptr()) { ! *pptr() = c; ! pbump(1); ! return c; } - else - return traits_type::eof(); - } ! strstreambuf::int_type strstreambuf::pbackfail(int_type c) ! { ! if (gptr() != eback()) { ! if (c == _Traits::eof()) { ! gbump(-1); ! return _Traits::not_eof(c); ! } ! else if (c == static_cast(gptr()[-1])) { // KLUDGE ! gbump(-1); ! return c; ! } ! else if (!_M_constant) { ! gbump(-1); ! *gptr() = c; ! return c; } } ! return _Traits::eof(); ! } ! ! strstreambuf::int_type strstreambuf::underflow() ! { ! if (gptr() == egptr() && pptr() && pptr() > egptr()) ! setg(eback(), gptr(), pptr()); ! if (gptr() != egptr()) ! return (unsigned char) *gptr(); ! else ! return _Traits::eof(); ! } ! basic_streambuf >* ! strstreambuf::setbuf(char*, streamsize) ! { ! return this; ! } ! strstreambuf::pos_type ! strstreambuf::seekoff(off_type off, ! ios_base::seekdir dir, ios_base::openmode mode) ! { ! bool do_get = false; ! bool do_put = false; ! if ((mode & (ios_base::in | ios_base::out)) == ! (ios_base::in | ios_base::out) && ! (dir == ios_base::beg || dir == ios_base::end)) ! do_get = do_put = true; ! else if (mode & ios_base::in) ! do_get = true; ! else if (mode & ios_base::out) ! do_put = true; ! // !gptr() is here because, according to D.7.1 paragraph 4, the seekable ! // area is undefined if there is no get area. ! if ((!do_get && !do_put) || (do_put && !pptr()) || !gptr()) ! return pos_type(off_type(-1)); ! char* seeklow = eback(); ! char* seekhigh = epptr() ? epptr() : egptr(); ! off_type newoff; ! switch(dir) { ! case ios_base::beg: ! newoff = 0; ! break; ! case ios_base::end: ! newoff = seekhigh - seeklow; ! break; ! case ios_base::cur: ! newoff = do_put ? pptr() - seeklow : gptr() - seeklow; ! break; ! default: ! return pos_type(off_type(-1)); } ! off += newoff; ! if (off < 0 || off > seekhigh - seeklow) ! return pos_type(off_type(-1)); ! if (do_put) { ! if (seeklow + off < pbase()) { ! setp(seeklow, epptr()); ! pbump(off); ! } ! else { ! setp(pbase(), epptr()); ! pbump(off - (pbase() - seeklow)); ! } ! } ! if (do_get) { ! if (off <= egptr() - seeklow) ! setg(seeklow, seeklow + off, egptr()); ! else if (off <= pptr() - seeklow) ! setg(seeklow, seeklow + off, pptr()); else ! setg(seeklow, seeklow + off, epptr()); } ! return pos_type(newoff); ! } ! ! strstreambuf::pos_type ! strstreambuf::seekpos(pos_type pos, ios_base::openmode mode) ! { ! return seekoff(pos - pos_type(off_type(0)), ios_base::beg, mode); ! } ! ! char* strstreambuf::_M_alloc(size_t n) ! { ! if (_M_alloc_fun) ! return static_cast(_M_alloc_fun(n)); ! else ! return new char[n]; ! } ! ! void strstreambuf::_M_free(char* p) ! { ! if (p) ! if (_M_free_fun) ! _M_free_fun(p); ! else ! delete[] p; ! } ! ! void strstreambuf::_M_setup(char* get, char* put, streamsize n) ! { ! if (get) { ! size_t N = n > 0 ? size_t(n) : n == 0 ? strlen(get) : size_t(INT_MAX); ! ! if (put) { ! setg(get, get, put); ! setp(put, put + N); ! } ! else { ! setg(get, get, get + N); ! } } - } ! //---------------------------------------------------------------------- ! // Class istrstream ! istrstream::istrstream(char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { ! basic_ios::init(&_M_buf); ! } ! istrstream::istrstream(const char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { ! basic_ios::init(&_M_buf); ! } ! istrstream::istrstream(char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { ! basic_ios::init(&_M_buf); ! } ! istrstream::istrstream(const char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { ! basic_ios::init(&_M_buf); ! } ! ! istrstream::~istrstream() {} ! strstreambuf* istrstream::rdbuf() const { ! return const_cast(&_M_buf); ! } ! char* istrstream::str() { return _M_buf.str(); } ! //---------------------------------------------------------------------- ! // Class ostrstream ! ostrstream::ostrstream() : basic_ios(), basic_ostream(0), _M_buf() ! { ! basic_ios::init(&_M_buf); ! } ! ostrstream::ostrstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_ostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { ! basic_ios::init(&_M_buf); ! } ! ! ostrstream::~ostrstream() {} ! strstreambuf* ostrstream::rdbuf() const ! { ! return const_cast(&_M_buf); ! } ! void ostrstream::freeze(bool freezeflag) ! { ! _M_buf.freeze(freezeflag); ! } ! char* ostrstream::str() ! { ! return _M_buf.str(); ! } ! int ostrstream::pcount() const ! { ! return _M_buf.pcount(); ! } ! //---------------------------------------------------------------------- ! // Class strstream ! strstream::strstream() : basic_ios(), basic_iostream(0), _M_buf() ! { ! basic_ios::init(&_M_buf); ! } ! strstream::strstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_iostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { ! basic_ios::init(&_M_buf); ! } ! ! strstream::~strstream() {} ! strstreambuf* strstream::rdbuf() const ! { ! return const_cast(&_M_buf); ! } ! void strstream::freeze(bool freezeflag) ! { ! _M_buf.freeze(freezeflag); ! } ! int strstream::pcount() const ! { ! return _M_buf.pcount(); ! } ! char* strstream::str() ! { ! return _M_buf.str(); ! } } // namespace std - - // Local Variables: - // mode:C++ - // End: --- 56,424 ---- namespace std { ! strstreambuf::strstreambuf(streamsize initial_capacity) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(true), ! _M_frozen(false), _M_constant(false) ! { ! _M_buf_size = _M_buf_size_opt = max(initial_capacity, streamsize(16)); ! _M_buf = _M_alloc(_M_buf_size); ! if (_M_buf) ! { ! setp(_M_buf, _M_buf + _M_buf_size); ! setg(_M_buf, _M_buf, _M_buf); ! } } ! strstreambuf::strstreambuf(void* (*alloc_f)(size_t), void (*free_f)(void*)) ! : _Base(), _M_alloc_fun(alloc_f), _M_free_fun(free_f), _M_dynamic(true), ! _M_frozen(false), _M_constant(false) ! { ! _M_buf_size = _M_buf_size_opt = 16; ! _M_buf = _M_alloc(_M_buf_size); ! if (_M_buf) ! { ! setp(_M_buf, _M_buf + _M_buf_size); ! setg(_M_buf, _M_buf, _M_buf); ! } } ! strstreambuf::strstreambuf(char* get, streamsize n, char* put) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(false) ! { _M_setup(get, put, n); } ! strstreambuf::strstreambuf(signed char* get, streamsize n, signed char* put) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(false) ! { _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); } ! strstreambuf::strstreambuf(unsigned char* get, streamsize n, ! unsigned char* put) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(false) ! { _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); } ! strstreambuf::strstreambuf(const char* get, streamsize n) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(true) ! { _M_setup(const_cast(get), 0, n); } ! strstreambuf::strstreambuf(const signed char* get, streamsize n) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(true) ! { _M_setup(reinterpret_cast(const_cast(get)), 0, n); } ! strstreambuf::strstreambuf(const unsigned char* get, streamsize n) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(true) ! { _M_setup(reinterpret_cast(const_cast(get)), 0, n); } ! strstreambuf::~strstreambuf() ! { ! if (_M_dynamic && !_M_frozen) ! { ! char* p = this->eback(); ! _M_free(p); ! if (p == _M_buf) ! _M_buf = 0; ! } ! if (_M_buf) ! _M_free(_M_buf); ! } ! void ! strstreambuf::freeze(bool frozenflag) ! { ! if (_M_dynamic) ! _M_frozen = frozenflag; ! } ! char* ! strstreambuf::str() ! { ! freeze(true); ! return eback(); ! } ! int ! strstreambuf::pcount() const ! { return pptr() ? pptr() - pbase() : 0; } ! strstreambuf::int_type ! strstreambuf::overflow(int_type c) ! { ! if (c == traits_type::eof()) ! return traits_type::not_eof(c); ! ! // Try to expand the buffer. ! if (pptr() == epptr() && _M_dynamic && !_M_frozen && !_M_constant) ! { ! ptrdiff_t old_size = epptr() - pbase(); ! ptrdiff_t new_size = max(2 * old_size, ptrdiff_t(1)); ! ! char* buf = _M_alloc(new_size); ! if (buf) ! { ! memcpy(buf, pbase(), old_size); ! char* old_buffer = pbase(); ! bool reposition_get = false; ! ptrdiff_t old_get_offset; ! if (gptr() != 0) ! { ! reposition_get = true; ! old_get_offset = gptr() - eback(); ! } ! ! _M_buf = buf; ! _M_buf_size = _M_buf_size_opt = new_size; ! setp(buf, buf + new_size); ! pbump(old_size); ! if (reposition_get) ! setg(buf, buf + old_get_offset, buf + ! max(old_get_offset, old_size)); ! _M_free(old_buffer); ! } } ! ! if (pptr() != epptr()) ! { ! *pptr() = c; ! pbump(1); ! return c; ! } ! else ! return traits_type::eof(); } ! strstreambuf::int_type ! strstreambuf::pbackfail(int_type c) ! { ! if (gptr() != eback()) ! { ! if (c == _Traits::eof()) ! { ! gbump(-1); ! return _Traits::not_eof(c); ! } ! else if (c == static_cast(gptr()[-1])) ! { // KLUDGE ! gbump(-1); ! return c; ! } ! else if (!_M_constant) ! { ! gbump(-1); ! *gptr() = c; ! return c; ! } } + return _Traits::eof(); } ! strstreambuf::int_type ! strstreambuf::underflow() ! { ! if (gptr() == egptr() && pptr() && pptr() > egptr()) ! setg(eback(), gptr(), pptr()); ! ! if (gptr() != egptr()) ! return (unsigned char) *gptr(); ! else ! return _Traits::eof(); ! } ! basic_streambuf >* ! strstreambuf::setbuf(char*, streamsize) ! { return this; } ! strstreambuf::pos_type ! strstreambuf::seekoff(off_type off, ios_base::seekdir dir, ! ios_base::openmode mode) ! { ! bool do_get = false; ! bool do_put = false; ! if ((mode & (ios_base::in | ios_base::out)) ! == (ios_base::in | ios_base::out) && ! (dir == ios_base::beg || dir == ios_base::end)) ! do_get = do_put = true; ! else if (mode & ios_base::in) ! do_get = true; ! else if (mode & ios_base::out) ! do_put = true; ! // !gptr() is here because, according to D.7.1 paragraph 4, the seekable ! // area is undefined if there is no get area. ! if ((!do_get && !do_put) || (do_put && !pptr()) || !gptr()) ! return pos_type(off_type(-1)); ! char* seeklow = eback(); ! char* seekhigh = epptr() ? epptr() : egptr(); ! off_type newoff; ! switch (dir) ! { ! case ios_base::beg: ! newoff = 0; ! break; ! case ios_base::end: ! newoff = seekhigh - seeklow; ! break; ! case ios_base::cur: ! newoff = do_put ? pptr() - seeklow : gptr() - seeklow; ! break; ! default: ! return pos_type(off_type(-1)); ! } ! ! off += newoff; ! if (off < 0 || off > seekhigh - seeklow) ! return pos_type(off_type(-1)); ! if (do_put) ! { ! if (seeklow + off < pbase()) ! { ! setp(seeklow, epptr()); ! pbump(off); ! } ! else ! { ! setp(pbase(), epptr()); ! pbump(off - (pbase() - seeklow)); ! } ! } ! if (do_get) ! { ! if (off <= egptr() - seeklow) ! setg(seeklow, seeklow + off, egptr()); ! else if (off <= pptr() - seeklow) ! setg(seeklow, seeklow + off, pptr()); ! else ! setg(seeklow, seeklow + off, epptr()); ! } ! return pos_type(newoff); } ! strstreambuf::pos_type ! strstreambuf::seekpos(pos_type pos, ios_base::openmode mode) ! { return seekoff(pos - pos_type(off_type(0)), ios_base::beg, mode); } ! char* ! strstreambuf::_M_alloc(size_t n) ! { ! if (_M_alloc_fun) ! return static_cast(_M_alloc_fun(n)); else ! return new char[n]; } ! void ! strstreambuf::_M_free(char* p) ! { ! if (p) ! if (_M_free_fun) ! _M_free_fun(p); ! else ! delete[] p; } ! void ! strstreambuf::_M_setup(char* get, char* put, streamsize n) ! { ! if (get) ! { ! size_t N = n > 0 ? size_t(n) : n == 0 ? strlen(get) : size_t(INT_MAX); ! ! if (put) ! { ! setg(get, get, put); ! setp(put, put + N); ! } ! else ! setg(get, get, get + N); ! } ! } ! istrstream::istrstream(char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { basic_ios::init(&_M_buf); } ! istrstream::istrstream(const char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { basic_ios::init(&_M_buf); } ! istrstream::istrstream(char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { basic_ios::init(&_M_buf); } ! istrstream::istrstream(const char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { basic_ios::init(&_M_buf); } ! istrstream::~istrstream() { } ! strstreambuf* ! istrstream::rdbuf() const ! { return const_cast(&_M_buf); } ! char* ! istrstream::str() ! { return _M_buf.str(); } ! ostrstream::ostrstream() : basic_ios(), basic_ostream(0), _M_buf() ! { basic_ios::init(&_M_buf); } ! ostrstream::ostrstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_ostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { basic_ios::init(&_M_buf); } ! ostrstream::~ostrstream() {} ! strstreambuf* ! ostrstream::rdbuf() const ! { return const_cast(&_M_buf); } ! void ! ostrstream::freeze(bool freezeflag) ! { _M_buf.freeze(freezeflag); } ! char* ! ostrstream::str() ! { return _M_buf.str(); } ! int ! ostrstream::pcount() const ! { return _M_buf.pcount(); } ! strstream::strstream() : basic_ios(), basic_iostream(0), _M_buf() ! { basic_ios::init(&_M_buf); } ! strstream::strstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_iostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { basic_ios::init(&_M_buf); } ! strstream::~strstream() { } ! strstreambuf* ! strstream::rdbuf() const ! { return const_cast(&_M_buf); } ! void ! strstream::freeze(bool freezeflag) ! { _M_buf.freeze(freezeflag); } ! int ! strstream::pcount() const ! { return _M_buf.pcount(); } + char* + strstream::str() + { return _M_buf.str(); } } // namespace std diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc *** gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc Sat May 12 16:51:41 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc Fri Jun 28 08:22:42 2002 *************** *** 1,6 **** // 2000-01-01 bkoz ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2000-01-01 bkoz ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 26,37 **** void test01() { long a = std::abs(1L); ! ldiv_t b = std::div(2L, 1L); } void test02() { ! // Make sure size_t is in namespace std std::size_t i = 5; } --- 26,38 ---- void test01() { long a = std::abs(1L); ! std::div(2L, 1L); ! std::ldiv_t b; } void test02() { ! // Make sure size_t is in namespace std. std::size_t i = 5; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc *** gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc Wed Jun 20 03:05:30 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc Fri Jun 28 08:22:42 2002 *************** *** 22,28 **** #include - int main(void) { // Make sure size_t is in namespace std --- 22,27 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc gcc-3.1.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc *** gcc-3.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc Tue Aug 7 03:38:27 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc Wed Jul 3 22:49:55 2002 *************** *** 1,4 **** ! // Copyright (C) 2000 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,4 ---- ! // Copyright (C) 2000, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** test07() *** 276,281 **** --- 276,296 ---- return 0; } + + // http://gcc.gnu.org/ml/libstdc++/2002-07/msg00024.html + struct Base{}; + struct Derived : public Base {}; + std::auto_ptr conversiontest08() + { return std::auto_ptr(new Derived); } + + void + test08() + { + std::auto_ptr ptr; + ptr = conversiontest08(); + } + + int main() { *************** main() *** 286,291 **** --- 301,307 ---- test05(); test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc gcc-3.1.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc *** gcc-3.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc Wed Mar 13 06:28:21 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc Tue Jun 4 19:03:49 2002 *************** void test03() *** 201,211 **** --- 201,225 ---- } } + // http://gcc.gnu.org/ml/libstdc++/2002-06/msg00025.html + void test04() + { + bool test = true; + + std::string str01("portofino"); + + std::string::reverse_iterator i1 = str01.rbegin(); + std::string::reverse_iterator i2 = str01.rend(); + std::string str02(i1, i2); + VERIFY( str02 == "onifotrop" ); + } + int main() { __set_testsuite_memlimit(); test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/21_strings/replace.cc gcc-3.1.1/libstdc++-v3/testsuite/21_strings/replace.cc *** gcc-3.1/libstdc++-v3/testsuite/21_strings/replace.cc Fri Apr 26 19:36:27 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/21_strings/replace.cc Sat May 18 20:52:51 2002 *************** test04() *** 154,164 **** --- 154,202 ---- VERIFY(str01 == "cyd"); } + // Some more tests for + // template + // string& replace(iterator it1, iterator it2, InputIter j1, InputIter j2) + void + test05() + { + bool test = true; + std::string str01 = "geogaddi"; + std::string str02; + + typedef std::string::iterator iterator; + typedef std::string::const_iterator const_iterator; + + iterator it1 = str01.begin(); + iterator it2 = str01.end(); + str02.replace(str02.begin(), str02.end(), it1, it2); + VERIFY(str02 == "geogaddi"); + + str02 = "boards"; + const_iterator c_it1 = str01.begin(); + const_iterator c_it2 = str01.end(); + str02.replace(str02.begin(), str02.end(), c_it1, c_it2); + VERIFY(str02 == "geogaddi"); + + str02 = "boards"; + const char* c_ptr1 = str01.c_str(); + const char* c_ptr2 = str01.c_str() + 8; + str02.replace(str02.begin(), str02.end(), c_ptr1, c_ptr2); + VERIFY(str02 == "geogaddi"); + + str02 = "boards"; + char* ptr1 = &*str01.begin(); + char* ptr2 = &*str01.end(); + str02.replace(str02.begin(), str02.end(), ptr1, ptr2); + VERIFY(str02 == "geogaddi"); + } + int main() { test01(); test02(); test03(); test04(); + test05(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc Fri Jun 28 08:22:42 2002 *************** void test02() *** 97,105 **** --- 97,121 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main () { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc Fri Feb 8 01:34:41 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc Fri Jun 28 08:22:42 2002 *************** void test02() *** 128,133 **** --- 128,148 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif /* !defined(_GLIBCPP_USE_WCHAR_T) */ *************** int main () *** 136,141 **** --- 151,157 ---- #if _GLIBCPP_USE_WCHAR_T test01(); test02(); + test03(); #endif return 0; diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc Sat Mar 16 23:00:03 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc Fri Jun 28 08:22:42 2002 *************** void test03() *** 161,170 **** --- 161,187 ---- VERIFY( l1 != l2 ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test03(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc Sat Mar 16 23:00:03 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc Fri Jun 28 08:22:42 2002 *************** void test03() *** 160,165 **** --- 160,181 ---- long l2 = col.hash(str2.c_str(), str2.c_str() + str2.size()); VERIFY( l1 != l2 ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test03(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 168,173 **** --- 184,190 ---- test01(); test02(); test03(); + test04(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,275 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + // XXX This test (test02) is not working for non-glibc locale models. + // { dg-do run { xfail *-*-* } } + + typedef char char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = "manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = "MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = "manilla, cebu, tandag philippines"; + const char_type c00 = 'S'; + const char_type c10 = 's'; + const char_type c20 = '9'; + const char_type c30 = ' '; + const char_type c40 = '!'; + const char_type c50 = 'F'; + const char_type c60 = 'f'; + const char_type c70 = 'X'; + const char_type c80 = 'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // bool is(mask m, char_type c) const; + VERIFY( gctype.is(std::ctype_base::space, c30) ); + VERIFY( gctype.is(std::ctype_base::upper, c00) ); + VERIFY( gctype.is(std::ctype_base::lower, c10) ); + VERIFY( gctype.is(std::ctype_base::digit, c20) ); + VERIFY( gctype.is(std::ctype_base::punct, c40) ); + VERIFY( gctype.is(std::ctype_base::alpha, c50) ); + VERIFY( gctype.is(std::ctype_base::alpha, c60) ); + VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); + VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); + VERIFY( gctype.is(std::ctype_base::alnum, c50) ); + VERIFY( gctype.is(std::ctype_base::alnum, c20) ); + VERIFY( gctype.is(std::ctype_base::graph, c40) ); + VERIFY( gctype.is(std::ctype_base::graph, c20) ); + + // const char* is(const char* low, const char* high, mask* vec) const + std::ctype_base::mask m00 = static_cast(0); + std::ctype_base::mask m01[3]; + std::ctype_base::mask m02[13]; + const char_type* cc0 = strlit00; + const char_type* cc1 = NULL; + const char_type* cc2 = NULL; + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc1 = gctype.is(cc0, cc0, m01); + VERIFY( cc1 == strlit00 ); + VERIFY( m01[0] == m00 ); + VERIFY( m01[1] == m00 ); + VERIFY( m01[2] == m00 ); + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc2 = gctype.is(cc0, cc0 + 3, m01); + VERIFY( cc2 == strlit00 + 3); + VERIFY( m01[0] != m00 ); + VERIFY( m01[1] != m00 ); + VERIFY( m01[2] != m00 ); + VERIFY( gctype.is(m01[0], cc0[0]) ); + VERIFY( gctype.is(m01[1], cc0[1]) ); + VERIFY( gctype.is(m01[2], cc0[2]) ); + + cc0 = strlit01; + cc1 = gctype.is(cc0, cc0 + 13, m02); + VERIFY( cc1 == strlit01 + 13); + VERIFY( m02[6] != m00 ); + VERIFY( m02[7] != m00 ); + VERIFY( m02[8] != m00 ); + VERIFY( m02[8] != m02[6] ); + VERIFY( m02[6] != m02[7] ); + VERIFY( static_cast(m02[6] & std::ctype_base::alnum) ); + VERIFY( static_cast(m02[6] & std::ctype_base::upper) ); + VERIFY( static_cast(m02[6] & std::ctype_base::alpha) ); + VERIFY( static_cast(m02[7] & std::ctype_base::punct) ); + VERIFY( static_cast(m02[8] & std::ctype_base::space) ); + VERIFY( gctype.is(m02[6], cc0[6]) ); + VERIFY( gctype.is(m02[7], cc0[7]) ); + VERIFY( gctype.is(m02[8], cc0[8]) ); + } + + // libstdc++/4456, libstdc++/4457, libstdc++/4458 + void test02() + { + using namespace std; + typedef ctype_base::mask mask; + typedef vector vector_type; + + bool test = true; + + // const int max = numeric_limits::max(); + const int max = 255; + const int ctype_mask_max = 10; + vector_type v_c(max); + vector_type v_de(max); + + // "C" + locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + for (int i = 0; i < max; ++i) + { + char_type c = static_cast(i); + mask mask_test = static_cast(0); + mask mask_is = static_cast(0); + for (int j = 0; j <= ctype_mask_max; ++j) + { + mask_test = static_cast(1 << j); + if (ctype_c.is(mask_test, c)) + mask_is |= mask_test; + } + v_c[i] = mask_is; + } + + // "de_DE" + locale loc_de("de_DE"); + const ctype& ctype_de = use_facet >(loc_de); + for (int i = 0; i < max; ++i) + { + char_type c = static_cast(i); + mask mask_test = static_cast(0); + mask mask_is = static_cast(0); + for (int j = 0; j <= ctype_mask_max; ++j) + { + mask_test = static_cast(1 << j); + if (ctype_de.is(mask_test, c)) + mask_is |= mask_test; + } + v_de[i] = mask_is; + } + + #if QUANNUM_VERBOSE_LYRICALLY_ADEPT_BAY_AREA_MCS_MODE + for (int i = 0; i < max; ++i) + { + char_type mark = v_c[i] == v_de[i] ? ' ' : '-'; + cout << i << ' ' << mark << ' ' << static_cast(i) << '\t' ; + cout << "v_c: " << setw(4) << v_c[i] << '\t'; + cout << "v_de: " << setw(4) << v_de[i] << endl; + } + cout << (v_c == v_de) << endl; + #endif + + VERIFY( v_c != v_de ); + } + + // Per Liboriussen + void test03() + { + bool test = true; + std::ctype_base::mask maskdata[256]; + for (int i = 0; i < 256; ++i) + maskdata[i] = std::ctype_base::alpha; + std::ctype* f = new std::ctype(maskdata); + std::locale global; + std::locale loc(global, f); + for (int i = 0; i < 256; ++i) + { + char_type ch = i; + VERIFY( std::isalpha(ch, loc) ); + } + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + test02(); + test03(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + + int main() + { + test01(); + test02(); + test03(); + test04(); + test05(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,197 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + // XXX This test (test02) is not working for non-glibc locale models. + // { dg-do run { xfail *-*-* } } + + #ifdef _GLIBCPP_USE_WCHAR_T + typedef wchar_t char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = L"manilla, cebu, tandag philippines"; + const char_type c00 = L'S'; + const char_type c10 = L's'; + const char_type c20 = L'9'; + const char_type c30 = L' '; + const char_type c40 = L'!'; + const char_type c50 = L'F'; + const char_type c60 = L'f'; + const char_type c70 = L'X'; + const char_type c80 = L'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // bool is(mask m, char_type c) const; + VERIFY( gctype.is(std::ctype_base::space, c30) ); + VERIFY( gctype.is(std::ctype_base::upper, c00) ); + VERIFY( gctype.is(std::ctype_base::lower, c10) ); + VERIFY( gctype.is(std::ctype_base::digit, c20) ); + VERIFY( gctype.is(std::ctype_base::punct, c40) ); + VERIFY( gctype.is(std::ctype_base::alpha, c50) ); + VERIFY( gctype.is(std::ctype_base::alpha, c60) ); + VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); + VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); + VERIFY( gctype.is(std::ctype_base::alnum, c50) ); + VERIFY( gctype.is(std::ctype_base::alnum, c20) ); + VERIFY( gctype.is(std::ctype_base::graph, c40) ); + VERIFY( gctype.is(std::ctype_base::graph, c20) ); + + // const char* is(const char* low, const char* high, mask* vec) const + std::ctype_base::mask m00 = static_cast(0); + std::ctype_base::mask m01[3]; + std::ctype_base::mask m02[13]; + const char_type* cc0 = strlit00; + const char_type* cc1 = NULL; + const char_type* cc2 = NULL; + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc1 = gctype.is(cc0, cc0, m01); + VERIFY( cc1 == strlit00 ); + VERIFY( m01[0] == m00 ); + VERIFY( m01[1] == m00 ); + VERIFY( m01[2] == m00 ); + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc2 = gctype.is(cc0, cc0 + 3, m01); + VERIFY( cc2 == strlit00 + 3); + #if 0 + VERIFY( m01[0] != m00 ); + VERIFY( m01[1] != m00 ); + VERIFY( m01[2] != m00 ); + VERIFY( gctype.is(m01[0], cc0[0]) ); + VERIFY( gctype.is(m01[1], cc0[1]) ); + VERIFY( gctype.is(m01[2], cc0[2]) ); + #endif + + cc0 = strlit01; + cc1 = gctype.is(cc0, cc0 + 13, m02); + VERIFY( cc1 == strlit01 + 13); + #if 0 + VERIFY( m02[6] != m00 ); + VERIFY( m02[7] != m00 ); + VERIFY( m02[8] != m00 ); + VERIFY( m02[8] != m02[6] ); + VERIFY( m02[6] != m02[7] ); + VERIFY( static_cast(m02[6] & std::ctype_base::alnum) ); + VERIFY( static_cast(m02[6] & std::ctype_base::upper) ); + VERIFY( static_cast(m02[6] & std::ctype_base::alpha) ); + VERIFY( static_cast(m02[7] & std::ctype_base::punct) ); + VERIFY( static_cast(m02[8] & std::ctype_base::space) ); + VERIFY( gctype.is(m02[6], cc0[6]) ); + VERIFY( gctype.is(m02[7], cc0[7]) ); + VERIFY( gctype.is(m02[8], cc0[8]) ); + #endif + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + test04(); + test05(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc Wed Mar 13 06:45:31 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc Fri May 24 16:15:27 2002 *************** *** 30,239 **** // 22.2.1.3.2 ctype members #include - #include #include - // XXX This test (test02) is not working for non-glibc locale models. - // { dg-do run { xfail *-*-* } } - - class gnu_ctype: public std::ctype { }; - - void test01() - { - bool test = true; - const char strlit00[] = "manilla, cebu, tandag PHILIPPINES"; - const char strlit01[] = "MANILLA, CEBU, TANDAG PHILIPPINES"; - const char strlit02[] = "manilla, cebu, tandag philippines"; - const char c00 = 'S'; - const char c10 = 's'; - const char c20 = '9'; - const char c30 = ' '; - const char c40 = '!'; - const char c50 = 'F'; - const char c60 = 'f'; - const char c70 = 'X'; - const char c80 = 'x'; - - gnu_ctype gctype; - char c100; - int len = std::char_traits::length(strlit00); - char c_array[len + 1]; - - // sanity check ctype_base::mask members - int i01 = std::ctype_base::space; - int i02 = std::ctype_base::upper; - int i03 = std::ctype_base::lower; - int i04 = std::ctype_base::digit; - int i05 = std::ctype_base::punct; - int i06 = std::ctype_base::alpha; - int i07 = std::ctype_base::xdigit; - int i08 = std::ctype_base::alnum; - int i09 = std::ctype_base::graph; - int i10 = std::ctype_base::print; - int i11 = std::ctype_base::cntrl; - int i12 = sizeof(std::ctype_base::mask); - VERIFY ( i01 != i02); - VERIFY ( i02 != i03); - VERIFY ( i03 != i04); - VERIFY ( i04 != i05); - VERIFY ( i05 != i06); - VERIFY ( i06 != i07); - VERIFY ( i07 != i08); - VERIFY ( i08 != i09); - VERIFY ( i09 != i10); - VERIFY ( i10 != i11); - VERIFY ( i11 != i01); - - // bool is(mask m, char c) const; - VERIFY( gctype.is(std::ctype_base::space, c30) ); - VERIFY( gctype.is(std::ctype_base::upper, c00) ); - VERIFY( gctype.is(std::ctype_base::lower, c10) ); - VERIFY( gctype.is(std::ctype_base::digit, c20) ); - VERIFY( gctype.is(std::ctype_base::punct, c40) ); - VERIFY( gctype.is(std::ctype_base::alpha, c50) ); - VERIFY( gctype.is(std::ctype_base::alpha, c60) ); - VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); - VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); - VERIFY( gctype.is(std::ctype_base::alnum, c50) ); - VERIFY( gctype.is(std::ctype_base::alnum, c20) ); - VERIFY( gctype.is(std::ctype_base::graph, c40) ); - VERIFY( gctype.is(std::ctype_base::graph, c20) ); - - // const char* is(const char* low, const char* high, mask* vec) const - std::ctype_base::mask m00 = static_cast(0); - std::ctype_base::mask m01[3]; - std::ctype_base::mask m02[13]; - const char* cc0 = strlit00; - const char* cc1 = NULL; - const char* cc2 = NULL; - - cc0 = strlit00; - m01[0] = m00; - m01[1] = m00; - m01[2] = m00; - cc1 = gctype.is(cc0, cc0, m01); - VERIFY( cc1 == strlit00 ); - VERIFY( m01[0] == m00 ); - VERIFY( m01[1] == m00 ); - VERIFY( m01[2] == m00 ); - - cc0 = strlit00; - m01[0] = m00; - m01[1] = m00; - m01[2] = m00; - cc2 = gctype.is(cc0, cc0 + 3, m01); - VERIFY( cc2 == strlit00 + 3); - VERIFY( m01[0] != m00 ); - VERIFY( m01[1] != m00 ); - VERIFY( m01[2] != m00 ); - VERIFY( gctype.is(m01[0], cc0[0]) ); - VERIFY( gctype.is(m01[1], cc0[1]) ); - VERIFY( gctype.is(m01[2], cc0[2]) ); - - cc0 = strlit01; - cc1 = gctype.is(cc0, cc0 + 13, m02); - VERIFY( cc1 == strlit01 + 13); - VERIFY( m02[6] != m00 ); - VERIFY( m02[7] != m00 ); - VERIFY( m02[8] != m00 ); - VERIFY( m02[8] != m02[6] ); - VERIFY( m02[6] != m02[7] ); - VERIFY( static_cast(m02[6] & std::ctype_base::alnum) ); - VERIFY( static_cast(m02[6] & std::ctype_base::upper) ); - VERIFY( static_cast(m02[6] & std::ctype_base::alpha) ); - VERIFY( static_cast(m02[7] & std::ctype_base::punct) ); - VERIFY( static_cast(m02[8] & std::ctype_base::space) ); - VERIFY( gctype.is(m02[6], cc0[6]) ); - VERIFY( gctype.is(m02[7], cc0[7]) ); - VERIFY( gctype.is(m02[8], cc0[8]) ); - - // char toupper(char c) const - c100 = gctype.toupper(c10); - VERIFY( c100 == c00 ); - - // char tolower(char c) const - c100 = gctype.tolower(c00); - VERIFY( c100 == c10 ); - - // char toupper(char* low, const char* hi) const - std::char_traits::copy(c_array, strlit02, len + 1); - gctype.toupper(c_array, c_array + len); - VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); - - // char tolower(char* low, const char* hi) const - std::char_traits::copy(c_array, strlit01, len + 1); - gctype.tolower(c_array, c_array + len); - VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); - - - #ifdef DEBUG_ASSERT - assert(test); - #endif - } - - // libstdc++/4456, libstdc++/4457, libstdc++/4458 - void test02() - { - using namespace std; - typedef ctype_base::mask mask; - typedef vector vector_type; - - bool test = true; - - // const int max = numeric_limits::max(); - const int max = 255; - const int ctype_mask_max = 10; - vector_type v_c(max); - vector_type v_de(max); - - // "C" - locale loc_c = locale::classic(); - const ctype& ctype_c = use_facet >(loc_c); - for (int i = 0; i < max; ++i) - { - char c = static_cast(i); - mask mask_test = static_cast(0); - mask mask_is = static_cast(0); - for (int j = 0; j <= ctype_mask_max; ++j) - { - mask_test = static_cast(1 << j); - if (ctype_c.is(mask_test, c)) - mask_is |= mask_test; - } - v_c[i] = mask_is; - } - - // "de_DE" - locale loc_de("de_DE"); - const ctype& ctype_de = use_facet >(loc_de); - for (int i = 0; i < max; ++i) - { - char c = static_cast(i); - mask mask_test = static_cast(0); - mask mask_is = static_cast(0); - for (int j = 0; j <= ctype_mask_max; ++j) - { - mask_test = static_cast(1 << j); - if (ctype_de.is(mask_test, c)) - mask_is |= mask_test; - } - v_de[i] = mask_is; - } - - #if QUANNUM_VERBOSE_LYRICALLY_ADEPT_BAY_AREA_MCS_MODE - for (int i = 0; i < max; ++i) - { - char mark = v_c[i] == v_de[i] ? ' ' : '-'; - cout << i << ' ' << mark << ' ' << static_cast(i) << '\t' ; - cout << "v_c: " << setw(4) << v_c[i] << '\t'; - cout << "v_de: " << setw(4) << v_de[i] << endl; - } - cout << (v_c == v_de) << endl; - #endif - - VERIFY( v_c != v_de ); - } - // Dietmar Kühl via Peter Schmid class comma_ctype: public std::ctype { --- 30,37 ---- *************** public: *** 243,290 **** { classic_table(); } }; - // Per Liboriussen - void test03() - { - bool test = true; - std::ctype_base::mask maskdata[256]; - for (int i = 0; i < 256; ++i) - maskdata[i] = std::ctype_base::alpha; - std::ctype* f = new std::ctype(maskdata); - std::locale global; - std::locale loc(global, f); - for (int i = 0; i < 256; ++i) - { - char ch = i; - VERIFY( std::isalpha(ch, loc) ); - } - } - - // libstdc++/5280 - void test04() - { - #ifdef _GLIBCPP_HAVE_SETENV - // Set the global locale to non-"C". - std::locale loc_de("de_DE"); - std::locale::global(loc_de); - - // Set LANG environment variable to de_DE. - const char* oldLANG = getenv("LANG"); - if (!setenv("LANG", "de_DE", 1)) - { - test01(); - test02(); - test03(); - setenv("LANG", oldLANG ? oldLANG : "", 1); - } - #endif - } - int main() { - test01(); - test02(); - test03(); - test04(); return 0; } --- 41,47 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc Fri May 24 16:15:27 2002 *************** *** 30,118 **** // 22.2.1.3.2 ctype members #include - // NB: Don't include any other headers in this file. #include #if _GLIBCPP_USE_WCHAR_T - class gnu_ctype: public std::ctype {}; - void test01() { ! bool test = true; ! typedef wchar_t char_type; ! ! const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES"; ! const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES"; ! const char_type strlit02[] = L"manilla, cebu, tandag philippines"; ! const char_type c00 = L'S'; ! const char_type c10 = L's'; ! const char_type c20 = L'9'; ! const char_type c30 = L' '; ! const char_type c40 = L'!'; ! const char_type c50 = L'F'; ! const char_type c60 = L'f'; ! const char_type c70 = L'X'; ! const char_type c80 = L'x'; ! ! gnu_ctype gctype; ! char_type c100; ! int len = std::char_traits::length(strlit00); ! char_type c_array[len + 1]; ! ! // bool is(mask m, char_type c) const; ! VERIFY( gctype.is(std::ctype_base::space, c30) ); ! VERIFY( gctype.is(std::ctype_base::upper, c00) ); ! VERIFY( gctype.is(std::ctype_base::lower, c10) ); ! VERIFY( gctype.is(std::ctype_base::digit, c20) ); ! VERIFY( gctype.is(std::ctype_base::punct, c40) ); ! VERIFY( gctype.is(std::ctype_base::alpha, c50) ); ! VERIFY( gctype.is(std::ctype_base::alpha, c60) ); ! VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); ! VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); ! VERIFY( gctype.is(std::ctype_base::alnum, c50) ); ! VERIFY( gctype.is(std::ctype_base::alnum, c20) ); ! VERIFY( gctype.is(std::ctype_base::graph, c40) ); ! VERIFY( gctype.is(std::ctype_base::graph, c20) ); ! ! // char_type toupper(char_type c) const ! c100 = gctype.toupper(c10); ! VERIFY( c100 == c00 ); ! ! // char_type tolower(char_type c) const ! c100 = gctype.tolower(c00); ! VERIFY( c100 == c10 ); ! ! // char_type toupper(char_type* low, const char_type* hi) const ! std::char_traits::copy(c_array, strlit02, len + 1); ! gctype.toupper(c_array, c_array + len); ! VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); ! ! // char_type tolower(char_type* low, const char_type* hi) const ! std::char_traits::copy(c_array, strlit01, len + 1); ! gctype.tolower(c_array, c_array + len); ! VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); ! ! #ifdef DEBUG_ASSERT ! assert(test); ! #endif ! } ! ! // libstdc++/5280 ! void test03() ! { ! #ifdef _GLIBCPP_HAVE_SETENV ! // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); ! std::locale::global(loc_de); ! ! // Set LANG environment variable to de_DE. ! const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) ! { ! test01(); ! setenv("LANG", oldLANG ? oldLANG : "", 1); ! } ! #endif } #endif /* !defined(_GLIBCPP_USE_WCHAR_T) */ --- 30,41 ---- // 22.2.1.3.2 ctype members #include #include #if _GLIBCPP_USE_WCHAR_T void test01() { ! // Nothing, right now. } #endif /* !defined(_GLIBCPP_USE_WCHAR_T) */ *************** int main() *** 120,126 **** { #if _GLIBCPP_USE_WCHAR_T test01(); - test03(); #endif return 0; --- 43,48 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc Fri May 24 16:15:27 2002 *************** *** 0 **** --- 1,103 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + // libstdc++/6701 + void test01() + { + using namespace std; + typedef char wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide("wibble"); + basic_string narrow("wibble"); + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + + void test02() + { + using namespace std; + typedef char wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + // Construct non-asci string. + basic_string wide("wibble"); + wide += wide_type(1240); + wide += "kibble"; + basic_string narrow("wibble"); + narrow += char(1240); + narrow += "kibble"; + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + + int main() + { + test01(); + test02(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc Mon May 27 11:50:17 2002 *************** *** 0 **** --- 1,107 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + #ifdef _GLIBCPP_USE_WCHAR_T + // libstdc++/6701 + void test01() + { + using namespace std; + typedef wchar_t wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide(L"wibble"); + basic_string narrow("wibble"); + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + + void test02() + { + using namespace std; + typedef wchar_t wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + // Construct non-asci string. + basic_string wide(L"wibble"); + wide += wide_type(1240); + wide += L"kibble"; + basic_string narrow("wibble"); + narrow += dfault; + narrow += "kibble"; + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + test02(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc Sat May 18 14:42:49 2002 *************** *** 0 **** --- 1,348 ---- + // 2002-05-10 ghazi + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // { dg-do run } + + #include + #include + + typedef char char_type; + typedef std::char_traits traits_type; + class gnu_ctype: public std::ctype { }; + + // These two macros take a ctype mask, a string and a pointer within + // the string that the scan function should return, usually either the + // first or last character if the string contains identical values as + // below. + #define VERIFY_SCAN_IS(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_is((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + #define VERIFY_SCAN_NOT(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_not((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + + // Sanity check scan_is() and scan_not(). + void test01() + { + bool test = true; + + const char_type *const ca = "aaaaa"; + const char_type *const cz = "zzzzz"; + const char_type *const cA = "AAAAA"; + const char_type *const cZ = "ZZZZZ"; + const char_type *const c0 = "00000"; + const char_type *const c9 = "99999"; + const char_type *const cs = " "; + const char_type *const xf = "fffff"; + const char_type *const xF = "FFFFF"; + const char_type *const p1 = "!!!!!"; + const char_type *const p2 = "/////"; + + gnu_ctype gctype; + + // 'a' + VERIFY_SCAN_IS (std::ctype_base::alnum, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::alpha, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::cntrl, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::digit, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::graph, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::lower, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::print, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::punct, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::space, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::upper, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, ca, ca); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::digit, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::graph, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::print, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::space, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::upper, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, ca, ca+5); + + // 'z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::alpha, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::lower, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::print, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::punct, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::space, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cz, cz+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::digit, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::graph, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::print, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::space, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::upper, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cz, cz); + + // 'A' + VERIFY_SCAN_IS (std::ctype_base::alnum, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::alpha, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::lower, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::print, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::punct, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::space, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cA, cA); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::digit, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::graph, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::print, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::space, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::upper, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cA, cA+5); + + // 'Z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::alpha, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::lower, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::print, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::punct, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::space, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cZ, cZ+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::digit, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::graph, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::print, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::space, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::upper, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cZ, cZ); + + // '0' + VERIFY_SCAN_IS (std::ctype_base::alnum, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::alpha, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::graph, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::lower, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::print, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::punct, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::space, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c0, c0); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::digit, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::print, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::space, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::upper, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c0, c0+5); + + // '9' + VERIFY_SCAN_IS (std::ctype_base::alnum, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::alpha, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::graph, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::lower, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::print, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::punct, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::space, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c9, c9); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::digit, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::print, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::space, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::upper, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c9, c9+5); + + // ' ' + VERIFY_SCAN_IS (std::ctype_base::alnum, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::lower, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::print, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::punct, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::space, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::upper, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cs, cs+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::digit, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::graph, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::lower, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::print, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::space, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::upper, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cs, cs); + + // 'f' + VERIFY_SCAN_IS (std::ctype_base::alnum, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::alpha, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::lower, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::print, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::punct, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::space, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xf, xf); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::digit, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::graph, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::print, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::space, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::upper, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xf, xf+5); + + // 'F' + VERIFY_SCAN_IS (std::ctype_base::alnum, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::alpha, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::lower, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::print, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::punct, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::space, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xF, xF); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::digit, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::graph, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::print, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::space, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::upper, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xF, xF+5); + + // '!' + VERIFY_SCAN_IS (std::ctype_base::alnum, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::lower, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::print, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::punct, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::space, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p1, p1+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::digit, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::lower, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::print, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::upper, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p1, p1); + + // '/' + VERIFY_SCAN_IS (std::ctype_base::alnum, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::lower, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::print, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::punct, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::space, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p2, p2+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::digit, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::graph, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::print, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::upper, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p2, p2); + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc Fri May 24 16:15:27 2002 *************** *** 0 **** --- 1,352 ---- + // 2002-05-10 ghazi + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // { dg-do run } + + #include + #include + + typedef wchar_t char_type; + typedef std::char_traits traits_type; + class gnu_ctype: public std::ctype { }; + + // These two macros take a ctype mask, a string and a pointer within + // the string that the scan function should return, usually either the + // first or last character if the string contains identical values as + // below. + #define VERIFY_SCAN_IS(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_is((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + #define VERIFY_SCAN_NOT(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_not((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + + #ifdef _GLIBCPP_USE_WCHAR_T + // Sanity check scan_is() and scan_not(). + void test01() + { + bool test = true; + + const char_type *const ca = L"aaaaa"; + const char_type *const cz = L"zzzzz"; + const char_type *const cA = L"AAAAA"; + const char_type *const cZ = L"ZZZZZ"; + const char_type *const c0 = L"00000"; + const char_type *const c9 = L"99999"; + const char_type *const cs = L" "; + const char_type *const xf = L"fffff"; + const char_type *const xF = L"FFFFF"; + const char_type *const p1 = L"!!!!!"; + const char_type *const p2 = L"/////"; + + gnu_ctype gctype; + + // 'a' + VERIFY_SCAN_IS (std::ctype_base::alnum, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::alpha, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::cntrl, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::digit, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::graph, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::lower, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::print, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::punct, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::space, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::upper, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, ca, ca); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::digit, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::graph, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::print, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::space, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::upper, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, ca, ca+5); + + // 'z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::alpha, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::lower, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::print, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::punct, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::space, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cz, cz+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::digit, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::graph, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::print, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::space, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::upper, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cz, cz); + + // 'A' + VERIFY_SCAN_IS (std::ctype_base::alnum, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::alpha, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::lower, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::print, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::punct, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::space, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cA, cA); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::digit, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::graph, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::print, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::space, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::upper, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cA, cA+5); + + // 'Z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::alpha, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::lower, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::print, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::punct, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::space, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cZ, cZ+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::digit, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::graph, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::print, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::space, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::upper, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cZ, cZ); + + // '0' + VERIFY_SCAN_IS (std::ctype_base::alnum, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::alpha, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::graph, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::lower, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::print, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::punct, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::space, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c0, c0); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::digit, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::print, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::space, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::upper, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c0, c0+5); + + // '9' + VERIFY_SCAN_IS (std::ctype_base::alnum, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::alpha, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::graph, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::lower, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::print, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::punct, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::space, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c9, c9); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::digit, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::print, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::space, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::upper, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c9, c9+5); + + // ' ' + VERIFY_SCAN_IS (std::ctype_base::alnum, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::lower, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::print, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::punct, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::space, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::upper, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cs, cs+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::digit, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::graph, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::lower, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::print, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::space, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::upper, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cs, cs); + + // 'f' + VERIFY_SCAN_IS (std::ctype_base::alnum, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::alpha, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::lower, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::print, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::punct, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::space, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xf, xf); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::digit, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::graph, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::print, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::space, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::upper, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xf, xf+5); + + // 'F' + VERIFY_SCAN_IS (std::ctype_base::alnum, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::alpha, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::lower, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::print, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::punct, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::space, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xF, xF); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::digit, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::graph, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::print, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::space, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::upper, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xF, xF+5); + + // '!' + VERIFY_SCAN_IS (std::ctype_base::alnum, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::lower, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::print, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::punct, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::space, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p1, p1+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::digit, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::lower, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::print, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::upper, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p1, p1); + + // '/' + VERIFY_SCAN_IS (std::ctype_base::alnum, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::lower, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::print, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::punct, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::space, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p2, p2+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::digit, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::graph, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::print, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::upper, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p2, p2); + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,140 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + + typedef char char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = "manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = "MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = "manilla, cebu, tandag philippines"; + const char_type c00 = 'S'; + const char_type c10 = 's'; + const char_type c20 = '9'; + const char_type c30 = ' '; + const char_type c40 = '!'; + const char_type c50 = 'F'; + const char_type c60 = 'f'; + const char_type c70 = 'X'; + const char_type c80 = 'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // char_type toupper(char_type c) const + c100 = gctype.toupper(c10); + VERIFY( c100 == c00 ); + + // char_type tolower(char_type c) const + c100 = gctype.tolower(c00); + VERIFY( c100 == c10 ); + + // char_type toupper(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit02, len + 1); + gctype.toupper(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); + + // char_type tolower(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit01, len + 1); + gctype.tolower(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + + int main() + { + test01(); + test04(); + test05(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,144 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + + #ifdef _GLIBCPP_USE_WCHAR_T + typedef wchar_t char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = L"manilla, cebu, tandag philippines"; + const char_type c00 = L'S'; + const char_type c10 = L's'; + const char_type c20 = L'9'; + const char_type c30 = L' '; + const char_type c40 = L'!'; + const char_type c50 = L'F'; + const char_type c60 = L'f'; + const char_type c70 = L'X'; + const char_type c80 = L'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // char_type toupper(char_type c) const + c100 = gctype.toupper(c10); + VERIFY( c100 == c00 ); + + // char_type tolower(char_type c) const + c100 = gctype.tolower(c00); + VERIFY( c100 == c10 ); + + // char_type toupper(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit02, len + 1); + gctype.toupper(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); + + // char_type tolower(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit01, len + 1); + gctype.tolower(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + test04(); + test05(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc Fri May 24 16:15:27 2002 *************** *** 0 **** --- 1,67 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + void test01() + { + using namespace std; + typedef char wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide("drusilla, louvinia, bayard"); + basic_string narrow("drusilla, louvinia, bayard"); + vector wide_chars(narrow.length() + 1); + + // widen(char c) const + for (int i = 0; i < narrow.length(); ++i) + { + char c = ctype_c.widen(narrow[i]); + VERIFY( c == wide[i] ); + } + + // widen(const char* low, const char* high, charT* dest) const + ctype_c.widen(&narrow[0], &narrow[narrow.length()], &wide_chars[0]); + for (int i = 0; i < narrow.length(); ++i) + VERIFY( wide_chars[i] == wide[i] ); + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc Mon May 27 11:50:17 2002 *************** *** 0 **** --- 1,71 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + #ifdef _GLIBCPP_USE_WCHAR_T + void test01() + { + using namespace std; + typedef wchar_t wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide(L"drusilla, louvinia, bayard"); + basic_string narrow("drusilla, louvinia, bayard"); + vector wide_chars(narrow.length() + 1); + + // widen(char c) const + for (int i = 0; i < narrow.length(); ++i) + { + char c = ctype_c.widen(narrow[i]); + VERIFY( c == wide[i] ); + } + + // widen(const char* low, const char* high, charT* dest) const + ctype_c.widen(&narrow[0], &narrow[narrow.length()], &wide_chars[0]); + for (int i = 0; i < narrow.length(); ++i) + VERIFY( wide_chars[i] == wide[i] ); + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc Fri Jun 28 08:22:42 2002 *************** void test02() *** 99,107 **** --- 99,123 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc Wed Feb 20 00:58:15 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc Fri Jun 28 08:22:42 2002 *************** void test01() *** 41,47 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 41,47 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 122,128 **** // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str("7.200.000.000,00 DEM "); iterator_type is_it06(iss); string result6; ios_base::iostate err06 = ios_base::goodbit; --- 122,128 ---- // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str("7.200.000.000,00 EUR "); iterator_type is_it06(iss); string result6; ios_base::iostate err06 = ios_base::goodbit; *************** void test01() *** 130,136 **** VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str("7.200.000.000,00 DEM "); // Extra space. iterator_type is_it07(iss); string result7; ios_base::iostate err07 = ios_base::goodbit; --- 130,136 ---- VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str("7.200.000.000,00 EUR "); // Extra space. iterator_type is_it07(iss); string result7; ios_base::iostate err07 = ios_base::goodbit; *************** void test01() *** 138,144 **** VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str("7.200.000.000,00 DM"); iterator_type is_it08(iss); string result8; ios_base::iostate err08 = ios_base::goodbit; --- 138,144 ---- VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str("7.200.000.000,00 \244"); iterator_type is_it08(iss); string result8; ios_base::iostate err08 = ios_base::goodbit; *************** void test02() *** 216,222 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 216,222 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 236,248 **** const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; iterator_type end; istringstream iss; --- 236,248 ---- const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; iterator_type end; istringstream iss; *************** void test04() *** 324,335 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 324,335 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test07() *** 546,551 **** --- 546,571 ---- VERIFY( val_b_ns == "123456" ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + test07(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 555,559 **** --- 575,580 ---- test05(); test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc Wed Feb 20 00:58:16 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 42,48 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 42,48 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 123,129 **** // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str(L"7.200.000.000,00 DEM "); iterator_type is_it06(iss); wstring result6; ios_base::iostate err06 = ios_base::goodbit; --- 123,129 ---- // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str(L"7.200.000.000,00 EUR "); iterator_type is_it06(iss); wstring result6; ios_base::iostate err06 = ios_base::goodbit; *************** void test01() *** 131,137 **** VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str(L"7.200.000.000,00 DEM "); // Extra space. iterator_type is_it07(iss); wstring result7; ios_base::iostate err07 = ios_base::goodbit; --- 131,137 ---- VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str(L"7.200.000.000,00 EUR "); // Extra space. iterator_type is_it07(iss); wstring result7; ios_base::iostate err07 = ios_base::goodbit; *************** void test01() *** 139,145 **** VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str(L"7.200.000.000,00 DM"); iterator_type is_it08(iss); wstring result8; ios_base::iostate err08 = ios_base::goodbit; --- 139,145 ---- VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str(L"7.200.000.000,00 \x20ac"); iterator_type is_it08(iss); wstring result8; ios_base::iostate err08 = ios_base::goodbit; *************** void test02() *** 218,224 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 218,224 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 238,250 **** const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; iterator_type end; wistringstream iss; --- 238,250 ---- const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; iterator_type end; wistringstream iss; *************** void test04() *** 326,337 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 326,337 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test07() *** 546,551 **** --- 546,571 ---- mg_b.get(ibeg_b_ns,iend_b_ns,intl,fmt_b_ns,err,val_b_ns); VERIFY( val_b_ns == L"123456" ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + test07(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 558,563 **** --- 578,584 ---- test05(); test06(); test07(); + test08(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc Wed Mar 20 20:07:53 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 41,47 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 41,47 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 97,108 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 97,108 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 \244"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test02() *** 175,181 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 175,181 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 195,207 **** const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; ostringstream oss; --- 195,207 ---- const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; ostringstream oss; *************** void test02() *** 228,239 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 228,239 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 \244"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test03() *** 256,262 **** const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const string str("1943 Janis Joplin"); ! const long double ld = 1943; const string x(str.size(), 'x'); // have to have allocated string! string res; --- 256,262 ---- const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const string str("1943 Janis Joplin"); ! const long double ld = 1943.0; const string x(str.size(), 'x'); // have to have allocated string! string res; *************** void test04() *** 288,299 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 288,299 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test06() *** 357,363 **** bool intl = false; ! long double val = 1e50L; const money_put& mp = use_facet >(loc); --- 357,363 ---- bool intl = false; ! long double val = 1.0e50L; const money_put& mp = use_facet >(loc); *************** void test06() *** 368,373 **** --- 368,392 ---- VERIFY( fmt ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test07() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 376,380 **** --- 395,400 ---- test04(); test05(); test06(); + test07(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc Wed Mar 20 20:07:54 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 42,48 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 42,48 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 97,108 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 97,108 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 \x20ac"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test02() *** 175,181 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 175,181 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 195,207 **** const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; wostringstream oss; --- 195,207 ---- const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; wostringstream oss; *************** void test02() *** 228,239 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 228,239 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 \x20ac"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test03() *** 256,262 **** const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const wstring str(L"1943 Janis Joplin"); ! const long double ld = 1943; const wstring x(str.size(), 'x'); // have to have allocated string! wstring res; --- 256,262 ---- const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const wstring str(L"1943 Janis Joplin"); ! const long double ld = 1943.0; const wstring x(str.size(), 'x'); // have to have allocated string! wstring res; *************** void test04() *** 288,299 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 288,299 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test06() *** 357,363 **** bool intl = false; ! long double val = 1e50L; const money_put& mp = use_facet >(loc); --- 357,363 ---- bool intl = false; ! long double val = 1.0e50L; const money_put& mp = use_facet >(loc); *************** void test06() *** 367,372 **** --- 367,391 ---- mp.put(out,intl,fmt,'*',val); VERIFY( fmt ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test07() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 378,383 **** --- 397,403 ---- test04(); test05(); test06(); + test07(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 123,131 **** --- 123,147 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 123,128 **** --- 123,143 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 130,135 **** --- 145,151 ---- #ifdef _GLIBCPP_USE_WCHAR_T test01(); test02(); + test03(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc Fri Apr 19 07:59:21 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 222,229 **** #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; long long ll; iss.str("9.223.372.036.854.775.807"); --- 222,229 ---- #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; long long ll; iss.str("9.223.372.036.854.775.807"); *************** void test02() *** 274,280 **** VERIFY( rem1 == " Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); string rem2(end2, str.end()); --- 274,280 ---- VERIFY( rem1 == " Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0.0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); string rem2(end2, str.end()); *************** void test05() *** 413,418 **** --- 413,436 ---- VERIFY( d == 1234.5 ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test06() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test04(); + test05(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 420,425 **** --- 438,444 ---- test03(); test04(); test05(); + test06(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc Fri Apr 19 07:59:22 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 223,230 **** #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; long long ll; iss.str(L"9.223.372.036.854.775.807"); --- 223,230 ---- #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; long long ll; iss.str(L"9.223.372.036.854.775.807"); *************** void test02() *** 275,281 **** VERIFY( rem1 == L" Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); wstring rem2(end2, str.end()); --- 275,281 ---- VERIFY( rem1 == L" Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0.0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); wstring rem2(end2, str.end()); *************** void test05() *** 414,419 **** --- 414,437 ---- VERIFY( err == goodbit ); VERIFY( d == 1234.5 ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test06() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test04(); + test05(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 424,429 **** --- 442,448 ---- test03(); test04(); test05(); + test06(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 208,215 **** VERIFY( result1.find('x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; oss.str(empty); oss.clear(); --- 208,215 ---- VERIFY( result1.find('x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; oss.str(empty); oss.clear(); *************** void test02() *** 257,263 **** VERIFY( sanity1 == "1798" ); // 02 put(long double) ! const long double ld = 1798; res = x; iter_type ret2 = tp.put(res.begin(), oss, ' ', ld); string sanity2(res.begin(), ret2); --- 257,263 ---- VERIFY( sanity1 == "1798" ); // 02 put(long double) ! const long double ld = 1798.0; res = x; iter_type ret2 = tp.put(res.begin(), oss, ' ', ld); string sanity2(res.begin(), ret2); *************** void test03() *** 310,320 **** --- 310,337 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 209,216 **** VERIFY( result1.find(L'x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; oss.str(empty); oss.clear(); --- 209,216 ---- VERIFY( result1.find(L'x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; oss.str(empty); oss.clear(); *************** void test02() *** 257,263 **** VERIFY( sanity1 == L"1798" ); // 02 put(long double) ! const long double ld = 1798; res = x; iter_type ret2 = tp.put(res.begin(), oss, L' ', ld); wstring sanity2(res.begin(), ret2); --- 257,263 ---- VERIFY( sanity1 == L"1798" ); // 02 put(long double) ! const long double ld = 1798.0; res = x; iter_type ret2 = tp.put(res.begin(), oss, L' ', ld); wstring sanity2(res.begin(), ret2); *************** void test03() *** 309,314 **** --- 309,330 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 317,322 **** --- 333,339 ---- test01(); test02(); test03(); + test04(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 101,109 **** --- 101,125 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 98,103 **** --- 98,118 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 105,110 **** --- 120,126 ---- #ifdef _GLIBCPP_USE_WCHAR_T test01(); test02(); + test03(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test07() *** 699,704 **** --- 699,724 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test04(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 710,714 **** --- 730,735 ---- test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test07() *** 698,703 **** --- 698,723 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test04(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 712,717 **** --- 732,738 ---- test06(); test07(); + test08(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test03() *** 250,259 **** --- 250,276 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test03() *** 251,256 **** --- 251,272 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 259,264 **** --- 275,281 ---- test01(); test02(); test03(); + test04(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc gcc-3.1.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc *** gcc-3.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc Wed Feb 13 18:29:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc Fri May 24 18:17:10 2002 *************** bool test01(void) *** 81,89 **** --- 81,126 ---- return test; } + // boundary condition: a zero-sized set + // libstdc++/6282 + bool test02(void) + { + using std::char_traits; using std::allocator; + bool test = true; + + std::bitset<0> z1; + VERIFY( z1.any() == false ); + + std::bitset<0> z2(12345); + VERIFY( z2.any() == false ); + + std::bitset<0> z3(std::string("10101010101")); + VERIFY( z3.any() == false ); + + try { + z1.set(0); + VERIFY( false ); + } + catch(std::out_of_range& fail) { + VERIFY( true ); + } + catch(...) { + VERIFY( false ); + } + + VERIFY( z1.to_ulong() == 0 ); + VERIFY( ( z1.to_string,allocator >().empty() ) ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + return test; + } + int main() { test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc gcc-3.1.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc *** gcc-3.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc Fri Mar 8 22:25:45 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc Sat Jun 1 00:51:22 2002 *************** void test01() *** 29,36 **** --- 29,60 ---- ++i; } + // libstdc++/6886 + void test02() + { + typedef std::vector bvec; + int i, num = 0; + bvec v; + + v.resize(66); + + for (i = 0 ; i < 66 ; ++i) + v[i] = 0; + + v[1] = 1; + v[33] = 1; + v[49] = 1; + v[65] = 1; + + for (bvec::iterator j = v.begin() ; j != v.end() ; j++) + if (bool(*j)) ++num; + + VERIFY( num == 4 ); + } + int main() { test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc gcc-3.1.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc *** gcc-3.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc Thu May 24 18:38:20 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc Fri Jun 28 08:22:44 2002 *************** *** 1,4 **** ! // Copyright (C) 1999 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,4 ---- ! // Copyright (C) 1999, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** int main () *** 32,37 **** double a = fabs (-2.4); realfn myfn = fabs; double b = myfn (-2.5); ! printf ("%f, %f, %p\n", a, b, myfn); return 0; } --- 32,37 ---- double a = fabs (-2.4); realfn myfn = fabs; double b = myfn (-2.5); ! std::printf ("%f, %f, %p\n", a, b, myfn); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Wed Dec 12 20:23:30 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Fri Jun 28 08:22:45 2002 *************** *** 1,6 **** // 1999-04-12 bkoz ! // Copyright (C) 1999, 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 1999-04-12 bkoz ! // Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** bool test11() *** 500,506 **** // sanity check via 'C' library call char* err; ! long l = strtol(cstrlit, &err, 0); std::istringstream iss(cstrlit); iss.setf(std::ios::fmtflags(0), std::ios::basefield); --- 500,506 ---- // sanity check via 'C' library call char* err; ! long l = std::strtol(cstrlit, &err, 0); std::istringstream iss(cstrlit); iss.setf(std::ios::fmtflags(0), std::ios::basefield); diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc Tue Apr 23 21:02:41 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc Fri Jun 28 08:22:45 2002 *************** *** 1,6 **** // 2000-06-29 bkoz ! // Copyright (C) 2000, 2001 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2000-06-29 bkoz ! // Copyright (C) 2000, 2001, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** void test02() *** 108,114 **** std::fstream ofstrm; ofstrm.open("istream_seeks-3.txt", std::ios::out); if (!ofstrm) ! abort(); write_rewind(ofstrm); ofstrm.close(); --- 108,114 ---- std::fstream ofstrm; ofstrm.open("istream_seeks-3.txt", std::ios::out); if (!ofstrm) ! std::abort(); write_rewind(ofstrm); ofstrm.close(); diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc Tue Aug 7 03:38:33 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc Sat May 18 14:37:49 2002 *************** test02() *** 70,76 **** double x; // ios_base::eof == 2 ! while(in >> x) { ++i; if (i > 3) --- 70,76 ---- double x; // ios_base::eof == 2 ! while (in >> x) { ++i; if (i > 3) diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc Fri May 3 18:29:07 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc Fri May 17 11:43:43 2002 *************** void test07() *** 175,180 **** --- 175,197 ---- VERIFY( s == "test" ); } + // libstdc++/6648 + // Interactive tests: each one (run alone) must terminate upon a single '\n'. + void test08() + { + bool test = true; + char buff[2048]; + std::cout << "Enter name: "; + std::cin.getline(buff, 2048); + } + + void test09() + { + bool test = true; + std::cout << "Enter name: "; + std::cin.ignore(2048, '\n'); + } + int main() { *************** main() *** 186,190 **** --- 203,209 ---- // test05(); // test06(); // test07(); + // test08(); + // test09(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc Fri Jan 25 06:36:32 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc Fri May 24 15:57:47 2002 *************** void test07() *** 289,294 **** --- 289,333 ---- #endif } + void test08() + { + bool test = true; + char* pt = NULL; + + // 1 + std::ostringstream oss; + oss << pt; + VERIFY( oss.bad() ); + VERIFY( oss.str().size() == 0 ); + + oss.clear(); + oss << ""; + VERIFY( oss.good() ); + + #if _GLIBCPP_USE_WCHAR_T + // 2 + std::wostringstream woss; + woss << pt; + VERIFY( woss.bad() ); + VERIFY( woss.str().size() == 0 ); + + woss.clear(); + woss << ""; + VERIFY( woss.good() ); + + // 3 + wchar_t* wt = NULL; + woss.clear(); + woss << wt; + VERIFY( woss.bad() ); + VERIFY( woss.str().size() == 0 ); + + woss.clear(); + woss << L""; + VERIFY( woss.good() ); + #endif + } + int main() { test01(); *************** int main() *** 298,302 **** --- 337,342 ---- test05(); test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Wed Jan 23 01:12:10 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Fri May 24 15:57:47 2002 *************** *** 1,7 **** // 1999-08-16 bkoz // 1999-11-01 bkoz ! // Copyright (C) 1999, 2000, 2001 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,7 ---- // 1999-08-16 bkoz // 1999-11-01 bkoz ! // Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** test02() *** 67,73 **** f_out1 << strbuf01; state02 = f_out1.rdstate(); VERIFY( state01 != state02 ); ! VERIFY( (state02 & std::ios_base::failbit) != 0 ); // filebuf->filebuf std::ifstream f_in(name_01); --- 67,73 ---- f_out1 << strbuf01; state02 = f_out1.rdstate(); VERIFY( state01 != state02 ); ! VERIFY( (state02 & std::ios_base::badbit) != 0 ); // filebuf->filebuf std::ifstream f_in(name_01); diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/Makefile.in gcc-3.1.1/libstdc++-v3/testsuite/Makefile.in *** gcc-3.1/libstdc++-v3/testsuite/Makefile.in Tue Apr 2 02:47:07 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/Makefile.in Fri Jun 28 08:22:41 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,133 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,113 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 150,156 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = foreign dejagnu --- 130,135 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/backward/strstream_members.cc gcc-3.1.1/libstdc++-v3/testsuite/backward/strstream_members.cc *** gcc-3.1/libstdc++-v3/testsuite/backward/strstream_members.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/backward/strstream_members.cc Sat Jun 8 15:15:44 2002 *************** *** 0 **** --- 1,40 ---- + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // backward strstream members + + #include + #include + + // { dg-options "-Wno-deprecated" } + + int test01() + { + strstream s; + for (unsigned i=0 ; i!= 1000 ; ++i) + s << i << std::endl; + s << std::ends; + + return 0; + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/ext/hash_map.cc gcc-3.1.1/libstdc++-v3/testsuite/ext/hash_map.cc *** gcc-3.1/libstdc++-v3/testsuite/ext/hash_map.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/ext/hash_map.cc Thu Jul 4 00:48:50 2002 *************** *** 0 **** --- 1,102 ---- + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // hash_map (SGI extension) + + #include + #include + #include + #include + + using namespace std; + using namespace __gnu_cxx; + + namespace __gnu_cxx + { + inline size_t hash_string(const char* s) + { + unsigned long h; + for (h=0; *s; ++s) { + h = 5*h + *s; + } + return size_t(h); + } + + template struct hash + { + size_t operator()(const T *const & s) const + { return reinterpret_cast(s); } + }; + + template<> struct hash + { + size_t operator()(const string &s) const { return hash_string(s.c_str()); } + }; + + template<> struct hash + { + size_t operator()(const string &s) const { return hash_string(s.c_str()); } + }; + + template struct hash > + { + hash __fh; + hash __sh; + size_t operator()(const pair &p) const { + return __fh(p.first) ^ __sh(p.second); + } + }; + } + + + const int Size = 5; + + void test01() + { + bool test = true; + + for (int i = 0; i < 10; i++) + { + hash_map a; + hash_map b; + + vector > contents (Size); + for (int j = 0; j < Size; j++) + { + string s; + for (int k = 0; k < 10; k++) + { + s += 'a' + (rand() % 26); + } + contents[j] = make_pair(s,j); + } + for (int j = 0; j < Size; j++) + { + a[contents[j].first] = contents[j].second; + int k = Size - 1 - j; + b[contents[k].first] = contents[k].second; + } + VERIFY( a == b ); + } + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp gcc-3.1.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp *** gcc-3.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Wed May 8 23:18:39 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Wed May 29 10:59:21 2002 *************** proc libstdc++-v3-init { args } { *** 119,125 **** } } ! if { [target_info needs_status_wrapper]!="" && ![info exists gluefile] } { set gluefile ${objdir}/testglue.o; set result [build_wrapper $gluefile]; if { $result != "" } { --- 119,126 ---- } } ! if { [target_info needs_status_wrapper]!=""} { ! file delete ${objdir}/testglue.o; set gluefile ${objdir}/testglue.o; set result [build_wrapper $gluefile]; if { $result != "" } { diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/testsuite_hooks.h gcc-3.1.1/libstdc++-v3/testsuite/testsuite_hooks.h *** gcc-3.1/libstdc++-v3/testsuite/testsuite_hooks.h Thu Jan 17 23:37:43 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/testsuite_hooks.h Thu May 23 17:01:30 2002 *************** void *** 81,105 **** __set_testsuite_memlimit(float __size = MEMLIMIT_MB) { struct rlimit r; ! r.rlim_cur = (rlim_t)(__size * 1048576); // Heap size, seems to be common. #if _GLIBCPP_HAVE_MEMLIMIT_DATA setrlimit(RLIMIT_DATA, &r); #endif // Resident set size. #if _GLIBCPP_HAVE_MEMLIMIT_RSS setrlimit(RLIMIT_RSS, &r); #endif // Mapped memory (brk + mmap). #if _GLIBCPP_HAVE_MEMLIMIT_VMEM setrlimit(RLIMIT_VMEM, &r); #endif // Virtual memory. #if _GLIBCPP_HAVE_MEMLIMIT_AS setrlimit(RLIMIT_AS, &r); #endif } --- 81,113 ---- __set_testsuite_memlimit(float __size = MEMLIMIT_MB) { struct rlimit r; ! rlim_t limit = (rlim_t)(__size * 1048576); // Heap size, seems to be common. #if _GLIBCPP_HAVE_MEMLIMIT_DATA + getrlimit(RLIMIT_DATA, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_DATA, &r); #endif // Resident set size. #if _GLIBCPP_HAVE_MEMLIMIT_RSS + getrlimit(RLIMIT_RSS, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_RSS, &r); #endif // Mapped memory (brk + mmap). #if _GLIBCPP_HAVE_MEMLIMIT_VMEM + getrlimit(RLIMIT_VMEM, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_VMEM, &r); #endif // Virtual memory. #if _GLIBCPP_HAVE_MEMLIMIT_AS + getrlimit(RLIMIT_AS, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_AS, &r); #endif } diff -Nrc3pad gcc-3.1/ltmain.sh gcc-3.1.1/ltmain.sh *** gcc-3.1/ltmain.sh Sat Mar 16 14:42:43 2002 --- gcc-3.1.1/ltmain.sh Thu Jun 6 06:12:58 2002 *************** fi\ *** 4247,4252 **** --- 4247,4266 ---- objlist= concat_cmds= save_oldobjs=$oldobjs + # GNU ar 2.10+ was changed to match POSIX; thus no paths are + # encoded into archives. This makes 'ar r' malfunction in + # this piecewise linking case whenever conflicting object + # names appear in distinct ar calls; check, warn and compensate. + if (for obj in $save_oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 + $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 + AR_FLAGS=cq + fi for obj in $save_oldobjs do oldobjs="$objlist $obj" diff -Nrc3pad gcc-3.1/maintainer-scripts/ChangeLog gcc-3.1.1/maintainer-scripts/ChangeLog *** gcc-3.1/maintainer-scripts/ChangeLog Wed May 15 02:27:28 2002 --- gcc-3.1.1/maintainer-scripts/ChangeLog Thu Jul 25 23:40:27 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-26 Joseph S. Myers + + * gcc_release: Add gcc/ada/gnatvsn.ads to list of files in which + release status is updated. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/maintainer-scripts/gcc_release gcc-3.1.1/maintainer-scripts/gcc_release *** gcc-3.1/maintainer-scripts/gcc_release Thu May 9 05:50:34 2002 --- gcc-3.1.1/maintainer-scripts/gcc_release Sun May 26 10:35:14 2002 *************** EOF *** 136,142 **** ${CVS} ci -m 'Update version' ${y}) || \ error "Could not update ${x}" done ! for x in gcc/f/version.c libf2c/libF77/Version.c \ libf2c/libI77/Version.c libf2c/libU77/Version.c; do y=`basename ${x}` (changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \ --- 136,142 ---- ${CVS} ci -m 'Update version' ${y}) || \ error "Could not update ${x}" done ! for x in gcc/ada/gnatvsn.ads gcc/f/version.c libf2c/libF77/Version.c \ libf2c/libI77/Version.c libf2c/libU77/Version.c; do y=`basename ${x}` (changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \ diff -Nrc3pad gcc-3.1/zlib/ChangeLog gcc-3.1.1/zlib/ChangeLog *** gcc-3.1/zlib/ChangeLog Wed May 15 02:27:34 2002 --- gcc-3.1.1/zlib/ChangeLog Thu Jul 25 23:40:29 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. *************** Changes in 1.0.6 (19 Jan 1998) *** 245,251 **** - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) - added makelcc.bat for lcc-win32 (Tom St Denis) - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) ! - Avoid expanded $Id: ChangeLog,v 1.2.16.4 2002/05/15 02:27:34 mmitchel Exp $. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. - check for unistd.h in configure (for off_t) - remove useless check parameter in inflate_blocks_free - avoid useless assignment of s->check to itself in inflate_blocks_new --- 249,255 ---- - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) - added makelcc.bat for lcc-win32 (Tom St Denis) - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) ! - Avoid expanded $Id: ChangeLog,v 1.2.16.5 2002/07/25 23:40:29 mmitchel Exp $. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. - check for unistd.h in configure (for off_t) - remove useless check parameter in inflate_blocks_free - avoid useless assignment of s->check to itself in inflate_blocks_new