diff -Nrc3pad gcc-3.0.2/.brik gcc-3.0.3/.brik *** gcc-3.0.2/.brik Tue Oct 23 11:37:15 2001 --- gcc-3.0.3/.brik Thu Dec 20 12:33:45 2001 *************** *** 4,29 **** # ------ -------- 2864072627b ./.cvsignore ! 1333652262b ./BUGS 2171125041b ./COPYING 508743035b ./COPYING.LIB ! 3674160514b ./ChangeLog ! 3468455665b ./FAQ 2513020160b ./GNATS 2229468985b ./INSTALL/README 2762343880b ./INSTALL/binaries.html ! 2525189791b ./INSTALL/build.html ! 2861585075b ./INSTALL/configure.html 1964338015b ./INSTALL/download.html ! 688694853b ./INSTALL/finalinstall.html ! 4063529934b ./INSTALL/index.html ! 1619414355b ./INSTALL/specific.html ! 2369737775b ./INSTALL/test.html 585133217b ./MAINTAINERS 253028645b ./Makefile.in 3697693037b ./README 3461973635b ./boehm-gc/BCC_MAKEFILE ! 3209638649b ./boehm-gc/ChangeLog 4012707064b ./boehm-gc/EMX_MAKEFILE 145946109b ./boehm-gc/MacOS.c 591574792b ./boehm-gc/MacProjects.sit.hqx --- 4,30 ---- # ------ -------- 2864072627b ./.cvsignore ! 875839122b ./BUGS 2171125041b ./COPYING 508743035b ./COPYING.LIB ! 1939966481b ./ChangeLog ! 1145364955b ./FAQ 2513020160b ./GNATS 2229468985b ./INSTALL/README 2762343880b ./INSTALL/binaries.html ! 502143757b ./INSTALL/build.html ! 2560162634b ./INSTALL/configure.html 1964338015b ./INSTALL/download.html ! 957581931b ./INSTALL/finalinstall.html ! 2381494717b ./INSTALL/gfdl.html ! 4202521290b ./INSTALL/index.html ! 3483445294b ./INSTALL/specific.html ! 1966250664b ./INSTALL/test.html 585133217b ./MAINTAINERS 253028645b ./Makefile.in 3697693037b ./README 3461973635b ./boehm-gc/BCC_MAKEFILE ! 201797530b ./boehm-gc/ChangeLog 4012707064b ./boehm-gc/EMX_MAKEFILE 145946109b ./boehm-gc/MacOS.c 591574792b ./boehm-gc/MacProjects.sit.hqx *************** *** 166,177 **** 3707632643b ./boehm-gc/version.h 2262051120b ./boehm-gc/weakpointer.h 4042937657b ./boehm-gc/win32_threads.c ! 1430989246b ./bugs.html 3139906847b ./config-ml.in 1152210207b ./config.guess 3430029098b ./config.if 572719696b ./config.sub ! 3998075193b ./config/ChangeLog 612455112b ./config/acinclude.m4 3007349820b ./config/mh-a68bsd 1442196770b ./config/mh-aix386 --- 167,178 ---- 3707632643b ./boehm-gc/version.h 2262051120b ./boehm-gc/weakpointer.h 4042937657b ./boehm-gc/win32_threads.c ! 1854631872b ./bugs.html 3139906847b ./config-ml.in 1152210207b ./config.guess 3430029098b ./config.if 572719696b ./config.sub ! 3397619163b ./config/ChangeLog 612455112b ./config/acinclude.m4 3007349820b ./config/mh-a68bsd 1442196770b ./config/mh-aix386 *************** *** 215,221 **** 456622165b ./config/mh-vaxult2 3265825290b ./config/mh-x86pic 198559626b ./config/mpw-mh-mpw ! 2151949570b ./config/mpw/ChangeLog 3145098931b ./config/mpw/MoveIfChange 1476422091b ./config/mpw/README 4005879853b ./config/mpw/forward-include --- 216,222 ---- 456622165b ./config/mh-vaxult2 3265825290b ./config/mh-x86pic 198559626b ./config/mpw-mh-mpw ! 1839840281b ./config/mpw/ChangeLog 3145098931b ./config/mpw/MoveIfChange 1476422091b ./config/mpw/README 4005879853b ./config/mpw/forward-include *************** *** 245,258 **** 771382916b ./config/mt-x86pic 3721047005b ./configure 3733934766b ./configure.in ! 1113421123b ./contrib/ChangeLog 550196746b ./contrib/compare_tests 2828387446b ./contrib/convert_to_f2c 2929939770b ./contrib/convert_to_g2c 2025073358b ./contrib/download_f2c 2292355102b ./contrib/gcc_build 2946097430b ./contrib/gcc_release ! 4179351048b ./contrib/gcc_update 1336632236b ./contrib/gccbug.el 2520368790b ./contrib/gennews 4256039795b ./contrib/index-prop --- 246,260 ---- 771382916b ./config/mt-x86pic 3721047005b ./configure 3733934766b ./configure.in ! 1332267117b ./contrib/ChangeLog ! 1278643902b ./contrib/PR3145.patch 550196746b ./contrib/compare_tests 2828387446b ./contrib/convert_to_f2c 2929939770b ./contrib/convert_to_g2c 2025073358b ./contrib/download_f2c 2292355102b ./contrib/gcc_build 2946097430b ./contrib/gcc_release ! 3156084968b ./contrib/gcc_update 1336632236b ./contrib/gccbug.el 2520368790b ./contrib/gennews 4256039795b ./contrib/index-prop *************** *** 260,272 **** 3627076674b ./contrib/snapshot 1623905231b ./contrib/test_installed 1719899924b ./contrib/test_summary ! 1623138628b ./contrib/texi2pod.pl 2210983108b ./contrib/warn_summary ! 2110682007b ./faq.html 1005262133b ./fastjar/AUTHORS 1745615150b ./fastjar/CHANGES 1396100520b ./fastjar/COPYING ! 1191974177b ./fastjar/ChangeLog 2770615802b ./fastjar/INSTALL 2457567884b ./fastjar/Makefile.am 1854345631b ./fastjar/Makefile.in --- 262,274 ---- 3627076674b ./contrib/snapshot 1623905231b ./contrib/test_installed 1719899924b ./contrib/test_summary ! 921638709b ./contrib/texi2pod.pl 2210983108b ./contrib/warn_summary ! 1687097564b ./faq.html 1005262133b ./fastjar/AUTHORS 1745615150b ./fastjar/CHANGES 1396100520b ./fastjar/COPYING ! 2561089227b ./fastjar/ChangeLog 2770615802b ./fastjar/INSTALL 2457567884b ./fastjar/Makefile.am 1854345631b ./fastjar/Makefile.in *************** *** 298,304 **** 1014730298b ./gcc/ABOUT-NLS 2171125041b ./gcc/COPYING 508743035b ./gcc/COPYING.LIB ! 1027933138b ./gcc/ChangeLog 1908191848b ./gcc/ChangeLog.0 1287222071b ./gcc/ChangeLog.1 3345586942b ./gcc/ChangeLog.2 --- 300,306 ---- 1014730298b ./gcc/ABOUT-NLS 2171125041b ./gcc/COPYING 508743035b ./gcc/COPYING.LIB ! 949434222b ./gcc/ChangeLog 1908191848b ./gcc/ChangeLog.0 1287222071b ./gcc/ChangeLog.1 3345586942b ./gcc/ChangeLog.2 *************** *** 309,323 **** 232745070b ./gcc/FSFChangeLog.10 2525829644b ./gcc/FSFChangeLog.11 2771840517b ./gcc/LANGUAGES ! 4083143375b ./gcc/Makefile.in ! 3328882189b ./gcc/NEWS 408114840b ./gcc/ONEWS 3310775363b ./gcc/README-fixinc 2741038711b ./gcc/README.Portability 1084935625b ./gcc/SERVICE ! 1319767072b ./gcc/acconfig.h 986758660b ./gcc/aclocal.m4 ! 2509700127b ./gcc/alias.c 1470543567b ./gcc/basic-block.h 1630019981b ./gcc/bb-reorder.c 446912740b ./gcc/bitmap.c --- 311,325 ---- 232745070b ./gcc/FSFChangeLog.10 2525829644b ./gcc/FSFChangeLog.11 2771840517b ./gcc/LANGUAGES ! 102022123b ./gcc/Makefile.in ! 3793037844b ./gcc/NEWS 408114840b ./gcc/ONEWS 3310775363b ./gcc/README-fixinc 2741038711b ./gcc/README.Portability 1084935625b ./gcc/SERVICE ! 2958064375b ./gcc/acconfig.h 986758660b ./gcc/aclocal.m4 ! 834740043b ./gcc/alias.c 1470543567b ./gcc/basic-block.h 1630019981b ./gcc/bb-reorder.c 446912740b ./gcc/bitmap.c *************** *** 326,334 **** 1766646758b ./gcc/builtins.c 3745012357b ./gcc/builtins.def 293598240b ./gcc/c-aux-info.c ! 115949369b ./gcc/c-common.c 858317341b ./gcc/c-common.def ! 651535970b ./gcc/c-common.h 530343767b ./gcc/c-convert.c 163655288b ./gcc/c-decl.c 876789290b ./gcc/c-dump.c --- 328,336 ---- 1766646758b ./gcc/builtins.c 3745012357b ./gcc/builtins.def 293598240b ./gcc/c-aux-info.c ! 2635855078b ./gcc/c-common.c 858317341b ./gcc/c-common.def ! 2289361130b ./gcc/c-common.h 530343767b ./gcc/c-convert.c 163655288b ./gcc/c-decl.c 876789290b ./gcc/c-dump.c *************** *** 338,347 **** 3040046848b ./gcc/c-lang.c 61530428b ./gcc/c-lex.c 916578687b ./gcc/c-lex.h ! 1529796766b ./gcc/c-parse.c ! 353343561b ./gcc/c-parse.in ! 1042264003b ./gcc/c-parse.y ! 220833347b ./gcc/c-pragma.c 2111457647b ./gcc/c-pragma.h 4251225764b ./gcc/c-semantics.c 1365281254b ./gcc/c-tree.h --- 340,349 ---- 3040046848b ./gcc/c-lang.c 61530428b ./gcc/c-lex.c 916578687b ./gcc/c-lex.h ! 2666238154b ./gcc/c-parse.c ! 1000116933b ./gcc/c-parse.in ! 2954289204b ./gcc/c-parse.y ! 3529754923b ./gcc/c-pragma.c 2111457647b ./gcc/c-pragma.h 4251225764b ./gcc/c-semantics.c 1365281254b ./gcc/c-tree.h *************** *** 350,360 **** 1728509875b ./gcc/calls.c 1002247553b ./gcc/collect2.c 972672658b ./gcc/collect2.h ! 1330846505b ./gcc/combine.c 1434596660b ./gcc/conditions.h ! 1496922945b ./gcc/config.gcc 1315260558b ./gcc/config.guess ! 2721129262b ./gcc/config.in 3329436298b ./gcc/config/1750a/1750a-protos.h 550533333b ./gcc/config/1750a/1750a.c 1762431589b ./gcc/config/1750a/1750a.h --- 352,362 ---- 1728509875b ./gcc/calls.c 1002247553b ./gcc/collect2.c 972672658b ./gcc/collect2.h ! 2565271898b ./gcc/combine.c 1434596660b ./gcc/conditions.h ! 1650983446b ./gcc/config.gcc 1315260558b ./gcc/config.guess ! 523349083b ./gcc/config.in 3329436298b ./gcc/config/1750a/1750a-protos.h 550533333b ./gcc/config/1750a/1750a.c 1762431589b ./gcc/config/1750a/1750a.h *************** *** 432,438 **** 2093699269b ./gcc/config/arm/arm-protos.h 478450204b ./gcc/config/arm/arm-wince-pe.h 1409257642b ./gcc/config/arm/arm.c ! 1310667152b ./gcc/config/arm/arm.h 45374279b ./gcc/config/arm/arm.md 2444652934b ./gcc/config/arm/coff.h 2696406159b ./gcc/config/arm/conix-elf.h --- 434,440 ---- 2093699269b ./gcc/config/arm/arm-protos.h 478450204b ./gcc/config/arm/arm-wince-pe.h 1409257642b ./gcc/config/arm/arm.c ! 1220949056b ./gcc/config/arm/arm.h 45374279b ./gcc/config/arm/arm.md 2444652934b ./gcc/config/arm/coff.h 2696406159b ./gcc/config/arm/conix-elf.h *************** *** 522,528 **** 2310880765b ./gcc/config/dsp16xx/dsp16xx.h 4033615684b ./gcc/config/dsp16xx/dsp16xx.md 2521513577b ./gcc/config/dsp16xx/xm-dsp16xx.h ! 974340428b ./gcc/config/elfos.h 1622698848b ./gcc/config/elxsi/elxsi-protos.h 817143838b ./gcc/config/elxsi/elxsi.c 2228578351b ./gcc/config/elxsi/elxsi.h --- 524,530 ---- 2310880765b ./gcc/config/dsp16xx/dsp16xx.h 4033615684b ./gcc/config/dsp16xx/dsp16xx.md 2521513577b ./gcc/config/dsp16xx/xm-dsp16xx.h ! 2967990158b ./gcc/config/elfos.h 1622698848b ./gcc/config/elxsi/elxsi-protos.h 817143838b ./gcc/config/elxsi/elxsi.c 2228578351b ./gcc/config/elxsi/elxsi.h *************** *** 539,545 **** 3472567657b ./gcc/config/float-sparc.h 766947524b ./gcc/config/float-vax.h 729288938b ./gcc/config/fp-bit.c ! 86092851b ./gcc/config/fp-bit.h 2304723625b ./gcc/config/fr30/crti.asm 2025473533b ./gcc/config/fr30/crtn.asm 4061935745b ./gcc/config/fr30/fr30-protos.h --- 541,547 ---- 3472567657b ./gcc/config/float-sparc.h 766947524b ./gcc/config/float-vax.h 729288938b ./gcc/config/fp-bit.c ! 1972802898b ./gcc/config/fp-bit.h 2304723625b ./gcc/config/fr30/crti.asm 2025473533b ./gcc/config/fr30/crtn.asm 4061935745b ./gcc/config/fr30/fr30-protos.h *************** *** 550,556 **** 3501217985b ./gcc/config/fr30/t-fr30 4080807226b ./gcc/config/fr30/xm-fr30.h 3532526787b ./gcc/config/freebsd-nthr.h ! 1571444958b ./gcc/config/freebsd.h 3857422654b ./gcc/config/freebsd3.h 2210711654b ./gcc/config/freebsd4.h 1531797731b ./gcc/config/freebsd5.h --- 552,558 ---- 3501217985b ./gcc/config/fr30/t-fr30 4080807226b ./gcc/config/fr30/xm-fr30.h 3532526787b ./gcc/config/freebsd-nthr.h ! 2727094490b ./gcc/config/freebsd.h 3857422654b ./gcc/config/freebsd3.h 2210711654b ./gcc/config/freebsd4.h 1531797731b ./gcc/config/freebsd5.h *************** *** 559,567 **** 1556064359b ./gcc/config/gofast.h 1813884828b ./gcc/config/h8300/fixunssfsi.c 1075730847b ./gcc/config/h8300/h8300-protos.h ! 848177896b ./gcc/config/h8300/h8300.c 305883268b ./gcc/config/h8300/h8300.h ! 3675978024b ./gcc/config/h8300/h8300.md 2095012315b ./gcc/config/h8300/lib1funcs.asm 836948877b ./gcc/config/h8300/rtems.h 3200589132b ./gcc/config/h8300/t-h8300 --- 561,569 ---- 1556064359b ./gcc/config/gofast.h 1813884828b ./gcc/config/h8300/fixunssfsi.c 1075730847b ./gcc/config/h8300/h8300-protos.h ! 1256626199b ./gcc/config/h8300/h8300.c 305883268b ./gcc/config/h8300/h8300.h ! 2195131597b ./gcc/config/h8300/h8300.md 2095012315b ./gcc/config/h8300/lib1funcs.asm 836948877b ./gcc/config/h8300/rtems.h 3200589132b ./gcc/config/h8300/t-h8300 *************** *** 595,601 **** 3010444208b ./gcc/config/i386/config-nt.sed 3207315249b ./gcc/config/i386/crtdll.h 3943560803b ./gcc/config/i386/cygwin.asm ! 8287530b ./gcc/config/i386/cygwin.h 2274149541b ./gcc/config/i386/dgux.c 3055146333b ./gcc/config/i386/dgux.h 1570943831b ./gcc/config/i386/djgpp-rtems.h --- 597,603 ---- 3010444208b ./gcc/config/i386/config-nt.sed 3207315249b ./gcc/config/i386/crtdll.h 3943560803b ./gcc/config/i386/cygwin.asm ! 1405926987b ./gcc/config/i386/cygwin.h 2274149541b ./gcc/config/i386/dgux.c 3055146333b ./gcc/config/i386/dgux.h 1570943831b ./gcc/config/i386/djgpp-rtems.h *************** *** 610,618 **** 3714536309b ./gcc/config/i386/i386-coff.h 1565496826b ./gcc/config/i386/i386-interix.h 1433006975b ./gcc/config/i386/i386-protos.h ! 1115041691b ./gcc/config/i386/i386.c 663612626b ./gcc/config/i386/i386.h ! 3903059271b ./gcc/config/i386/i386.md 2138609268b ./gcc/config/i386/i386elf.h 2044371014b ./gcc/config/i386/interix.c 3245573839b ./gcc/config/i386/isc.h --- 612,620 ---- 3714536309b ./gcc/config/i386/i386-coff.h 1565496826b ./gcc/config/i386/i386-interix.h 1433006975b ./gcc/config/i386/i386-protos.h ! 4176448367b ./gcc/config/i386/i386.c 663612626b ./gcc/config/i386/i386.h ! 3961207690b ./gcc/config/i386/i386.md 2138609268b ./gcc/config/i386/i386elf.h 2044371014b ./gcc/config/i386/interix.c 3245573839b ./gcc/config/i386/isc.h *************** *** 654,660 **** 1565106149b ./gcc/config/i386/sol2-ci.asm 4008317666b ./gcc/config/i386/sol2-cn.asm 2045686122b ./gcc/config/i386/sol2-gc1.asm ! 3161619351b ./gcc/config/i386/sol2.h 3870175252b ./gcc/config/i386/sol2gas.h 4009223163b ./gcc/config/i386/sun.h 1745602951b ./gcc/config/i386/sun386.h --- 656,662 ---- 1565106149b ./gcc/config/i386/sol2-ci.asm 4008317666b ./gcc/config/i386/sol2-cn.asm 2045686122b ./gcc/config/i386/sol2-gc1.asm ! 4286221804b ./gcc/config/i386/sol2.h 3870175252b ./gcc/config/i386/sol2gas.h 4009223163b ./gcc/config/i386/sun.h 1745602951b ./gcc/config/i386/sun386.h *************** *** 773,789 **** 651274697b ./gcc/config/i960/xm-i960.h 876649532b ./gcc/config/ia64/crtbegin.asm 1855415332b ./gcc/config/ia64/crtend.asm ! 3900706760b ./gcc/config/ia64/elf.h 2257162614b ./gcc/config/ia64/fde-glibc.c ! 3987815221b ./gcc/config/ia64/hpux.h 353921496b ./gcc/config/ia64/ia64-protos.h 1190921893b ./gcc/config/ia64/ia64.c ! 335927227b ./gcc/config/ia64/ia64.h 2221221481b ./gcc/config/ia64/ia64.md 3051569292b ./gcc/config/ia64/ia64intrin.h 3488320870b ./gcc/config/ia64/lib1funcs.asm 2361471520b ./gcc/config/ia64/libgcc-ia64.ver ! 3005002548b ./gcc/config/ia64/linux.h 3617523204b ./gcc/config/ia64/sysv4.h 2148782144b ./gcc/config/ia64/t-glibc 4031706241b ./gcc/config/ia64/t-hpux --- 775,792 ---- 651274697b ./gcc/config/i960/xm-i960.h 876649532b ./gcc/config/ia64/crtbegin.asm 1855415332b ./gcc/config/ia64/crtend.asm ! 2915180026b ./gcc/config/ia64/elf.h 2257162614b ./gcc/config/ia64/fde-glibc.c ! 1924751760b ./gcc/config/ia64/freebsd.h ! 3662079824b ./gcc/config/ia64/hpux.h 353921496b ./gcc/config/ia64/ia64-protos.h 1190921893b ./gcc/config/ia64/ia64.c ! 4239981362b ./gcc/config/ia64/ia64.h 2221221481b ./gcc/config/ia64/ia64.md 3051569292b ./gcc/config/ia64/ia64intrin.h 3488320870b ./gcc/config/ia64/lib1funcs.asm 2361471520b ./gcc/config/ia64/libgcc-ia64.ver ! 2524176459b ./gcc/config/ia64/linux.h 3617523204b ./gcc/config/ia64/sysv4.h 2148782144b ./gcc/config/ia64/t-glibc 4031706241b ./gcc/config/ia64/t-hpux *************** *** 808,816 **** 2629267148b ./gcc/config/m68hc11/larith.asm 3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S 321124732b ./gcc/config/m68hc11/m68hc11-protos.h ! 599626127b ./gcc/config/m68hc11/m68hc11.c ! 3375995232b ./gcc/config/m68hc11/m68hc11.h ! 2110857943b ./gcc/config/m68hc11/m68hc11.md 3915866468b ./gcc/config/m68hc11/m68hc12.h 3238866738b ./gcc/config/m68hc11/t-m68hc11-gas 1569281943b ./gcc/config/m68hc11/xm-m68hc11.h --- 811,819 ---- 2629267148b ./gcc/config/m68hc11/larith.asm 3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S 321124732b ./gcc/config/m68hc11/m68hc11-protos.h ! 3659628307b ./gcc/config/m68hc11/m68hc11.c ! 313616667b ./gcc/config/m68hc11/m68hc11.h ! 2352306031b ./gcc/config/m68hc11/m68hc11.md 3915866468b ./gcc/config/m68hc11/m68hc12.h 3238866738b ./gcc/config/m68hc11/t-m68hc11-gas 1569281943b ./gcc/config/m68hc11/xm-m68hc11.h *************** *** 1015,1023 **** 943017591b ./gcc/config/mips/linux.h 1257153673b ./gcc/config/mips/mips-5.h 3874587589b ./gcc/config/mips/mips-protos.h ! 3305871759b ./gcc/config/mips/mips.c 241717903b ./gcc/config/mips/mips.h ! 1059478459b ./gcc/config/mips/mips.md 3291569396b ./gcc/config/mips/mips16.S 789509308b ./gcc/config/mips/netbsd.h 1685635385b ./gcc/config/mips/news4.h --- 1018,1026 ---- 943017591b ./gcc/config/mips/linux.h 1257153673b ./gcc/config/mips/mips-5.h 3874587589b ./gcc/config/mips/mips-protos.h ! 3277778295b ./gcc/config/mips/mips.c 241717903b ./gcc/config/mips/mips.h ! 1790038414b ./gcc/config/mips/mips.md 3291569396b ./gcc/config/mips/mips16.S 789509308b ./gcc/config/mips/netbsd.h 1685635385b ./gcc/config/mips/news4.h *************** *** 1173,1179 **** 2880448747b ./gcc/config/romp/x-mach 2947038505b ./gcc/config/romp/x-romp 3533377098b ./gcc/config/romp/xm-romp.h ! 52724573b ./gcc/config/rs6000/aix.h 1519682134b ./gcc/config/rs6000/aix31.h 2741987967b ./gcc/config/rs6000/aix3newas.h 1702283472b ./gcc/config/rs6000/aix41.h --- 1176,1182 ---- 2880448747b ./gcc/config/romp/x-mach 2947038505b ./gcc/config/romp/x-romp 3533377098b ./gcc/config/romp/xm-romp.h ! 588290010b ./gcc/config/rs6000/aix.h 1519682134b ./gcc/config/rs6000/aix31.h 2741987967b ./gcc/config/rs6000/aix3newas.h 1702283472b ./gcc/config/rs6000/aix41.h *************** *** 1191,1217 **** 3919710780b ./gcc/config/rs6000/lynx.h 1717863199b ./gcc/config/rs6000/mach.h 1820610909b ./gcc/config/rs6000/milli.exp 911358933b ./gcc/config/rs6000/rs6000-protos.h ! 1173041686b ./gcc/config/rs6000/rs6000.c ! 2662922828b ./gcc/config/rs6000/rs6000.h ! 845918244b ./gcc/config/rs6000/rs6000.md 2636863004b ./gcc/config/rs6000/rtems.h 4210977084b ./gcc/config/rs6000/sol-c0.c 1695016479b ./gcc/config/rs6000/sol-ci.asm 1927994766b ./gcc/config/rs6000/sol-cn.asm 554206256b ./gcc/config/rs6000/sol2.h ! 4006545716b ./gcc/config/rs6000/sysv4.h 3795959522b ./gcc/config/rs6000/sysv4le.h 2917213310b ./gcc/config/rs6000/t-aix43 3185730278b ./gcc/config/rs6000/t-beos 2787085020b ./gcc/config/rs6000/t-newas ! 2333037305b ./gcc/config/rs6000/t-ppccomm 365048301b ./gcc/config/rs6000/t-ppcgas 2289036871b ./gcc/config/rs6000/t-ppcos 1709081807b ./gcc/config/rs6000/t-rs6000 2434716614b ./gcc/config/rs6000/t-xnewas 3817285156b ./gcc/config/rs6000/t-xrs6000 ! 2779759220b ./gcc/config/rs6000/tramp.asm 301220496b ./gcc/config/rs6000/vxppc.h 489691602b ./gcc/config/rs6000/x-aix31 764225160b ./gcc/config/rs6000/x-aix41 --- 1194,1221 ---- 3919710780b ./gcc/config/rs6000/lynx.h 1717863199b ./gcc/config/rs6000/mach.h 1820610909b ./gcc/config/rs6000/milli.exp + 2451456339b ./gcc/config/rs6000/netbsd.h 911358933b ./gcc/config/rs6000/rs6000-protos.h ! 1956281226b ./gcc/config/rs6000/rs6000.c ! 3718915863b ./gcc/config/rs6000/rs6000.h ! 119791080b ./gcc/config/rs6000/rs6000.md 2636863004b ./gcc/config/rs6000/rtems.h 4210977084b ./gcc/config/rs6000/sol-c0.c 1695016479b ./gcc/config/rs6000/sol-ci.asm 1927994766b ./gcc/config/rs6000/sol-cn.asm 554206256b ./gcc/config/rs6000/sol2.h ! 2116302544b ./gcc/config/rs6000/sysv4.h 3795959522b ./gcc/config/rs6000/sysv4le.h 2917213310b ./gcc/config/rs6000/t-aix43 3185730278b ./gcc/config/rs6000/t-beos 2787085020b ./gcc/config/rs6000/t-newas ! 1987043510b ./gcc/config/rs6000/t-ppccomm 365048301b ./gcc/config/rs6000/t-ppcgas 2289036871b ./gcc/config/rs6000/t-ppcos 1709081807b ./gcc/config/rs6000/t-rs6000 2434716614b ./gcc/config/rs6000/t-xnewas 3817285156b ./gcc/config/rs6000/t-xrs6000 ! 3674297686b ./gcc/config/rs6000/tramp.asm 301220496b ./gcc/config/rs6000/vxppc.h 489691602b ./gcc/config/rs6000/x-aix31 764225160b ./gcc/config/rs6000/x-aix41 *************** *** 1290,1298 **** 4047109349b ./gcc/config/sparc/sp86x-aout.h 1145591187b ./gcc/config/sparc/sp86x-elf.h 3513225184b ./gcc/config/sparc/sparc-protos.h ! 2857592585b ./gcc/config/sparc/sparc.c 3958437963b ./gcc/config/sparc/sparc.h ! 2064414952b ./gcc/config/sparc/sparc.md 113090716b ./gcc/config/sparc/splet.h 3035335612b ./gcc/config/sparc/sun4gas.h 3455486806b ./gcc/config/sparc/sun4o3.h --- 1294,1302 ---- 4047109349b ./gcc/config/sparc/sp86x-aout.h 1145591187b ./gcc/config/sparc/sp86x-elf.h 3513225184b ./gcc/config/sparc/sparc-protos.h ! 389502879b ./gcc/config/sparc/sparc.c 3958437963b ./gcc/config/sparc/sparc.h ! 228516595b ./gcc/config/sparc/sparc.md 113090716b ./gcc/config/sparc/splet.h 3035335612b ./gcc/config/sparc/sun4gas.h 3455486806b ./gcc/config/sparc/sun4o3.h *************** *** 1394,1423 **** 3697539901b ./gcc/config/xm-std32.h 4091214272b ./gcc/config/xm-svr3.h 3741840130b ./gcc/config/xm-svr4.h ! 3218574372b ./gcc/configure 3600082583b ./gcc/configure.frag ! 2309352480b ./gcc/configure.in 3394568616b ./gcc/conflict.c 556313302b ./gcc/convert.c 4032982380b ./gcc/convert.h 1230086821b ./gcc/cp/.cvsignore ! 788140310b ./gcc/cp/ChangeLog 1903584b ./gcc/cp/ChangeLog.1 1881731020b ./gcc/cp/ChangeLog.2 2546444747b ./gcc/cp/ChangeLog.egcs ! 1788488183b ./gcc/cp/Make-lang.in 846059250b ./gcc/cp/NEWS ! 3390344274b ./gcc/cp/call.c 4115552602b ./gcc/cp/cfns.gperf 1705070232b ./gcc/cp/cfns.h ! 1220336448b ./gcc/cp/class.c 1920345452b ./gcc/cp/config-lang.in 3406340479b ./gcc/cp/cp-tree.def ! 2682469958b ./gcc/cp/cp-tree.h 788167684b ./gcc/cp/cvt.c ! 1404777217b ./gcc/cp/decl.c 1027981985b ./gcc/cp/decl.h ! 2337829944b ./gcc/cp/decl2.c 217522872b ./gcc/cp/dump.c 3091430199b ./gcc/cp/errfn.c 3135875533b ./gcc/cp/error.c --- 1398,1427 ---- 3697539901b ./gcc/config/xm-std32.h 4091214272b ./gcc/config/xm-svr3.h 3741840130b ./gcc/config/xm-svr4.h ! 1109293671b ./gcc/configure 3600082583b ./gcc/configure.frag ! 16799304b ./gcc/configure.in 3394568616b ./gcc/conflict.c 556313302b ./gcc/convert.c 4032982380b ./gcc/convert.h 1230086821b ./gcc/cp/.cvsignore ! 1417379349b ./gcc/cp/ChangeLog 1903584b ./gcc/cp/ChangeLog.1 1881731020b ./gcc/cp/ChangeLog.2 2546444747b ./gcc/cp/ChangeLog.egcs ! 3271703209b ./gcc/cp/Make-lang.in 846059250b ./gcc/cp/NEWS ! 3462171967b ./gcc/cp/call.c 4115552602b ./gcc/cp/cfns.gperf 1705070232b ./gcc/cp/cfns.h ! 16357655b ./gcc/cp/class.c 1920345452b ./gcc/cp/config-lang.in 3406340479b ./gcc/cp/cp-tree.def ! 3385771554b ./gcc/cp/cp-tree.h 788167684b ./gcc/cp/cvt.c ! 907549516b ./gcc/cp/decl.c 1027981985b ./gcc/cp/decl.h ! 1690588862b ./gcc/cp/decl2.c 217522872b ./gcc/cp/dump.c 3091430199b ./gcc/cp/errfn.c 3135875533b ./gcc/cp/error.c *************** *** 1431,1476 **** 1106559236b ./gcc/cp/lang-specs.h 3458231555b ./gcc/cp/lex.c 1080237442b ./gcc/cp/lex.h ! 2689785615b ./gcc/cp/mangle.c 419660916b ./gcc/cp/method.c 701335209b ./gcc/cp/mpw-config.in 4041177245b ./gcc/cp/mpw-make.sed ! 1791576125b ./gcc/cp/operators.def ! 212667869b ./gcc/cp/optimize.c 348619331b ./gcc/cp/parse.c 4085964132b ./gcc/cp/parse.h 1879411084b ./gcc/cp/parse.y ! 940975689b ./gcc/cp/pt.c 903594734b ./gcc/cp/ptree.c 1890655336b ./gcc/cp/repo.c ! 2073476971b ./gcc/cp/rtti.c 696207784b ./gcc/cp/search.c ! 2381646409b ./gcc/cp/semantics.c 1818467654b ./gcc/cp/spew.c ! 91515646b ./gcc/cp/tree.c ! 1859957305b ./gcc/cp/typeck.c 3459487995b ./gcc/cp/typeck2.c 1359529404b ./gcc/cp/xref.c ! 4198030259b ./gcc/cppdefault.c 1864191136b ./gcc/cppdefault.h 1696803319b ./gcc/cpperror.c 1757467731b ./gcc/cppexp.c 1209278199b ./gcc/cppfiles.c 3904470681b ./gcc/cpphash.c 1641754935b ./gcc/cpphash.h ! 2491140484b ./gcc/cppinit.c 791416625b ./gcc/cpplex.c 365830801b ./gcc/cpplib.c 3400544410b ./gcc/cpplib.h ! 2361742565b ./gcc/cppmacro.c 373762755b ./gcc/cppmain.c ! 4137262150b ./gcc/cppspec.c 2903740050b ./gcc/cross-make 1363172067b ./gcc/crtstuff.c 266646376b ./gcc/cse.c 1864237584b ./gcc/cselib.h 216805921b ./gcc/cstamp-h.in ! 3098946745b ./gcc/dbxout.c 181061183b ./gcc/dbxout.h 1104788844b ./gcc/dbxstclass.h 2469057166b ./gcc/dce.c --- 1435,1480 ---- 1106559236b ./gcc/cp/lang-specs.h 3458231555b ./gcc/cp/lex.c 1080237442b ./gcc/cp/lex.h ! 1021016080b ./gcc/cp/mangle.c 419660916b ./gcc/cp/method.c 701335209b ./gcc/cp/mpw-config.in 4041177245b ./gcc/cp/mpw-make.sed ! 2545245613b ./gcc/cp/operators.def ! 179667898b ./gcc/cp/optimize.c 348619331b ./gcc/cp/parse.c 4085964132b ./gcc/cp/parse.h 1879411084b ./gcc/cp/parse.y ! 1087392378b ./gcc/cp/pt.c 903594734b ./gcc/cp/ptree.c 1890655336b ./gcc/cp/repo.c ! 456361741b ./gcc/cp/rtti.c 696207784b ./gcc/cp/search.c ! 952457260b ./gcc/cp/semantics.c 1818467654b ./gcc/cp/spew.c ! 783708168b ./gcc/cp/tree.c ! 2083169874b ./gcc/cp/typeck.c 3459487995b ./gcc/cp/typeck2.c 1359529404b ./gcc/cp/xref.c ! 1602205564b ./gcc/cppdefault.c 1864191136b ./gcc/cppdefault.h 1696803319b ./gcc/cpperror.c 1757467731b ./gcc/cppexp.c 1209278199b ./gcc/cppfiles.c 3904470681b ./gcc/cpphash.c 1641754935b ./gcc/cpphash.h ! 1376958113b ./gcc/cppinit.c 791416625b ./gcc/cpplex.c 365830801b ./gcc/cpplib.c 3400544410b ./gcc/cpplib.h ! 1609411692b ./gcc/cppmacro.c 373762755b ./gcc/cppmain.c ! 3666180672b ./gcc/cppspec.c 2903740050b ./gcc/cross-make 1363172067b ./gcc/crtstuff.c 266646376b ./gcc/cse.c 1864237584b ./gcc/cselib.h 216805921b ./gcc/cstamp-h.in ! 458197924b ./gcc/dbxout.c 181061183b ./gcc/dbxout.h 1104788844b ./gcc/dbxstclass.h 2469057166b ./gcc/dce.c *************** *** 1481,1503 **** 890851034b ./gcc/doc/.cvsignore 1316708563b ./gcc/doc/c-tree.texi 3680358381b ./gcc/doc/contrib.texi ! 2846172728b ./gcc/doc/cpp.1 ! 3597805091b ./gcc/doc/cpp.info ! 4249470227b ./gcc/doc/cpp.info-1 757268427b ./gcc/doc/cpp.info-2 1262632653b ./gcc/doc/cpp.info-3 ! 167551904b ./gcc/doc/cpp.info-4 ! 3574813453b ./gcc/doc/cpp.texi 3141595163b ./gcc/doc/cppinternals.info 1445289518b ./gcc/doc/cppinternals.texi ! 597376622b ./gcc/doc/extend.texi ! 2101763670b ./gcc/doc/gcc.1 ! 3909373821b ./gcc/doc/gcc.info ! 1987967750b ./gcc/doc/gcc.info-1 ! 1412220606b ./gcc/doc/gcc.info-10 3943813356b ./gcc/doc/gcc.info-11 418964136b ./gcc/doc/gcc.info-12 ! 2935130590b ./gcc/doc/gcc.info-13 3149587542b ./gcc/doc/gcc.info-14 695739271b ./gcc/doc/gcc.info-15 1601557755b ./gcc/doc/gcc.info-16 --- 1485,1508 ---- 890851034b ./gcc/doc/.cvsignore 1316708563b ./gcc/doc/c-tree.texi 3680358381b ./gcc/doc/contrib.texi ! 1751994355b ./gcc/doc/cpp.1 ! 2389364134b ./gcc/doc/cpp.info ! 1420015170b ./gcc/doc/cpp.info-1 757268427b ./gcc/doc/cpp.info-2 1262632653b ./gcc/doc/cpp.info-3 ! 2256404929b ./gcc/doc/cpp.info-4 ! 3325515262b ./gcc/doc/cpp.texi 3141595163b ./gcc/doc/cppinternals.info 1445289518b ./gcc/doc/cppinternals.texi ! 2232690756b ./gcc/doc/extend.texi ! 771278149b ./gcc/doc/fsf-funding.7 ! 4161830194b ./gcc/doc/gcc.1 ! 1317475718b ./gcc/doc/gcc.info ! 299085619b ./gcc/doc/gcc.info-1 ! 2921110039b ./gcc/doc/gcc.info-10 3943813356b ./gcc/doc/gcc.info-11 418964136b ./gcc/doc/gcc.info-12 ! 1921973611b ./gcc/doc/gcc.info-13 3149587542b ./gcc/doc/gcc.info-14 695739271b ./gcc/doc/gcc.info-15 1601557755b ./gcc/doc/gcc.info-16 *************** *** 1513,1552 **** 1607293577b ./gcc/doc/gcc.info-25 3092425092b ./gcc/doc/gcc.info-26 178291516b ./gcc/doc/gcc.info-27 ! 1510217315b ./gcc/doc/gcc.info-28 3723298804b ./gcc/doc/gcc.info-29 4095656035b ./gcc/doc/gcc.info-3 239428913b ./gcc/doc/gcc.info-30 2220281758b ./gcc/doc/gcc.info-31 414837311b ./gcc/doc/gcc.info-32 1806833096b ./gcc/doc/gcc.info-33 ! 2139934929b ./gcc/doc/gcc.info-34 3348688145b ./gcc/doc/gcc.info-35 1797713626b ./gcc/doc/gcc.info-36 ! 177642172b ./gcc/doc/gcc.info-37 2743624506b ./gcc/doc/gcc.info-38 ! 183373778b ./gcc/doc/gcc.info-4 352877010b ./gcc/doc/gcc.info-5 979705408b ./gcc/doc/gcc.info-6 ! 2082768225b ./gcc/doc/gcc.info-7 3184007007b ./gcc/doc/gcc.info-8 102742701b ./gcc/doc/gcc.info-9 ! 3679799138b ./gcc/doc/gcc.texi ! 3948564685b ./gcc/doc/gcov.1 ! 2764453786b ./gcc/doc/gcov.texi ! 1008218839b ./gcc/doc/include/fdl.texi ! 3383701708b ./gcc/doc/include/funding.texi ! 423212962b ./gcc/doc/include/gpl.texi 4016541318b ./gcc/doc/include/texinfo.tex 2393405651b ./gcc/doc/install-old.texi ! 870109107b ./gcc/doc/install.texi ! 3260938793b ./gcc/doc/install.texi2html ! 3035201328b ./gcc/doc/invoke.texi 2662979853b ./gcc/doc/md.texi 1033541327b ./gcc/doc/objc.texi 1140289608b ./gcc/doc/rtl.texi ! 3106491649b ./gcc/doc/tm.texi ! 472588828b ./gcc/doloop.c 123944430b ./gcc/dominance.c 2660216905b ./gcc/doprint.c 2791449994b ./gcc/doschk.c --- 1518,1559 ---- 1607293577b ./gcc/doc/gcc.info-25 3092425092b ./gcc/doc/gcc.info-26 178291516b ./gcc/doc/gcc.info-27 ! 3921416100b ./gcc/doc/gcc.info-28 3723298804b ./gcc/doc/gcc.info-29 4095656035b ./gcc/doc/gcc.info-3 239428913b ./gcc/doc/gcc.info-30 2220281758b ./gcc/doc/gcc.info-31 414837311b ./gcc/doc/gcc.info-32 1806833096b ./gcc/doc/gcc.info-33 ! 1521400144b ./gcc/doc/gcc.info-34 3348688145b ./gcc/doc/gcc.info-35 1797713626b ./gcc/doc/gcc.info-36 ! 1612449171b ./gcc/doc/gcc.info-37 2743624506b ./gcc/doc/gcc.info-38 ! 1048830900b ./gcc/doc/gcc.info-4 352877010b ./gcc/doc/gcc.info-5 979705408b ./gcc/doc/gcc.info-6 ! 1659946480b ./gcc/doc/gcc.info-7 3184007007b ./gcc/doc/gcc.info-8 102742701b ./gcc/doc/gcc.info-9 ! 1385469307b ./gcc/doc/gcc.texi ! 1447414042b ./gcc/doc/gcov.1 ! 3462759430b ./gcc/doc/gcov.texi ! 3319588956b ./gcc/doc/gfdl.7 ! 1195898946b ./gcc/doc/gpl.7 ! 973259336b ./gcc/doc/include/fdl.texi ! 2048065465b ./gcc/doc/include/funding.texi ! 3235143907b ./gcc/doc/include/gpl.texi 4016541318b ./gcc/doc/include/texinfo.tex 2393405651b ./gcc/doc/install-old.texi ! 2522265625b ./gcc/doc/install.texi ! 1547785611b ./gcc/doc/install.texi2html ! 2989775757b ./gcc/doc/invoke.texi 2662979853b ./gcc/doc/md.texi 1033541327b ./gcc/doc/objc.texi 1140289608b ./gcc/doc/rtl.texi ! 89665016b ./gcc/doc/tm.texi ! 2499571202b ./gcc/doloop.c 123944430b ./gcc/dominance.c 2660216905b ./gcc/doprint.c 2791449994b ./gcc/doschk.c *************** *** 1556,1562 **** 369471853b ./gcc/dwarf2.h 1793399413b ./gcc/dwarf2asm.c 3481577918b ./gcc/dwarf2asm.h ! 1091575516b ./gcc/dwarf2out.c 907111294b ./gcc/dwarf2out.h 1291353303b ./gcc/dwarfout.c 1589660034b ./gcc/dwarfout.h --- 1563,1569 ---- 369471853b ./gcc/dwarf2.h 1793399413b ./gcc/dwarf2asm.c 3481577918b ./gcc/dwarf2asm.h ! 3529109919b ./gcc/dwarf2out.c 907111294b ./gcc/dwarf2out.h 1291353303b ./gcc/dwarfout.c 1589660034b ./gcc/dwarfout.h *************** *** 1564,1581 **** 626897841b ./gcc/enquire.c 3097048689b ./gcc/errors.c 3948305090b ./gcc/errors.h ! 1058293138b ./gcc/except.c 3751320921b ./gcc/except.h 3470052574b ./gcc/exgettext 1523181895b ./gcc/explow.c 1640629260b ./gcc/expmed.c ! 2102481446b ./gcc/expr.c 3169905778b ./gcc/expr.h 2920655732b ./gcc/f/.cvsignore 496151338b ./gcc/f/BUGS ! 213841743b ./gcc/f/ChangeLog 4225493150b ./gcc/f/ChangeLog.0 ! 1959441375b ./gcc/f/Make-lang.in 4163515796b ./gcc/f/NEWS 281424983b ./gcc/f/README 3295584012b ./gcc/f/RELEASE-PREP --- 1571,1588 ---- 626897841b ./gcc/enquire.c 3097048689b ./gcc/errors.c 3948305090b ./gcc/errors.h ! 2118248124b ./gcc/except.c 3751320921b ./gcc/except.h 3470052574b ./gcc/exgettext 1523181895b ./gcc/explow.c 1640629260b ./gcc/expmed.c ! 351991323b ./gcc/expr.c 3169905778b ./gcc/expr.h 2920655732b ./gcc/f/.cvsignore 496151338b ./gcc/f/BUGS ! 3080971801b ./gcc/f/ChangeLog 4225493150b ./gcc/f/ChangeLog.0 ! 437764639b ./gcc/f/Make-lang.in 4163515796b ./gcc/f/NEWS 281424983b ./gcc/f/README 3295584012b ./gcc/f/RELEASE-PREP *************** *** 1645,1651 **** 1861938661b ./gcc/f/lab.c 1912790643b ./gcc/f/lab.h 1541062170b ./gcc/f/lang-options.h ! 2697598145b ./gcc/f/lang-specs.h 123352428b ./gcc/f/lex.c 3648980141b ./gcc/f/lex.h 3616710460b ./gcc/f/malloc.c --- 1652,1658 ---- 1861938661b ./gcc/f/lab.c 1912790643b ./gcc/f/lab.h 1541062170b ./gcc/f/lang-options.h ! 3052573854b ./gcc/f/lang-specs.h 123352428b ./gcc/f/lex.c 3648980141b ./gcc/f/lex.h 3616710460b ./gcc/f/malloc.c *************** *** 1699,1714 **** 1323122026b ./gcc/f/symbol.def 4185634583b ./gcc/f/symbol.h 2744008879b ./gcc/f/target.c ! 2888576815b ./gcc/f/target.h 3965009956b ./gcc/f/top.c 4257635887b ./gcc/f/top.h 3443401298b ./gcc/f/type.c 1269043734b ./gcc/f/type.h ! 1430487999b ./gcc/f/version.c 1880947867b ./gcc/f/version.h 3584291506b ./gcc/f/where.c 422122823b ./gcc/f/where.h ! 2449724627b ./gcc/final.c 3904468581b ./gcc/fix-header.c 3884502794b ./gcc/fixinc/Makefile.in 2351321356b ./gcc/fixinc/README --- 1706,1721 ---- 1323122026b ./gcc/f/symbol.def 4185634583b ./gcc/f/symbol.h 2744008879b ./gcc/f/target.c ! 2483223874b ./gcc/f/target.h 3965009956b ./gcc/f/top.c 4257635887b ./gcc/f/top.h 3443401298b ./gcc/f/type.c 1269043734b ./gcc/f/type.h ! 2927788807b ./gcc/f/version.c 1880947867b ./gcc/f/version.h 3584291506b ./gcc/f/where.c 422122823b ./gcc/f/where.h ! 1052098650b ./gcc/final.c 3904468581b ./gcc/fix-header.c 3884502794b ./gcc/fixinc/Makefile.in 2351321356b ./gcc/fixinc/README *************** *** 1720,1737 **** 1901674452b ./gcc/fixinc/fixinc.svr4 2193207840b ./gcc/fixinc/fixinc.winnt 1439814780b ./gcc/fixinc/fixinc.wrap ! 2436281382b ./gcc/fixinc/fixincl.c 4214658264b ./gcc/fixinc/fixincl.sh 2178021789b ./gcc/fixinc/fixincl.tpl ! 306422479b ./gcc/fixinc/fixincl.x 1372603529b ./gcc/fixinc/fixlib.c 971233728b ./gcc/fixinc/fixlib.h 4013194329b ./gcc/fixinc/fixtests.c 2003329934b ./gcc/fixinc/genfixes 3680461708b ./gcc/fixinc/gnu-regex.c 1403987073b ./gcc/fixinc/gnu-regex.h ! 1552151123b ./gcc/fixinc/inclhack.def ! 1662855861b ./gcc/fixinc/mkfixinc.sh 3901871541b ./gcc/fixinc/procopen.c 1750379031b ./gcc/fixinc/server.c 2895407134b ./gcc/fixinc/server.h --- 1727,1744 ---- 1901674452b ./gcc/fixinc/fixinc.svr4 2193207840b ./gcc/fixinc/fixinc.winnt 1439814780b ./gcc/fixinc/fixinc.wrap ! 1824978333b ./gcc/fixinc/fixincl.c 4214658264b ./gcc/fixinc/fixincl.sh 2178021789b ./gcc/fixinc/fixincl.tpl ! 3121350554b ./gcc/fixinc/fixincl.x 1372603529b ./gcc/fixinc/fixlib.c 971233728b ./gcc/fixinc/fixlib.h 4013194329b ./gcc/fixinc/fixtests.c 2003329934b ./gcc/fixinc/genfixes 3680461708b ./gcc/fixinc/gnu-regex.c 1403987073b ./gcc/fixinc/gnu-regex.h ! 1541023411b ./gcc/fixinc/inclhack.def ! 245955576b ./gcc/fixinc/mkfixinc.sh 3901871541b ./gcc/fixinc/procopen.c 1750379031b ./gcc/fixinc/server.c 2895407134b ./gcc/fixinc/server.h *************** *** 1757,1763 **** 2670651204b ./gcc/fixinc/tests/base/libgen.h 1854625388b ./gcc/fixinc/tests/base/machine/cpu.h 114078425b ./gcc/fixinc/tests/base/malloc.h ! 575808734b ./gcc/fixinc/tests/base/math.h 2373596333b ./gcc/fixinc/tests/base/netdnet/dnetdb.h 4211518276b ./gcc/fixinc/tests/base/netinet/ip.h 3107111098b ./gcc/fixinc/tests/base/pixrect/memvar.h --- 1764,1770 ---- 2670651204b ./gcc/fixinc/tests/base/libgen.h 1854625388b ./gcc/fixinc/tests/base/machine/cpu.h 114078425b ./gcc/fixinc/tests/base/malloc.h ! 2389003803b ./gcc/fixinc/tests/base/math.h 2373596333b ./gcc/fixinc/tests/base/netdnet/dnetdb.h 4211518276b ./gcc/fixinc/tests/base/netinet/ip.h 3107111098b ./gcc/fixinc/tests/base/pixrect/memvar.h *************** *** 1771,1777 **** 1831085175b ./gcc/fixinc/tests/base/rpcsvc/rstat.h 2162639252b ./gcc/fixinc/tests/base/rpcsvc/rusers.h 135186565b ./gcc/fixinc/tests/base/sparc/asm_linkage.h ! 2145323530b ./gcc/fixinc/tests/base/stdio.h 135522837b ./gcc/fixinc/tests/base/stdlib.h 2941232612b ./gcc/fixinc/tests/base/strings.h 482468002b ./gcc/fixinc/tests/base/sundev/vuid_event.h --- 1778,1784 ---- 1831085175b ./gcc/fixinc/tests/base/rpcsvc/rstat.h 2162639252b ./gcc/fixinc/tests/base/rpcsvc/rusers.h 135186565b ./gcc/fixinc/tests/base/sparc/asm_linkage.h ! 2925418517b ./gcc/fixinc/tests/base/stdio.h 135522837b ./gcc/fixinc/tests/base/stdlib.h 2941232612b ./gcc/fixinc/tests/base/strings.h 482468002b ./gcc/fixinc/tests/base/sundev/vuid_event.h *************** *** 1794,1800 **** 1174710562b ./gcc/fixinc/tests/base/sys/types.h 3923345847b ./gcc/fixinc/tests/base/sys/utsname.h 3579560225b ./gcc/fixinc/tests/base/sys/wait.h ! 2326532742b ./gcc/fixinc/tests/base/testing.h 10407256b ./gcc/fixinc/tests/base/time.h 3845139066b ./gcc/fixinc/tests/base/tinfo.h 4209310059b ./gcc/fixinc/tests/base/types/vxTypesBase.h --- 1801,1807 ---- 1174710562b ./gcc/fixinc/tests/base/sys/types.h 3923345847b ./gcc/fixinc/tests/base/sys/utsname.h 3579560225b ./gcc/fixinc/tests/base/sys/wait.h ! 2119077343b ./gcc/fixinc/tests/base/testing.h 10407256b ./gcc/fixinc/tests/base/time.h 3845139066b ./gcc/fixinc/tests/base/tinfo.h 4209310059b ./gcc/fixinc/tests/base/types/vxTypesBase.h *************** *** 1802,1808 **** 1711694323b ./gcc/fixproto 4214100853b ./gcc/flags.h 14144180b ./gcc/floatlib.c ! 1148505848b ./gcc/flow.c 3036032403b ./gcc/fold-const.c 814448160b ./gcc/fp-test.c 888363625b ./gcc/function.c --- 1809,1815 ---- 1711694323b ./gcc/fixproto 4214100853b ./gcc/flags.h 14144180b ./gcc/floatlib.c ! 645949506b ./gcc/flow.c 3036032403b ./gcc/fold-const.c 814448160b ./gcc/fp-test.c 888363625b ./gcc/function.c *************** *** 1810,1820 **** 1945284764b ./gcc/future.options 4221598017b ./gcc/gansidecl.h 4122921738b ./gcc/gbl-ctors.h ! 1168318307b ./gcc/gcc.c ! 2630706606b ./gcc/gcc.h 3891935819b ./gcc/gcc.hlp 2684927393b ./gcc/gccbug.in ! 1641833990b ./gcc/gccspec.c 1843506698b ./gcc/gcov-io.h 313069282b ./gcc/gcov.c 608033730b ./gcc/gcse.c --- 1817,1827 ---- 1945284764b ./gcc/future.options 4221598017b ./gcc/gansidecl.h 4122921738b ./gcc/gbl-ctors.h ! 4115725976b ./gcc/gcc.c ! 3913162253b ./gcc/gcc.h 3891935819b ./gcc/gcc.hlp 2684927393b ./gcc/gccbug.in ! 3916741943b ./gcc/gccspec.c 1843506698b ./gcc/gcov-io.h 313069282b ./gcc/gcov.c 608033730b ./gcc/gcse.c *************** *** 1844,1850 **** 684549565b ./gcc/ginclude/iso646.h 2766673945b ./gcc/ginclude/math-3300.h 3047408322b ./gcc/ginclude/math-68881.h ! 3196849793b ./gcc/ginclude/ppc-asm.h 2576905081b ./gcc/ginclude/proto.h 956736189b ./gcc/ginclude/stdarg.h 4095609490b ./gcc/ginclude/stdbool.h --- 1851,1857 ---- 684549565b ./gcc/ginclude/iso646.h 2766673945b ./gcc/ginclude/math-3300.h 3047408322b ./gcc/ginclude/math-68881.h ! 2851218889b ./gcc/ginclude/ppc-asm.h 2576905081b ./gcc/ginclude/proto.h 956736189b ./gcc/ginclude/stdarg.h 4095609490b ./gcc/ginclude/stdbool.h *************** *** 1865,1871 **** 2905827269b ./gcc/gthr-single.h 1038062946b ./gcc/gthr-solaris.h 2035828726b ./gcc/gthr-vxworks.h ! 1994804979b ./gcc/gthr-win32.h 2337416886b ./gcc/gthr.h 96676216b ./gcc/haifa-sched.c 3418019003b ./gcc/halfpic.c --- 1872,1878 ---- 2905827269b ./gcc/gthr-single.h 1038062946b ./gcc/gthr-solaris.h 2035828726b ./gcc/gthr-vxworks.h ! 82508872b ./gcc/gthr-win32.h 2337416886b ./gcc/gthr.h 96676216b ./gcc/haifa-sched.c 3418019003b ./gcc/halfpic.c *************** *** 1874,1887 **** 3760968495b ./gcc/hash.c 2987787285b ./gcc/hash.h 3658640867b ./gcc/hwint.h ! 1121895341b ./gcc/ifcvt.c 309316919b ./gcc/input.h 1198394584b ./gcc/insn-addr.h 3211908462b ./gcc/integrate.c 2996455768b ./gcc/integrate.h 1933110400b ./gcc/intl.c 1326021680b ./gcc/intl.h ! 1957716668b ./gcc/intl/ChangeLog 2608513953b ./gcc/intl/Makefile.in 1035788439b ./gcc/intl/VERSION 2050167308b ./gcc/intl/bindtextdom.c --- 1881,1894 ---- 3760968495b ./gcc/hash.c 2987787285b ./gcc/hash.h 3658640867b ./gcc/hwint.h ! 1398051783b ./gcc/ifcvt.c 309316919b ./gcc/input.h 1198394584b ./gcc/insn-addr.h 3211908462b ./gcc/integrate.c 2996455768b ./gcc/integrate.h 1933110400b ./gcc/intl.c 1326021680b ./gcc/intl.h ! 1671161077b ./gcc/intl/ChangeLog 2608513953b ./gcc/intl/Makefile.in 1035788439b ./gcc/intl/VERSION 2050167308b ./gcc/intl/bindtextdom.c *************** *** 1905,1918 **** 3722123962b ./gcc/intl/textdomain.c 2960721199b ./gcc/intl/xopen-msg.sed 4005572097b ./gcc/java/.cvsignore ! 2846269432b ./gcc/java/ChangeLog 3199045892b ./gcc/java/Make-lang.in 3788283147b ./gcc/java/boehm.c 2541917855b ./gcc/java/buffer.c 1535113190b ./gcc/java/buffer.h 3525399284b ./gcc/java/chartables.h 2664267463b ./gcc/java/check-init.c ! 3845730481b ./gcc/java/class.c 2038704444b ./gcc/java/config-lang.in 3496722225b ./gcc/java/constants.c 640032177b ./gcc/java/convert.h --- 1912,1925 ---- 3722123962b ./gcc/intl/textdomain.c 2960721199b ./gcc/intl/xopen-msg.sed 4005572097b ./gcc/java/.cvsignore ! 663649129b ./gcc/java/ChangeLog 3199045892b ./gcc/java/Make-lang.in 3788283147b ./gcc/java/boehm.c 2541917855b ./gcc/java/buffer.c 1535113190b ./gcc/java/buffer.h 3525399284b ./gcc/java/chartables.h 2664267463b ./gcc/java/check-init.c ! 247804317b ./gcc/java/class.c 2038704444b ./gcc/java/config-lang.in 3496722225b ./gcc/java/constants.c 640032177b ./gcc/java/convert.h *************** *** 1938,1945 **** 1146326619b ./gcc/java/jcf-write.c 1809110177b ./gcc/java/jcf.h 2686701189b ./gcc/java/jv-scan.c ! 4138083440b ./gcc/java/jvgenmain.c ! 3557411428b ./gcc/java/jvspec.c 3567108747b ./gcc/java/keyword.gperf 1595011281b ./gcc/java/keyword.h 1056131461b ./gcc/java/lang-options.h --- 1945,1952 ---- 1146326619b ./gcc/java/jcf-write.c 1809110177b ./gcc/java/jcf.h 2686701189b ./gcc/java/jv-scan.c ! 2779755583b ./gcc/java/jvgenmain.c ! 1154927807b ./gcc/java/jvspec.c 3567108747b ./gcc/java/keyword.gperf 1595011281b ./gcc/java/keyword.h 1056131461b ./gcc/java/lang-options.h *************** *** 1949,1957 **** 1271687574b ./gcc/java/lex.h 3274830053b ./gcc/java/mangle.c 2248284043b ./gcc/java/mangle_name.c ! 96916050b ./gcc/java/parse-scan.c 578153036b ./gcc/java/parse-scan.y ! 2814799967b ./gcc/java/parse.c 790738941b ./gcc/java/parse.h 3618600566b ./gcc/java/parse.y 3137203029b ./gcc/java/typeck.c --- 1956,1964 ---- 1271687574b ./gcc/java/lex.h 3274830053b ./gcc/java/mangle.c 2248284043b ./gcc/java/mangle_name.c ! 707618575b ./gcc/java/parse-scan.c 578153036b ./gcc/java/parse-scan.y ! 711551807b ./gcc/java/parse.c 790738941b ./gcc/java/parse.h 3618600566b ./gcc/java/parse.y 3137203029b ./gcc/java/typeck.c *************** *** 1972,1978 **** 4116099112b ./gcc/lists.c 3899123841b ./gcc/local-alloc.c 2278161154b ./gcc/longlong.h ! 4152471143b ./gcc/loop.c 3762441882b ./gcc/loop.h 983398590b ./gcc/machmode.def 2565031954b ./gcc/machmode.h --- 1979,1985 ---- 4116099112b ./gcc/lists.c 3899123841b ./gcc/local-alloc.c 2278161154b ./gcc/longlong.h ! 2626114710b ./gcc/loop.c 3762441882b ./gcc/loop.h 983398590b ./gcc/machmode.def 2565031954b ./gcc/machmode.h *************** *** 1986,1992 **** 1872345184b ./gcc/mkdeps.c 1784521594b ./gcc/mkdeps.h 827441351b ./gcc/mkinstalldirs ! 68016513b ./gcc/mklibgcc.in 2364607364b ./gcc/mkmap-flat.awk 60626456b ./gcc/mkmap-symver.awk 1597314052b ./gcc/move-if-change --- 1993,1999 ---- 1872345184b ./gcc/mkdeps.c 1784521594b ./gcc/mkdeps.h 827441351b ./gcc/mkinstalldirs ! 2925172224b ./gcc/mklibgcc.in 2364607364b ./gcc/mkmap-flat.awk 60626456b ./gcc/mkmap-symver.awk 1597314052b ./gcc/move-if-change *************** *** 1998,2005 **** 2977909645b ./gcc/objc/lang-specs.h 4226828284b ./gcc/objc/objc-act.c 3444272236b ./gcc/objc/objc-act.h ! 3815467981b ./gcc/objc/objc-parse.c ! 3649582771b ./gcc/objc/objc-parse.y 620378166b ./gcc/objc/objc-tree.def 1567868913b ./gcc/objc/objc.gperf 3926640974b ./gcc/optabs.c --- 2005,2012 ---- 2977909645b ./gcc/objc/lang-specs.h 4226828284b ./gcc/objc/objc-act.c 3444272236b ./gcc/objc/objc-act.h ! 1009656462b ./gcc/objc/objc-parse.c ! 619937598b ./gcc/objc/objc-parse.y 620378166b ./gcc/objc/objc-tree.def 1567868913b ./gcc/objc/objc.gperf 3926640974b ./gcc/optabs.c *************** *** 2008,2016 **** 52078911b ./gcc/params.def 200901683b ./gcc/params.h 1987145824b ./gcc/patch-apollo-includes ! 1044845750b ./gcc/po/ChangeLog 1909445789b ./gcc/po/Makefile.in.in ! 230456843b ./gcc/po/POTFILES.in 2625119691b ./gcc/po/cat-id-tbl.c 793353780b ./gcc/po/gcc.pot 216805921b ./gcc/po/stamp-cat-id --- 2015,2023 ---- 52078911b ./gcc/params.def 200901683b ./gcc/params.h 1987145824b ./gcc/patch-apollo-includes ! 221914905b ./gcc/po/ChangeLog 1909445789b ./gcc/po/Makefile.in.in ! 1504810947b ./gcc/po/POTFILES.in 2625119691b ./gcc/po/cat-id-tbl.c 793353780b ./gcc/po/gcc.pot 216805921b ./gcc/po/stamp-cat-id *************** *** 2028,2039 **** 3792773945b ./gcc/recog.h 3444596851b ./gcc/reg-stack.c 1357530535b ./gcc/regclass.c ! 3460075521b ./gcc/regmove.c 583135114b ./gcc/regrename.c 3830393261b ./gcc/regs.h 3006122128b ./gcc/reload.c 725417840b ./gcc/reload.h ! 715349482b ./gcc/reload1.c 2155579804b ./gcc/reorg.c 1244398550b ./gcc/resource.c 1586797891b ./gcc/resource.h --- 2035,2046 ---- 3792773945b ./gcc/recog.h 3444596851b ./gcc/reg-stack.c 1357530535b ./gcc/regclass.c ! 2081265358b ./gcc/regmove.c 583135114b ./gcc/regrename.c 3830393261b ./gcc/regs.h 3006122128b ./gcc/reload.c 725417840b ./gcc/reload.h ! 3062408354b ./gcc/reload1.c 2155579804b ./gcc/reorg.c 1244398550b ./gcc/resource.c 1586797891b ./gcc/resource.h *************** *** 2061,2079 **** 213938074b ./gcc/ssa.h 2395322097b ./gcc/stab.def 471587796b ./gcc/stack.h ! 335514606b ./gcc/stmt.c ! 996837816b ./gcc/stor-layout.c 1839687809b ./gcc/stringpool.c 567176141b ./gcc/sys-protos.h 482558466b ./gcc/sys-types.h 949648988b ./gcc/system.h ! 1554221349b ./gcc/testsuite/ChangeLog 986418331b ./gcc/testsuite/README 4258789052b ./gcc/testsuite/README.g++ 174183124b ./gcc/testsuite/README.gcc 1101480727b ./gcc/testsuite/config/default.exp 2175367674b ./gcc/testsuite/g++.dg/dg.exp 559527351b ./gcc/testsuite/g++.dg/mangle1.C 370035332b ./gcc/testsuite/g++.dg/special/conpr-1.C 1019201819b ./gcc/testsuite/g++.dg/special/conpr-2.C 1217683257b ./gcc/testsuite/g++.dg/special/conpr-2a.C --- 2068,2088 ---- 213938074b ./gcc/ssa.h 2395322097b ./gcc/stab.def 471587796b ./gcc/stack.h ! 269343607b ./gcc/stmt.c ! 3365131970b ./gcc/stor-layout.c 1839687809b ./gcc/stringpool.c 567176141b ./gcc/sys-protos.h 482558466b ./gcc/sys-types.h 949648988b ./gcc/system.h ! 150148496b ./gcc/testsuite/ChangeLog 986418331b ./gcc/testsuite/README 4258789052b ./gcc/testsuite/README.g++ 174183124b ./gcc/testsuite/README.gcc 1101480727b ./gcc/testsuite/config/default.exp 2175367674b ./gcc/testsuite/g++.dg/dg.exp 559527351b ./gcc/testsuite/g++.dg/mangle1.C + 522523166b ./gcc/testsuite/g++.dg/ref1.C + 1942107252b ./gcc/testsuite/g++.dg/sizeof1.C 370035332b ./gcc/testsuite/g++.dg/special/conpr-1.C 1019201819b ./gcc/testsuite/g++.dg/special/conpr-2.C 1217683257b ./gcc/testsuite/g++.dg/special/conpr-2a.C *************** *** 3236,3242 **** 1937028645b ./gcc/testsuite/g++.old-deja/g++.law/cvt4.C 2149948272b ./gcc/testsuite/g++.old-deja/g++.law/cvt5.C 1375863901b ./gcc/testsuite/g++.old-deja/g++.law/cvt6.C ! 3875047485b ./gcc/testsuite/g++.old-deja/g++.law/cvt7.C 4106332146b ./gcc/testsuite/g++.old-deja/g++.law/cvt8.C 3074219571b ./gcc/testsuite/g++.old-deja/g++.law/cvt9.C 3892359310b ./gcc/testsuite/g++.old-deja/g++.law/dossier1.C --- 3245,3251 ---- 1937028645b ./gcc/testsuite/g++.old-deja/g++.law/cvt4.C 2149948272b ./gcc/testsuite/g++.old-deja/g++.law/cvt5.C 1375863901b ./gcc/testsuite/g++.old-deja/g++.law/cvt6.C ! 1268590000b ./gcc/testsuite/g++.old-deja/g++.law/cvt7.C 4106332146b ./gcc/testsuite/g++.old-deja/g++.law/cvt8.C 3074219571b ./gcc/testsuite/g++.old-deja/g++.law/cvt9.C 3892359310b ./gcc/testsuite/g++.old-deja/g++.law/dossier1.C *************** *** 3666,3673 **** 791627116b ./gcc/testsuite/g++.old-deja/g++.mike/p4736b.C 3037713609b ./gcc/testsuite/g++.old-deja/g++.mike/p4736c.C 3183066012b ./gcc/testsuite/g++.old-deja/g++.mike/p4750.C ! 3056895628b ./gcc/testsuite/g++.old-deja/g++.mike/p5469.C ! 3540390210b ./gcc/testsuite/g++.old-deja/g++.mike/p5469a.C 1694086012b ./gcc/testsuite/g++.old-deja/g++.mike/p5571.C 2030989669b ./gcc/testsuite/g++.old-deja/g++.mike/p5611.C 3220562563b ./gcc/testsuite/g++.old-deja/g++.mike/p5673.C --- 3675,3682 ---- 791627116b ./gcc/testsuite/g++.old-deja/g++.mike/p4736b.C 3037713609b ./gcc/testsuite/g++.old-deja/g++.mike/p4736c.C 3183066012b ./gcc/testsuite/g++.old-deja/g++.mike/p4750.C ! 2783396832b ./gcc/testsuite/g++.old-deja/g++.mike/p5469.C ! 1643480270b ./gcc/testsuite/g++.old-deja/g++.mike/p5469a.C 1694086012b ./gcc/testsuite/g++.old-deja/g++.mike/p5571.C 2030989669b ./gcc/testsuite/g++.old-deja/g++.mike/p5611.C 3220562563b ./gcc/testsuite/g++.old-deja/g++.mike/p5673.C *************** *** 3897,3903 **** 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 ! 2957842485b ./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 --- 3906,3912 ---- 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 ! 3391153903b ./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 *************** *** 4012,4017 **** --- 4021,4027 ---- 3821789807b ./gcc/testsuite/g++.old-deja/g++.other/conv7.C 3587605986b ./gcc/testsuite/g++.old-deja/g++.other/copy1.C 3735054018b ./gcc/testsuite/g++.old-deja/g++.other/copy2.C + 4116304803b ./gcc/testsuite/g++.old-deja/g++.other/copy3.C 809878899b ./gcc/testsuite/g++.old-deja/g++.other/covar1.C 1458918645b ./gcc/testsuite/g++.old-deja/g++.other/crash1.C 2622243234b ./gcc/testsuite/g++.old-deja/g++.other/crash10.C *************** *** 4138,4143 **** --- 4148,4154 ---- 106210432b ./gcc/testsuite/g++.old-deja/g++.other/externC2.C 763760707b ./gcc/testsuite/g++.old-deja/g++.other/externC3.C 3610590692b ./gcc/testsuite/g++.old-deja/g++.other/externC4.C + 1052362663b ./gcc/testsuite/g++.old-deja/g++.other/externC5.C 778443229b ./gcc/testsuite/g++.old-deja/g++.other/field1.C 250200362b ./gcc/testsuite/g++.old-deja/g++.other/field2.C 1648602614b ./gcc/testsuite/g++.old-deja/g++.other/fnname1.C *************** *** 4782,4787 **** --- 4793,4799 ---- 1810826153b ./gcc/testsuite/g++.old-deja/g++.pt/memclass9.C 1224975036b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp1.C 2904180820b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp10.C + 4058618179b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C 2282254491b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp11.C 1976328805b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp12.C 1239088058b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp13.C *************** *** 5315,5320 **** --- 5327,5333 ---- 1434994100b ./gcc/testsuite/g++.old-deja/g++.warn/impint2.C 308484502b ./gcc/testsuite/g++.old-deja/g++.warn/inline.C 3053994732b ./gcc/testsuite/g++.old-deja/g++.warn/iomanip.C + 3603456747b ./gcc/testsuite/g++.old-deja/g++.warn/virt1.C 1192919505b ./gcc/testsuite/g++.old-deja/old-deja.exp 2710099993b ./gcc/testsuite/g77.dg/20010216-1.f 1815830648b ./gcc/testsuite/g77.dg/dg.exp *************** *** 5518,5523 **** --- 5531,5539 ---- 3077114319b ./gcc/testsuite/gcc.c-torture/compile/20010611-1.c 246682254b ./gcc/testsuite/gcc.c-torture/compile/20010903-1.c 1179192833b ./gcc/testsuite/gcc.c-torture/compile/20011010-1.c + 1413783183b ./gcc/testsuite/gcc.c-torture/compile/20011029-1.c + 259957404b ./gcc/testsuite/gcc.c-torture/compile/20011109-1.c + 3987052556b ./gcc/testsuite/gcc.c-torture/compile/20011205-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 *************** *** 6809,6814 **** --- 6825,6831 ---- 3796475762b ./gcc/testsuite/gcc.dg/compare1.c 280070085b ./gcc/testsuite/gcc.dg/compare2.c 1929905505b ./gcc/testsuite/gcc.dg/compare3.c + 2444556566b ./gcc/testsuite/gcc.dg/concat.c 872352985b ./gcc/testsuite/gcc.dg/conv-1.c 2296607049b ./gcc/testsuite/gcc.dg/cpp/19921210-1.c 446012754b ./gcc/testsuite/gcc.dg/cpp/19930510-1.c *************** *** 6947,6953 **** 858950276b ./gcc/testsuite/gcc.dg/cpp/pragma-1.c 2473416313b ./gcc/testsuite/gcc.dg/cpp/pragma-2.c 1107840471b ./gcc/testsuite/gcc.dg/cpp/redef1.c ! 3231647572b ./gcc/testsuite/gcc.dg/cpp/redef2.c 3846911977b ./gcc/testsuite/gcc.dg/cpp/skipping.c 4230263348b ./gcc/testsuite/gcc.dg/cpp/spacing1.c 3081823659b ./gcc/testsuite/gcc.dg/cpp/strify1.c --- 6964,6970 ---- 858950276b ./gcc/testsuite/gcc.dg/cpp/pragma-1.c 2473416313b ./gcc/testsuite/gcc.dg/cpp/pragma-2.c 1107840471b ./gcc/testsuite/gcc.dg/cpp/redef1.c ! 1601641321b ./gcc/testsuite/gcc.dg/cpp/redef2.c 3846911977b ./gcc/testsuite/gcc.dg/cpp/skipping.c 4230263348b ./gcc/testsuite/gcc.dg/cpp/spacing1.c 3081823659b ./gcc/testsuite/gcc.dg/cpp/strify1.c *************** *** 7274,7281 **** 2056968410b ./gcc/timevar.c 780535585b ./gcc/timevar.def 3918443491b ./gcc/timevar.h ! 3255809228b ./gcc/tlink.c ! 3744765622b ./gcc/toplev.c 3421121434b ./gcc/toplev.h 3381960764b ./gcc/tradcif.c 2773797431b ./gcc/tradcif.y --- 7291,7298 ---- 2056968410b ./gcc/timevar.c 780535585b ./gcc/timevar.def 3918443491b ./gcc/timevar.h ! 697833503b ./gcc/tlink.c ! 3644362593b ./gcc/toplev.c 3421121434b ./gcc/toplev.h 3381960764b ./gcc/tradcif.c 2773797431b ./gcc/tradcif.y *************** *** 7287,7293 **** 231560538b ./gcc/tsystem.h 4139263293b ./gcc/typeclass.h 17641651b ./gcc/unprotoize.c ! 3034634162b ./gcc/unroll.c 298823486b ./gcc/unwind-dw2-fde.c 2579082273b ./gcc/unwind-dw2-fde.h 1325164416b ./gcc/unwind-dw2.c --- 7304,7310 ---- 231560538b ./gcc/tsystem.h 4139263293b ./gcc/typeclass.h 17641651b ./gcc/unprotoize.c ! 1475109513b ./gcc/unroll.c 298823486b ./gcc/unwind-dw2-fde.c 2579082273b ./gcc/unwind-dw2-fde.h 1325164416b ./gcc/unwind-dw2.c *************** *** 7298,7311 **** 1491937623b ./gcc/varasm.c 740604337b ./gcc/varray.c 3918364708b ./gcc/varray.h ! 1464599016b ./gcc/version.c 1227851131b ./gcc/version.h 1040256635b ./gcc/vmsconfig.com 4121715740b ./gcc/xcoffout.c 2574034949b ./gcc/xcoffout.h 3832073952b ./gnats.html 2171125041b ./include/COPYING ! 4045792881b ./include/ChangeLog 888917931b ./include/ansidecl.h 1789350587b ./include/demangle.h 2980645374b ./include/dyn-string.h --- 7315,7328 ---- 1491937623b ./gcc/varasm.c 740604337b ./gcc/varray.c 3918364708b ./gcc/varray.h ! 4025509517b ./gcc/version.c 1227851131b ./gcc/version.h 1040256635b ./gcc/vmsconfig.com 4121715740b ./gcc/xcoffout.c 2574034949b ./gcc/xcoffout.h 3832073952b ./gnats.html 2171125041b ./include/COPYING ! 1449219214b ./include/ChangeLog 888917931b ./include/ansidecl.h 1789350587b ./include/demangle.h 2980645374b ./include/dyn-string.h *************** *** 7323,7329 **** 176339077b ./include/splay-tree.h 1653599470b ./include/symcat.h 4171599065b ./install-sh ! 4014153537b ./libf2c/ChangeLog 57434001b ./libf2c/Makefile.in 3111321221b ./libf2c/README 308226469b ./libf2c/TODO --- 7340,7346 ---- 176339077b ./include/splay-tree.h 1653599470b ./include/symcat.h 4171599065b ./install-sh ! 264260950b ./libf2c/ChangeLog 57434001b ./libf2c/Makefile.in 3111321221b ./libf2c/README 308226469b ./libf2c/TODO *************** *** 7335,7344 **** 332556269b ./libf2c/f2cext.c 3266643335b ./libf2c/g2c.hin 317136894b ./libf2c/libF77/F77_aloc.c ! 1147257543b ./libf2c/libF77/Makefile.in 1384146782b ./libf2c/libF77/Notice 3594711912b ./libf2c/libF77/README.netlib ! 2358276950b ./libf2c/libF77/Version.c 1304659322b ./libf2c/libF77/abort_.c 2143735092b ./libf2c/libF77/c_abs.c 4102372920b ./libf2c/libF77/c_cos.c --- 7352,7361 ---- 332556269b ./libf2c/f2cext.c 3266643335b ./libf2c/g2c.hin 317136894b ./libf2c/libF77/F77_aloc.c ! 3068841118b ./libf2c/libF77/Makefile.in 1384146782b ./libf2c/libF77/Notice 3594711912b ./libf2c/libF77/README.netlib ! 3204374780b ./libf2c/libF77/Version.c 1304659322b ./libf2c/libF77/abort_.c 2143735092b ./libf2c/libF77/c_abs.c 4102372920b ./libf2c/libF77/c_cos.c *************** *** 7470,7476 **** 999500799b ./libf2c/libI77/Makefile.in 1384146782b ./libf2c/libI77/Notice 3744878144b ./libf2c/libI77/README.netlib ! 211241024b ./libf2c/libI77/Version.c 1131505415b ./libf2c/libI77/backspace.c 2398093876b ./libf2c/libI77/close.c 3931934799b ./libf2c/libI77/config.h.in --- 7487,7493 ---- 999500799b ./libf2c/libI77/Makefile.in 1384146782b ./libf2c/libI77/Notice 3744878144b ./libf2c/libI77/README.netlib ! 1456222052b ./libf2c/libI77/Version.c 1131505415b ./libf2c/libI77/backspace.c 2398093876b ./libf2c/libI77/close.c 3931934799b ./libf2c/libI77/config.h.in *************** *** 7479,7485 **** 3018153615b ./libf2c/libI77/dfe.c 1498544240b ./libf2c/libI77/dolio.c 4283690771b ./libf2c/libI77/due.c ! 879637007b ./libf2c/libI77/endfile.c 3237984441b ./libf2c/libI77/err.c 3294101487b ./libf2c/libI77/f2ch.add 3487746107b ./libf2c/libI77/fio.h --- 7496,7502 ---- 3018153615b ./libf2c/libI77/dfe.c 1498544240b ./libf2c/libI77/dolio.c 4283690771b ./libf2c/libI77/due.c ! 1211665159b ./libf2c/libI77/endfile.c 3237984441b ./libf2c/libI77/err.c 3294101487b ./libf2c/libI77/f2ch.add 3487746107b ./libf2c/libI77/fio.h *************** *** 7518,7524 **** 2966234338b ./libf2c/libU77/Makefile.in 572996563b ./libf2c/libU77/PROJECTS 2980229902b ./libf2c/libU77/README ! 2451964497b ./libf2c/libU77/Version.c 1842933802b ./libf2c/libU77/access_.c 4214861580b ./libf2c/libU77/acconfig.h 2301261828b ./libf2c/libU77/aclocal.m4 --- 7535,7541 ---- 2966234338b ./libf2c/libU77/Makefile.in 572996563b ./libf2c/libU77/PROJECTS 2980229902b ./libf2c/libU77/README ! 1842740396b ./libf2c/libU77/Version.c 1842933802b ./libf2c/libU77/access_.c 4214861580b ./libf2c/libU77/acconfig.h 2301261828b ./libf2c/libU77/aclocal.m4 *************** *** 7580,7586 **** 3987376609b ./libf2c/libU77/vxttime_.c 1384146782b ./libf2c/permission.netlib 3513813969b ./libf2c/readme.netlib ! 2825692990b ./libffi/ChangeLog 2412263940b ./libffi/ChangeLog.libgcj 1481682558b ./libffi/ChangeLog.v1 2593181117b ./libffi/LICENSE --- 7597,7603 ---- 3987376609b ./libf2c/libU77/vxttime_.c 1384146782b ./libf2c/permission.netlib 3513813969b ./libf2c/readme.netlib ! 2894311362b ./libffi/ChangeLog 2412263940b ./libffi/ChangeLog.libgcj 1481682558b ./libffi/ChangeLog.v1 2593181117b ./libffi/LICENSE *************** *** 7630,7637 **** 4026965770b ./libffi/src/x86/win32.S 216805921b ./libffi/stamp-h.in 508743035b ./libiberty/COPYING.LIB ! 1610441598b ./libiberty/ChangeLog ! 1950042116b ./libiberty/Makefile.in 4016047250b ./libiberty/README 4152189310b ./libiberty/aclocal.m4 879652143b ./libiberty/alloca-conf.h --- 7647,7654 ---- 4026965770b ./libffi/src/x86/win32.S 216805921b ./libffi/stamp-h.in 508743035b ./libiberty/COPYING.LIB ! 2696201583b ./libiberty/ChangeLog ! 2883770811b ./libiberty/Makefile.in 4016047250b ./libiberty/README 4152189310b ./libiberty/aclocal.m4 879652143b ./libiberty/alloca-conf.h *************** *** 7661,7667 **** 2374920525b ./libiberty/configure.in 3602665671b ./libiberty/copysign.c 382214955b ./libiberty/cp-demangle.c ! 2181362183b ./libiberty/cplus-dem.c 1493405776b ./libiberty/dyn-string.c 2375131771b ./libiberty/fdmatch.c 3402508166b ./libiberty/floatformat.c --- 7678,7684 ---- 2374920525b ./libiberty/configure.in 3602665671b ./libiberty/copysign.c 382214955b ./libiberty/cp-demangle.c ! 2736791262b ./libiberty/cplus-dem.c 1493405776b ./libiberty/dyn-string.c 2375131771b ./libiberty/fdmatch.c 3402508166b ./libiberty/floatformat.c *************** *** 7716,7722 **** 974873767b ./libiberty/strtol.c 1828706574b ./libiberty/strtoul.c 2389145348b ./libiberty/testsuite/Makefile.in ! 1979662792b ./libiberty/testsuite/demangle-expected 1807149783b ./libiberty/testsuite/regress-demangle 1688081427b ./libiberty/tmpnam.c 1231940410b ./libiberty/vasprintf.c --- 7733,7739 ---- 974873767b ./libiberty/strtol.c 1828706574b ./libiberty/strtoul.c 2389145348b ./libiberty/testsuite/Makefile.in ! 1232507167b ./libiberty/testsuite/demangle-expected 1807149783b ./libiberty/testsuite/regress-demangle 1688081427b ./libiberty/tmpnam.c 1231940410b ./libiberty/vasprintf.c *************** *** 7733,7739 **** 3859667112b ./libiberty/xstrdup.c 2509140929b ./libiberty/xstrerror.c 2171125041b ./libjava/COPYING ! 351416319b ./libjava/ChangeLog 3473562392b ./libjava/ChangeLog-1999 3913589198b ./libjava/HACKING 2906142423b ./libjava/LIBGCJ_LICENSE --- 7750,7756 ---- 3859667112b ./libiberty/xstrdup.c 2509140929b ./libiberty/xstrerror.c 2171125041b ./libjava/COPYING ! 3699633081b ./libjava/ChangeLog 3473562392b ./libjava/ChangeLog-1999 3913589198b ./libjava/HACKING 2906142423b ./libjava/LIBGCJ_LICENSE *************** *** 7748,7754 **** 3784840223b ./libjava/addr2name.awk 608342622b ./libjava/boehm.cc 1179658282b ./libjava/chartables.pl ! 4248440651b ./libjava/configure 3242339555b ./libjava/configure.host 2518793201b ./libjava/configure.in 3942405165b ./libjava/defineclass.cc --- 7765,7771 ---- 3784840223b ./libjava/addr2name.awk 608342622b ./libjava/boehm.cc 1179658282b ./libjava/chartables.pl ! 652541543b ./libjava/configure 3242339555b ./libjava/configure.host 2518793201b ./libjava/configure.in 3942405165b ./libjava/defineclass.cc *************** *** 8668,8680 **** 2067382225b ./libjava/javax/naming/spi/InitialContextFactoryBuilder.java 1709476683b ./libjava/javax/naming/spi/NamingManager.java 562080873b ./libjava/javax/naming/spi/ObjectFactory.java ! 2965503045b ./libjava/jni.cc 3263845190b ./libjava/libgcj-test.spec.in 1618850334b ./libjava/libgcj.spec.in 3693275905b ./libjava/libgcjdata.c 1996902805b ./libjava/libltdl/.cvsignore 1530919786b ./libjava/libltdl/COPYING.LIB ! 3848332079b ./libjava/libltdl/ChangeLog 3589765398b ./libjava/libltdl/Makefile.am 2495909158b ./libjava/libltdl/Makefile.in 1322928877b ./libjava/libltdl/README --- 8685,8697 ---- 2067382225b ./libjava/javax/naming/spi/InitialContextFactoryBuilder.java 1709476683b ./libjava/javax/naming/spi/NamingManager.java 562080873b ./libjava/javax/naming/spi/ObjectFactory.java ! 2194098132b ./libjava/jni.cc 3263845190b ./libjava/libgcj-test.spec.in 1618850334b ./libjava/libgcj.spec.in 3693275905b ./libjava/libgcjdata.c 1996902805b ./libjava/libltdl/.cvsignore 1530919786b ./libjava/libltdl/COPYING.LIB ! 2067897300b ./libjava/libltdl/ChangeLog 3589765398b ./libjava/libltdl/Makefile.am 2495909158b ./libjava/libltdl/Makefile.in 1322928877b ./libjava/libltdl/README *************** *** 8705,8711 **** 1359447378b ./libjava/scripts/showval.java 3969226176b ./libjava/sysdep/ia64-frame.h 4255020929b ./libjava/sysdep/ia64.c ! 266237528b ./libjava/testsuite/ChangeLog 3806425466b ./libjava/testsuite/Makefile.am 1253427395b ./libjava/testsuite/Makefile.in 1230501773b ./libjava/testsuite/config/default.exp --- 8722,8728 ---- 1359447378b ./libjava/scripts/showval.java 3969226176b ./libjava/sysdep/ia64-frame.h 4255020929b ./libjava/sysdep/ia64.c ! 1764111269b ./libjava/testsuite/ChangeLog 3806425466b ./libjava/testsuite/Makefile.am 1253427395b ./libjava/testsuite/Makefile.in 1230501773b ./libjava/testsuite/config/default.exp *************** *** 9064,9070 **** 1032868016b ./libjava/testsuite/libjava.mauve/mauve.exp 168151904b ./libjava/testsuite/libjava.mauve/xfails 1531406287b ./libjava/win32-threads.cc ! 1121501330b ./libobjc/ChangeLog 3802413505b ./libobjc/Makefile.in 638422313b ./libobjc/NXConstStr.m 3285287551b ./libobjc/Object.m --- 9081,9087 ---- 1032868016b ./libjava/testsuite/libjava.mauve/mauve.exp 168151904b ./libjava/testsuite/libjava.mauve/xfails 1531406287b ./libjava/win32-threads.cc ! 1855631810b ./libobjc/ChangeLog 3802413505b ./libobjc/Makefile.in 638422313b ./libobjc/NXConstStr.m 3285287551b ./libobjc/Object.m *************** *** 9119,9133 **** 2005277748b ./libobjc/thr-vxworks.c 2963027857b ./libobjc/thr-win32.c 1509327042b ./libobjc/thr.c ! 1971839529b ./libstdc++-v3/ChangeLog 4193951875b ./libstdc++-v3/ChangeLog-2000 2737980541b ./libstdc++-v3/Makefile.am 455890377b ./libstdc++-v3/Makefile.in 476340085b ./libstdc++-v3/README ! 1785366352b ./libstdc++-v3/acconfig.h ! 941843433b ./libstdc++-v3/acinclude.m4 ! 1507045635b ./libstdc++-v3/aclocal.m4 ! 3139938778b ./libstdc++-v3/config.h.in 1453199454b ./libstdc++-v3/config/basic_file_libio.cc 440650960b ./libstdc++-v3/config/basic_file_libio.h 3327448769b ./libstdc++-v3/config/basic_file_stdio.cc --- 9136,9150 ---- 2005277748b ./libobjc/thr-vxworks.c 2963027857b ./libobjc/thr-win32.c 1509327042b ./libobjc/thr.c ! 2988995043b ./libstdc++-v3/ChangeLog 4193951875b ./libstdc++-v3/ChangeLog-2000 2737980541b ./libstdc++-v3/Makefile.am 455890377b ./libstdc++-v3/Makefile.in 476340085b ./libstdc++-v3/README ! 1454978311b ./libstdc++-v3/acconfig.h ! 3758211099b ./libstdc++-v3/acinclude.m4 ! 1723321994b ./libstdc++-v3/aclocal.m4 ! 3992870177b ./libstdc++-v3/config.h.in 1453199454b ./libstdc++-v3/config/basic_file_libio.cc 440650960b ./libstdc++-v3/config/basic_file_libio.h 3327448769b ./libstdc++-v3/config/basic_file_stdio.cc *************** *** 9209,9215 **** 3980190828b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h 1735304697b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h 186536916b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h ! 2689720803b ./libstdc++-v3/configure 3116040814b ./libstdc++-v3/configure.host 502813057b ./libstdc++-v3/configure.in 2732356862b ./libstdc++-v3/configure.target --- 9226,9232 ---- 3980190828b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h 1735304697b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h 186536916b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h ! 2449261353b ./libstdc++-v3/configure 3116040814b ./libstdc++-v3/configure.host 502813057b ./libstdc++-v3/configure.in 2732356862b ./libstdc++-v3/configure.target *************** *** 9219,9248 **** 863086283b ./libstdc++-v3/docs/doxygen/style.css 404838806b ./libstdc++-v3/docs/doxygen/user.cfg.in 4001239912b ./libstdc++-v3/docs/html/17_intro/BADNAMES ! 1897516117b ./libstdc++-v3/docs/html/17_intro/BUGS ! 1657776562b ./libstdc++-v3/docs/html/17_intro/C++STYLE ! 1484663604b ./libstdc++-v3/docs/html/17_intro/CHECKLIST 2171125041b ./libstdc++-v3/docs/html/17_intro/COPYING 3922222294b ./libstdc++-v3/docs/html/17_intro/COPYING.DOC ! 200707478b ./libstdc++-v3/docs/html/17_intro/DESIGN 1363011462b ./libstdc++-v3/docs/html/17_intro/HEADER_POLICY 12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS 698966724b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES ! 1612896665b ./libstdc++-v3/docs/html/17_intro/TODO 3997884874b ./libstdc++-v3/docs/html/17_intro/concept_check.diff 3326490253b ./libstdc++-v3/docs/html/17_intro/contribute.html 3461116413b ./libstdc++-v3/docs/html/17_intro/headers_cc.txt ! 2817107662b ./libstdc++-v3/docs/html/17_intro/howto.html 3565645043b ./libstdc++-v3/docs/html/17_intro/libstdc++-assign.txt ! 2228462606b ./libstdc++-v3/docs/html/17_intro/license.html 982764901b ./libstdc++-v3/docs/html/17_intro/organization ! 1278915005b ./libstdc++-v3/docs/html/17_intro/porting-howto.html ! 3336170739b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml ! 2063480760b ./libstdc++-v3/docs/html/18_support/howto.html ! 1410322631b ./libstdc++-v3/docs/html/19_diagnostics/howto.html ! 2835046806b ./libstdc++-v3/docs/html/20_util/howto.html 2326263830b ./libstdc++-v3/docs/html/21_strings/gotw29a.txt ! 456495239b ./libstdc++-v3/docs/html/21_strings/howto.html 3590781787b ./libstdc++-v3/docs/html/21_strings/stringtok_h.txt 3437467499b ./libstdc++-v3/docs/html/21_strings/stringtok_std_h.txt 2957885157b ./libstdc++-v3/docs/html/22_locale/codecvt.html --- 9236,9267 ---- 863086283b ./libstdc++-v3/docs/doxygen/style.css 404838806b ./libstdc++-v3/docs/doxygen/user.cfg.in 4001239912b ./libstdc++-v3/docs/html/17_intro/BADNAMES ! 985890621b ./libstdc++-v3/docs/html/17_intro/BUGS ! 2419103289b ./libstdc++-v3/docs/html/17_intro/C++STYLE ! 2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST 2171125041b ./libstdc++-v3/docs/html/17_intro/COPYING 3922222294b ./libstdc++-v3/docs/html/17_intro/COPYING.DOC ! 3222542515b ./libstdc++-v3/docs/html/17_intro/DESIGN 1363011462b ./libstdc++-v3/docs/html/17_intro/HEADER_POLICY 12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS 698966724b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES ! 3997667910b ./libstdc++-v3/docs/html/17_intro/TODO 3997884874b ./libstdc++-v3/docs/html/17_intro/concept_check.diff 3326490253b ./libstdc++-v3/docs/html/17_intro/contribute.html 3461116413b ./libstdc++-v3/docs/html/17_intro/headers_cc.txt ! 2379403154b ./libstdc++-v3/docs/html/17_intro/howto.html 3565645043b ./libstdc++-v3/docs/html/17_intro/libstdc++-assign.txt ! 2208482093b ./libstdc++-v3/docs/html/17_intro/license.html 982764901b ./libstdc++-v3/docs/html/17_intro/organization ! 4058128368b ./libstdc++-v3/docs/html/17_intro/porting-howto.html ! 424990165b ./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 ! 3329218498b ./libstdc++-v3/docs/html/18_support/howto.html ! 2268070041b ./libstdc++-v3/docs/html/19_diagnostics/howto.html ! 2248597755b ./libstdc++-v3/docs/html/20_util/howto.html 2326263830b ./libstdc++-v3/docs/html/21_strings/gotw29a.txt ! 933711313b ./libstdc++-v3/docs/html/21_strings/howto.html 3590781787b ./libstdc++-v3/docs/html/21_strings/stringtok_h.txt 3437467499b ./libstdc++-v3/docs/html/21_strings/stringtok_std_h.txt 2957885157b ./libstdc++-v3/docs/html/22_locale/codecvt.html *************** *** 9250,9273 **** 1554570816b ./libstdc++-v3/docs/html/22_locale/howto.html 60951948b ./libstdc++-v3/docs/html/22_locale/locale.html 2961292476b ./libstdc++-v3/docs/html/22_locale/messages.html ! 3038307209b ./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 ! 4004053273b ./libstdc++-v3/docs/html/26_numerics/howto.html 2452165260b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kanze.txt 3249620502b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kuehl.txt ! 3113980624b ./libstdc++-v3/docs/html/27_io/howto.html ! 1631173890b ./libstdc++-v3/docs/html/Makefile 1903336430b ./libstdc++-v3/docs/html/configopts.html ! 95080851b ./libstdc++-v3/docs/html/documentation.html ! 3445372463b ./libstdc++-v3/docs/html/explanations.html ! 2886809538b ./libstdc++-v3/docs/html/ext/howto.html ! 2864809450b ./libstdc++-v3/docs/html/ext/lwg-active.html ! 3144932103b ./libstdc++-v3/docs/html/ext/lwg-defects.html ! 2490001280b ./libstdc++-v3/docs/html/ext/sgiexts.html ! 3349943401b ./libstdc++-v3/docs/html/faq/index.html ! 3450973058b ./libstdc++-v3/docs/html/faq/index.txt 3510747379b ./libstdc++-v3/docs/html/install.html 2049389478b ./libstdc++-v3/docs/html/lib3styles.css 1018934202b ./libstdc++-v3/include/Makefile.am --- 9269,9292 ---- 1554570816b ./libstdc++-v3/docs/html/22_locale/howto.html 60951948b ./libstdc++-v3/docs/html/22_locale/locale.html 2961292476b ./libstdc++-v3/docs/html/22_locale/messages.html ! 2056976870b ./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 ! 2926171563b ./libstdc++-v3/docs/html/26_numerics/howto.html 2452165260b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kanze.txt 3249620502b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kuehl.txt ! 2949880033b ./libstdc++-v3/docs/html/27_io/howto.html ! 3129179057b ./libstdc++-v3/docs/html/Makefile 1903336430b ./libstdc++-v3/docs/html/configopts.html ! 2546324033b ./libstdc++-v3/docs/html/documentation.html ! 3529196048b ./libstdc++-v3/docs/html/explanations.html ! 1226112276b ./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 ! 3111249657b ./libstdc++-v3/docs/html/ext/sgiexts.html ! 2202036139b ./libstdc++-v3/docs/html/faq/index.html ! 2188256919b ./libstdc++-v3/docs/html/faq/index.txt 3510747379b ./libstdc++-v3/docs/html/install.html 2049389478b ./libstdc++-v3/docs/html/lib3styles.css 1018934202b ./libstdc++-v3/include/Makefile.am *************** *** 9313,9327 **** 2964830866b ./libstdc++-v3/include/bits/basic_ios.h 2254012334b ./libstdc++-v3/include/bits/basic_ios.tcc 2082508960b ./libstdc++-v3/include/bits/basic_string.h ! 1857306722b ./libstdc++-v3/include/bits/basic_string.tcc ! 1664028266b ./libstdc++-v3/include/bits/boost_concept_check.h ! 3612158683b ./libstdc++-v3/include/bits/c++config 2314692779b ./libstdc++-v3/include/bits/char_traits.h 2805936695b ./libstdc++-v3/include/bits/codecvt.h 4120003531b ./libstdc++-v3/include/bits/concept_check.h 4222967943b ./libstdc++-v3/include/bits/concept_checks.h 3638262457b ./libstdc++-v3/include/bits/container_concepts.h ! 3915319002b ./libstdc++-v3/include/bits/cpp_type_traits.h 1601132351b ./libstdc++-v3/include/bits/fpos.h 3545962146b ./libstdc++-v3/include/bits/fstream.tcc 3886600201b ./libstdc++-v3/include/bits/functexcept.h --- 9332,9346 ---- 2964830866b ./libstdc++-v3/include/bits/basic_ios.h 2254012334b ./libstdc++-v3/include/bits/basic_ios.tcc 2082508960b ./libstdc++-v3/include/bits/basic_string.h ! 1457427451b ./libstdc++-v3/include/bits/basic_string.tcc ! 683603772b ./libstdc++-v3/include/bits/boost_concept_check.h ! 1775688865b ./libstdc++-v3/include/bits/c++config 2314692779b ./libstdc++-v3/include/bits/char_traits.h 2805936695b ./libstdc++-v3/include/bits/codecvt.h 4120003531b ./libstdc++-v3/include/bits/concept_check.h 4222967943b ./libstdc++-v3/include/bits/concept_checks.h 3638262457b ./libstdc++-v3/include/bits/container_concepts.h ! 783599862b ./libstdc++-v3/include/bits/cpp_type_traits.h 1601132351b ./libstdc++-v3/include/bits/fpos.h 3545962146b ./libstdc++-v3/include/bits/fstream.tcc 3886600201b ./libstdc++-v3/include/bits/functexcept.h *************** *** 9332,9339 **** 354751699b ./libstdc++-v3/include/bits/ios_base.h 2213504588b ./libstdc++-v3/include/bits/istream.tcc 2076404966b ./libstdc++-v3/include/bits/limits_generic.h ! 2347240123b ./libstdc++-v3/include/bits/locale_facets.h ! 4169892956b ./libstdc++-v3/include/bits/locale_facets.tcc 1654371752b ./libstdc++-v3/include/bits/localefwd.h 1773064307b ./libstdc++-v3/include/bits/mask_array.h 4212032713b ./libstdc++-v3/include/bits/ostream.tcc --- 9351,9358 ---- 354751699b ./libstdc++-v3/include/bits/ios_base.h 2213504588b ./libstdc++-v3/include/bits/istream.tcc 2076404966b ./libstdc++-v3/include/bits/limits_generic.h ! 774313285b ./libstdc++-v3/include/bits/locale_facets.h ! 4019781243b ./libstdc++-v3/include/bits/locale_facets.tcc 1654371752b ./libstdc++-v3/include/bits/localefwd.h 1773064307b ./libstdc++-v3/include/bits/mask_array.h 4212032713b ./libstdc++-v3/include/bits/ostream.tcc *************** *** 9345,9351 **** 3436409662b ./libstdc++-v3/include/bits/sstream.tcc 289136488b ./libstdc++-v3/include/bits/std_algorithm.h 2190102835b ./libstdc++-v3/include/bits/std_bitset.h ! 1951420756b ./libstdc++-v3/include/bits/std_complex.h 2026387708b ./libstdc++-v3/include/bits/std_deque.h 1480548940b ./libstdc++-v3/include/bits/std_fstream.h 909850763b ./libstdc++-v3/include/bits/std_functional.h --- 9364,9370 ---- 3436409662b ./libstdc++-v3/include/bits/sstream.tcc 289136488b ./libstdc++-v3/include/bits/std_algorithm.h 2190102835b ./libstdc++-v3/include/bits/std_bitset.h ! 4200624366b ./libstdc++-v3/include/bits/std_complex.h 2026387708b ./libstdc++-v3/include/bits/std_deque.h 1480548940b ./libstdc++-v3/include/bits/std_fstream.h 909850763b ./libstdc++-v3/include/bits/std_functional.h *************** *** 9355,9361 **** 2709925409b ./libstdc++-v3/include/bits/std_iostream.h 570267107b ./libstdc++-v3/include/bits/std_istream.h 2834882043b ./libstdc++-v3/include/bits/std_iterator.h ! 243895402b ./libstdc++-v3/include/bits/std_limits.h 2877785888b ./libstdc++-v3/include/bits/std_list.h 3961142338b ./libstdc++-v3/include/bits/std_locale.h 201090893b ./libstdc++-v3/include/bits/std_map.h --- 9374,9380 ---- 2709925409b ./libstdc++-v3/include/bits/std_iostream.h 570267107b ./libstdc++-v3/include/bits/std_istream.h 2834882043b ./libstdc++-v3/include/bits/std_iterator.h ! 3099065606b ./libstdc++-v3/include/bits/std_limits.h 2877785888b ./libstdc++-v3/include/bits/std_list.h 3961142338b ./libstdc++-v3/include/bits/std_locale.h 201090893b ./libstdc++-v3/include/bits/std_map.h *************** *** 9378,9384 **** 1901902183b ./libstdc++-v3/include/bits/stl_bvector.h 2179796154b ./libstdc++-v3/include/bits/stl_config.h 2878454282b ./libstdc++-v3/include/bits/stl_construct.h ! 3420405531b ./libstdc++-v3/include/bits/stl_deque.h 1616976213b ./libstdc++-v3/include/bits/stl_function.h 3262343598b ./libstdc++-v3/include/bits/stl_heap.h 38213228b ./libstdc++-v3/include/bits/stl_iterator.h --- 9397,9403 ---- 1901902183b ./libstdc++-v3/include/bits/stl_bvector.h 2179796154b ./libstdc++-v3/include/bits/stl_config.h 2878454282b ./libstdc++-v3/include/bits/stl_construct.h ! 900906786b ./libstdc++-v3/include/bits/stl_deque.h 1616976213b ./libstdc++-v3/include/bits/stl_function.h 3262343598b ./libstdc++-v3/include/bits/stl_heap.h 38213228b ./libstdc++-v3/include/bits/stl_iterator.h *************** *** 9404,9410 **** 3933418180b ./libstdc++-v3/include/bits/stl_vector.h 2427064909b ./libstdc++-v3/include/bits/streambuf.tcc 3733069616b ./libstdc++-v3/include/bits/stringfwd.h ! 2281182376b ./libstdc++-v3/include/bits/type_traits.h 1275731289b ./libstdc++-v3/include/bits/valarray_array.h 1408725829b ./libstdc++-v3/include/bits/valarray_array.tcc 4062553156b ./libstdc++-v3/include/bits/valarray_meta.h --- 9423,9429 ---- 3933418180b ./libstdc++-v3/include/bits/stl_vector.h 2427064909b ./libstdc++-v3/include/bits/streambuf.tcc 3733069616b ./libstdc++-v3/include/bits/stringfwd.h ! 3044846779b ./libstdc++-v3/include/bits/type_traits.h 1275731289b ./libstdc++-v3/include/bits/valarray_array.h 1408725829b ./libstdc++-v3/include/bits/valarray_array.tcc 4062553156b ./libstdc++-v3/include/bits/valarray_meta.h *************** *** 9438,9444 **** 1849023164b ./libstdc++-v3/include/c_shadow/bits/std_cstdarg.h 1416432536b ./libstdc++-v3/include/c_shadow/bits/std_cstddef.h 603206410b ./libstdc++-v3/include/c_shadow/bits/std_cstdio.h ! 3217625918b ./libstdc++-v3/include/c_shadow/bits/std_cstdlib.h 3229568541b ./libstdc++-v3/include/c_shadow/bits/std_cstring.h 3422048856b ./libstdc++-v3/include/c_shadow/bits/std_ctime.h 536419890b ./libstdc++-v3/include/c_shadow/bits/std_cwchar.h --- 9457,9463 ---- 1849023164b ./libstdc++-v3/include/c_shadow/bits/std_cstdarg.h 1416432536b ./libstdc++-v3/include/c_shadow/bits/std_cstddef.h 603206410b ./libstdc++-v3/include/c_shadow/bits/std_cstdio.h ! 362076186b ./libstdc++-v3/include/c_shadow/bits/std_cstdlib.h 3229568541b ./libstdc++-v3/include/c_shadow/bits/std_cstring.h 3422048856b ./libstdc++-v3/include/c_shadow/bits/std_ctime.h 536419890b ./libstdc++-v3/include/c_shadow/bits/std_cwchar.h *************** *** 9471,9477 **** 3742613068b ./libstdc++-v3/include/c_shadow/stdarg.h 1746566969b ./libstdc++-v3/include/c_shadow/stddef.h 3938753534b ./libstdc++-v3/include/c_shadow/stdio.h ! 2467432661b ./libstdc++-v3/include/c_shadow/stdlib.h 105073828b ./libstdc++-v3/include/c_shadow/string.h 2629001503b ./libstdc++-v3/include/c_shadow/sys/cdefs.h 3221974189b ./libstdc++-v3/include/c_shadow/time.h --- 9490,9496 ---- 3742613068b ./libstdc++-v3/include/c_shadow/stdarg.h 1746566969b ./libstdc++-v3/include/c_shadow/stddef.h 3938753534b ./libstdc++-v3/include/c_shadow/stdio.h ! 4232198514b ./libstdc++-v3/include/c_shadow/stdlib.h 105073828b ./libstdc++-v3/include/c_shadow/string.h 2629001503b ./libstdc++-v3/include/c_shadow/sys/cdefs.h 3221974189b ./libstdc++-v3/include/c_shadow/time.h *************** *** 9554,9560 **** 2645437597b ./libstdc++-v3/include/std/utility 2280752861b ./libstdc++-v3/include/std/valarray 392237057b ./libstdc++-v3/include/std/vector ! 131300061b ./libstdc++-v3/libio/ChangeLog 226381804b ./libstdc++-v3/libio/Makefile.am 1424658516b ./libstdc++-v3/libio/Makefile.in 314955067b ./libstdc++-v3/libio/_G_config.h --- 9573,9579 ---- 2645437597b ./libstdc++-v3/include/std/utility 2280752861b ./libstdc++-v3/include/std/valarray 392237057b ./libstdc++-v3/include/std/vector ! 265245219b ./libstdc++-v3/libio/ChangeLog 226381804b ./libstdc++-v3/libio/Makefile.am 1424658516b ./libstdc++-v3/libio/Makefile.in 314955067b ./libstdc++-v3/libio/_G_config.h *************** *** 9627,9636 **** 180238345b ./libstdc++-v3/src/gen-num-limits.cc 681129958b ./libstdc++-v3/src/globals.cc 1383759180b ./libstdc++-v3/src/ios.cc ! 3763069051b ./libstdc++-v3/src/limits.cc 641891272b ./libstdc++-v3/src/limits_generic.cc 888901044b ./libstdc++-v3/src/locale-inst.cc ! 4248120791b ./libstdc++-v3/src/locale.cc 3678785766b ./libstdc++-v3/src/localename.cc 4290618040b ./libstdc++-v3/src/misc-inst.cc 1726669856b ./libstdc++-v3/src/stdexcept.cc --- 9646,9655 ---- 180238345b ./libstdc++-v3/src/gen-num-limits.cc 681129958b ./libstdc++-v3/src/globals.cc 1383759180b ./libstdc++-v3/src/ios.cc ! 4247682085b ./libstdc++-v3/src/limits.cc 641891272b ./libstdc++-v3/src/limits_generic.cc 888901044b ./libstdc++-v3/src/locale-inst.cc ! 1154042250b ./libstdc++-v3/src/locale.cc 3678785766b ./libstdc++-v3/src/localename.cc 4290618040b ./libstdc++-v3/src/misc-inst.cc 1726669856b ./libstdc++-v3/src/stdexcept.cc *************** *** 9669,9675 **** 4006660250b ./libstdc++-v3/testsuite/20_util/binders.cc 2620430532b ./libstdc++-v3/testsuite/21_strings/append.cc 1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc ! 1157819296b ./libstdc++-v3/testsuite/21_strings/capacity.cc 2635888646b ./libstdc++-v3/testsuite/21_strings/char_traits_requirements.cc 4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc 2800726480b ./libstdc++-v3/testsuite/21_strings/compare.cc --- 9688,9694 ---- 4006660250b ./libstdc++-v3/testsuite/20_util/binders.cc 2620430532b ./libstdc++-v3/testsuite/21_strings/append.cc 1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc ! 2085027904b ./libstdc++-v3/testsuite/21_strings/capacity.cc 2635888646b ./libstdc++-v3/testsuite/21_strings/char_traits_requirements.cc 4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc 2800726480b ./libstdc++-v3/testsuite/21_strings/compare.cc *************** *** 9751,9757 **** 1876828962b ./libstdc++-v3/testsuite/27_io/ios_manip_fmtflags.cc 402291869b ./libstdc++-v3/testsuite/27_io/ios_members.cc 1023084641b ./libstdc++-v3/testsuite/27_io/istream.cc ! 773035515b ./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 --- 9770,9776 ---- 1876828962b ./libstdc++-v3/testsuite/27_io/ios_manip_fmtflags.cc 402291869b ./libstdc++-v3/testsuite/27_io/ios_members.cc 1023084641b ./libstdc++-v3/testsuite/27_io/istream.cc ! 149386730b ./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 *************** *** 9812,9818 **** 902556840b ./move-if-change 1077958069b ./symlink-tree 1370970362b ./ylwrap ! 1295615007b ./zlib/ChangeLog 2655845150b ./zlib/ChangeLog.gcj 3874989574b ./zlib/FAQ 467711448b ./zlib/INDEX --- 9831,9837 ---- 902556840b ./move-if-change 1077958069b ./symlink-tree 1370970362b ./ylwrap ! 2986081122b ./zlib/ChangeLog 2655845150b ./zlib/ChangeLog.gcj 3874989574b ./zlib/FAQ 467711448b ./zlib/INDEX diff -Nrc3pad gcc-3.0.2/BUGS gcc-3.0.3/BUGS *** gcc-3.0.2/BUGS Tue Oct 23 10:56:16 2001 --- gcc-3.0.3/BUGS Thu Dec 20 11:56:11 2001 *************** Summarized bug reporting instructions *** 47,71 **** What we need ! Please include in your bug report all of the following items: ! * The GCC version (not just 3.xx; run gcc -v) ! * The system type (the dir name after gcc-lib in the output of gcc ! -v ! * The complete command line that triggers the bug ! * The compiler output (error messages, warnings, etc) ! * The preprocessed file (*.i*) that triggers the bug, generated by ! adding -save-temps to the complete compilation command (see below) ! * The options given when GCC was configured/built ! What we DON'T want * A source file that #includes header files that are left out of the bug report (see above) ! * That source file and a collection of header files (don't waste ! your time; the preprocessor will collect them for you! :-) * An attached archive (tar, zip, shar, whatever) containing all (or ! some :-) of the above, so that we can tell what the bug report is ! about without having to unarchive it * A code snippet that won't cause the compiler to produce the exact output mentioned in the bug report (e.g., a snippet with just a few lines around the one that apparently triggers the bug, with --- 47,70 ---- What we need ! Please include in your bug report all of the following items, the ! first three of which can be obtained from the output of gcc -v: ! * the exact version of GCC; ! * the system type; ! * the options given when GCC was configured/built; ! * the complete command line that triggers the bug; ! * the compiler output (error messages, warnings, etc.); and ! * the preprocessed file (*.i*) that triggers the bug, generated by ! adding -save-temps to the complete compilation command (see ! below). ! What we do not want * A source file that #includes header files that are left out of the bug report (see above) ! * That source file and a collection of header files. * An attached archive (tar, zip, shar, whatever) containing all (or ! some :-) of the above. * A code snippet that won't cause the compiler to produce the exact output mentioned in the bug report (e.g., a snippet with just a few lines around the one that apparently triggers the bug, with *************** Summarized bug reporting instructions *** 78,86 **** compiled, such that retrying a sufficient number of times results in a successful compilation; this is a symptom of a hardware problem, not of a compiler bug (sorry) ! * E-mail messages that complement previous, incomplete bug reports; ! post a new, self-contained, full bug report instead, if possible ! as a follow-up (or reply) to the original bug report * Assembly files (*.s) produced by the compiler, or any binary files, such as object files, executables or core files * Duplicate bug reports, or reports of bugs already fixed in the --- 77,85 ---- compiled, such that retrying a sufficient number of times results in a successful compilation; this is a symptom of a hardware problem, not of a compiler bug (sorry) ! * E-mail messages that complement previous, incomplete bug reports. ! Post a new, self-contained, full bug report instead, if possible ! as a follow-up to the original bug report * Assembly files (*.s) produced by the compiler, or any binary files, such as object files, executables or core files * Duplicate bug reports, or reports of bugs already fixed in the *************** Summarized bug reporting instructions *** 98,105 **** Where to post it Please submit your bug report directly to the [20]GCC GNATS bug ! database. If this is not possible, please mail all information to ! [21]gcc-bugs@gcc.gnu.org. Detailed bug reporting instructions --- 97,104 ---- Where to post it Please submit your bug report directly to the [20]GCC GNATS bug ! database. Only if this is not possible, mail all information to ! [21]bug-gcc@gnu.org or [22]gcc-bugs@gcc.gnu.org. Detailed bug reporting instructions *************** Detailed bug reporting instructions *** 145,151 **** The gcc lists have message size limits (200 kbytes) and bug reports over those limits will currently be bounced. If your bug is larger ! than that, please post it using the [22]GCC GNATS bug database. If you fail to supply enough information for a bug report to be reproduced, someone will probably ask you to post additional --- 144,150 ---- The gcc lists have message size limits (200 kbytes) and bug reports over those limits will currently be bounced. If your bug is larger ! than that, please post it using the [23]GCC GNATS bug database. If you fail to supply enough information for a bug report to be reproduced, someone will probably ask you to post additional *************** General *** 191,197 **** Fortran Fortran bugs are documented in the G77 manual rather than explicitly ! listed here. Please see [23]Known Causes of Trouble with GNU Fortran in the G77 manual. _________________________________________________________________ --- 190,196 ---- Fortran Fortran bugs are documented in the G77 manual rather than explicitly ! listed here. Please see [24]Known Causes of Trouble with GNU Fortran in the G77 manual. _________________________________________________________________ *************** C *** 207,216 **** #include FILE *yyin = stdin; will not compile with GNU libc (GNU/Linux libc6), because stdin ! is not a constant. This was done deliberately, in order for ! there to be no limit on the number of open FILE objects. It is ! surprising for people used to traditional Unix C libraries, but ! it is permitted by the C standard. This construct commonly occurs in code generated by old versions of lex or yacc. We suggest you try regenerating the --- 206,216 ---- #include FILE *yyin = stdin; will not compile with GNU libc (GNU/Linux libc6), because stdin ! is not a constant. This was done deliberately, to make it ! easier to maintain binary compatibility when the type FILE ! needs to be changed. It is surprising for people used to ! traditional Unix C libraries, but it is permitted by the C ! standard. This construct commonly occurs in code generated by old versions of lex or yacc. We suggest you try regenerating the *************** C *** 220,226 **** There is a common misconception that the GCC developers are responsible for GNU libc. These are in fact two entirely ! separate projects; please check the [24]GNU libc web pages for details. Cannot use preprocessor directive in macro arguments. --- 220,226 ---- There is a common misconception that the GCC developers are responsible for GNU libc. These are in fact two entirely ! separate projects; please check the [25]GNU libc web pages for details. Cannot use preprocessor directive in macro arguments. *************** C++ *** 299,305 **** reported very often, but not yet fixed. While it is certainly better to fix bugs instead of documenting them, this document might save people the effort of writing a bug report when the bug is already ! well-known. [25]How to report bugs tells you how to report a bug. There are many reasons why reported bugs don't get fixed. It might be difficult to fix, or fixing it might break compatibility. Often, --- 299,305 ---- reported very often, but not yet fixed. While it is certainly better to fix bugs instead of documenting them, this document might save people the effort of writing a bug report when the bug is already ! well-known. [26]How to report bugs tells you how to report a bug. There are many reasons why reported bugs don't get fixed. It might be difficult to fix, or fixing it might break compatibility. Often, *************** C++ *** 318,329 **** Common problems updating from G++ 2.95 to G++ 3.0 G++ 3.0 conforms much closer to the ISO C++ standard (available at ! [26]http://www.ncits.org/cplusplus.htm). We have also implemented some of the core and library defect reports (available at ! [27]http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html & ! [28]http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html respectively). * The ABI has changed. This means that both class layout and name mangling is different. You must recompile all c++ libraries (if --- 318,329 ---- Common problems updating from G++ 2.95 to G++ 3.0 G++ 3.0 conforms much closer to the ISO C++ standard (available at ! [27]http://www.ncits.org/cplusplus.htm). We have also implemented some of the core and library defect reports (available at ! [28]http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html & ! [29]http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html respectively). * The ABI has changed. This means that both class layout and name mangling is different. You must recompile all c++ libraries (if *************** C++ *** 419,425 **** the nearest representable number. This is not a bug in the compiler, but an inherent limitation ! of the float and double types. Please study [29]this paper for more information. Missing features --- 419,425 ---- the nearest representable number. This is not a bug in the compiler, but an inherent limitation ! of the float and double types. Please study [30]this paper for more information. Missing features *************** References *** 529,540 **** 18. http://gcc.gnu.org/gnats.html 19. http://gcc.gnu.org/bugs.html#known 20. http://gcc.gnu.org/gnats.html ! 21. mailto:gcc-bugs@gcc.gnu.org ! 22. http://gcc.gnu.org/gnats.html ! 23. http://gcc.gnu.org/onlinedocs/g77_bugs.html ! 24. http://www.gnu.org/software/glibc/ ! 25. http://gcc.gnu.org/bugs.html#report ! 26. http://www.ncits.org/cplusplus.htm ! 27. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html ! 28. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html ! 29. http://www.validlab.com/goldberg/paper.ps --- 529,541 ---- 18. http://gcc.gnu.org/gnats.html 19. http://gcc.gnu.org/bugs.html#known 20. http://gcc.gnu.org/gnats.html ! 21. mailto:bug-gcc@gnu.org ! 22. mailto:gcc-bugs@gcc.gnu.org ! 23. http://gcc.gnu.org/gnats.html ! 24. http://gcc.gnu.org/onlinedocs/g77_bugs.html ! 25. http://www.gnu.org/software/glibc/ ! 26. http://gcc.gnu.org/bugs.html#report ! 27. http://www.ncits.org/cplusplus.htm ! 28. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html ! 29. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html ! 30. http://www.validlab.com/goldberg/paper.ps diff -Nrc3pad gcc-3.0.2/ChangeLog gcc-3.0.3/ChangeLog *** gcc-3.0.2/ChangeLog Tue Oct 23 10:18:45 2001 --- gcc-3.0.3/ChangeLog Thu Dec 20 11:20:57 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/FAQ gcc-3.0.3/FAQ *** gcc-3.0.2/FAQ Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/FAQ Thu Dec 20 11:56:11 2001 *************** *** 40,53 **** 5. [29]Miscellaneous 1. [30]Virtual memory exhausted 2. [31]Friend Templates ! 3. [32]Why do I need autoconf, bison, xgettext, automake, etc? ! 4. [33]Why can't I build a shared library? ! 5. [34]How to work around too long C++ symbol names? (-fsquangle) ! 6. [35]When building C++, the linker says my constructors, destructors or virtual tables are undefined, but I defined them ! 7. [36]Will GCC someday include an incremental linker? _________________________________________________________________ General information --- 40,55 ---- 5. [29]Miscellaneous 1. [30]Virtual memory exhausted 2. [31]Friend Templates ! 3. [32]dynamic_cast, throw, typeid don't work with shared ! libraries ! 4. [33]Why do I need autoconf, bison, xgettext, automake, etc? ! 5. [34]Why can't I build a shared library? ! 6. [35]How to work around too long C++ symbol names? (-fsquangle) ! 7. [36]When building C++, the linker says my constructors, destructors or virtual tables are undefined, but I defined them ! 8. [37]Will GCC someday include an incremental linker? _________________________________________________________________ General information *************** What is the relationship between GCC and *** 69,75 **** development on the gcc2 compiler and appointed the EGCS project as the official GCC maintainers. The net result was a single project which carries forward GCC development under the ultimate control of the ! [37]GCC Steering Committee. _________________________________________________________________ What is the relationship between GCC and Cygnus / Red Hat? --- 71,77 ---- development on the gcc2 compiler and appointed the EGCS project as the official GCC maintainers. The net result was a single project which carries forward GCC development under the ultimate control of the ! [38]GCC Steering Committee. _________________________________________________________________ What is the relationship between GCC and Cygnus / Red Hat? *************** What is the relationship between GCC and *** 80,86 **** While Red Hat does donate hardware, network connections, code and developer time to GCC development, Red Hat does not control GCC. ! Overall control of GCC is in the hands of the [38]GCC Steering Committee which includes people from a variety of different organizations and backgrounds. The purpose of the steering committee is to make decisions in the best interest of GCC and to help ensure --- 82,88 ---- While Red Hat does donate hardware, network connections, code and developer time to GCC development, Red Hat does not control GCC. ! Overall control of GCC is in the hands of the [39]GCC Steering Committee which includes people from a variety of different organizations and backgrounds. The purpose of the steering committee is to make decisions in the best interest of GCC and to help ensure *************** What is the relationship between GCC and *** 92,98 **** What is an open development model? ! We are using a bazaar style [39][1] approach to GCC development: we make snapshots publicly available to anyone who wants to try them; we welcome anyone to join the development mailing list. All of the discussions on the development mailing list are available via the web. --- 94,100 ---- What is an open development model? ! We are using a bazaar style [40][1] approach to GCC development: we make snapshots publicly available to anyone who wants to try them; we welcome anyone to join the development mailing list. All of the discussions on the development mailing list are available via the web. *************** What is an open development model? *** 130,142 **** the past few months. The paper which started all of this introduced two terms: A cathedral development model versus a bazaar development model. The paper is written by Eric S. Raymond, it is ! called ``[40]The Cathedral and the Bazaar''. The paper is a useful starting point for discussions. _________________________________________________________________ How do I report a bug? ! There are complete instructions [41]here. _________________________________________________________________ How do I get a bug fixed or a feature added? --- 132,144 ---- the past few months. The paper which started all of this introduced two terms: A cathedral development model versus a bazaar development model. The paper is written by Eric S. Raymond, it is ! called ``[41]The Cathedral and the Bazaar''. The paper is a useful starting point for discussions. _________________________________________________________________ How do I report a bug? ! There are complete instructions [42]here. _________________________________________________________________ How do I get a bug fixed or a feature added? *************** How do I get a bug fixed or a feature ad *** 151,157 **** * Hire someone to fix it for you. There are various companies and individuals providing support for GCC. This alternative costs money, but is relatively likely to get results. ! * [42]Report the problem to the GCC GNATS bug tracking system and hope that someone will be kind enough to fix it for you. While this is certainly possible, and often happens, there is no guarantee that it will. You should not expect the same response --- 153,159 ---- * Hire someone to fix it for you. There are various companies and individuals providing support for GCC. This alternative costs money, but is relatively likely to get results. ! * [43]Report the problem to the GCC GNATS bug tracking system and hope that someone will be kind enough to fix it for you. While this is certainly possible, and often happens, there is no guarantee that it will. You should not expect the same response *************** How do I get a bug fixed or a feature ad *** 159,165 **** organization since the people who read GCC bug reports, if they choose to help you, will be volunteering their time. This alternative will work best if you follow the directions on ! [43]submitting bugreports. * Fix it yourself. This alternative will probably bring results, if you work hard enough, but will probably take a lot of time, and, depending on the quality of your work and the perceived benefits --- 161,167 ---- organization since the people who read GCC bug reports, if they choose to help you, will be volunteering their time. This alternative will work best if you follow the directions on ! [44]submitting bugreports. * Fix it yourself. This alternative will probably bring results, if you work hard enough, but will probably take a lot of time, and, depending on the quality of your work and the perceived benefits *************** How do I get a bug fixed or a feature ad *** 170,176 **** How can I get a development environment for GCC without using CVS? GCC snapshots are available from the FTP server and its mirrors; see ! the [44]GCC mirror list. _________________________________________________________________ Does GCC work on my platform? --- 172,178 ---- How can I get a development environment for GCC without using CVS? GCC snapshots are available from the FTP server and its mirrors; see ! the [45]GCC mirror list. _________________________________________________________________ Does GCC work on my platform? *************** Does GCC work on my platform? *** 178,186 **** The host/target specific installation notes for GCC include information about known problems with installing or using GCC on particular platforms. These are included in the sources for a release ! in INSTALL/specific.html, and the [45]latest version is always available at the GCC web site. Reports of successful builds for GCC ! versions [46]3.0 and [47]2.95 are also available at the web site. _________________________________________________________________ Installation --- 180,188 ---- The host/target specific installation notes for GCC include information about known problems with installing or using GCC on particular platforms. These are included in the sources for a release ! in INSTALL/specific.html, and the [46]latest version is always available at the GCC web site. Reports of successful builds for GCC ! versions [47]3.0 and [48]2.95 are also available at the web site. _________________________________________________________________ Installation *************** How to install multiple versions of GCC *** 237,243 **** wish to be sure about which version you are invoking. If you use --prefix, GCC may have difficulty locating a GNU assembler ! or linker on your system, [48]GCC can not find GNU as/GNU ld explains how to deal with this. Another option that may be easier is to use the --program-prefix= or --- 239,245 ---- wish to be sure about which version you are invoking. If you use --prefix, GCC may have difficulty locating a GNU assembler ! or linker on your system, [49]GCC can not find GNU as/GNU ld explains how to deal with this. Another option that may be easier is to use the --program-prefix= or *************** GCC can not find GNU as/GNU ld *** 303,309 **** versions of those programs. To ensure that GCC finds the GNU assembler (the GNU loader), which are ! required by [49]some configurations, you should configure these with the same --prefix option as you used for GCC. Then build & install GNU as (GNU ld) and proceed with building GCC. --- 305,311 ---- versions of those programs. To ensure that GCC finds the GNU assembler (the GNU loader), which are ! required by [50]some configurations, you should configure these with the same --prefix option as you used for GCC. Then build & install GNU as (GNU ld) and proceed with building GCC. *************** Unable to run the testsuite *** 357,363 **** If you get a message about unable to find "standard.exp" when trying to run the GCC testsuites, then your dejagnu is too old to run the GCC tests. You will need to get a newer version of dejagnu from ! [50]http://www.gnu.org/software/dejagnu/dejagnu.html. _________________________________________________________________ How do I pass flags like -fnew-abi to the testsuite? --- 359,365 ---- If you get a message about unable to find "standard.exp" when trying to run the GCC testsuites, then your dejagnu is too old to run the GCC tests. You will need to get a newer version of dejagnu from ! [51]http://www.gnu.org/software/dejagnu/dejagnu.html. _________________________________________________________________ How do I pass flags like -fnew-abi to the testsuite? *************** How can I run the test suite with multip *** 392,398 **** Is there a stringstream / sstream for GCC 2.95.2? Yes, it's at: ! [51]http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream. _________________________________________________________________ Miscellaneous --- 394,400 ---- Is there a stringstream / sstream for GCC 2.95.2? Yes, it's at: ! [52]http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream. _________________________________________________________________ Miscellaneous *************** void bar(foo) { /* ... */ } *** 460,465 **** --- 462,517 ---- version of the Standard, it is. _________________________________________________________________ + dynamic_cast, throw, typeid don't work with shared libraries + + The new C++ ABI in the GCC 3.0 series uses address comparisons, rather + than string compares, to determine type equality. This leads to better + performance. Like other objects that have to be present in the final + executable, these std::typeinfo_t objects have what is called vague + linkage because they are not tightly bound to any one particular + translation unit (object file). The compiler has to emit them in any + translation unit that requires their presence, and then rely on the + linking and loading process to make sure that only one of them is + active in the final executable. With static linking all of these + symbols are resolved at link time, but with dynamic linking, further + resolution occurs at load time. You have to ensure that objects within + a shared library are resolved against objects in the executable and + other shared libraries. + * For a program which is linked against a shared library, no + additional precautions need taking. + * You cannot create a shared library with the "-Bsymbolic" option, + as that prevents the resolution described above. + * If you use dlopen to explicitly load code from a shared library, + you must do several things. First, export global symbols from the + executable by linking it with the "-E" flag (you will have to + specify this as "-Wl,-E" if you are invoking the linker in the + usual manner from the compiler driver, g++). You must also make + the external symbols in the loaded library available for + subsequent libraries by providing the RTLD_GLOBAL flag to dlopen. + The symbol resolution can be immediate or lazy. + + Template instantiations are another, user visible, case of objects + with vague linkage, which needs similar resolution. If you do not take + the above precautions, you may discover that a template instantiation + with the same argument list, but instantiated in multiple translation + units, has several addresses, depending in which translation unit the + address is taken. (This is not an exhaustive list of the kind of + objects which have vague linkage and are expected to be resolved + during linking & loading.) + + If you are worried about different objects with the same name + colliding during the linking or loading process, then you should use + namespaces to disambiguate them. Giving distinct objects with global + linkage the same name is a violation of the One Definition Rule (ODR) + [basic.def.odr]. + + For more details about the way that GCC implements these and other C++ + features, please read the [53]ABI specification. Note the + std::typeinfo_t objects which must be resolved all begin with "_ZTS". + Refer to ld's documentation for a description of the "-E" & + "-Bsymbolic" flags. + _________________________________________________________________ + Why do I need autoconf, bison, xgettext, automake, etc? If you're using diffs up dated from one snapshot to the next, or if *************** Why do I need autoconf, bison, xgettext, *** 485,494 **** rebuild GCC. In general, the current versions of these tools from ! [52]ftp://ftp.gnu.org/gnu/ will work. At present, Autoconf 2.50 is not supported, and you will need to use Autoconf 2.13; work is in progress to fix this problem. Also look at ! [53]ftp://gcc.gnu.org/pub/gcc/infrastructure/ for any special versions of packages. _________________________________________________________________ --- 537,546 ---- rebuild GCC. In general, the current versions of these tools from ! [54]ftp://ftp.gnu.org/gnu/ will work. At present, Autoconf 2.50 is not supported, and you will need to use Autoconf 2.13; work is in progress to fix this problem. Also look at ! [55]ftp://gcc.gnu.org/pub/gcc/infrastructure/ for any special versions of packages. _________________________________________________________________ *************** References *** 599,623 **** 29. http://gcc.gnu.org/faq.html#misc 30. http://gcc.gnu.org/faq.html#memexhausted 31. http://gcc.gnu.org/faq.html#friend ! 32. http://gcc.gnu.org/faq.html#generated_files ! 33. http://gcc.gnu.org/faq.html#picflag-needed ! 34. http://gcc.gnu.org/faq.html#squangle ! 35. http://gcc.gnu.org/faq.html#vtables ! 36. http://gcc.gnu.org/faq.html#incremental ! 37. http://gcc.gnu.org/steering.html 38. http://gcc.gnu.org/steering.html ! 39. http://gcc.gnu.org/faq.html#cathedral-vs-bazaar ! 40. http://www.tuxedo.org/~esr/writings/cathedral-bazaar/ ! 41. http://gcc.gnu.org/bugs.html 42. http://gcc.gnu.org/bugs.html 43. http://gcc.gnu.org/bugs.html ! 44. http://gcc.gnu.org/mirrors.html ! 45. http://gcc.gnu.org/install/specific.html ! 46. http://gcc.gnu.org/gcc-3.0/buildstat.html ! 47. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 48. http://gcc.gnu.org/faq.html#gas ! 49. http://gcc.gnu.org/install/specific.html ! 50. http://www.gnu.org/software/dejagnu/dejagnu.html ! 51. http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream ! 52. ftp://ftp.gnu.org/gnu/ ! 53. ftp://gcc.gnu.org/pub/gcc/infrastructure/ --- 651,677 ---- 29. http://gcc.gnu.org/faq.html#misc 30. http://gcc.gnu.org/faq.html#memexhausted 31. http://gcc.gnu.org/faq.html#friend ! 32. http://gcc.gnu.org/faq.html#dso ! 33. http://gcc.gnu.org/faq.html#generated_files ! 34. http://gcc.gnu.org/faq.html#picflag-needed ! 35. http://gcc.gnu.org/faq.html#squangle ! 36. http://gcc.gnu.org/faq.html#vtables ! 37. http://gcc.gnu.org/faq.html#incremental 38. http://gcc.gnu.org/steering.html ! 39. http://gcc.gnu.org/steering.html ! 40. http://gcc.gnu.org/faq.html#cathedral-vs-bazaar ! 41. http://www.tuxedo.org/~esr/writings/cathedral-bazaar/ 42. http://gcc.gnu.org/bugs.html 43. http://gcc.gnu.org/bugs.html ! 44. http://gcc.gnu.org/bugs.html ! 45. http://gcc.gnu.org/mirrors.html ! 46. http://gcc.gnu.org/install/specific.html ! 47. http://gcc.gnu.org/gcc-3.0/buildstat.html ! 48. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 49. http://gcc.gnu.org/faq.html#gas ! 50. http://gcc.gnu.org/install/specific.html ! 51. http://www.gnu.org/software/dejagnu/dejagnu.html ! 52. http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream ! 53. http://www.codesourcery.com/cxx-abi ! 54. ftp://ftp.gnu.org/gnu/ ! 55. ftp://gcc.gnu.org/pub/gcc/infrastructure/ diff -Nrc3pad gcc-3.0.2/INSTALL/build.html gcc-3.0.3/INSTALL/build.html *** gcc-3.0.2/INSTALL/build.html Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/INSTALL/build.html Thu Dec 20 11:56:11 2001 *************** as parts of GCC can only be built with G *** 128,134 ****

To build a cross compiler, we first recommend building and installing a native compiler. You can then use the native GCC compiler to build the ! cross compiler.

Assuming you have already installed a native copy of GCC and configured your cross compiler, issue the command make, which performs the --- 128,135 ----

To build a cross compiler, we first recommend building and installing a native compiler. You can then use the native GCC compiler to build the ! cross compiler. The installed native compiler needs to be GCC version ! 2.95 or later.

Assuming you have already installed a native copy of GCC and configured your cross compiler, issue the command make, which performs the diff -Nrc3pad gcc-3.0.2/INSTALL/configure.html gcc-3.0.3/INSTALL/configure.html *** gcc-3.0.2/INSTALL/configure.html Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/INSTALL/configure.html Thu Dec 20 11:56:11 2001 *************** implies that the host defaults to t *** 71,77 ****

Options specification

Use options to override several configure time options for ! GCC. A partial list of supported options:

--prefix=dirname --- 71,79 ----

Options specification

Use options to override several configure time options for ! GCC. A list of supported options follows; configure ! --help may list other options, but those not listed below may not ! work and should not normally be used.

--prefix=dirname *************** procedure to prefer its copy of GNU catgets interface, the GCC build procedure normally ignores catgets and instead uses GCC's copy of the GNU gettext library. The --with-catgets option causes the ! build procedure to use the host's catgets in this situation.

Some options which only apply to building cross compilers: --- 468,478 ---- inferior catgets interface, the GCC build procedure normally ignores catgets and instead uses GCC's copy of the GNU gettext library. The --with-catgets option causes the ! build procedure to use the host's catgets in this situation. ! !

--with-system-zlib !
Use installed zlib rather than that included with GCC. This option ! only applies if the Java front end is being built.

Some options which only apply to building cross compilers: diff -Nrc3pad gcc-3.0.2/INSTALL/finalinstall.html gcc-3.0.3/INSTALL/finalinstall.html *** gcc-3.0.2/INSTALL/finalinstall.html Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/INSTALL/finalinstall.html Thu Dec 20 11:56:11 2001 *************** info format in infodir< *** 25,42 ****

If you don't mind, please quickly review the 3.0 build status page. ! If your system is not listed, send a note to gcc@gcc.gnu.org indicating ! that you successfully built and installed GCC. !

Include the output from running srcdir/config.guess. (Do ! not send us the config.guess file itself, just the one-line output from ! running it!) Also specify which version you built. ! If the build was for GNU/Linux, also include the distribution name and version ! (e.g., Red Hat 7.1 or Debian 2.2.3, available from /etc/issue) ! and the version of glibc you used; for RPM-based systems like Red Hat, Mandrake, and SuSE type rpm -q glibc to get the glibc version, ! and on systems like Debian and Progeny use dpkg -l libc6.

We'd also like to know if the host/target specific installation notes --- 25,63 ----

If you don't mind, please quickly review the 3.0 build status page. ! If your system is not listed for the version of GCC that you built, ! send a note to gcc@gcc.gnu.org indicating ! that you successfully built and installed GCC. ! Include the following information: !

    !
  • Output from running srcdir/config.guess. Do not send us ! that file itself, just the one-line output from running it. ! !
  • The output of gcc -v for your newly installed gcc. ! This tells us which version of GCC you built and the options you passed to ! configure. ! !
  • If the build was for GNU/Linux, also include: !
      !
    • The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3); ! this information should be available from /etc/issue. ! !
    • The version of the Linux kernel, available from uname --version ! or uname -a. ! !
    • The version of glibc you used; for RPM-based systems like Red Hat, Mandrake, and SuSE type rpm -q glibc to get the glibc version, ! and on systems like Debian and Progeny use dpkg -l libc6. !
    ! For other systems, you can include similar information if you think it is ! relevant. ! !
  • Any other information that you think would be useful to people building ! GCC on the same configuration. The new entry in the build status list ! will include a link to the archived copy of your message. !

We'd also like to know if the host/target specific installation notes diff -Nrc3pad gcc-3.0.2/INSTALL/gfdl.html gcc-3.0.3/INSTALL/gfdl.html *** gcc-3.0.2/INSTALL/gfdl.html Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/INSTALL/gfdl.html Thu Dec 20 11:56:11 2001 *************** *** 0 **** --- 1,381 ---- + + Installing GCC: GNU Free Documentation License + + + + + + +

Installing GCC: 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
+ of this license document, but changing it is not allowed.
+ 
+ +
    +
  1. PREAMBLE + +

    The purpose of this License is to make a manual, textbook, or other + written document free in the sense of freedom: to assure everyone + the effective freedom to copy and redistribute it, with or without + modifying it, either commercially or noncommercially. Secondarily, + this License preserves for the author and publisher a way to get + credit for their work, while not being considered responsible for + modifications made by others. + +

    This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. It + complements the GNU General Public License, which is a copyleft + license designed for free software. + +

    We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. + +

  2. APPLICABILITY AND DEFINITIONS + +

    This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be distributed + under the terms of this License. The "Document", below, refers to any + such manual or work. Any member of the public is a licensee, and is + addressed as "you". + +

    A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + +

    A "Secondary Section" is a named appendix or a front-matter section of + the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall subject + (or to related matters) and contains nothing that could fall directly + within that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. + +

    The "Invariant Sections" are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. + +

    The "Cover Texts" are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. + +

    A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, whose contents can be viewed and edited directly and + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy that is + not "Transparent" is called "Opaque". + +

    Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available + DTD, and standard-conforming simple HTML designed + for human modification. Opaque formats include PostScript, + PDF, proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which + the DTD and/or processing tools are not generally available, + and the machine-generated HTML produced by some word + processors for output purposes only. + +

    The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, "Title Page" means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. + +

  3. VERBATIM COPYING + +

    You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. + +

    You may also lend copies, under the same conditions stated above, and + you may publicly display copies. + +

  4. COPYING IN QUANTITY + +

    If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. + +

    If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. + +

    If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a publicly-accessible computer-network location containing a complete + Transparent copy of the Document, free of added material, which the + general network-using public has access to download anonymously at no + charge using public-standard network protocols. If you use the latter + option, you must take reasonably prudent steps, when you begin + distribution of Opaque copies in quantity, to ensure that this + Transparent copy will remain thus accessible at the stated location + until at least one year after the last time you distribute an Opaque + copy (directly or through your agents or retailers) of that edition to + the public. + +

    It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. + +

  5. MODIFICATIONS + +

    You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: + +

      +

    1. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. + +
    2. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). + +
    3. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + +
    4. Preserve all the copyright notices of the Document. + +
    5. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + +
    6. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. + +
    7. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. + +
    8. Include an unaltered copy of this License. + +
    9. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. + +
    10. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. + +
    11. In any section entitled "Acknowledgments" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgments + and/or dedications given therein. + +
    12. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. + +
    13. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. + +
    14. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. +
    + +

    If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. + +

    You may add a section entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. + +

    You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. + +

    The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. + +

  6. COMBINING DOCUMENTS + +

    You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice. + +

    The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. + +

    In the combination, you must combine any sections entitled "History" + in the various original documents, forming one section entitled + "History"; likewise combine any sections entitled "Acknowledgments", + and any sections entitled "Dedications". You must delete all sections + entitled "Endorsements." + +

  7. COLLECTIONS OF DOCUMENTS + +

    You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. + +

    You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. + +

  8. AGGREGATION WITH INDEPENDENT WORKS + +

    A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, does not as a whole count as a Modified Version + of the Document, provided no compilation copyright is claimed for the + compilation. Such a compilation is called an "aggregate", and this + License does not apply to the other self-contained works thus compiled + with the Document, on account of their being thus compiled, if they + are not themselves derivative works of the Document. + +

    If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one quarter + of the entire aggregate, the Document's Cover Texts may be placed on + covers that surround only the Document within the aggregate. + Otherwise they must appear on covers around the whole aggregate. + +

  9. TRANSLATION + +

    Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License provided that you also include the + original English version of this License. In case of a disagreement + between the translation and the original English version of this + License, the original English version will prevail. + +

  10. TERMINATION + +

    You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. + +

  11. FUTURE REVISIONS OF THIS LICENSE + +

    The Free Software Foundation may publish new, revised versions + of the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + http://www.gnu.org/copyleft/. + +

    Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License "or any later version" applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + 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;
+   with the Invariant Sections being list their titles, with the
+   Front-Cover Texts being list, and with the Back-Cover Texts being list.
+   A copy of the license is included in the section entitled ``GNU
+   Free Documentation License''.
+ 
+ +

If you have no Invariant Sections, write "with no Invariant Sections" + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write "no Front-Cover Texts" instead of + "Front-Cover Texts being list"; likewise for Back-Cover Texts. + +

If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. + +

+
+

+ Return to the GCC Installation page + + + diff -Nrc3pad gcc-3.0.2/INSTALL/index.html gcc-3.0.3/INSTALL/index.html *** gcc-3.0.2/INSTALL/index.html Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/INSTALL/index.html Thu Dec 20 11:56:11 2001 *************** more binaries exist that use them. *** 49,53 **** --- 49,74 ----

Return to the GCC Installation page +

Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 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 + any later version published by the Free Software Foundation; with no + Invariant Sections, the Front-Cover texts being (a) (see below), and + with the Back-Cover Texts being (b) (see below). A copy of the + license is included in the section entitled "GNU Free Documentation License". + +

(a) The FSF's Front-Cover Text is: + +

A GNU Manual + +

(b) The FSF's Back-Cover Text is: + +

You have freedom to copy and modify this GNU Manual, like GNU + software. Copies published by the Free Software Foundation raise + funds for GNU development. + diff -Nrc3pad gcc-3.0.2/INSTALL/specific.html gcc-3.0.3/INSTALL/specific.html *** gcc-3.0.2/INSTALL/specific.html Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/INSTALL/specific.html Thu Dec 20 11:56:11 2001 *************** as new information becomes available. *** 89,94 **** --- 89,95 ----

  • powerpc*-*-* powerpc-*-sysv4
  • powerpc-*-elf powerpc-*-sysv4
  • powerpc-*-linux-gnu* +
  • powerpc-*-netbsd*
  • powerpc-*-eabiaix
  • powerpc-*-eabisim
  • powerpc-*-eabi *************** as new information becomes available. *** 105,110 **** --- 106,112 ----
  • *-*-solaris2.8
  • sparc-sun-sunos4*
  • sparc-unknown-linux-gnulibc1 +
  • sparc-*-linux*
  • sparc64-*-*
  • *-*-sysv*
  • vax-dec-ultrix *************** if you initially built it with gcc-2.7.2 *** 1546,1552 ****


    !

    powerpc-*-eabiaix

    Embedded PowerPC system in big endian mode with -mcall-aix selected as the default. --- 1548,1563 ----


    !

    powerpc-*-netbsd*

    ! !

    PowerPC system in big endian mode running NetBSD. To build the ! documentation you will need Texinfo version 4.0 (NetBSD 1.5.1 included ! Texinfo version 3.12). ! !

    !
    ! !

    powerpc-*-eabiaix

    Embedded PowerPC system in big endian mode with -mcall-aix selected as the default. *************** the default. *** 1554,1560 ****


    !

    powerpc-*-eabisim

    Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. --- 1565,1571 ----


    !

    powerpc-*-eabisim

    Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. *************** PSIM simulator. *** 1562,1582 ****


    !

    powerpc-*-eabi

    Embedded PowerPC system in big endian mode.


    !

    powerpcle-*-elf, powerpcle-*-sysv4

    PowerPC system in little endian mode, running System V.4.


    !

    powerpcle-*-eabisim

    Embedded PowerPC system in little endian mode for use in running under the PSIM simulator. --- 1573,1593 ----


    !

    powerpc-*-eabi

    Embedded PowerPC system in big endian mode.


    !

    powerpcle-*-elf, powerpcle-*-sysv4

    PowerPC system in little endian mode, running System V.4.


    !

    powerpcle-*-eabisim

    Embedded PowerPC system in little endian mode for use in running under the PSIM simulator. *************** the PSIM simulator. *** 1584,1604 ****


    !

    powerpcle-*-eabi

    Embedded PowerPC system in little endian mode.


    !

    powerpcle-*-winnt, powerpcle-*-pe

    PowerPC system in little endian mode running Windows NT.


    !

    romp-*-aos, romp-*-mach

    The only operating systems supported for the IBM RT PC are AOS and MACH. GCC does not support AIX running on the RT. We recommend you --- 1595,1615 ----


    !

    powerpcle-*-eabi

    Embedded PowerPC system in little endian mode.


    !

    powerpcle-*-winnt, powerpcle-*-pe

    PowerPC system in little endian mode running Windows NT.


    !

    romp-*-aos, romp-*-mach

    The only operating systems supported for the IBM RT PC are AOS and MACH. GCC does not support AIX running on the RT. We recommend you *************** can be safely ignored; the stage 3 compi *** 1611,1631 ****


    !

    s390-*-linux*

    IBM S/390 system running Linux for S/390.


    !

    s390x-*-linux*

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


    !

    *-*-solaris2*

    Sun does not ship a C compiler with Solaris 2. To bootstrap and install GCC you first have to install a pre-built compiler, see our --- 1622,1642 ----


    !

    s390-*-linux*

    IBM S/390 system running Linux for S/390.


    !

    s390x-*-linux*

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


    !

    *-*-solaris2*

    Sun does not ship a C compiler with Solaris 2. To bootstrap and install GCC you first have to install a pre-built compiler, see our *************** newer: g++ will complain th *** 1664,1670 **** that omitting the type means int; this assumption worked for C89 but is wrong for C++, and is now wrong for C99 also. !

    g++ accepts such (illegal) constructs with the option -fpermissive; it will assume that any missing type is int (as defined by C89). --- 1675,1681 ---- that omitting the type means int; this assumption worked for C89 but is wrong for C++, and is now wrong for C99 also. !

    g++ accepts such (invalid) constructs with the option -fpermissive; it will assume that any missing type is int (as defined by C89). *************** will assume that any missing type is


    !

    sparc-sun-solaris2*

    Sun as 4.x is broken in that it cannot cope with long symbol names. A typical error message might look similar to the following: --- 1687,1693 ----


    !

    sparc-sun-solaris2*

    Sun as 4.x is broken in that it cannot cope with long symbol names. A typical error message might look similar to the following: *************** on non-UltraSPARC machines. *** 1703,1709 ****


    !

    sparc-sun-solaris2.7

    Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 --- 1714,1720 ----


    !

    sparc-sun-solaris2.7

    Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 *************** the Solaris 7 Recommended Patch Cluster. *** 1740,1746 ****


    !

    *-*-solaris2.8

    The Solaris 8 linker fails to link some libjava programs if previously-installed GCC java libraries already exist in the configured --- 1751,1757 ----


    !

    *-*-solaris2.8

    The Solaris 8 linker fails to link some libjava programs if previously-installed GCC java libraries already exist in the configured *************** Java libraries. *** 1752,1758 ****


    !

    sparc-sun-sunos4*

    A bug in the SunOS 4 linker will cause it to crash when linking -fPIC compiled objects (and will therefore not allow you to build --- 1763,1769 ----


    !

    sparc-sun-sunos4*

    A bug in the SunOS 4 linker will cause it to crash when linking -fPIC compiled objects (and will therefore not allow you to build *************** be due to a bug in sh. You *** 1771,1777 ****


    !

    sparc-unknown-linux-gnulibc1

    It has been reported that you might need binutils 2.8.1.0.23 --- 1782,1788 ----


    !

    sparc-unknown-linux-gnulibc1

    It has been reported that you might need binutils 2.8.1.0.23 *************** for this platform, too. *** 1780,1786 ****


    !

    sparc64-*-*

    GCC version 2.95 is not able to compile code correctly for sparc64 targets. Users of the Linux kernel, at least, --- 1791,1806 ----


    !

    sparc-*-linux*

    ! !

    GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 ! or newer on this platform. All earlier binutils and glibc ! releases mishandled unaligned relocations on sparc-*-* targets. ! !

    !
    ! !

    sparc64-*-*

    GCC version 2.95 is not able to compile code correctly for sparc64 targets. Users of the Linux kernel, at least, *************** recognize (via uname -a) th *** 1791,1797 ****


    !

    *-*-sysv*

    On System V release 3, you may get this error message while linking: --- 1811,1817 ----


    !

    *-*-sysv*

    On System V release 3, you may get this error message while linking: *************** is said to work. Smaller values may als *** 1823,1829 ****


    !

    vax-dec-ultrix

    Don't try compiling with VAX C (vcc). It produces incorrect code in some cases (for example, when alloca is used). --- 1843,1849 ----


    !

    vax-dec-ultrix

    Don't try compiling with VAX C (vcc). It produces incorrect code in some cases (for example, when alloca is used). *************** in some cases (for example, when a *** 1831,1837 ****


    !

    we32k-*-*

    These computers are also known as the 3b2, 3b5, 3b20 and other similar names. (However, the 3b1 is actually a 68000.) --- 1851,1857 ----


    !

    we32k-*-*

    These computers are also known as the 3b2, 3b5, 3b20 and other similar names. (However, the 3b1 is actually a 68000.) *************** as the file cc1plus is larg *** 1867,1873 ****


    !

    Microsoft Windows (32 bit)

    A port of GCC 2.95.x is included with the Cygwin environment. --- 1887,1893 ----


    !

    Microsoft Windows (32 bit)

    A port of GCC 2.95.x is included with the Cygwin environment. *************** without modification. *** 1878,1884 ****


    !

    OS/2

    GCC does not currently support OS/2. However, Andrew Zabolotny has been working on a generic OS/2 port with pgcc. The current code can be found --- 1898,1904 ----


    !

    OS/2

    GCC does not currently support OS/2. However, Andrew Zabolotny has been working on a generic OS/2 port with pgcc. The current code can be found *************** at Older systems

    GCC contains support files for many older (1980s and early 1990s) Unix variants. For the most part, support for these systems --- 1910,1916 ----


    !

    Older systems

    GCC contains support files for many older (1980s and early 1990s) Unix variants. For the most part, support for these systems *************** current GCC) is to be found in the GCC t *** 1933,1939 ****


    !

    all ELF targets (SVR4, Solaris 2, etc.)

    C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of --- 1953,1959 ----


    !

    all ELF targets (SVR4, Solaris 2, etc.)

    C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of diff -Nrc3pad gcc-3.0.2/INSTALL/test.html gcc-3.0.3/INSTALL/test.html *** gcc-3.0.2/INSTALL/test.html Tue Oct 23 10:56:17 2001 --- gcc-3.0.3/INSTALL/test.html Thu Dec 20 11:56:11 2001 *************** behave on different platforms and compar *** 117,121 **** --- 117,125 ---- few failing testcases are possible even on released versions and you should look here first if you think your results are unreasonable. +


    +

    + Return to the GCC Installation page + diff -Nrc3pad gcc-3.0.2/boehm-gc/ChangeLog gcc-3.0.3/boehm-gc/ChangeLog *** gcc-3.0.2/boehm-gc/ChangeLog Tue Oct 23 10:18:51 2001 --- gcc-3.0.3/boehm-gc/ChangeLog Thu Dec 20 11:21:00 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/bugs.html gcc-3.0.3/bugs.html *** gcc-3.0.2/bugs.html Tue Oct 23 10:56:06 2001 --- gcc-3.0.3/bugs.html Thu Dec 20 11:56:01 2001 *************** requested in this summary.

    *** 69,100 ****

    What we need

    ! Please include in your bug report all of the following items:
      !
    • The GCC version (not just 3.xx; run gcc -v)
    • !
    • The system type (the dir name after gcc-lib in the ! output of gcc -v
    • !
    • The complete command line that triggers the bug
    • !
    • The compiler output (error messages, warnings, etc)
    • !
    • The preprocessed file (*.i*) that triggers the bug, generated by adding -save-temps to the complete ! compilation command (see below)
    • !
    • The options given when GCC was configured/built
    !

    What we DON'T want

      !
    • A source file that #includes header files that are left out of the bug report (see above)
    • !
    • That source file and a collection of header files (don't ! waste your time; the preprocessor will collect them for you! :-)
    • An attached archive (tar, zip, shar, whatever) containing all ! (or some :-) of the above, so that we can tell what the bug report ! is about without having to unarchive it
    • A code snippet that won't cause the compiler to produce the exact output mentioned in the bug report (e.g., a snippet with just --- 69,98 ----

      What we need

      ! Please include in your bug report all of the following items, the first ! three of which can be obtained from the output of gcc -v:
        !
      • the exact version of GCC;
      • !
      • the system type;
      • !
      • the options given when GCC was configured/built;
      • !
      • the complete command line that triggers the bug;
      • !
      • the compiler output (error messages, warnings, etc.); and
      • !
      • the preprocessed file (*.i*) that triggers the bug, generated by adding -save-temps to the complete ! compilation command (see below).
      !

      What we do not want

        !
      • A source file that #includes header files that are left out of the bug report (see above)
      • !
      • That source file and a collection of header files.
      • An attached archive (tar, zip, shar, whatever) containing all ! (or some :-) of the above.
      • A code snippet that won't cause the compiler to produce the exact output mentioned in the bug report (e.g., a snippet with just *************** Please include in your bug report all *** 112,121 **** not of a compiler bug (sorry)
      • E-mail messages that complement previous, incomplete bug ! reports; post a new, self-contained, full bug report instead, if ! possible as a follow-up (or reply) to the original bug report
      • !
      • Assembly files (*.s) produced by the compiler, or any binary files, such as object files, executables or core files
      • Duplicate bug reports, or reports of bugs already fixed in the --- 110,119 ---- not of a compiler bug (sorry)
      • E-mail messages that complement previous, incomplete bug ! reports. Post a new, self-contained, full bug report instead, if ! possible as a follow-up to the original bug report
      • !
      • Assembly files (*.s) produced by the compiler, or any binary files, such as object files, executables or core files
      • Duplicate bug reports, or reports of bugs already fixed in the *************** Please include in your bug report all *** 137,144 ****

        Where to post it

        Please submit your bug report directly to the ! GCC GNATS bug database. If this is not possible, ! please mail all information to gcc-bugs@gcc.gnu.org. --- 135,143 ----

        Where to post it

        Please submit your bug report directly to the ! GCC GNATS bug database. ! Only if this is not possible, mail all information to ! bug-gcc@gnu.org or gcc-bugs@gcc.gnu.org. *************** Typically the preprocessed file (extensi *** 156,175 **** resulting file with one of the popular compression programs such as bzip2, gzip, zip or compress (in decreasing order of preference). Use maximum compression ! (-9) if available. Please include the compressed preprocessor output in your bug report, even if the source code is freely available elsewhere; it makes the job of our volunteer testers much easier.

        The only excuses to not send us the preprocessed sources are (i) if you've found a bug in the preprocessor, or (ii) if you've ! reduced the testcase to a small file that doesn't include any other file. If you can't post the preprocessed sources because they're proprietary code, then try to create a small file that triggers the same problem.

        Since we're supposed to be able to re-create the assembly output ! (extension .s), you usually should not include it in the bug report, although you may want to post parts of it to point out assembly code you consider to be wrong.

        --- 155,174 ---- resulting file with one of the popular compression programs such as bzip2, gzip, zip or compress (in decreasing order of preference). Use maximum compression ! (-9) if available. Please include the compressed preprocessor output in your bug report, even if the source code is freely available elsewhere; it makes the job of our volunteer testers much easier.

        The only excuses to not send us the preprocessed sources are (i) if you've found a bug in the preprocessor, or (ii) if you've ! reduced the testcase to a small file that doesn't include any other file. If you can't post the preprocessed sources because they're proprietary code, then try to create a small file that triggers the same problem.

        Since we're supposed to be able to re-create the assembly output ! (extension .s), you usually should not include it in the bug report, although you may want to post parts of it to point out assembly code you consider to be wrong.

        *************** lot. Code like this: *** 277,286 ****
        will not compile with GNU libc (GNU/Linux libc6), because ! stdin is not a constant. This was done deliberately, in ! order for there to be no limit on the number of open FILE ! objects. It is surprising for people used to traditional Unix C ! libraries, but it is permitted by the C standard.

        This construct commonly occurs in code generated by old versions of lex or yacc. We suggest you try regenerating the parser with a --- 276,285 ---- will not compile with GNU libc (GNU/Linux libc6), because ! stdin is not a constant. This was done deliberately, to make ! it easier to maintain binary compatibility when the type FILE ! needs to be changed. It is surprising for people used to traditional Unix ! C libraries, but it is permitted by the C standard.

        This construct commonly occurs in code generated by old versions of lex or yacc. We suggest you try regenerating the parser with a diff -Nrc3pad gcc-3.0.2/config/ChangeLog gcc-3.0.3/config/ChangeLog *** gcc-3.0.2/config/ChangeLog Tue Oct 23 10:18:59 2001 --- gcc-3.0.3/config/ChangeLog Thu Dec 20 11:21:11 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/config/mpw/ChangeLog gcc-3.0.3/config/mpw/ChangeLog *** gcc-3.0.2/config/mpw/ChangeLog Tue Oct 23 10:18:55 2001 --- gcc-3.0.3/config/mpw/ChangeLog Thu Dec 20 11:21:07 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/contrib/ChangeLog gcc-3.0.3/contrib/ChangeLog *** gcc-3.0.2/contrib/ChangeLog Tue Oct 23 10:19:03 2001 --- gcc-3.0.3/contrib/ChangeLog Thu Dec 20 11:21:15 2001 *************** *** 1,3 **** --- 1,26 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-10 Franz Sirl + + * PR3145.patch: Update. + + 2001-12-01 Franz Sirl + + * PR3145.patch: Backported bugfix. + + 2001-11-18 Joseph S. Myers + + * gcc_update (files_and_dependencies): Add the new *.7 man pages. + + 2001-11-14 Joseph S. Myers + + * texi2pod.pl: Handle @ifnottex, @iftex and @display. Handle @var + in verbatim blocks specially. Handle @unnumbered, @unnumberedsec + and @center. Allow [a-z] after @enumerate. Handle 0 and numbers + greater than 9 in enumerations. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/contrib/PR3145.patch gcc-3.0.3/contrib/PR3145.patch *** gcc-3.0.2/contrib/PR3145.patch Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/contrib/PR3145.patch Mon Dec 10 14:16:27 2001 *************** *** 0 **** --- 1,3818 ---- + + This patch is a quick backport of Nathan Sidwell's patch to fix PR c++/3145, + the infamous "virtual inheritance" bug. This affected especially KDE2 + (eg. artsd). + + Apply in the in GCC's toplevel source dir with: + + patch -p0 + + + + 2001-12-04 Jason Merrill + + * init.c (resolve_offset_ref): Don't check access for the base + conversion to access a FIELD_DECL. + + 2001-11-22 Nathan Sidwell + + PR g++/3145 + * class.c (build_vbase_pointer): Remove. + (build_vbase_path): Remove. + (build_base_path): New function. + * cp-tree.h (base_access, base_kind): New enumerations. + (build_base_path): Declare. + (convert_pointer_to_real): Remove. + (convert_pointer_to): Remove. + (lookup_base): Declare. + (convert_pointer_to_vbase): Remove. + * call.c (build_scoped_method_call): Use lookup_base & + build_base_path instead of convert_pointer_to_real, + get_base_distance & get_binfo. + (build_over_call): Likewise. + * cvt.c (cp_convert_to_pointer): Likewise. + (convert_to_pointer_force): Likewise. + (build_up_reference): Likewise. + (convert_pointer_to_real): Remove. + (convert_pointer_to): Remove. + * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path + instead of convert_pointer_to_vbase & build_vbase_path. + (emit_base_init): Use build_base_path instead of + convert_pointer_to_real. + (expand_virtual_init): Lose unrequired conversions. + (resolve_offset_ref): Use lookup_base and build_base_path + instead of convert_pointer_to. + *rtti.c (build_dynamic_cast_1): Use lookup_base & + build_base_path instead of get_base_distance & build_vbase_path. + *search.c (get_vbase_1): Remove. + (get_vbase): Remove. + (convert_pointer_to_vbase): Remove. + (lookup_base_recursive): New function. + (lookup_base): New function. + * typeck.c (require_complete_type): Use lookup_base & + build_base_path instead of convert_pointer_to. + (build_component_ref): Likewise. + (build_x_function_call): Likewise. + (get_member_function_from_ptrfunc): Likewise. + (build_component_addr): Likewise. + * typeck2.c (build_scoped_ref): Likewise. + + 2001-07-31 Nathan Sidwell + + The 3.0 ABI no longer has vbase pointer fields. + * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, + FORMAT_VBASE_NAME): Remove. + * method.c (do_build_copy_constructor): Adjust. + (do_build_assign_ref): Adjust. + * search.c (lookup_field_r): Adjust. + * typeck.c (build_component_ref): Adjust. + + The 3.0 ABI always has a vtable pointer at the start of every + polymorphic class. + * rtti.c (build_headof_sub): Remove. + (build_headof): Adjust. + (get_tinfo_decl_dynamic): No need to check flag_rtti + here. Adjust. + (create_real_tinfo_var): Explain why we need a hidden name. + + 2001-07-20 Nathan Sidwell + + Remove flag_vtable_thunk. It is always on for the 3.0 ABI. + * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. + (CPTI_INDEX_IDENTIFIER): Remove. + (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. + (delta2_identifier): Remove. + (index_identifier): Remove. + (pfn_or_delta2_identifier): Remove. + (flag_vtable_thunks): Remove. + (VTABLE_DELTA2_NAME): Remove. + (VTABLE_INDEX_NAME): Remove. + (FNADDR_FROM_VTABLE_ENTRY): Adjust. + (vfunc_ptr_type_node): Adjust. + (VTABLE_NAME_PREFIX): Adjust. + (build_vfn_ref): Lose first parameter. + (fixup_all_virtual_upcast_offsets): Remove. + * decl.c (initialize_predefined_identifiers): Remove + delta2_identifier, index_identifier, pfn_or_delta2_identifier. + (init_decl_processing): Remove no-vtable-thunk code. + * decl2.c (flag_vtable_thunks): Remove. + (mark_vtable_entries): Remove no-vtable-thunk code. + * error.c (dump_decl): Remove no-vtable-thunk code. + (dump_expr): Adjust ptr to member function code. + * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk + code. + * rtti.c (build_headof): Remove no-vtable-thunk code. + (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. + * search.c (get_base_distance): Remove expand_upcast_fixups case. + (virtual_context) Remove. + (expand_upcast_fixups): Remove. + (fixup_virtual_upcast_offsets): Remove. + (fixup_all_virtual_upcast_offsets): Remove. + * typeck.c (get_member_function_from_ptrfunc): Remove + no-vtable-thunk code. + * call.c (build_over_call): Adjust call to build_vfn_ref. + * class.c (build_vfn_ref): Lose first parameter. Remove + no-vtable-thunk code. + (build_rtti_vtbl_entries): Remove no-vtable-thunk code. + (build_vtable_entry): Remove no-vtable-thunk code. + + 2001-07-20 Nathan Sidwell + + Remove old-abi remnants. Remove comments about old abi + behaviour. Remove refences to 'new-abi' in comments. + * cp-tree.h: Adjust comments. + (vbase_offsets_in_vtable_p): Delete. + (vcall_offsets_in_vtable_p): Delete. + (vptrs_present_everywhere_p): Delete. + (all_overridden_vfuns_in_vtables_p): Delete. + (merge_primary_and_secondary_vtables_p): Delete. + (TYPE_CONTAINS_VPTR_P): Adjust. + (VTT_NAME_PREFIX): Remove. + (CTOR_VTBL_NAME_PREFIX): Remove. + (init_vbase_pointers): Remove. + * class.c: Adjust coments. + (build_vbase_pointer_fields): Delete. + (build_vbase_pointer): Remove old-abi code. + (build_secondary_vtable): Likewise. + (modify_all_vtables): Likewise. + (create_vtable_ptr): Likewise. + (layout_class_type): Likewise. + (finish_struct_1): Likewise. + (finish_vtbls): Likewise. + (dfs_finish_vtbls): Delete. + (build_vbase_offset_vtbl_entries): Remove old-abi code. + * cvt.c: Adjust comments. + * decl.c: Adjust comments. + * decl2.c: Adjust comments. + * init.c: Adjust comments. + (construct_virtual_bases): Remove old-abi code. + * lang-specs.h: Remove -fno-new-abi. + * mangle.c: Adjust comments. + * rtti.c: Adjust comments. + (get_base_offset): Remove old-abi-code. + * search.c: Adjust comments. + (dfs_init_vbase_pointers): Remove. + (dfs_vtable_path_unmark): Remove. + (init_vbase_pointers): Remove. + * semantics.c: Adjust comments. + (emit_associated_thunks): Remove old-abi code. + * typeck.c: Adjust comments. + + Index: gcc/cp/call.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/call.c,v + retrieving revision 1.255.2.20 + diff -u -p -r1.255.2.20 call.c + --- gcc/cp/call.c 2001/11/29 20:16:18 1.255.2.20 + +++ gcc/cp/call.c 2001/12/10 22:04:47 + @@ -288,7 +288,7 @@ build_scoped_method_call (exp, basetype, + + if (! binfo) + { + - binfo = get_binfo (basetype, type, 1); + + binfo = lookup_base (type, basetype, ba_check, NULL); + if (binfo == error_mark_node) + return error_mark_node; + if (! binfo) + @@ -298,9 +298,12 @@ build_scoped_method_call (exp, basetype, + if (binfo) + { + if (TREE_CODE (exp) == INDIRECT_REF) + - decl = build_indirect_ref + - (convert_pointer_to_real + - (binfo, build_unary_op (ADDR_EXPR, exp, 0)), NULL_PTR); + + { + + decl = build_base_path (PLUS_EXPR, + + build_unary_op (ADDR_EXPR, exp, 0), + + binfo, 1); + + decl = build_indirect_ref (decl, NULL); + + } + else + decl = build_scoped_ref (exp, basetype); + + @@ -4126,7 +4129,9 @@ build_over_call (cand, args, flags) + So we can assume that anything passed as 'this' is non-null, and + optimize accordingly. */ + my_friendly_assert (TREE_CODE (parmtype) == POINTER_TYPE, 19990811); + - t = convert_pointer_to_real (TREE_TYPE (parmtype), TREE_VALUE (arg)); + + t = lookup_base (TREE_TYPE (TREE_TYPE (TREE_VALUE (arg))), + + TREE_TYPE (parmtype), ba_ignore, NULL); + + t = build_base_path (PLUS_EXPR, TREE_VALUE (arg), t, 1); + converted_args = tree_cons (NULL_TREE, t, converted_args); + parm = TREE_CHAIN (parm); + arg = TREE_CHAIN (arg); + @@ -4300,16 +4305,19 @@ build_over_call (cand, args, flags) + if (DECL_VINDEX (fn) && (flags & LOOKUP_NONVIRTUAL) == 0) + { + tree t, *p = &TREE_VALUE (converted_args); + - tree binfo = get_binfo + - (DECL_VIRTUAL_CONTEXT (fn), TREE_TYPE (TREE_TYPE (*p)), 0); + - *p = convert_pointer_to_real (binfo, *p); + + tree binfo = lookup_base (TREE_TYPE (TREE_TYPE (*p)), + + DECL_VIRTUAL_CONTEXT (fn), + + ba_any, NULL); + + my_friendly_assert (binfo && binfo != error_mark_node, 20010730); + + + + *p = build_base_path (PLUS_EXPR, *p, binfo, 1); + if (TREE_SIDE_EFFECTS (*p)) + *p = save_expr (*p); + t = build_pointer_type (TREE_TYPE (fn)); + if (DECL_CONTEXT (fn) && TYPE_JAVA_INTERFACE (DECL_CONTEXT (fn))) + fn = build_java_interface_fn_ref (fn, *p); + else + - fn = build_vfn_ref (p, build_indirect_ref (*p, 0), DECL_VINDEX (fn)); + + fn = build_vfn_ref (build_indirect_ref (*p, 0), DECL_VINDEX (fn)); + TREE_TYPE (fn) = t; + } + else if (DECL_INLINE (fn)) + Index: gcc/cp/class.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/class.c,v + retrieving revision 1.358.2.38 + diff -u -p -r1.358.2.38 class.c + --- gcc/cp/class.c 2001/12/03 02:38:50 1.358.2.38 + +++ gcc/cp/class.c 2001/12/10 22:04:52 + @@ -106,13 +106,11 @@ varray_type local_classes; + + static tree get_vfield_name PARAMS ((tree)); + static void finish_struct_anon PARAMS ((tree)); + -static tree build_vbase_pointer PARAMS ((tree, tree)); + static tree build_vtable_entry PARAMS ((tree, tree, tree)); + static tree get_vtable_name PARAMS ((tree)); + static tree get_basefndecls PARAMS ((tree, tree)); + static int build_primary_vtable PARAMS ((tree, tree)); + static int build_secondary_vtable PARAMS ((tree, tree)); + -static tree dfs_finish_vtbls PARAMS ((tree, void *)); + static void finish_vtbls PARAMS ((tree)); + static void modify_vtable_entry PARAMS ((tree, tree, tree, tree, tree *)); + static void add_virtual_function PARAMS ((tree *, tree *, int *, tree, tree)); + @@ -146,7 +144,6 @@ static bool build_base_field PARAMS ((re + splay_tree, tree)); + static bool build_base_fields PARAMS ((record_layout_info, int *, + splay_tree, tree)); + -static tree build_vbase_pointer_fields PARAMS ((record_layout_info, int *)); + static tree build_vtbl_or_vbase_field PARAMS ((tree, tree, tree, tree, tree, + int *)); + static void check_methods PARAMS ((tree)); + @@ -237,277 +234,122 @@ int n_build_method_call = 0; + int n_inner_fields_searched = 0; + #endif + + -/* Virtual base class layout. */ + +/* Convert to or from a base subobject. EXPR is an expression of type + + `A' or `A*', an expression of type `B' or `B*' is returned. To + + convert A to a base B, CODE is PLUS_EXPR and BINFO is the binfo for + + the B base instance within A. To convert base A to derived B, CODE + + is MINUS_EXPR and BINFO is the binfo for the A instance within B. + + In this latter case, A must not be a morally virtual base of B. + + NONNULL is true if EXPR is known to be non-NULL (this is only + + needed when EXPR is of pointer type). CV qualifiers are preserved + + from EXPR. */ + + -/* Returns a list of virtual base class pointers as a chain of + - FIELD_DECLS. */ + - + -static tree + -build_vbase_pointer_fields (rli, empty_p) + - record_layout_info rli; + - int *empty_p; + -{ + - /* Chain to hold all the new FIELD_DECLs which point at virtual + - base classes. */ + - tree rec = rli->t; + - tree vbase_decls = NULL_TREE; + - tree binfos = TYPE_BINFO_BASETYPES (rec); + - int n_baseclasses = CLASSTYPE_N_BASECLASSES (rec); + - tree decl; + - int i; + - + - /* Under the new ABI, there are no vbase pointers in the object. + - Instead, the offsets are stored in the vtable. */ + - if (vbase_offsets_in_vtable_p ()) + - return NULL_TREE; + - + - /* Loop over the baseclasses, adding vbase pointers as needed. */ + - for (i = 0; i < n_baseclasses; i++) + - { + - register tree base_binfo = TREE_VEC_ELT (binfos, i); + - register tree basetype = BINFO_TYPE (base_binfo); + - + - if (!COMPLETE_TYPE_P (basetype)) + - /* This error is now reported in xref_tag, thus giving better + - location information. */ + - continue; + - + - /* All basetypes are recorded in the association list of the + - derived type. */ + - + - if (TREE_VIA_VIRTUAL (base_binfo)) + - { + - int j; + - const char *name; + - + - /* The offset for a virtual base class is only used in computing + - virtual function tables and for initializing virtual base + - pointers. It is built once `get_vbase_types' is called. */ + - + - /* If this basetype can come from another vbase pointer + - without an additional indirection, we will share + - that pointer. If an indirection is involved, we + - make our own pointer. */ + - for (j = 0; j < n_baseclasses; j++) + - { + - tree other_base_binfo = TREE_VEC_ELT (binfos, j); + - if (! TREE_VIA_VIRTUAL (other_base_binfo) + - && binfo_for_vbase (basetype, BINFO_TYPE (other_base_binfo))) + - goto got_it; + - } + - FORMAT_VBASE_NAME (name, basetype); + - decl = build_vtbl_or_vbase_field (get_identifier (name), + - get_identifier (VTABLE_BASE), + - build_pointer_type (basetype), + - rec, + - basetype, + - empty_p); + - BINFO_VPTR_FIELD (base_binfo) = decl; + - TREE_CHAIN (decl) = vbase_decls; + - place_field (rli, decl); + - vbase_decls = decl; + - *empty_p = 0; + - + - got_it: + - /* The space this decl occupies has already been accounted for. */ + - ; + - } + - } + - + - return vbase_decls; + -} + - + -/* Returns a pointer to the virtual base class of EXP that has the + - indicated TYPE. EXP is of class type, not a pointer type. */ + - + -static tree + -build_vbase_pointer (exp, type) + - tree exp, type; + -{ + - if (vbase_offsets_in_vtable_p ()) + - { + - tree vbase; + - tree vbase_ptr; + - + - /* Find the shared copy of TYPE; that's where the vtable offset + - is recorded. */ + - vbase = binfo_for_vbase (type, TREE_TYPE (exp)); + - /* Find the virtual function table pointer. */ + - vbase_ptr = build_vfield_ref (exp, TREE_TYPE (exp)); + - /* Compute the location where the offset will lie. */ + - vbase_ptr = build (PLUS_EXPR, + - TREE_TYPE (vbase_ptr), + - vbase_ptr, + - BINFO_VPTR_FIELD (vbase)); + - vbase_ptr = build1 (NOP_EXPR, + - build_pointer_type (ptrdiff_type_node), + - vbase_ptr); + - /* Add the contents of this location to EXP. */ + - return build (PLUS_EXPR, + - build_pointer_type (type), + - build_unary_op (ADDR_EXPR, exp, /*noconvert=*/0), + - build1 (INDIRECT_REF, ptrdiff_type_node, vbase_ptr)); + - } + - else + - { + - char *name; + - FORMAT_VBASE_NAME (name, type); + - return build_component_ref (exp, get_identifier (name), NULL_TREE, 0); + - } + -} + - + -/* Build multi-level access to EXPR using hierarchy path PATH. + - CODE is PLUS_EXPR if we are going with the grain, + - and MINUS_EXPR if we are not (in which case, we cannot traverse + - virtual baseclass links). + - + - TYPE is the type we want this path to have on exit. + - + - NONNULL is non-zero if we know (for any reason) that EXPR is + - not, in fact, zero. */ + - + tree + -build_vbase_path (code, type, expr, path, nonnull) + +build_base_path (code, expr, binfo, nonnull) + enum tree_code code; + - tree type, expr, path; + + tree expr; + + tree binfo; + int nonnull; + { + - register int changed = 0; + - tree last = NULL_TREE, last_virtual = NULL_TREE; + + tree v_binfo = NULL_TREE; + + tree t; + + tree probe; + + tree offset; + + tree target_type; + + tree null_test = NULL; + + tree ptr_target_type; + int fixed_type_p; + - tree null_expr = 0, nonnull_expr; + - tree basetype; + - tree offset = integer_zero_node; + + int want_pointer = TREE_CODE (TREE_TYPE (expr)) == POINTER_TYPE; + + - if (BINFO_INHERITANCE_CHAIN (path) == NULL_TREE) + - return build1 (NOP_EXPR, type, expr); + + if (expr == error_mark_node || binfo == error_mark_node || !binfo) + + return error_mark_node; + + + + for (probe = binfo; probe; + + t = probe, probe = BINFO_INHERITANCE_CHAIN (probe)) + + if (!v_binfo && TREE_VIA_VIRTUAL (probe)) + + v_binfo = probe; + + + + probe = TYPE_MAIN_VARIANT (TREE_TYPE (expr)); + + if (want_pointer) + + probe = TYPE_MAIN_VARIANT (TREE_TYPE (probe)); + + + + my_friendly_assert (code == MINUS_EXPR + + ? same_type_p (BINFO_TYPE (binfo), probe) + + : code == PLUS_EXPR + + ? same_type_p (BINFO_TYPE (t), probe) + + : false, 20010723); + + + + if (code == MINUS_EXPR && v_binfo) + + { + + cp_error ("cannot convert from base `%T' to derived type `%T' via virtual base `%T'", + + BINFO_TYPE (binfo), BINFO_TYPE (t), BINFO_TYPE (v_binfo)); + + return error_mark_node; + + } + + - /* We could do better if we had additional logic to convert back to the + - unconverted type (the static type of the complete object), and then + - convert back to the type we want. Until that is done, we only optimize + - if the complete type is the same type as expr has. */ + fixed_type_p = resolves_to_fixed_type_p (expr, &nonnull); + if (fixed_type_p < 0) + /* Virtual base layout is not fixed, even in ctors and dtors. */ + fixed_type_p = 0; + - + if (!fixed_type_p && TREE_SIDE_EFFECTS (expr)) + expr = save_expr (expr); + - nonnull_expr = expr; + - + - path = reverse_path (path); + - + - basetype = BINFO_TYPE (path); + - + - while (path) + + + + if (!want_pointer) + + expr = build_unary_op (ADDR_EXPR, expr, 0); + + else if (!nonnull) + + null_test = build (EQ_EXPR, boolean_type_node, expr, integer_zero_node); + + + + offset = BINFO_OFFSET (binfo); + + + + if (v_binfo && !fixed_type_p) + { + - if (TREE_VIA_VIRTUAL (TREE_VALUE (path))) + - { + - last_virtual = BINFO_TYPE (TREE_VALUE (path)); + - if (code == PLUS_EXPR) + - { + - changed = ! fixed_type_p; + - + - if (changed) + - { + - tree ind; + - + - /* We already check for ambiguous things in the caller, just + - find a path. */ + - if (last) + - { + - tree binfo = get_binfo (last, TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (nonnull_expr))), 0); + - nonnull_expr = convert_pointer_to_real (binfo, nonnull_expr); + - } + - ind = build_indirect_ref (nonnull_expr, NULL_PTR); + - nonnull_expr = build_vbase_pointer (ind, last_virtual); + - if (nonnull == 0 + - && TREE_CODE (type) == POINTER_TYPE + - && null_expr == NULL_TREE) + - { + - null_expr = build1 (NOP_EXPR, build_pointer_type (last_virtual), integer_zero_node); + - expr = build (COND_EXPR, build_pointer_type (last_virtual), + - build (EQ_EXPR, boolean_type_node, expr, + - integer_zero_node), + - null_expr, nonnull_expr); + - } + - } + - /* else we'll figure out the offset below. */ + + /* Going via virtual base V_BINFO. We need the static offset + + from V_BINFO to BINFO, and the dynamic offset from T to + + V_BINFO. That offset is an entry in T's vtable. */ + + tree v_offset = build_vfield_ref (build_indirect_ref (expr, NULL), + + TREE_TYPE (TREE_TYPE (expr))); + + + + v_binfo = binfo_for_vbase (BINFO_TYPE (v_binfo), BINFO_TYPE (t)); + + + + v_offset = build (PLUS_EXPR, TREE_TYPE (v_offset), + + v_offset, BINFO_VPTR_FIELD (v_binfo)); + + v_offset = build1 (NOP_EXPR, + + build_pointer_type (ptrdiff_type_node), + + v_offset); + + v_offset = build_indirect_ref (v_offset, NULL); + + + + offset = cp_convert (ptrdiff_type_node, + + size_diffop (offset, BINFO_OFFSET (v_binfo))); + + - /* Happens in the case of parse errors. */ + - if (nonnull_expr == error_mark_node) + - return error_mark_node; + - } + - else + - { + - cp_error ("cannot cast up from virtual baseclass `%T'", + - last_virtual); + - return error_mark_node; + - } + - } + - last = TREE_VALUE (path); + - path = TREE_CHAIN (path); + + if (!integer_zerop (offset)) + + offset = build (code, ptrdiff_type_node, v_offset, offset); + + else + + offset = v_offset; + } + - /* LAST is now the last basetype assoc on the path. */ + + - /* A pointer to a virtual base member of a non-null object + - is non-null. Therefore, we only need to test for zeroness once. + - Make EXPR the canonical expression to deal with here. */ + - if (null_expr) + - { + - TREE_OPERAND (expr, 2) = nonnull_expr; + - TREE_TYPE (expr) = TREE_TYPE (TREE_OPERAND (expr, 1)) + - = TREE_TYPE (nonnull_expr); + - } + - else + - expr = nonnull_expr; + + target_type = code == PLUS_EXPR ? BINFO_TYPE (binfo) : BINFO_TYPE (t); + + + + target_type = cp_build_qualified_type + + (target_type, CP_TYPE_QUALS (TREE_TYPE (TREE_TYPE (expr)))); + + ptr_target_type = build_pointer_type (target_type); + + if (want_pointer) + + target_type = ptr_target_type; + + + + expr = build1 (NOP_EXPR, ptr_target_type, expr); + + - /* If we go through any virtual base pointers, make sure that + - casts to BASETYPE from the last virtual base class use + - the right value for BASETYPE. */ + - if (changed) + - { + - tree intype = TREE_TYPE (TREE_TYPE (expr)); + - + - if (TYPE_MAIN_VARIANT (intype) != BINFO_TYPE (last)) + - offset + - = BINFO_OFFSET (get_binfo (last, TYPE_MAIN_VARIANT (intype), 0)); + - } + + if (!integer_zerop (offset)) + + expr = build (code, ptr_target_type, expr, offset); + else + - offset = BINFO_OFFSET (last); + - + - if (! integer_zerop (offset)) + - { + - /* Bash types to make the backend happy. */ + - offset = cp_convert (type, offset); + - + - /* If expr might be 0, we need to preserve that zeroness. */ + - if (nonnull == 0) + - { + - if (null_expr) + - TREE_TYPE (null_expr) = type; + - else + - null_expr = build1 (NOP_EXPR, type, integer_zero_node); + - if (TREE_SIDE_EFFECTS (expr)) + - expr = save_expr (expr); + - + - return build (COND_EXPR, type, + - build (EQ_EXPR, boolean_type_node, expr, integer_zero_node), + - null_expr, + - build (code, type, expr, offset)); + - } + - else return build (code, type, expr, offset); + - } + + null_test = NULL; + + + + if (!want_pointer) + + expr = build_indirect_ref (expr, NULL); + + - /* Cannot change the TREE_TYPE of a NOP_EXPR here, since it may + - be used multiple times in initialization of multiple inheritance. */ + - if (null_expr) + - { + - TREE_TYPE (expr) = type; + - return expr; + - } + - else + - return build1 (NOP_EXPR, type, expr); + + if (null_test) + + expr = build (COND_EXPR, target_type, null_test, + + build1 (NOP_EXPR, target_type, integer_zero_node), + + expr); + + + + return expr; + } + + + @@ -533,8 +375,6 @@ build_vtable_entry_ref (basetype, vtbl, + s = build_tree_list (build_string (1, "s"), s); + + i = build_array_ref (vtbl, idx); + - if (!flag_vtable_thunks) + - i = build_component_ref (i, pfn_identifier, vtable_entry_type, 0); + i = build_c_cast (ptrdiff_type_node, build_unary_op (ADDR_EXPR, i, 0)); + i2 = build_array_ref (vtbl, build_int_2(0,0)); + i2 = build_c_cast (ptrdiff_type_node, build_unary_op (ADDR_EXPR, i2, 0)); + @@ -603,8 +443,8 @@ build_vtbl_ref (instance, idx) + { + vtbl = TYPE_BINFO_VTABLE (basetype); + /* Knowing the dynamic type of INSTANCE we can easily obtain + - the correct vtable entry. In the new ABI, we resolve + - this back to be in terms of the primary vtable. */ + + the correct vtable entry. We resolve this back to be in + + terms of the primary vtable. */ + if (TREE_CODE (vtbl) == PLUS_EXPR) + { + idx = fold (build (PLUS_EXPR, + @@ -632,45 +472,22 @@ build_vtbl_ref (instance, idx) + } + + /* Given an object INSTANCE, return an expression which yields the + - virtual function corresponding to INDEX. There are many special + - cases for INSTANCE which we take care of here, mainly to avoid + - creating extra tree nodes when we don't have to. */ + + virtual function corresponding to IDX. */ + + tree + -build_vfn_ref (ptr_to_instptr, instance, idx) + - tree *ptr_to_instptr, instance; + +build_vfn_ref (instance, idx) + + tree instance; + tree idx; + { + tree aref = build_vtbl_ref (instance, idx); + - + - /* When using thunks, there is no extra delta, and we get the pfn + - directly. */ + - if (flag_vtable_thunks) + - { + - /* When using function descriptors, the address of the + - vtable entry is treated as a function pointer. */ + - if (TARGET_VTABLE_USES_DESCRIPTORS) + - return build1 (NOP_EXPR, TREE_TYPE (aref), + - build_unary_op (ADDR_EXPR, aref, /*noconvert=*/1)); + - + - return aref; + - } + - + - if (ptr_to_instptr) + - { + - /* Save the intermediate result in a SAVE_EXPR so we don't have to + - compute each component of the virtual function pointer twice. */ + - if (TREE_CODE (aref) == INDIRECT_REF) + - TREE_OPERAND (aref, 0) = save_expr (TREE_OPERAND (aref, 0)); + + - *ptr_to_instptr + - = build (PLUS_EXPR, TREE_TYPE (*ptr_to_instptr), + - *ptr_to_instptr, + - cp_convert (ptrdiff_type_node, + - build_component_ref (aref, delta_identifier, NULL_TREE, 0))); + - } + + /* When using function descriptors, the address of the + + vtable entry is treated as a function pointer. */ + + if (TARGET_VTABLE_USES_DESCRIPTORS) + + return build1 (NOP_EXPR, TREE_TYPE (aref), + + build_unary_op (ADDR_EXPR, aref, /*noconvert=*/1)); + + - return build_component_ref (aref, pfn_identifier, NULL_TREE, 0); + + return aref; + } + + /* Return the name of the virtual function table (as an IDENTIFIER_NODE) + @@ -826,15 +643,15 @@ build_primary_vtable (binfo, type) + return 1; + } + + -/* Give TYPE a new virtual function table which is initialized + +/* Give BINFO a new virtual function table which is initialized + with a skeleton-copy of its original initialization. The only + entry that changes is the `delta' entry, so we can really + share a lot of structure. + + - FOR_TYPE is the derived type which caused this table to + + FOR_TYPE is the most derived type which caused this table to + be needed. + + - BINFO is the type association which provided TYPE for FOR_TYPE. + + Returns non-zero if we haven't met BINFO before. + + The order in which vtables are built (by calling this function) for + an object must remain the same, otherwise a binary incompatibility + @@ -844,143 +661,28 @@ static int + build_secondary_vtable (binfo, for_type) + tree binfo, for_type; + { + - tree basetype; + - tree orig_decl = BINFO_VTABLE (binfo); + - tree name; + - tree new_decl; + - tree offset; + - tree path = binfo; + - char *buf; + - const char *buf2; + - char joiner = '_'; + - int i; + - + -#ifdef JOINER + - joiner = JOINER; + -#endif + - + - if (TREE_VIA_VIRTUAL (binfo)) + - my_friendly_assert (binfo == binfo_for_vbase (BINFO_TYPE (binfo), + - current_class_type), + - 170); + + my_friendly_assert (binfo == CANONICAL_BINFO (binfo, for_type), 20010605); + + - if (BINFO_NEW_VTABLE_MARKED (binfo, current_class_type)) + + if (BINFO_NEW_VTABLE_MARKED (binfo, for_type)) + /* We already created a vtable for this base. There's no need to + do it again. */ + return 0; + + /* Remember that we've created a vtable for this BINFO, so that we + don't try to do so again. */ + - SET_BINFO_NEW_VTABLE_MARKED (binfo, current_class_type); + + SET_BINFO_NEW_VTABLE_MARKED (binfo, for_type); + + /* Make fresh virtual list, so we can smash it later. */ + BINFO_VIRTUALS (binfo) = copy_virtuals (binfo); + - + - my_friendly_assert (binfo == CANONICAL_BINFO (binfo, for_type), 20010605); + - offset = BINFO_OFFSET (binfo); + - + - /* In the new ABI, secondary vtables are laid out as part of the + - same structure as the primary vtable. */ + - if (merge_primary_and_secondary_vtables_p ()) + - { + - BINFO_VTABLE (binfo) = NULL_TREE; + - return 1; + - } + - + - /* Create the declaration for the secondary vtable. */ + - basetype = TYPE_MAIN_VARIANT (BINFO_TYPE (binfo)); + - buf2 = TYPE_ASSEMBLER_NAME_STRING (basetype); + - i = TYPE_ASSEMBLER_NAME_LENGTH (basetype) + 1; + - + - /* We know that the vtable that we are going to create doesn't exist + - yet in the global namespace, and when we finish, it will be + - pushed into the global namespace. In complex MI hierarchies, we + - have to loop while the name we are thinking of adding is globally + - defined, adding more name components to the vtable name as we + - loop, until the name is unique. This is because in complex MI + - cases, we might have the same base more than once. This means + - that the order in which this function is called for vtables must + - remain the same, otherwise binary compatibility can be + - compromised. */ + - + - while (1) + - { + - char *buf1 = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (for_type) + - + 1 + i); + - char *new_buf2; + - + - sprintf (buf1, "%s%c%s", TYPE_ASSEMBLER_NAME_STRING (for_type), joiner, + - buf2); + - buf = (char *) alloca (strlen (VTABLE_NAME_PREFIX) + strlen (buf1) + 1); + - sprintf (buf, "%s%s", VTABLE_NAME_PREFIX, buf1); + - name = get_identifier (buf); + - + - /* If this name doesn't clash, then we can use it, otherwise + - we add more to the name until it is unique. */ + - + - if (! IDENTIFIER_GLOBAL_VALUE (name)) + - break; + - + - /* Set values for next loop through, if the name isn't unique. */ + - + - path = BINFO_INHERITANCE_CHAIN (path); + - + - /* We better not run out of stuff to make it unique. */ + - my_friendly_assert (path != NULL_TREE, 368); + - + - basetype = TYPE_MAIN_VARIANT (BINFO_TYPE (path)); + - + - if (for_type == basetype) + - { + - /* If we run out of basetypes in the path, we have already + - found created a vtable with that name before, we now + - resort to tacking on _%d to distinguish them. */ + - int j = 2; + - i = TYPE_ASSEMBLER_NAME_LENGTH (basetype) + 1 + i + 1 + 3; + - buf1 = (char *) alloca (i); + - do { + - sprintf (buf1, "%s%c%s%c%d", + - TYPE_ASSEMBLER_NAME_STRING (basetype), joiner, + - buf2, joiner, j); + - buf = (char *) alloca (strlen (VTABLE_NAME_PREFIX) + - + strlen (buf1) + 1); + - sprintf (buf, "%s%s", VTABLE_NAME_PREFIX, buf1); + - name = get_identifier (buf); + - + - /* If this name doesn't clash, then we can use it, + - otherwise we add something different to the name until + - it is unique. */ + - } while (++j <= 999 && IDENTIFIER_GLOBAL_VALUE (name)); + - + - /* Hey, they really like MI don't they? Increase the 3 + - above to 6, and the 999 to 999999. :-) */ + - my_friendly_assert (j <= 999, 369); + - + - break; + - } + + - i = TYPE_ASSEMBLER_NAME_LENGTH (basetype) + 1 + i; + - new_buf2 = (char *) alloca (i); + - sprintf (new_buf2, "%s%c%s", + - TYPE_ASSEMBLER_NAME_STRING (basetype), joiner, buf2); + - buf2 = new_buf2; + - } + - + - new_decl = build_vtable (for_type, name, TREE_TYPE (orig_decl)); + - DECL_ALIGN (new_decl) = DECL_ALIGN (orig_decl); + - DECL_USER_ALIGN (new_decl) = DECL_USER_ALIGN (orig_decl); + - BINFO_VTABLE (binfo) = pushdecl_top_level (new_decl); + - + -#ifdef GATHER_STATISTICS + - n_vtables += 1; + - n_vtable_elems += list_length (BINFO_VIRTUALS (binfo)); + -#endif + - + + /* Secondary vtables are laid out as part of the same structure as + + the primary vtable. */ + + BINFO_VTABLE (binfo) = NULL_TREE; + return 1; + } + + /* Create a new vtable for BINFO which is the hierarchy dominated by + - T. */ + + T. Return non-zero if we actually created a new vtable. */ + + static int + make_new_vtable (t, binfo) + @@ -1949,9 +1651,8 @@ determine_primary_base (t, vfuns_p) + if (!CLASSTYPE_HAS_PRIMARY_BASE_P (t)) + CLASSTYPE_RTTI (t) = CLASSTYPE_RTTI (basetype); + + - /* A virtual baseclass can't be the primary base under the + - old ABI. And under the new ABI we still prefer a + - non-virtual base. */ + + /* We prefer a non-virtual base, although a virtual one will + + do. */ + if (TREE_VIA_VIRTUAL (base_binfo)) + continue; + + @@ -2020,9 +1721,8 @@ determine_primary_base (t, vfuns_p) + } + } + + - /* The new ABI allows for the use of a "nearly-empty" virtual base + - class as the primary base class if no non-virtual polymorphic + - base can be found. */ + + /* A "nearly-empty" virtual base class can be the primary base + + class, if no non-virtual polymorphic base can be found. */ + if (!CLASSTYPE_HAS_PRIMARY_BASE_P (t)) + { + /* If not NULL, this is the best primary base candidate we have + @@ -2805,9 +2505,8 @@ update_vtable_entry_for_fn (t, binfo, fn + the final overrider, and not to an intermediate virtual base. */ + virtual_base = NULL_TREE; + + - /* Under the new ABI, we will convert to an intermediate virtual + - base first, and then use the vcall offset located there to finish + - the conversion. */ + + /* We will convert to an intermediate virtual base first, and then + + use the vcall offset located there to finish the conversion. */ + while (b) + { + /* If we find the final overrider, then we can stop + @@ -2897,9 +2596,6 @@ dfs_modify_vtables (binfo, data) + + t = (tree) data; + + - /* If we're supporting RTTI then we always need a new vtable to + - point to the RTTI information. Under the new ABI we may need + - a new vtable to contain vcall and vbase offsets. */ + make_new_vtable (t, binfo); + + /* Now, go through each of the virtual functions in the virtual + @@ -2936,10 +2632,9 @@ modify_all_vtables (t, vfuns_p, overridd + int *vfuns_p; + tree overridden_virtuals; + { + - tree binfo; + + tree binfo = TYPE_BINFO (t); + + tree *fnsp; + + - binfo = TYPE_BINFO (t); + - + /* Update all of the vtables. */ + dfs_walk (binfo, + dfs_modify_vtables, + @@ -2947,43 +2642,35 @@ modify_all_vtables (t, vfuns_p, overridd + t); + dfs_walk (binfo, dfs_unmark, dfs_marked_real_bases_queue_p, t); + + - /* If we should include overriding functions for secondary vtables + - in our primary vtable, add them now. */ + - if (all_overridden_vfuns_in_vtables_p ()) + + /* Include overriding functions for secondary vtables in our primary + + vtable. */ + + for (fnsp = &overridden_virtuals; *fnsp; ) + { + - tree *fnsp = &overridden_virtuals; + + tree fn = TREE_VALUE (*fnsp); + + - while (*fnsp) + + if (!BINFO_VIRTUALS (binfo) + + || !value_member (fn, BINFO_VIRTUALS (binfo))) + { + - tree fn = TREE_VALUE (*fnsp); + - + - if (!BINFO_VIRTUALS (binfo) + - || !value_member (fn, BINFO_VIRTUALS (binfo))) + - { + - /* Set the vtable index. */ + - set_vindex (fn, vfuns_p); + - /* We don't need to convert to a base class when calling + - this function. */ + - DECL_VIRTUAL_CONTEXT (fn) = t; + - + - /* We don't need to adjust the `this' pointer when + - calling this function. */ + - BV_DELTA (*fnsp) = integer_zero_node; + - BV_VCALL_INDEX (*fnsp) = NULL_TREE; + - + - /* This is an overridden function not already in our + - vtable. Keep it. */ + - fnsp = &TREE_CHAIN (*fnsp); + - } + - else + - /* We've already got an entry for this function. Skip + - it. */ + - *fnsp = TREE_CHAIN (*fnsp); + + /* Set the vtable index. */ + + set_vindex (fn, vfuns_p); + + /* We don't need to convert to a base class when calling + + this function. */ + + DECL_VIRTUAL_CONTEXT (fn) = t; + + + + /* We don't need to adjust the `this' pointer when + + calling this function. */ + + BV_DELTA (*fnsp) = integer_zero_node; + + BV_VCALL_INDEX (*fnsp) = NULL_TREE; + + + + /* This is an overridden function not already in our + + vtable. Keep it. */ + + fnsp = &TREE_CHAIN (*fnsp); + } + + else + + /* We've already got an entry for this function. Skip it. */ + + *fnsp = TREE_CHAIN (*fnsp); + } + - else + - overridden_virtuals = NULL_TREE; + - + + + return overridden_virtuals; + } + + @@ -4198,8 +3885,7 @@ build_base_fields (rli, empty_p, offsets + int i; + bool atend = 0; + + - /* Under the new ABI, the primary base class is always allocated + - first. */ + + /* The primary base class is always allocated first. */ + if (CLASSTYPE_HAS_PRIMARY_BASE_P (rec)) + build_base_field (rli, CLASSTYPE_PRIMARY_BINFO (rec), + empty_p, offsets, t); + @@ -4211,8 +3897,8 @@ build_base_fields (rli, empty_p, offsets + + base_binfo = BINFO_BASETYPE (TYPE_BINFO (rec), i); + + - /* Under the new ABI, the primary base was already allocated + - above, so we don't need to allocate it again here. */ + + /* The primary base was already allocated above, so we don't + + need to allocate it again here. */ + if (base_binfo == CLASSTYPE_PRIMARY_BINFO (rec)) + continue; + + @@ -4698,9 +4384,7 @@ create_vtable_ptr (t, empty_p, vfuns_p, + here. Even if there weren't any new virtual functions, we might need a + new virtual function table if we're supposed to include vptrs in + all classes that need them. */ + - if (!TYPE_VFIELD (t) + - && (*vfuns_p + - || (TYPE_CONTAINS_VPTR_P (t) && vptrs_present_everywhere_p ()))) + + if (!TYPE_VFIELD (t) && (*vfuns_p || TYPE_CONTAINS_VPTR_P (t))) + { + /* We build this decl with vtbl_ptr_type_node, which is a + `vtable_entry_type*'. It might seem more precise to use + @@ -4905,10 +4589,8 @@ layout_virtual_bases (t, offsets) + TYPE_ALIGN (t) = MAX (TYPE_ALIGN (t), BITS_PER_UNIT); + + /* Go through the virtual bases, allocating space for each virtual + - base that is not already a primary base class. Under the old + - ABI, these are allocated according to a depth-first left-to-right + - postorder traversal; in the new ABI, inheritance graph order is + - used instead. */ + + base that is not already a primary base class. These are + + allocated in inheritance graph order. */ + for (vbases = TYPE_BINFO (t); + vbases; + vbases = TREE_CHAIN (vbases)) + @@ -4935,8 +4617,8 @@ layout_virtual_bases (t, offsets) + appropriately aligned offset. */ + dsize = CEIL (dsize, desired_align) * desired_align; + + - /* Under the new ABI, we try to squish empty virtual bases in + - just like ordinary empty bases. */ + + /* We try to squish empty virtual bases in just like + + ordinary empty bases. */ + if (is_empty_class (basetype)) + layout_empty_base (vbase, + size_int (CEIL (dsize, BITS_PER_UNIT)), + @@ -5118,8 +4800,7 @@ layout_class_type (t, empty_p, vfuns_p, + vptr = create_vtable_ptr (t, empty_p, vfuns_p, + new_virtuals_p, overridden_virtuals_p); + + - /* Under the new ABI, the vptr is always the first thing in the + - class. */ + + /* The vptr is always the first thing in the class. */ + if (vptr) + { + TYPE_FIELDS (t) = chainon (vptr, TYPE_FIELDS (t)); + @@ -5132,10 +4813,6 @@ layout_class_type (t, empty_p, vfuns_p, + if (build_base_fields (rli, empty_p, empty_base_offsets, t)) + CLASSTYPE_NEARLY_EMPTY_P (t) = 0; + + - /* Add pointers to all of our virtual base-classes. */ + - TYPE_FIELDS (t) = chainon (build_vbase_pointer_fields (rli, empty_p), + - TYPE_FIELDS (t)); + - + /* CLASSTYPE_INLINE_FRIENDS is really TYPE_NONCOPIED_PARTS. Thus, + we have to save this before we zap TYPE_NONCOPIED_PARTS. */ + fixup_inline_methods (t); + @@ -5157,10 +4834,8 @@ layout_class_type (t, empty_p, vfuns_p, + type = TREE_TYPE (field); + + /* If this field is a bit-field whose width is greater than its + - type, then there are some special rules for allocating it + - under the new ABI. Under the old ABI, there were no special + - rules, but the back-end can't handle bitfields longer than a + - `long long', so we use the same mechanism. */ + + type, then there are some special rules for allocating + + it. */ + if (DECL_C_BIT_FIELD (field) + && INT_CST_LT (TYPE_SIZE (type), DECL_SIZE (field))) + { + @@ -5225,10 +4900,10 @@ layout_class_type (t, empty_p, vfuns_p, + } + + /* We make all structures have at least one element, so that they + - have non-zero size. In the new ABI, the class may be empty even + - if it has basetypes. Therefore, we add the fake field after all + - the other fields; if there are already FIELD_DECLs on the list, + - their offsets will not be disturbed. */ + + have non-zero size. The class may be empty even if it has + + basetypes. Therefore, we add the fake field after all the other + + fields; if there are already FIELD_DECLs on the list, their + + offsets will not be disturbed. */ + if (!eoc && *empty_p) + { + tree padding; + @@ -5389,9 +5064,7 @@ finish_struct_1 (t) + = chainon (CLASSTYPE_VFIELDS (t), build_tree_list (NULL_TREE, t)); + + /* If necessary, create the primary vtable for this class. */ + - if (new_virtuals + - || overridden_virtuals + - || (TYPE_CONTAINS_VPTR_P (t) && vptrs_present_everywhere_p ())) + + if (new_virtuals || overridden_virtuals || TYPE_CONTAINS_VPTR_P (t)) + { + new_virtuals = nreverse (new_virtuals); + /* We must enter these virtuals into the table. */ + @@ -5703,11 +5376,12 @@ fixed_type_or_null (instance, nonnull, c + } + } + + -/* Return non-zero if the dynamic type of INSTANCE is known, and equivalent + - to the static type. We also handle the case where INSTANCE is really + - a pointer. Return negative if this is a ctor/dtor. There the dynamic type + - is known, but this might not be the most derived base of the original object, + - and hence virtual bases may not be layed out according to this type. + +/* Return non-zero if the dynamic type of INSTANCE is known, and + + equivalent to the static type. We also handle the case where + + INSTANCE is really a pointer. Return negative if this is a + + ctor/dtor. There the dynamic type is known, but this might not be + + the most derived base of the original object, and hence virtual + + bases may not be layed out according to this type. + + Used to determine whether the virtual function table is needed + or not. + @@ -6759,10 +6433,9 @@ note_name_declared_in_class (name, decl) + } + } + + -/* Returns the VAR_DECL for the complete vtable associated with + - BINFO. (Under the new ABI, secondary vtables are merged with + - primary vtables; this function will return the VAR_DECL for the + - primary vtable.) */ + +/* Returns the VAR_DECL for the complete vtable associated with BINFO. + + Secondary vtables are merged with primary vtables; this function + + will return the VAR_DECL for the primary vtable. */ + + tree + get_vtbl_decl_for_binfo (binfo) + @@ -7110,77 +6783,47 @@ static void + finish_vtbls (t) + tree t; + { + - if (merge_primary_and_secondary_vtables_p ()) + - { + - tree list; + - tree vbase; + - int i; + - + - /* Under the new ABI, we lay out the primary and secondary + - vtables in one contiguous vtable. The primary vtable is + - first, followed by the non-virtual secondary vtables in + - inheritance graph order. */ + - list = build_tree_list (TYPE_BINFO_VTABLE (t), NULL_TREE); + - accumulate_vtbl_inits (TYPE_BINFO (t), TYPE_BINFO (t), + - TYPE_BINFO (t), t, list); + - /* Then come the virtual bases, also in inheritance graph + - order. */ + - for (vbase = TYPE_BINFO (t); vbase; vbase = TREE_CHAIN (vbase)) + - { + - tree real_base; + - + - if (!TREE_VIA_VIRTUAL (vbase)) + - continue; + - + - /* Although we walk in inheritance order, that might not get the + - canonical base. */ + - real_base = binfo_for_vbase (BINFO_TYPE (vbase), t); + - + - accumulate_vtbl_inits (real_base, real_base, + - TYPE_BINFO (t), t, list); + - } + + tree list; + + tree vbase; + + int i; + + - /* Fill in BINFO_VPTR_FIELD in the immediate binfos for our virtual + - base classes, for the benefit of the debugging backends. */ + - for (i = 0; i < BINFO_N_BASETYPES (TYPE_BINFO (t)); ++i) + - { + - tree base = BINFO_BASETYPE (TYPE_BINFO (t), i); + - if (TREE_VIA_VIRTUAL (base)) + - { + - tree vbase = binfo_for_vbase (BINFO_TYPE (base), t); + - BINFO_VPTR_FIELD (base) = BINFO_VPTR_FIELD (vbase); + - } + - } + + /* We lay out the primary and secondary vtables in one contiguous + + vtable. The primary vtable is first, followed by the non-virtual + + secondary vtables in inheritance graph order. */ + + list = build_tree_list (TYPE_BINFO_VTABLE (t), NULL_TREE); + + accumulate_vtbl_inits (TYPE_BINFO (t), TYPE_BINFO (t), + + TYPE_BINFO (t), t, list); + + - if (TYPE_BINFO_VTABLE (t)) + - initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list)); + - } + - else + + /* Then come the virtual bases, also in inheritance graph order. */ + + for (vbase = TYPE_BINFO (t); vbase; vbase = TREE_CHAIN (vbase)) + { + - dfs_walk (TYPE_BINFO (t), dfs_finish_vtbls, + - dfs_unmarked_real_bases_queue_p, t); + - dfs_walk (TYPE_BINFO (t), dfs_unmark, + - dfs_marked_real_bases_queue_p, t); + - } + -} + + tree real_base; + + -/* Called from finish_vtbls via dfs_walk. */ + + if (!TREE_VIA_VIRTUAL (vbase)) + + continue; + + -static tree + -dfs_finish_vtbls (binfo, data) + - tree binfo; + - void *data; + -{ + - tree t = (tree) data; + + /* Although we walk in inheritance order, that might not get the + + canonical base. */ + + real_base = binfo_for_vbase (BINFO_TYPE (vbase), t); + + - if (BINFO_NEW_VTABLE_MARKED (binfo, t)) + - initialize_vtable (binfo, + - build_vtbl_initializer (binfo, binfo, t, + - TYPE_BINFO (t), NULL)); + + accumulate_vtbl_inits (real_base, real_base, + + TYPE_BINFO (t), t, list); + + } + + - SET_BINFO_MARKED (binfo); + + /* Fill in BINFO_VPTR_FIELD in the immediate binfos for our virtual + + base classes, for the benefit of the debugging backends. */ + + for (i = 0; i < BINFO_N_BASETYPES (TYPE_BINFO (t)); ++i) + + { + + tree base = BINFO_BASETYPE (TYPE_BINFO (t), i); + + if (TREE_VIA_VIRTUAL (base)) + + { + + tree vbase = binfo_for_vbase (BINFO_TYPE (base), t); + + BINFO_VPTR_FIELD (base) = BINFO_VPTR_FIELD (vbase); + + } + + } + + - return NULL_TREE; + + if (TYPE_BINFO_VTABLE (t)) + + initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list)); + } + + /* Initialize the vtable for BINFO with the INITS. */ + @@ -7653,9 +7296,8 @@ accumulate_vtbl_inits (binfo, orig_binfo + } + } + + -/* Called from accumulate_vtbl_inits when using the new ABI. + - Accumulates the vtable initializers for all of the vtables into + - TREE_VALUE (DATA). Returns the initializers for the BINFO vtable. */ + +/* Called from accumulate_vtbl_inits. Returns the initializers for + + the BINFO vtable. */ + + static tree + dfs_accumulate_vtbl_inits (binfo, orig_binfo, rtti_binfo, t, l) + @@ -7963,11 +7605,6 @@ build_vbase_offset_vtbl_entries (binfo, + tree t; + tree non_primary_binfo; + + - /* Under the old ABI, pointers to virtual bases are stored in each + - object. */ + - if (!vbase_offsets_in_vtable_p ()) + - return; + - + /* If there are no virtual baseclasses, then there is nothing to + do. */ + if (!TYPE_USES_VIRTUAL_BASECLASSES (BINFO_TYPE (binfo))) + @@ -8069,11 +7706,6 @@ build_vcall_offset_vtbl_entries (binfo, + tree binfo; + vtbl_init_data *vid; + { + - /* Under the old ABI, the adjustments to the `this' pointer were made + - elsewhere. */ + - if (!vcall_offsets_in_vtable_p ()) + - return; + - + /* We only need these entries if this base is a virtual base. */ + if (!TREE_VIA_VIRTUAL (binfo)) + return; + @@ -8328,16 +7960,12 @@ build_rtti_vtbl_entries (binfo, vid) + vid->last_init = &TREE_CHAIN (*vid->last_init); + + /* Add the offset-to-top entry. It comes earlier in the vtable that + - the the typeinfo entry. */ + - if (flag_vtable_thunks) + - { + - /* Convert the offset to look like a function pointer, so that + - we can put it in the vtable. */ + - init = build1 (NOP_EXPR, vfunc_ptr_type_node, offset); + - TREE_CONSTANT (init) = 1; + - *vid->last_init = build_tree_list (NULL_TREE, init); + - vid->last_init = &TREE_CHAIN (*vid->last_init); + - } + + the the typeinfo entry. Convert the offset to look like a + + function pointer, so that we can put it in the vtable. */ + + init = build1 (NOP_EXPR, vfunc_ptr_type_node, offset); + + TREE_CONSTANT (init) = 1; + + *vid->last_init = build_tree_list (NULL_TREE, init); + + vid->last_init = &TREE_CHAIN (*vid->last_init); + } + + /* Build an entry in the virtual function table. DELTA is the offset + @@ -8354,55 +7982,20 @@ build_vtable_entry (delta, vcall_index, + tree vcall_index; + tree entry; + { + - if (flag_vtable_thunks) + - { + - tree fn; + + tree fn; + + - fn = TREE_OPERAND (entry, 0); + - if ((!integer_zerop (delta) || vcall_index != NULL_TREE) + - && fn != abort_fndecl + - && !DECL_TINFO_FN_P (fn)) + - { + - entry = make_thunk (entry, delta, vcall_index); + - entry = build1 (ADDR_EXPR, vtable_entry_type, entry); + - TREE_READONLY (entry) = 1; + - TREE_CONSTANT (entry) = 1; + - } + -#ifdef GATHER_STATISTICS + - n_vtable_entries += 1; + -#endif + - return entry; + - } + - else + + fn = TREE_OPERAND (entry, 0); + + if ((!integer_zerop (delta) || vcall_index != NULL_TREE) + + && fn != abort_fndecl + + && !DECL_TINFO_FN_P (fn)) + { + - tree elems = tree_cons (NULL_TREE, delta, + - tree_cons (NULL_TREE, integer_zero_node, + - build_tree_list (NULL_TREE, entry))); + - tree entry = build (CONSTRUCTOR, vtable_entry_type, NULL_TREE, elems); + - + - /* We don't use vcall offsets when not using vtable thunks. */ + - my_friendly_assert (vcall_index == NULL_TREE, 20000125); + - + - /* DELTA used to be constructed by `size_int' and/or size_binop, + - which caused overflow problems when it was negative. That should + - be fixed now. */ + - + - if (! int_fits_type_p (delta, delta_type_node)) + - { + - if (flag_huge_objects) + - sorry ("object size exceeds built-in limit for virtual function table implementation"); + - else + - sorry ("object size exceeds normal limit for virtual function table implementation, recompile all source and use -fhuge-objects"); + - } + - + - TREE_CONSTANT (entry) = 1; + - TREE_STATIC (entry) = 1; + + entry = make_thunk (entry, delta, vcall_index); + + entry = build1 (ADDR_EXPR, vtable_entry_type, entry); + TREE_READONLY (entry) = 1; + - + + TREE_CONSTANT (entry) = 1; + + } + #ifdef GATHER_STATISTICS + - n_vtable_entries += 1; + + n_vtable_entries += 1; + #endif + - + - return entry; + - } + + return entry; + } + Index: gcc/cp/cp-tree.h + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/cp-tree.h,v + retrieving revision 1.572.2.36 + diff -u -p -r1.572.2.36 cp-tree.h + --- gcc/cp/cp-tree.h 2001/12/08 16:12:51 1.572.2.36 + +++ gcc/cp/cp-tree.h 2001/12/10 22:04:55 + @@ -135,11 +135,9 @@ Boston, MA 02111-1307, USA. */ + does not have a BV_FN; it is just an offset. + + BINFO_VTABLE + - Sometimes this is a VAR_DECL. Under the new ABI, it is instead + - an expression with POINTER_TYPE pointing that gives the value + + This is an expression with POINTER_TYPE that gives the value + to which the vptr should be initialized. Use get_vtbl_decl_for_binfo + - to extract the VAR_DECL for the complete vtable; that macro works + - in both ABIs. + + to extract the VAR_DECL for the complete vtable. + + DECL_ARGUMENTS + For a VAR_DECL this is DECL_ANON_UNION_ELEMS. + @@ -226,40 +224,6 @@ extern int flag_rtti; + + extern int flag_huge_objects; + + -/* Nonzero if virtual base class offsets are stored in the virtual + - function table. Zero if, instead, a pointer to the virtual base is + - stored in the object itself. */ + -#define vbase_offsets_in_vtable_p() (1) + - + -/* Nonzero if displacements to the `this' pointer to use when calling + - virtual functions in a virtual base class are present in the + - vtable. */ + -#define vcall_offsets_in_vtable_p() (1) + - + -/* Nonzero if a derived class that needs a vptr should always get one, + - even if a non-primary base class already has one. For example, + - given: + - + - struct S { int i; virtual void f(); }; + - struct T : virtual public S {}; + - + - one could either reuse the vptr in `S' for `T', or create a new + - vptr for `T'. If this flag is nonzero we choose the latter + - alternative; otherwise, we choose the former. */ + -#define vptrs_present_everywhere_p() (1) + - + -/* Nonzero if the vtable for a derived class should contain the + - virtual functions from the primary base and all virtual functions + - present in the class itself. Zero if, instead, it should contain + - only those virtual functions from the primary base together with + - the functions declared in the derived class (but not in any base + - class). */ + -#define all_overridden_vfuns_in_vtables_p() (1) + - + -/* Nonzero if primary and secondary vtables are combined into a single + - vtable. */ + -#define merge_primary_and_secondary_vtables_p() (1) + - + + /* Language-dependent contents of an identifier. */ + + @@ -601,15 +565,12 @@ enum cp_tree_index + CPTI_COMPLETE_DTOR_IDENTIFIER, + CPTI_BASE_DTOR_IDENTIFIER, + CPTI_DELETING_DTOR_IDENTIFIER, + - CPTI_DELTA2_IDENTIFIER, + CPTI_DELTA_IDENTIFIER, + CPTI_IN_CHARGE_IDENTIFIER, + CPTI_VTT_PARM_IDENTIFIER, + - CPTI_INDEX_IDENTIFIER, + CPTI_NELTS_IDENTIFIER, + CPTI_THIS_IDENTIFIER, + CPTI_PFN_IDENTIFIER, + - CPTI_PFN_OR_DELTA2_IDENTIFIER, + CPTI_VPTR_IDENTIFIER, + CPTI_STD_IDENTIFIER, + + @@ -643,8 +604,7 @@ extern tree cp_global_trees[CPTI_MAX]; + #define wchar_decl_node cp_global_trees[CPTI_WCHAR_DECL] + #define vtable_entry_type cp_global_trees[CPTI_VTABLE_ENTRY_TYPE] + /* The type used to represent an offset by which to adjust the `this' + - pointer in pointer-to-member types and, when not using vtable + - thunks, in vtables. */ + + pointer in pointer-to-member types. */ + #define delta_type_node cp_global_trees[CPTI_DELTA_TYPE] + /* The type used to represent an index into the vtable. */ + #define vtable_index_type cp_global_trees[CPTI_VTABLE_INDEX_TYPE] + @@ -720,20 +680,14 @@ extern tree cp_global_trees[CPTI_MAX]; + /* The name of a destructor that destroys virtual base classes, and + then deletes the entire object. */ + #define deleting_dtor_identifier cp_global_trees[CPTI_DELETING_DTOR_IDENTIFIER] + - + -#define delta2_identifier cp_global_trees[CPTI_DELTA2_IDENTIFIER] + #define delta_identifier cp_global_trees[CPTI_DELTA_IDENTIFIER] + #define in_charge_identifier cp_global_trees[CPTI_IN_CHARGE_IDENTIFIER] + - + /* The name of the parameter that contains a pointer to the VTT to use + for this subobject constructor or destructor. */ + #define vtt_parm_identifier cp_global_trees[CPTI_VTT_PARM_IDENTIFIER] + - + -#define index_identifier cp_global_trees[CPTI_INDEX_IDENTIFIER] + #define nelts_identifier cp_global_trees[CPTI_NELTS_IDENTIFIER] + #define this_identifier cp_global_trees[CPTI_THIS_IDENTIFIER] + #define pfn_identifier cp_global_trees[CPTI_PFN_IDENTIFIER] + -#define pfn_or_delta2_identifier cp_global_trees[CPTI_PFN_OR_DELTA2_IDENTIFIER] + #define vptr_identifier cp_global_trees[CPTI_VPTR_IDENTIFIER] + /* The name of the std namespace. */ + #define std_identifier cp_global_trees[CPTI_STD_IDENTIFIER] + @@ -1081,11 +1035,6 @@ extern int warn_reorder; + + extern int flag_signed_bitfields; + + -/* True for more efficient but incompatible (not fully tested) + - vtable implementation (using thunks). + - 0 is old behavior; 1 is new behavior. */ + -extern int flag_vtable_thunks; + - + /* INTERFACE_ONLY nonzero means that we are in an "interface" + section of the compiler. INTERFACE_UNKNOWN nonzero means + we cannot trust the value of INTERFACE_ONLY. If INTERFACE_UNKNOWN + @@ -1234,11 +1183,9 @@ enum languages { lang_c, lang_cplusplus, + /* Virtual function addresses can be gotten from a virtual function + table entry using this macro. */ + #define FNADDR_FROM_VTABLE_ENTRY(ENTRY) \ + - (!flag_vtable_thunks ? \ + - TREE_VALUE (TREE_CHAIN (TREE_CHAIN (CONSTRUCTOR_ELTS (ENTRY)))) \ + - : !DECL_THUNK_P (TREE_OPERAND ((ENTRY), 0)) \ + - ? (ENTRY) \ + - : DECL_INITIAL (TREE_OPERAND ((ENTRY), 0))) + + (DECL_THUNK_P (TREE_OPERAND ((ENTRY), 0)) \ + + : DECL_INITIAL (TREE_OPERAND ((ENTRY), 0)) \ + + ? (ENTRY)) + + #define FUNCTION_ARG_CHAIN(NODE) \ + (TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (NODE)))) + @@ -2478,8 +2425,7 @@ struct lang_decl + /* Nonzero if this class has a virtual function table pointer. */ + #define TYPE_CONTAINS_VPTR_P(NODE) \ + (TYPE_POLYMORPHIC_P (NODE) \ + - || (vbase_offsets_in_vtable_p () \ + - && TYPE_USES_VIRTUAL_BASECLASSES (NODE))) + + || TYPE_USES_VIRTUAL_BASECLASSES (NODE)) + + extern int flag_new_for_scope; + + @@ -2634,67 +2580,15 @@ extern int flag_new_for_scope; + + /* A pointer-to-function member type looks like: + + - struct { + - short __delta; + - short __index; + - union { + - P __pfn; + - short __delta2; + - } __pfn_or_delta2; + - }; + - + - where P is a POINTER_TYPE to a METHOD_TYPE appropriate for the + - pointer to member. The fields are used as follows: + - + - If __INDEX is -1, then the function to call is non-virtual, and + - is located at the address given by __PFN. + - + - If __INDEX is zero, then this a NULL pointer-to-member. + - + - Otherwise, the function to call is virtual. Then, __DELTA2 gives + - the offset from an instance of the object to the virtual function + - table, and __INDEX - 1 is the index into the vtable to use to + - find the function. + - + - The value to use for the THIS parameter is the address of the + - object plus __DELTA. + - + - For example, given: + - + - struct B1 { + - int i; + - }; + - + - struct B2 { + - double d; + - void f(); + - }; + - + - struct S : public B1, B2 {}; + - + - the pointer-to-member for `&S::f' looks like: + - + - { 4, -1, { &f__2B2 } }; + - + - The `4' means that given an `S*' you have to add 4 bytes to get to + - the address of the `B2*'. Then, the -1 indicates that this is a + - non-virtual function. Of course, `&f__2B2' is the name of that + - function. + - + - (Of course, the exact values may differ depending on the mangling + - scheme, sizes of types, and such.). + - + - Under the new ABI, we do: + - + struct { + __P __pfn; + ptrdiff_t __delta; + }; + + - (We don't need DELTA2, because the vtable is always the first thing + - in the object.) If the function is virtual, then PFN is one plus + - twice the index into the vtable; otherwise, it is just a pointer to + - the function. + + (As the vtable is always the first thing in the object, we don't + + need an offset to it.) If the function is virtual, then PFN is one + + plus twice the index into the vtable; otherwise, it is just a + + pointer to the function. + + Unfortunately, using the lowest bit of PFN doesn't work in + architectures that don't impose alignment requirements on function + @@ -3201,6 +3095,29 @@ typedef enum instantiate_type_flags { + itf_ptrmem_ok = 1 << 2, /* pointers to member ok (internal use) */ + } instantiate_type_flags; + + +/* The kind of checking we can do looking in a class heirarchy. */ + +typedef enum base_access { + + ba_any = -2, /* Do not check access, allow an ambiguous base, + + prefer a non-virtual base */ + + ba_ignore = -1, /* Do not check access */ + + ba_check = 0, /* Check access */ + + ba_not_special /* Do not consider special privilege + + current_class_type might give. */ + +} base_access; + + + +/* The kind of base we can find, looking in a class heirarchy. + + values <0 indicate we failed. */ + +typedef enum base_kind { + + bk_inaccessible = -3, /* The base is inaccessible */ + + bk_ambig = -2, /* The base is ambiguous */ + + bk_not_base = -1, /* It is not a base */ + + bk_same_type = 0, /* It is the same type */ + + bk_proper_base = 1, /* It is a proper base */ + + bk_via_virtual = 2 /* It is a proper base, but via a virtual + + path. This might not be the canonical + + binfo. */ + +} base_kind; + + + /* Nonzero means allow Microsoft extensions without a pedwarn. */ + extern int flag_ms_extensions; + + @@ -3226,8 +3143,7 @@ extern tree pending_vtables; + + /* Node for "pointer to (virtual) function". + This may be distinct from ptr_type_node so gdb can distinguish them. */ + -#define vfunc_ptr_type_node \ + - (flag_vtable_thunks ? vtable_entry_type : ptr_type_node) + +#define vfunc_ptr_type_node vtable_entry_type + + + /* For building calls to `delete'. */ + @@ -3295,12 +3211,10 @@ extern varray_type local_classes; + #define AUTO_TEMP_NAME "_$tmp_" + #define AUTO_TEMP_FORMAT "_$tmp_%d" + #define VTABLE_BASE "$vb" + -#define VTABLE_NAME_PREFIX (flag_vtable_thunks ? "__vt_" : "_vt$") + +#define VTABLE_NAME_PREFIX "__vt_" + #define VFIELD_BASE "$vf" + #define VFIELD_NAME "_vptr$" + #define VFIELD_NAME_FORMAT "_vptr$%s" + -#define VBASE_NAME "_vb$" + -#define VBASE_NAME_FORMAT "_vb$%s" + #define STATIC_NAME_FORMAT "_%s$%s" + #define ANON_AGGRNAME_FORMAT "$_%d" + + @@ -3317,12 +3231,10 @@ extern varray_type local_classes; + #define AUTO_TEMP_NAME "_.tmp_" + #define AUTO_TEMP_FORMAT "_.tmp_%d" + #define VTABLE_BASE ".vb" + -#define VTABLE_NAME_PREFIX (flag_vtable_thunks ? "__vt_" : "_vt.") + +#define VTABLE_NAME_PREFIX "__vt_" + #define VFIELD_BASE ".vf" + #define VFIELD_NAME "_vptr." + #define VFIELD_NAME_FORMAT "_vptr.%s" + -#define VBASE_NAME "_vb." + -#define VBASE_NAME_FORMAT "_vb.%s" + #define STATIC_NAME_FORMAT "_%s.%s" + + #define ANON_AGGRNAME_FORMAT "._%d" + @@ -3346,7 +3258,7 @@ extern varray_type local_classes; + #define AUTO_TEMP_FORMAT "__tmp_%d" + #define VTABLE_BASE "__vtb" + #define VTABLE_NAME "__vt_" + -#define VTABLE_NAME_PREFIX (flag_vtable_thunks ? "__vt_" : "_vt_") + +#define VTABLE_NAME_PREFIX "__vt_" + #define VTABLE_NAME_P(ID_NODE) \ + (!strncmp (IDENTIFIER_POINTER (ID_NODE), VTABLE_NAME, \ + sizeof (VTABLE_NAME) - 1)) + @@ -3356,11 +3268,6 @@ extern varray_type local_classes; + (!strncmp (IDENTIFIER_POINTER (ID_NODE), VFIELD_NAME, \ + sizeof (VFIELD_NAME) - 1)) + #define VFIELD_NAME_FORMAT "_vptr_%s" + -#define VBASE_NAME "__vb_" + -#define VBASE_NAME_P(ID_NODE) \ + - (!strncmp (IDENTIFIER_POINTER (ID_NODE), VBASE_NAME, \ + - sizeof (VBASE_NAME) - 1)) + -#define VBASE_NAME_FORMAT "__vb_%s" + #define STATIC_NAME_FORMAT "__static_%s_%s" + + #define ANON_AGGRNAME_PREFIX "__anon_" + @@ -3386,21 +3293,10 @@ extern varray_type local_classes; + + #define VTBL_PTR_TYPE "__vtbl_ptr_type" + #define VTABLE_DELTA_NAME "__delta" + -#define VTABLE_INDEX_NAME "__index" + #define VTABLE_PFN_NAME "__pfn" + -#define VTABLE_DELTA2_NAME "__delta2" + + #define EXCEPTION_CLEANUP_NAME "exception cleanup" + + -/* The name used as a prefix for VTTs. When the new ABI mangling + - scheme is implemented, this should be removed. */ + - + -#define VTT_NAME_PREFIX "__vtt_" + - + -/* The name used as a prefix for construction vtables. */ + - + -#define CTOR_VTBL_NAME_PREFIX "__ctorvt_" + - + #define THIS_NAME_P(ID_NODE) (strcmp(IDENTIFIER_POINTER (ID_NODE), "this") == 0) + + #if !defined(NO_DOLLAR_IN_LABEL) || !defined(NO_DOT_IN_LABEL) + @@ -3414,10 +3310,6 @@ extern varray_type local_classes; + && IDENTIFIER_POINTER (ID_NODE)[2] == 't' \ + && IDENTIFIER_POINTER (ID_NODE)[3] == JOINER) + + -#define VBASE_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[1] == 'v' \ + - && IDENTIFIER_POINTER (ID_NODE)[2] == 'b' \ + - && IDENTIFIER_POINTER (ID_NODE)[3] == JOINER) + - + #define TEMP_NAME_P(ID_NODE) (!strncmp (IDENTIFIER_POINTER (ID_NODE), AUTO_TEMP_NAME, sizeof (AUTO_TEMP_NAME)-1)) + #define VFIELD_NAME_P(ID_NODE) (!strncmp (IDENTIFIER_POINTER (ID_NODE), VFIELD_NAME, sizeof(VFIELD_NAME)-1)) + + @@ -3431,14 +3323,6 @@ extern varray_type local_classes; + && IDENTIFIER_POINTER (ID_NODE)[1] <= '9') + #endif /* !defined(NO_DOLLAR_IN_LABEL) || !defined(NO_DOT_IN_LABEL) */ + + -/* Store the vbase pointer field name for type TYPE into pointer BUF. */ + -#define FORMAT_VBASE_NAME(BUF,TYPE) do { \ + - char *wbuf = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (TYPE) \ + - + sizeof (VBASE_NAME) + 1); \ + - sprintf (wbuf, VBASE_NAME_FORMAT, TYPE_ASSEMBLER_NAME_STRING (TYPE)); \ + - (BUF) = wbuf; \ + -} while (0) + - + /* Returns non-zero iff NODE is a declaration for the global function + `main'. */ + #define DECL_MAIN_P(NODE) \ + @@ -3742,9 +3626,10 @@ extern tree strip_top_quals + extern tree perform_implicit_conversion PARAMS ((tree, tree)); + + /* in class.c */ + +extern tree build_base_path PARAMS ((enum tree_code, tree, tree, int)); + extern tree build_vbase_path PARAMS ((enum tree_code, tree, tree, tree, int)); + extern tree build_vtbl_ref PARAMS ((tree, tree)); + -extern tree build_vfn_ref PARAMS ((tree *, tree, tree)); + +extern tree build_vfn_ref PARAMS ((tree, tree)); + extern tree get_vtable_decl PARAMS ((tree, int)); + extern void add_method PARAMS ((tree, tree, int)); + extern int currently_open_class PARAMS ((tree)); + @@ -3781,8 +3666,6 @@ extern tree get_primary_binfo + extern tree convert_to_reference PARAMS ((tree, tree, int, int, tree)); + extern tree convert_from_reference PARAMS ((tree)); + extern tree convert_lvalue PARAMS ((tree, tree)); + -extern tree convert_pointer_to_real PARAMS ((tree, tree)); + -extern tree convert_pointer_to PARAMS ((tree, tree)); + extern tree ocp_convert PARAMS ((tree, tree, int, int)); + extern tree cp_convert PARAMS ((tree, tree)); + extern tree convert_to_void PARAMS ((tree, const char */*implicit context*/)); + @@ -4216,6 +4099,7 @@ extern int tinfo_decl_p + extern int emit_tinfo_decl PARAMS((tree *, void *)); + + /* in search.c */ + +extern tree lookup_base PARAMS ((tree, tree, base_access, base_kind *)); + extern int types_overlap_p PARAMS ((tree, tree)); + extern tree get_vbase PARAMS ((tree, tree)); + extern tree get_binfo PARAMS ((tree, tree, int)); + @@ -4229,7 +4113,6 @@ extern tree lookup_fnfields PARAMS ((t + extern tree lookup_member PARAMS ((tree, tree, int, int)); + extern int look_for_overrides PARAMS ((tree, tree)); + extern void get_pure_virtuals PARAMS ((tree)); + -extern tree init_vbase_pointers PARAMS ((tree, tree)); + extern void get_vbase_types PARAMS ((tree)); + extern void maybe_suppress_debug_info PARAMS ((tree)); + extern void note_debug_info_needed PARAMS ((tree)); + @@ -4265,11 +4148,9 @@ extern tree dfs_marked_real_bases_queue_ + extern tree dfs_skip_vbases PARAMS ((tree, void *)); + extern tree marked_vtable_pathp PARAMS ((tree, void *)); + extern tree unmarked_vtable_pathp PARAMS ((tree, void *)); + -extern tree convert_pointer_to_vbase PARAMS ((tree, tree)); + extern tree find_vbase_instance PARAMS ((tree, tree)); + extern tree binfo_for_vbase PARAMS ((tree, tree)); + extern tree binfo_via_virtual PARAMS ((tree, tree)); + -extern void fixup_all_virtual_upcast_offsets PARAMS ((tree)); + + /* in semantics.c */ + extern void init_cp_semantics PARAMS ((void)); + Index: gcc/cp/cvt.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/cvt.c,v + retrieving revision 1.97.2.3 + diff -u -p -r1.97.2.3 cvt.c + --- gcc/cp/cvt.c 2001/08/17 04:31:27 1.97.2.3 + +++ gcc/cp/cvt.c 2001/12/10 22:04:56 + @@ -141,44 +141,35 @@ cp_convert_to_pointer (type, expr, force + && TREE_CODE (TREE_TYPE (type)) == RECORD_TYPE + && IS_AGGR_TYPE (TREE_TYPE (type)) + && IS_AGGR_TYPE (TREE_TYPE (intype)) + - && TREE_CODE (TREE_TYPE (intype)) == RECORD_TYPE + - /* If EXPR is NULL, then we don't need to do any arithmetic + - to convert it: + - + - [conv.ptr] + - + - The null pointer value is converted to the null pointer + - value of the destination type. */ + - && !integer_zerop (expr)) + + && TREE_CODE (TREE_TYPE (intype)) == RECORD_TYPE) + { + enum tree_code code = PLUS_EXPR; + - tree binfo = get_binfo (TREE_TYPE (type), TREE_TYPE (intype), 1); + - if (binfo == error_mark_node) + - return error_mark_node; + - if (binfo == NULL_TREE) + + tree binfo; + + + + /* Try derived to base conversion. */ + + binfo = lookup_base (TREE_TYPE (intype), TREE_TYPE (type), + + ba_check, NULL); + + if (!binfo) + { + - binfo = get_binfo (TREE_TYPE (intype), TREE_TYPE (type), 1); + - if (binfo == error_mark_node) + - return error_mark_node; + + /* Try base to derived conversion. */ + + binfo = lookup_base (TREE_TYPE (type), TREE_TYPE (intype), + + ba_check, NULL); + code = MINUS_EXPR; + } + + if (binfo == error_mark_node) + + return error_mark_node; + if (binfo) + { + - if (TYPE_USES_VIRTUAL_BASECLASSES (TREE_TYPE (type)) + - || TYPE_USES_VIRTUAL_BASECLASSES (TREE_TYPE (intype)) + - || ! BINFO_OFFSET_ZEROP (binfo)) + + expr = build_base_path (code, expr, binfo, 0); + + /* Add any qualifier conversions. */ + + if (!same_type_p (TREE_TYPE (TREE_TYPE (expr)), + + TREE_TYPE (type))) + { + - /* Need to get the path we took. */ + - tree path; + - + - if (code == PLUS_EXPR) + - get_base_distance (TREE_TYPE (type), TREE_TYPE (intype), + - 0, &path); + - else + - get_base_distance (TREE_TYPE (intype), TREE_TYPE (type), + - 0, &path); + - return build_vbase_path (code, type, expr, path, 0); + + expr = build1 (NOP_EXPR, type, expr); + + TREE_CONSTANT (expr) = + + TREE_CONSTANT (TREE_OPERAND (expr, 0)); + } + + return expr; + } + } + + @@ -187,36 +178,29 @@ cp_convert_to_pointer (type, expr, force + tree b1; + tree b2; + tree binfo; + - tree virt_binfo; + - enum tree_code code; + + enum tree_code code = PLUS_EXPR; + + base_kind bk; + + b1 = TYPE_OFFSET_BASETYPE (TREE_TYPE (type)); + b2 = TYPE_OFFSET_BASETYPE (TREE_TYPE (intype)); + - binfo = get_binfo (b2, b1, 1); + - + - if (binfo == NULL_TREE) + + binfo = lookup_base (b1, b2, ba_check, &bk); + + if (!binfo) + { + - binfo = get_binfo (b1, b2, 1); + + binfo = lookup_base (b2, b1, ba_check, &bk); + code = MINUS_EXPR; + } + - else + - code = PLUS_EXPR; + - + if (binfo == error_mark_node) + return error_mark_node; + + - virt_binfo = binfo_from_vbase (binfo); + - if (virt_binfo) + + if (bk == bk_via_virtual) + { + if (force) + - cp_warning ("pointer to member cast via virtual base `%T' of `%T'", + - BINFO_TYPE (virt_binfo), + - BINFO_TYPE (BINFO_INHERITANCE_CHAIN (virt_binfo))); + + cp_warning ("pointer to member cast from `%T' to `%T' is via virtual base", + + TREE_TYPE (intype), TREE_TYPE (type)); + else + { + - cp_error ("pointer to member cast via virtual base `%T' of `%T'", + - BINFO_TYPE (virt_binfo), + - BINFO_TYPE (BINFO_INHERITANCE_CHAIN (virt_binfo))); + + cp_error ("pointer to member cast from `%T' to `%T' is via virtual base", + + TREE_TYPE (intype), TREE_TYPE (type)); + return error_mark_node; + } + /* This is a reinterpret cast, whose result is unspecified. + @@ -259,8 +243,8 @@ cp_convert_to_pointer (type, expr, force + return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr, 0); + + if (TYPE_PTRMEM_P (type)) + - /* Under the new ABI, a NULL pointer-to-member is represented + - by -1, not by zero. */ + + /* A NULL pointer-to-member is represented by -1, not by + + zero. */ + expr = build_int_2 (-1, -1); + else + expr = build_int_2 (0, 0); + @@ -319,34 +303,32 @@ convert_to_pointer_force (type, expr) + && TREE_CODE (TREE_TYPE (intype)) == RECORD_TYPE) + { + enum tree_code code = PLUS_EXPR; + - tree path; + - int distance = get_base_distance (TREE_TYPE (type), + - TREE_TYPE (intype), 0, &path); + - if (distance == -2) + + tree binfo; + + + + binfo = lookup_base (TREE_TYPE (intype), TREE_TYPE (type), + + ba_ignore, NULL); + + if (!binfo) + { + - cp_error ("type `%T' is ambiguous base of `%T'", + - TREE_TYPE (type), + - TREE_TYPE (intype)); + - return error_mark_node; + + binfo = lookup_base (TREE_TYPE (type), TREE_TYPE (intype), + + ba_ignore, NULL); + + code = MINUS_EXPR; + } + - if (distance == -1) + + if (binfo == error_mark_node) + + return error_mark_node; + + if (binfo) + { + - distance = get_base_distance (TREE_TYPE (intype), + - TREE_TYPE (type), 0, &path); + - if (distance == -2) + - { + - cp_error ("type `%T' is ambiguous base of `%T'", + - TREE_TYPE (intype), + - TREE_TYPE (type)); + - return error_mark_node; + - } + - if (distance < 0) + - /* Doesn't need any special help from us. */ + - return build1 (NOP_EXPR, type, expr); + - + - code = MINUS_EXPR; + + expr = build_base_path (code, expr, binfo, 0); + + /* Add any qualifier conversions. */ + + if (!same_type_p (TREE_TYPE (TREE_TYPE (expr)), + + TREE_TYPE (type))) + + { + + expr = build1 (NOP_EXPR, type, expr); + + TREE_CONSTANT (expr) = + + TREE_CONSTANT (TREE_OPERAND (expr, 0)); + + } + + return expr; + } + - return build_vbase_path (code, type, expr, path, 0); + + + } + } + + @@ -406,12 +388,12 @@ build_up_reference (type, arg, flags) + && IS_AGGR_TYPE (target_type)) + { + /* We go through get_binfo for the access control. */ + - tree binfo = get_binfo (target_type, argtype, 1); + + tree binfo = lookup_base (argtype, target_type, ba_check, NULL); + if (binfo == error_mark_node) + return error_mark_node; + if (binfo == NULL_TREE) + return error_not_base_type (target_type, argtype); + - rval = convert_pointer_to_real (binfo, rval); + + rval = build_base_path (PLUS_EXPR, rval, binfo, 1); + } + else + rval + @@ -610,87 +592,6 @@ convert_lvalue (totype, expr) + expr = convert_to_reference (totype, expr, CONV_IMPLICIT, LOOKUP_NORMAL, + NULL_TREE); + return convert_from_reference (expr); + -} + - + -/* Call this when we know (for any reason) that expr is not, in fact, + - zero. This routine is like convert_pointer_to, but it pays + - attention to which specific instance of what type we want to + - convert to. This routine should eventually become + - convert_to_pointer after all references to convert_to_pointer + - are removed. */ + - + -tree + -convert_pointer_to_real (binfo, expr) + - tree binfo, expr; + -{ + - register tree intype = TREE_TYPE (expr); + - tree ptr_type; + - tree type, rval; + - + - if (intype == error_mark_node) + - return error_mark_node; + - + - if (TREE_CODE (binfo) == TREE_VEC) + - type = BINFO_TYPE (binfo); + - else if (IS_AGGR_TYPE (binfo)) + - { + - type = binfo; + - } + - else + - { + - type = binfo; + - binfo = NULL_TREE; + - } + - + - ptr_type = cp_build_qualified_type (type, + - CP_TYPE_QUALS (TREE_TYPE (intype))); + - ptr_type = build_pointer_type (ptr_type); + - if (same_type_p (ptr_type, TYPE_MAIN_VARIANT (intype))) + - return expr; + - + - my_friendly_assert (!integer_zerop (expr), 191); + - + - intype = TYPE_MAIN_VARIANT (TREE_TYPE (intype)); + - if (TREE_CODE (type) == RECORD_TYPE + - && TREE_CODE (intype) == RECORD_TYPE + - && type != intype) + - { + - tree path; + - int distance + - = get_base_distance (binfo, intype, 0, &path); + - + - /* This function shouldn't be called with unqualified arguments + - but if it is, give them an error message that they can read. */ + - if (distance < 0) + - { + - cp_error ("cannot convert a pointer of type `%T' to a pointer of type `%T'", + - intype, type); + - + - if (distance == -2) + - cp_error ("because `%T' is an ambiguous base class", type); + - return error_mark_node; + - } + - + - return build_vbase_path (PLUS_EXPR, ptr_type, expr, path, 1); + - } + - rval = build1 (NOP_EXPR, ptr_type, + - TREE_CODE (expr) == NOP_EXPR ? TREE_OPERAND (expr, 0) : expr); + - TREE_CONSTANT (rval) = TREE_CONSTANT (expr); + - return rval; + -} + - + -/* Call this when we know (for any reason) that expr is + - not, in fact, zero. This routine gets a type out of the first + - argument and uses it to search for the type to convert to. If there + - is more than one instance of that type in the expr, the conversion is + - ambiguous. This routine should eventually go away, and all + - callers should use convert_to_pointer_real. */ + - + -tree + -convert_pointer_to (binfo, expr) + - tree binfo, expr; + -{ + - return convert_pointer_to_real (binfo, expr); + } + + /* C++ conversions, preference to static cast conversions. */ + Index: gcc/cp/decl.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v + retrieving revision 1.747.2.35 + diff -u -p -r1.747.2.35 decl.c + --- gcc/cp/decl.c 2001/12/06 12:54:12 1.747.2.35 + +++ gcc/cp/decl.c 2001/12/10 22:05:05 + @@ -51,8 +51,7 @@ extern tree global_namespace; + extern int (*valid_lang_attribute) PARAMS ((tree, tree, tree, tree)); + + #ifndef BOOL_TYPE_SIZE + -/* In the new ABI, `bool' has size and alignment `1', on all + - platforms. */ + +/* `bool' has size and alignment `1', on all platforms. */ + #define BOOL_TYPE_SIZE CHAR_TYPE_SIZE + #endif + + @@ -166,28 +165,13 @@ tree error_mark_list; + + tree vtable_entry_type; + tree delta_type_node; + -#if 0 + - Old rtti stuff. + - tree __baselist_desc_type_node; + - tree __i_desc_type_node, __m_desc_type_node; + - tree __t_desc_array_type, __i_desc_array_type, __m_desc_array_type; + -#endif + tree __t_desc_type_node; + -#if 0 + - tree __tp_desc_type_node; + -#endif + tree ti_desc_type_node; + tree bltn_desc_type_node, ptr_desc_type_node; + tree ary_desc_type_node, func_desc_type_node, enum_desc_type_node; + tree class_desc_type_node, si_class_desc_type_node, vmi_class_desc_type_node; + tree ptm_desc_type_node; + tree base_desc_type_node; + -#if 0 + - Not needed yet? May be needed one day? + - tree __bltn_desc_array_type, __user_desc_array_type, __class_desc_array_type; + - tree __ptr_desc_array_type, __attr_dec_array_type, __func_desc_array_type; + - tree __ptmf_desc_array_type, __ptmd_desc_array_type; + -#endif + + tree class_type_node, record_type_node, union_type_node, enum_type_node; + tree unknown_type_node; + @@ -6317,14 +6301,11 @@ initialize_predefined_identifiers () + { "__comp_dtor", &complete_dtor_identifier, 1 }, + { "__base_dtor", &base_dtor_identifier, 1 }, + { "__deleting_dtor", &deleting_dtor_identifier, 1 }, + - { VTABLE_DELTA2_NAME, &delta2_identifier, 0 }, + - { VTABLE_DELTA_NAME, &delta_identifier, 0 }, + { IN_CHARGE_NAME, &in_charge_identifier, 0 }, + - { VTABLE_INDEX_NAME, &index_identifier, 0 }, + { "nelts", &nelts_identifier, 0 }, + { THIS_NAME, &this_identifier, 0 }, + + { VTABLE_DELTA_NAME, &delta_identifier, 0 }, + { VTABLE_PFN_NAME, &pfn_identifier, 0 }, + - { "__pfn_or_delta2", &pfn_or_delta2_identifier, 0 }, + { "_vptr", &vptr_identifier, 0 }, + { "__vtt_parm", &vtt_parm_identifier, 0 }, + { "std", &std_identifier, 0 }, + @@ -6349,11 +6330,6 @@ init_decl_processing () + { + tree fields[20]; + + - /* Check to see that the user did not specify an invalid combination + - of command-line options. */ + - if (!flag_vtable_thunks) + - error ("the ABI requires vtable thunks"); + - + /* Create all the identifiers we need. */ + initialize_predefined_identifiers (); + + @@ -6493,41 +6469,16 @@ init_decl_processing () + TYPE_POINTER_TO (unknown_type_node) = unknown_type_node; + TYPE_REFERENCE_TO (unknown_type_node) = unknown_type_node; + + - if (flag_vtable_thunks) + - { + - /* Make sure we get a unique function type, so we can give + - its pointer type a name. (This wins for gdb.) */ + - tree vfunc_type = make_node (FUNCTION_TYPE); + - TREE_TYPE (vfunc_type) = integer_type_node; + - TYPE_ARG_TYPES (vfunc_type) = NULL_TREE; + - layout_type (vfunc_type); + - + - vtable_entry_type = build_pointer_type (vfunc_type); + - } + - else + - { + - vtable_entry_type = make_aggr_type (RECORD_TYPE); + - fields[0] = build_decl (FIELD_DECL, delta_identifier, + - delta_type_node); + - fields[1] = build_decl (FIELD_DECL, index_identifier, + - delta_type_node); + - fields[2] = build_decl (FIELD_DECL, pfn_identifier, + - ptr_type_node); + - finish_builtin_type (vtable_entry_type, VTBL_PTR_TYPE, fields, 2, + - double_type_node); + - + - /* Make this part of an invisible union. */ + - fields[3] = copy_node (fields[2]); + - TREE_TYPE (fields[3]) = delta_type_node; + - DECL_NAME (fields[3]) = delta2_identifier; + - DECL_MODE (fields[3]) = TYPE_MODE (delta_type_node); + - DECL_SIZE (fields[3]) = TYPE_SIZE (delta_type_node); + - DECL_SIZE_UNIT (fields[3]) = TYPE_SIZE_UNIT (delta_type_node); + - TREE_UNSIGNED (fields[3]) = 0; + - TREE_CHAIN (fields[2]) = fields[3]; + - vtable_entry_type = build_qualified_type (vtable_entry_type, + - TYPE_QUAL_CONST); + - } + + { + + /* Make sure we get a unique function type, so we can give + + its pointer type a name. (This wins for gdb.) */ + + tree vfunc_type = make_node (FUNCTION_TYPE); + + TREE_TYPE (vfunc_type) = integer_type_node; + + TYPE_ARG_TYPES (vfunc_type) = NULL_TREE; + + layout_type (vfunc_type); + + + + vtable_entry_type = build_pointer_type (vfunc_type); + + } + record_builtin_type (RID_MAX, VTBL_PTR_TYPE, vtable_entry_type); + + vtbl_type_node + @@ -9473,7 +9424,6 @@ check_special_function_return_type (sfk, + if (type) + cp_error ("return type specification for constructor invalid"); + + - /* In the new ABI constructors do not return a value. */ + type = void_type_node; + break; + + Index: gcc/cp/decl2.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/decl2.c,v + retrieving revision 1.437.2.29 + diff -u -p -r1.437.2.29 decl2.c + --- gcc/cp/decl2.c 2001/11/30 03:12:42 1.437.2.29 + +++ gcc/cp/decl2.c 2001/12/10 22:05:09 + @@ -200,11 +200,6 @@ int warn_long_long = 1; + + int warn_ctor_dtor_privacy = 1; + + -/* True if we want to implement vtables using "thunks". + - The default is off. */ + - + -int flag_vtable_thunks = 1; + - + /* Nonzero means generate separate instantiation control files and juggle + them at link time. */ + + @@ -2262,12 +2257,9 @@ mark_vtable_entries (decl) + + for (; entries; entries = TREE_CHAIN (entries)) + { + - tree fnaddr; + + tree fnaddr = TREE_VALUE (entries); + tree fn; + + - fnaddr = (flag_vtable_thunks ? TREE_VALUE (entries) + - : FNADDR_FROM_VTABLE_ENTRY (TREE_VALUE (entries))); + - + if (TREE_CODE (fnaddr) != ADDR_EXPR + && TREE_CODE (fnaddr) != FDESC_EXPR) + /* This entry is an offset: a virtual base class offset, a + @@ -2307,12 +2299,12 @@ comdat_linkage (decl) + address, and this will not hold when we emit multiple copies of + the function. However, there's little else we can do. + + - Also, by default, the typeinfo implementation for the new ABI + - assumes that there will be only one copy of the string used as + - the name for each type. Therefore, if weak symbols are + - unavailable, the run-time library should perform a more + - conservative check; it should perform a string comparison, + - rather than an address comparison. */ + + Also, by default, the typeinfo implementation assumes that + + there will be only one copy of the string used as the name for + + each type. Therefore, if weak symbols are unavailable, the + + run-time library should perform a more conservative check; it + + should perform a string comparison, rather than an address + + comparison. */ + TREE_PUBLIC (decl) = 0; + else + { + @@ -2751,8 +2743,8 @@ get_guard (decl) + { + tree guard_type; + + - /* Under the new ABI, we use a type that is big enough to + - contain a mutex as well as an integer counter. */ + + /* We use a type that is big enough to contain a mutex as well + + as an integer counter. */ + guard_type = long_long_integer_type_node; + guard = build_decl (VAR_DECL, sname, guard_type); + + @@ -2779,8 +2771,8 @@ static tree + get_guard_bits (guard) + tree guard; + { + - /* Under the new ABI, we only set the first byte of the guard, + - in order to leave room for a mutex in the high-order bits. */ + + /* We only set the first byte of the guard, in order to leave room + + for a mutex in the high-order bits. */ + guard = build1 (ADDR_EXPR, + build_pointer_type (TREE_TYPE (guard)), + guard); + Index: gcc/cp/error.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/error.c,v + retrieving revision 1.149.2.5 + diff -u -p -r1.149.2.5 error.c + --- gcc/cp/error.c 2001/09/15 19:43:41 1.149.2.5 + +++ gcc/cp/error.c 2001/12/10 22:05:10 + @@ -950,13 +950,8 @@ dump_decl (t, flags) + if (DECL_NAME (t) && VTABLE_NAME_P (DECL_NAME (t))) + { + output_add_string (scratch_buffer, "vtable for "); + - if (TYPE_P (DECL_CONTEXT (t))) + - dump_type (DECL_CONTEXT (t), flags); + - else + - /* This case can arise with -fno-vtable-thunks. See + - expand_upcast_fixups. It's not clear what to print + - here. */ + - print_identifier (scratch_buffer, ""); + + my_friendly_assert (TYPE_P (DECL_CONTEXT (t)), 20010720); + + dump_type (DECL_CONTEXT (t), flags); + break; + } + /* else fall through */ + @@ -1918,16 +1913,9 @@ dump_expr (t, flags) + case CONSTRUCTOR: + if (TREE_TYPE (t) && TYPE_PTRMEMFUNC_P (TREE_TYPE (t))) + { + - tree idx = build_component_ref (t, index_identifier, NULL_TREE, 0); + + tree idx = build_component_ref (t, pfn_identifier, NULL_TREE, 0); + + - if (integer_all_onesp (idx)) + - { + - tree pfn = PFN_FROM_PTRMEMFUNC (t); + - dump_unary_op ("&", pfn, flags | TFF_EXPR_IN_PARENS); + - break; + - } + - else if (TREE_CODE (idx) == INTEGER_CST + - && tree_int_cst_equal (idx, integer_zero_node)) + + if (integer_zerop (idx)) + { + /* A NULL pointer-to-member constant. */ + output_add_string (scratch_buffer, "(("); + Index: gcc/cp/init.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/init.c,v + retrieving revision 1.232.2.9 + diff -u -p -r1.232.2.9 init.c + --- gcc/cp/init.c 2001/05/22 00:29:08 1.232.2.9 + +++ gcc/cp/init.c 2001/12/10 22:05:12 + @@ -130,7 +130,9 @@ finish_init_stmts (stmt_expr, compound_s + + /* Constructors */ + + -/* Called from initialize_vtbl_ptrs via dfs_walk. */ + +/* Called from initialize_vtbl_ptrs via dfs_walk. BINFO is the base + + which we want to initialize the vtable pointer for, DATA is + + TREE_LIST whose TREE_VALUE is the this ptr expression. */ + + static tree + dfs_initialize_vtbl_ptrs (binfo, data) + @@ -142,16 +144,7 @@ dfs_initialize_vtbl_ptrs (binfo, data) + { + tree base_ptr = TREE_VALUE ((tree) data); + + - if (TREE_VIA_VIRTUAL (binfo)) + - base_ptr = convert_pointer_to_vbase (BINFO_TYPE (binfo), + - base_ptr); + - else + - base_ptr + - = build_vbase_path (PLUS_EXPR, + - build_pointer_type (BINFO_TYPE (binfo)), + - base_ptr, + - binfo, + - /*nonnull=*/1); + + base_ptr = build_base_path (PLUS_EXPR, base_ptr, binfo, /*nonnull=*/1); + + expand_virtual_init (binfo, base_ptr); + } + @@ -175,21 +168,13 @@ initialize_vtbl_ptrs (addr) + list = build_tree_list (type, addr); + + /* Walk through the hierarchy, initializing the vptr in each base + - class. We do these in pre-order because under the new ABI we + - can't find the virtual bases for a class until we've initialized + - the vtbl for that class. */ + + class. We do these in pre-order because can't find the virtual + + bases for a class until we've initialized the vtbl for that + + class. */ + dfs_walk_real (TYPE_BINFO (type), dfs_initialize_vtbl_ptrs, + NULL, dfs_unmarked_real_bases_queue_p, list); + dfs_walk (TYPE_BINFO (type), dfs_unmark, + dfs_marked_real_bases_queue_p, type); + - + - /* If we're not using thunks, we may need to adjust the deltas in + - the vtable to handle virtual base classes correctly. When we are + - using thunks, we either use construction vtables (which are + - preloaded with the right answers) or nothing (in which case + - vitual function calls sometimes don't work right.) */ + - if (TYPE_USES_VIRTUAL_BASECLASSES (type) && !flag_vtable_thunks) + - fixup_all_virtual_upcast_offsets (addr); + } + + /* [dcl.init]: + @@ -748,7 +733,8 @@ emit_base_init (mem_init_list, base_init + + if (init != void_list_node) + { + - member = convert_pointer_to_real (base_binfo, current_class_ptr); + + member = build_base_path (PLUS_EXPR, current_class_ptr, + + base_binfo, 1); + expand_aggr_init_1 (base_binfo, NULL_TREE, + build_indirect_ref (member, NULL_PTR), init, + LOOKUP_NORMAL); + @@ -839,20 +825,14 @@ static void + expand_virtual_init (binfo, decl) + tree binfo, decl; + { + - tree type = BINFO_TYPE (binfo); + tree vtbl, vtbl_ptr; + - tree vtype, vtype_binfo; + tree vtt_index; + + - /* Compute the location of the vtable. */ + - vtype = DECL_CONTEXT (TYPE_VFIELD (type)); + - vtype_binfo = get_binfo (vtype, TREE_TYPE (TREE_TYPE (decl)), 0); + - + /* Compute the initializer for vptr. */ + vtbl = build_vtbl_address (binfo); + + - /* Under the new ABI, we may get this vptr from a VTT, if this is a + - subobject constructor or subobject destructor. */ + + /* We may get this vptr from a VTT, if this is a subobject + + constructor or subobject destructor. */ + vtt_index = BINFO_VPTR_INDEX (binfo); + if (vtt_index) + { + @@ -879,10 +859,9 @@ expand_virtual_init (binfo, decl) + } + + /* Compute the location of the vtpr. */ + - decl = convert_pointer_to_real (vtype_binfo, decl); + - vtbl_ptr = build_vfield_ref (build_indirect_ref (decl, NULL_PTR), vtype); + - if (vtbl_ptr == error_mark_node) + - return; + + vtbl_ptr = build_vfield_ref (build_indirect_ref (decl, NULL), + + TREE_TYPE (binfo)); + + my_friendly_assert (vtbl_ptr != error_mark_node, 20010730); + + /* Assign the vtable to the vptr. */ + vtbl = convert_force (TREE_TYPE (vtbl_ptr), vtbl, 0); + @@ -951,22 +930,6 @@ construct_virtual_bases (type, this_ref, + /* If there are no virtual baseclasses, we shouldn't even be here. */ + my_friendly_assert (TYPE_USES_VIRTUAL_BASECLASSES (type), 19990621); + + - /* First set the pointers in our object that tell us where to find + - our virtual baseclasses. */ + - if (!vbase_offsets_in_vtable_p ()) + - { + - tree if_stmt; + - tree result; + - + - if_stmt = begin_if_stmt (); + - finish_if_stmt_cond (flag, if_stmt); + - result = init_vbase_pointers (type, this_ptr); + - if (result) + - finish_expr_stmt (build_compound_expr (result)); + - finish_then_clause (if_stmt); + - finish_if_stmt (); + - } + - + /* Now, run through the baseclasses, initializing each. */ + for (vbases = CLASSTYPE_VBASECLASSES (type); vbases; + vbases = TREE_CHAIN (vbases)) + @@ -1919,14 +1882,17 @@ resolve_offset_ref (exp) + if (TREE_CODE (exp) == OFFSET_REF && TREE_CODE (type) == OFFSET_TYPE) + base = build_scoped_ref (base, TYPE_OFFSET_BASETYPE (type)); + + - addr = build_unary_op (ADDR_EXPR, base, 0); + - addr = convert_pointer_to (basetype, addr); + + /* Don't check access on the conversion; we might be after a member + + promoted by an access- or using-declaration, and we have already + + checked access for the member itself. */ + + basetype = lookup_base (TREE_TYPE (base), basetype, ba_ignore, NULL); + + expr = build_base_path (PLUS_EXPR, base, basetype, 1); + + - if (addr == error_mark_node) + + if (expr == error_mark_node) + return error_mark_node; + + expr = build (COMPONENT_REF, TREE_TYPE (member), + - build_indirect_ref (addr, NULL_PTR), member); + + expr, member); + return convert_from_reference (expr); + } + + @@ -1949,7 +1915,10 @@ resolve_offset_ref (exp) + } + + basetype = TYPE_OFFSET_BASETYPE (TREE_TYPE (TREE_TYPE (member))); + - addr = convert_pointer_to (basetype, addr); + + basetype = lookup_base (TREE_TYPE (TREE_TYPE (addr)), + + basetype, ba_check, NULL); + + addr = build_base_path (PLUS_EXPR, addr, basetype, 1); + + + member = cp_convert (ptrdiff_type_node, member); + + return build1 (INDIRECT_REF, type, + @@ -2213,7 +2182,7 @@ build_java_class_ref (type) + jclass_node = TREE_TYPE (jclass_node); + } + + - /* Mangle the class$ field, new and old ABI */ + + /* Mangle the class$ field */ + { + tree field; + for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) + @@ -2252,8 +2221,8 @@ get_cookie_size (type) + { + tree cookie_size; + + - /* Under the new ABI, we need to allocate an additional max + - (sizeof (size_t), alignof (true_type)) bytes. */ + + /* We need to allocate an additional max (sizeof (size_t), alignof + + (true_type)) bytes. */ + tree sizetype_size; + tree type_align; + + @@ -2360,9 +2329,7 @@ build_new_1 (exp) + if (!has_array || !TYPE_VEC_NEW_USES_COOKIE (true_type)) + use_cookie = 0; + /* When using placement new, users may not realize that they need + - the extra storage. Under the old ABI, we don't allocate the + - cookie whenever they use one placement argument of type `void + - *'. Under the new ABI, we require that the operator called be + + the extra storage. We require that the operator called be + the global placement operator delete[]. */ + else if (placement && !TREE_CHAIN (placement) + && same_type_p (TREE_TYPE (TREE_VALUE (placement)), + @@ -2479,9 +2446,8 @@ build_new_1 (exp) + tree cookie; + + /* Store the number of bytes allocated so that we can know how + - many elements to destroy later. Under the new ABI, we use + - the last sizeof (size_t) bytes to store the number of + - elements. */ + + many elements to destroy later. We use the last sizeof + + (size_t) bytes to store the number of elements. */ + cookie = build (MINUS_EXPR, build_pointer_type (sizetype), + alloc_node, size_in_bytes (sizetype)); + cookie = build_indirect_ref (cookie, NULL_PTR); + Index: gcc/cp/lang-specs.h + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/lang-specs.h,v + retrieving revision 1.39.2.4 + diff -u -p -r1.39.2.4 lang-specs.h + --- gcc/cp/lang-specs.h 2001/06/08 00:00:32 1.39.2.4 + +++ gcc/cp/lang-specs.h 2001/12/10 22:05:12 + @@ -38,14 +38,14 @@ Boston, MA 02111-1307, USA. */ + "%{E|M|MM:cpp0 -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\ + %{!Wno-deprecated:-D__GXX_DEPRECATED}\ + %{!fno-exceptions:-D__EXCEPTIONS}\ + - %{!fno-new-abi:-D__GXX_ABI_VERSION=100}\ + + -D__GXX_ABI_VERSION=100\ + %{ansi:-D__STRICT_ANSI__ -trigraphs -$} %(cpp_options)}\ + %{!E:%{!M:%{!MM:\ + %{save-temps:cpp0 -lang-c++ \ + %{!no-gcc:-D__GNUG__=%v1}\ + %{!Wno-deprecated:-D__GXX_DEPRECATED}\ + %{!fno-exceptions:-D__EXCEPTIONS}\ + - %{!fno-new-abi:-D__GXX_ABI_VERSION=100}\ + + -D__GXX_ABI_VERSION=100\ + %{ansi:-D__STRICT_ANSI__ -trigraphs -$}\ + %(cpp_options) %b.ii \n}\ + cc1plus %{save-temps:-fpreprocessed %b.ii}\ + @@ -53,7 +53,7 @@ Boston, MA 02111-1307, USA. */ + %{!no-gcc:-D__GNUG__=%v1} \ + %{!Wno-deprecated:-D__GXX_DEPRECATED}\ + %{!fno-exceptions:-D__EXCEPTIONS}\ + - %{!fno-new-abi:-D__GXX_ABI_VERSION=100}\ + + -D__GXX_ABI_VERSION=100\ + %{ansi:-D__STRICT_ANSI__}}\ + %{ansi:-trigraphs -$}\ + %(cc1_options) %2 %{+e1*}\ + Index: gcc/cp/mangle.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/mangle.c,v + retrieving revision 1.26.4.9 + diff -u -p -r1.26.4.9 mangle.c + --- gcc/cp/mangle.c 2001/12/03 17:38:50 1.26.4.9 + +++ gcc/cp/mangle.c 2001/12/10 22:05:13 + @@ -1,4 +1,4 @@ + -/* Name mangling for the new standard C++ ABI. + +/* Name mangling for the 3.0 C++ ABI. + Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Written by Alex Samuel + + @@ -1195,10 +1195,7 @@ write_special_name_constructor (ctor) + ::= D0 # deleting (in-charge) destructor + ::= D1 # complete object (in-charge) destructor + ::= D2 # base object (not-in-charge) destructor + - + - We also need to provide unique mngled names for old-ABI + - destructors, sometimes. These should only be used internally. We + - use "D*INTERNAL*" for these. */ + + */ + + static void + write_special_name_destructor (dtor) + Index: gcc/cp/method.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/method.c,v + retrieving revision 1.190.2.14 + diff -u -p -r1.190.2.14 method.c + --- gcc/cp/method.c 2001/07/25 09:32:46 1.190.2.14 + +++ gcc/cp/method.c 2001/12/10 22:05:14 + @@ -595,8 +595,6 @@ do_build_copy_constructor (fndecl) + { + if (VFIELD_NAME_P (DECL_NAME (field))) + continue; + - if (VBASE_NAME_P (DECL_NAME (field))) + - continue; + + /* True for duplicate members. */ + if (IDENTIFIER_CLASS_VALUE (DECL_NAME (field)) != field) + @@ -684,8 +682,6 @@ do_build_assign_ref (fndecl) + if (DECL_NAME (field)) + { + if (VFIELD_NAME_P (DECL_NAME (field))) + - continue; + - if (VBASE_NAME_P (DECL_NAME (field))) + continue; + + /* True for duplicate members. */ + Index: gcc/cp/rtti.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/rtti.c,v + retrieving revision 1.109.2.7 + diff -u -p -r1.109.2.7 rtti.c + --- gcc/cp/rtti.c 2001/12/06 12:54:19 1.109.2.7 + +++ gcc/cp/rtti.c 2001/12/10 22:05:15 + @@ -41,7 +41,6 @@ Boston, MA 02111-1307, USA. */ + + extern struct obstack permanent_obstack; + + -static tree build_headof_sub PARAMS((tree)); + static tree build_headof PARAMS((tree)); + static tree ifnonnull PARAMS((tree, tree)); + static tree tinfo_name PARAMS((tree)); + @@ -86,23 +85,6 @@ init_rtti_processing () + build_qualified_type (type_info_type_node, TYPE_QUAL_CONST); + } + + -/* Given a pointer to an object with at least one virtual table + - pointer somewhere, return a pointer to a possible sub-object that + - has a virtual table pointer in it that is the vtable parent for + - that sub-object. */ + - + -static tree + -build_headof_sub (exp) + - tree exp; + -{ + - tree type = TREE_TYPE (TREE_TYPE (exp)); + - tree basetype = CLASSTYPE_RTTI (type); + - tree binfo = get_binfo (basetype, type, 0); + - + - exp = convert_pointer_to_real (binfo, exp); + - return exp; + -} + - + /* Given the expression EXP of type `class *', return the head of the + object pointed to by EXP with type cv void*, if the class has any + virtual functions (TYPE_POLYMORPHIC_P), else just return the + @@ -113,7 +95,6 @@ build_headof (exp) + tree exp; + { + tree type = TREE_TYPE (exp); + - tree aref; + tree offset; + tree index; + + @@ -128,24 +109,14 @@ build_headof (exp) + return error_mark_node; + } + + - /* If we don't have rtti stuff, get to a sub-object that does. */ + - if (!CLASSTYPE_VFIELDS (TREE_TYPE (TREE_TYPE (exp)))) + - exp = build_headof_sub (exp); + - + /* We use this a couple of times below, protect it. */ + exp = save_expr (exp); + + - /* Under the new ABI, the offset-to-top field is at index -2 from + - the vptr. */ + + /* The offset-to-top field is at index -2 from the vptr. */ + index = build_int_2 (-2, -1); + + - aref = build_vtbl_ref (build_indirect_ref (exp, NULL_PTR), index); + + offset = build_vtbl_ref (build_indirect_ref (exp, NULL), index); + + - if (flag_vtable_thunks) + - offset = aref; + - else + - offset = build_component_ref (aref, delta_identifier, NULL_TREE, 0); + - + type = build_qualified_type (ptr_type_node, + CP_TYPE_QUALS (TREE_TYPE (exp))); + return build (PLUS_EXPR, type, exp, + @@ -220,22 +191,12 @@ get_tinfo_decl_dynamic (exp) + tree t; + tree index; + + - if (! flag_rtti) + - error ("taking dynamic typeid of object with -fno-rtti"); + if (CLASSTYPE_COM_INTERFACE (type)) + { + cp_error ("RTTI not supported for COM interface type `%T'", type); + return error_mark_node; + } + + - /* If we don't have rtti stuff, get to a sub-object that does. */ + - if (! CLASSTYPE_VFIELDS (type)) + - { + - exp = build_unary_op (ADDR_EXPR, exp, 0); + - exp = build_headof_sub (exp); + - exp = build_indirect_ref (exp, NULL_PTR); + - } + - + /* The RTTI information is at index -1. */ + index = integer_minus_one_node; + t = build_vtbl_ref (exp, index); + @@ -462,36 +423,12 @@ get_base_offset (binfo, parent) + { + if (! TREE_VIA_VIRTUAL (binfo)) + return BINFO_OFFSET (binfo); + - else if (! vbase_offsets_in_vtable_p ()) + - { + - const char *name; + - tree result; + - tree field; + - + - FORMAT_VBASE_NAME (name, BINFO_TYPE (binfo)); + - field = lookup_field (parent, get_identifier (name), 0, 0); + - result = byte_position (field); + - + - if (DECL_CONTEXT (field) != parent) + - { + - /* The vbase pointer might be in a non-virtual base of PARENT. + - * Adjust for the offset of that base in PARENT. */ + - tree path; + - + - get_base_distance (DECL_CONTEXT (field), parent, -1, &path); + - result = build (PLUS_EXPR, TREE_TYPE (result), + - result, BINFO_OFFSET (path)); + - result = fold (result); + - } + - return result; + - } + else + - /* Under the new ABI, we store the vtable offset at which + - the virtual base offset can be found. */ + + /* We store the vtable offset at which the virtual base offset can + + be found. */ + return convert (sizetype, + BINFO_VPTR_FIELD (binfo_for_vbase (BINFO_TYPE (binfo), + parent))); + - + } + + /* Execute a dynamic cast, as described in section 5.2.6 of the 9/93 working + @@ -600,28 +537,15 @@ build_dynamic_cast_1 (type, expr) + /* If *type is an unambiguous accessible base class of *exprtype, + convert statically. */ + { + - int distance; + - tree path; + - + - distance = get_base_distance (TREE_TYPE (type), TREE_TYPE (exprtype), 1, + - &path); + + tree binfo; + + - if (distance == -2) + - { + - cp_error ("dynamic_cast from `%T' to ambiguous base class `%T'", + - TREE_TYPE (exprtype), TREE_TYPE (type)); + - return error_mark_node; + - } + - if (distance == -3) + - { + - cp_error ("dynamic_cast from `%T' to private base class `%T'", + - TREE_TYPE (exprtype), TREE_TYPE (type)); + - return error_mark_node; + - } + + binfo = lookup_base (TREE_TYPE (exprtype), TREE_TYPE (type), + + ba_not_special, NULL); + + - if (distance >= 0) + + if (binfo) + { + - expr = build_vbase_path (PLUS_EXPR, type, expr, path, 0); + + expr = build_base_path (PLUS_EXPR, convert_from_reference (expr), + + binfo, 0); + if (TREE_CODE (exprtype) == POINTER_TYPE) + expr = non_lvalue (expr); + return expr; + @@ -843,8 +767,8 @@ tinfo_base_init (desc, target) + DECL_EXTERNAL (name_decl) = 0; + TREE_PUBLIC (name_decl) = 1; + comdat_linkage (name_decl); + - /* The new ABI specifies the external name of the string + - containing the type's name. */ + + /* External name of the string containing the type's name has a + + special name. */ + SET_DECL_ASSEMBLER_NAME (name_decl, + mangle_typeinfo_string_for_type (target)); + DECL_INITIAL (name_decl) = name_string; + @@ -1232,7 +1156,11 @@ create_real_tinfo_var (target_type, name + tree decl; + tree hidden_name; + char hidden[30]; + - + + + + /* We cannot give this the name NAME, as that already is globally + + bound to the tinfo_decl we originally created for this type in + + get_tinfo_decl. */ + + + sprintf (hidden, "%.*s_%d", + IDENTIFIER_LENGTH (tinfo_decl_id), IDENTIFIER_POINTER (tinfo_decl_id), + count++); + @@ -1314,8 +1242,7 @@ create_pseudo_type_info VPARAMS((const c + vtable_decl = get_vtable_decl (real_type, /*complete=*/1); + vtable_decl = build_unary_op (ADDR_EXPR, vtable_decl, 0); + + - /* Under the new ABI, we need to point into the middle of the + - vtable. */ + + /* We need to point into the middle of the vtable. */ + vtable_decl = build (PLUS_EXPR, + TREE_TYPE (vtable_decl), + vtable_decl, + Index: gcc/cp/search.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/search.c,v + retrieving revision 1.202.2.6 + diff -u -p -r1.202.2.6 search.c + --- gcc/cp/search.c 2001/06/08 17:12:41 1.202.2.6 + +++ gcc/cp/search.c 2001/12/10 22:05:17 + @@ -83,26 +83,21 @@ struct vbase_info + tree inits; + }; + + -static tree get_vbase_1 PARAMS ((tree, tree, unsigned int *)); + static tree lookup_field_1 PARAMS ((tree, tree)); + static int is_subobject_of_p PARAMS ((tree, tree, tree)); + -static tree virtual_context PARAMS ((tree, tree, tree)); + static tree dfs_check_overlap PARAMS ((tree, void *)); + static tree dfs_no_overlap_yet PARAMS ((tree, void *)); + static int get_base_distance_recursive + PARAMS ((tree, int, int, int, int *, tree *, tree, + int, int *, int, int)); + +static base_kind lookup_base_r + + PARAMS ((tree, tree, base_access, + + int, int, int, tree *)); + static int dynamic_cast_base_recurse PARAMS ((tree, tree, int, tree *)); + -static void expand_upcast_fixups + - PARAMS ((tree, tree, tree, tree, tree, tree, tree *)); + -static void fixup_virtual_upcast_offsets + - PARAMS ((tree, tree, int, int, tree, tree, tree, tree, + - tree *)); + static tree marked_pushdecls_p PARAMS ((tree, void *)); + static tree unmarked_pushdecls_p PARAMS ((tree, void *)); + static tree dfs_debug_unmarkedp PARAMS ((tree, void *)); + static tree dfs_debug_mark PARAMS ((tree, void *)); + -static tree dfs_init_vbase_pointers PARAMS ((tree, void *)); + static tree dfs_get_vbase_types PARAMS ((tree, void *)); + static tree dfs_push_type_decls PARAMS ((tree, void *)); + static tree dfs_push_decls PARAMS ((tree, void *)); + @@ -140,7 +135,6 @@ static tree get_shared_vbase_if_not_prim + static tree dfs_find_vbase_instance PARAMS ((tree, void *)); + static tree dfs_get_pure_virtuals PARAMS ((tree, void *)); + static tree dfs_build_inheritance_graph_order PARAMS ((tree, void *)); + -static tree dfs_vtable_path_unmark PARAMS ((tree, void *)); + + /* Allocate a level of searching. */ + + @@ -177,76 +171,6 @@ static int n_contexts_saved; + #endif /* GATHER_STATISTICS */ + + + -/* Get a virtual binfo that is found inside BINFO's hierarchy that is + - the same type as the type given in PARENT. To be optimal, we want + - the first one that is found by going through the least number of + - virtual bases. + - + - This uses a clever algorithm that updates *depth when we find the vbase, + - and cuts off other paths of search when they reach that depth. */ + - + -static tree + -get_vbase_1 (parent, binfo, depth) + - tree parent, binfo; + - unsigned int *depth; + -{ + - tree binfos; + - int i, n_baselinks; + - tree rval = NULL_TREE; + - int virtualp = TREE_VIA_VIRTUAL (binfo) != 0; + - + - *depth -= virtualp; + - if (virtualp && BINFO_TYPE (binfo) == parent) + - { + - *depth = 0; + - return binfo; + - } + - + - binfos = BINFO_BASETYPES (binfo); + - n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0; + - + - /* Process base types. */ + - for (i = 0; i < n_baselinks; i++) + - { + - tree base_binfo = TREE_VEC_ELT (binfos, i); + - tree nrval; + - + - if (*depth == 0) + - break; + - + - nrval = get_vbase_1 (parent, base_binfo, depth); + - if (nrval) + - rval = nrval; + - } + - *depth += virtualp; + - return rval; + -} + - + -/* Return the shortest path to vbase PARENT within BINFO, ignoring + - access and ambiguity. */ + - + -tree + -get_vbase (parent, binfo) + - tree parent; + - tree binfo; + -{ + - unsigned int d = (unsigned int)-1; + - return get_vbase_1 (parent, binfo, &d); + -} + - + -/* Convert EXPR to a virtual base class of type TYPE. We know that + - EXPR is a non-null POINTER_TYPE to RECORD_TYPE. We also know that + - the type of what expr points to has a virtual base of type TYPE. */ + - + -tree + -convert_pointer_to_vbase (type, expr) + - tree type; + - tree expr; + -{ + - tree vb = get_vbase (type, TYPE_BINFO (TREE_TYPE (TREE_TYPE (expr)))); + - return convert_pointer_to_real (vb, expr); + -} + - + /* Check whether the type given in BINFO is derived from PARENT. If + it isn't, return 0. If it is, but the derivation is MI-ambiguous + AND protect != 0, emit an error message and return error_mark_node. + @@ -414,9 +338,6 @@ get_base_distance_recursive (binfo, dept + If PROTECT is greater than 1, ignore any special access the current + scope might have when determining whether PARENT is inaccessible. + + - PARENT can also be a binfo, in which case that exact parent is found + - and no other. convert_pointer_to_real uses this functionality. + - + If BINFO is a binfo, its BINFO_INHERITANCE_CHAIN will be left alone. */ + + int + @@ -476,21 +397,198 @@ get_base_distance (parent, binfo, protec + if (rval && protect && rval_private) + return -3; + + - /* If they gave us the real vbase binfo, which isn't in the main binfo + - tree, deal with it. This happens when we are called from + - expand_upcast_fixups. */ + - if (rval == -1 && TREE_CODE (parent) == TREE_VEC + - && parent == binfo_for_vbase (BINFO_TYPE (parent), type)) + - { + - new_binfo = parent; + - rval = 1; + - } + - + if (path_ptr) + *path_ptr = new_binfo; + return rval; + } + + +/* Worker for lookup_base. BINFO is the binfo we are searching at, + + BASE is the RECORD_TYPE we are searching for. ACCESS is the + + required access checks. WITHIN_CURRENT_SCOPE, IS_NON_PUBLIC and + + IS_VIRTUAL indicate how BINFO was reached from the start of the + + search. WITHIN_CURRENT_SCOPE is true if we met the current scope, + + or friend thereof (this allows us to determine whether a protected + + base is accessible or not). IS_NON_PUBLIC indicates whether BINFO + + is accessible and IS_VIRTUAL indicates if it is morally virtual. + + + + If BINFO is of the required type, then *BINFO_PTR is examined to + + compare with any other instance of BASE we might have already + + discovered. *BINFO_PTR is initialized and a base_kind return value + + indicates what kind of base was located. + + + + Otherwise BINFO's bases are searched. */ + + + +static base_kind + +lookup_base_r (binfo, base, access, within_current_scope, + + is_non_public, is_virtual, binfo_ptr) + + tree binfo, base; + + base_access access; + + int within_current_scope; + + int is_non_public; /* inside a non-public part */ + + int is_virtual; /* inside a virtual part */ + + tree *binfo_ptr; + +{ + + int i; + + tree bases; + + base_kind found = bk_not_base; + + + + if (access == ba_check + + && !within_current_scope + + && is_friend (BINFO_TYPE (binfo), current_scope ())) + + { + + within_current_scope = 1; + + is_non_public = 0; + + } + + + + if (same_type_p (BINFO_TYPE (binfo), base)) + + { + + /* We have found a base. Check against what we have found + + already. */ + + found = bk_same_type; + + if (is_virtual) + + found = bk_via_virtual; + + if (is_non_public) + + found = bk_inaccessible; + + + + if (!*binfo_ptr) + + *binfo_ptr = binfo; + + else if (!is_virtual || !tree_int_cst_equal (BINFO_OFFSET (binfo), + + BINFO_OFFSET (*binfo_ptr))) + + { + + if (access != ba_any) + + *binfo_ptr = NULL; + + else if (found != is_virtual) + + /* Prefer a non-virtual base. */ + + *binfo_ptr = binfo; + + found = bk_ambig; + + } + + else if (found == bk_via_virtual) + + *binfo_ptr = binfo; + + + + return found; + + } + + + + bases = BINFO_BASETYPES (binfo); + + if (!bases) + + return bk_not_base; + + + + for (i = TREE_VEC_LENGTH (bases); i--;) + + { + + tree base_binfo = TREE_VEC_ELT (bases, i); + + int this_non_public = is_non_public; + + int this_virtual = is_virtual; + + + + if (access <= ba_ignore) + + ; /* no change */ + + else if (TREE_VIA_PUBLIC (base_binfo)) + + ; /* no change */ + + else if (access == ba_not_special) + + this_non_public = 1; + + else if (TREE_VIA_PROTECTED (base_binfo) && within_current_scope) + + ; /* no change */ + + else if (is_friend (BINFO_TYPE (binfo), current_scope ())) + + ; /* no change */ + + else + + this_non_public = 1; + + + + if (TREE_VIA_VIRTUAL (base_binfo)) + + this_virtual = 1; + + + + base_kind bk = lookup_base_r (base_binfo, base, + + access, within_current_scope, + + this_non_public, this_virtual, + + binfo_ptr); + + + + switch (bk) + + { + + case bk_ambig: + + if (access != ba_any) + + return bk; + + found = bk; + + break; + + + + case bk_inaccessible: + + if (found == bk_not_base) + + found = bk; + + my_friendly_assert (found == bk_via_virtual + + || found == bk_inaccessible, 20010723); + + + + break; + + + + case bk_same_type: + + bk = bk_proper_base; + + /* FALLTHROUGH */ + + case bk_proper_base: + + my_friendly_assert (found == bk_not_base, 20010723); + + found = bk; + + break; + + + + case bk_via_virtual: + + my_friendly_assert (found == bk_not_base + + || found == bk_via_virtual + + || found == bk_inaccessible, 20010723); + + found = bk; + + break; + + + + case bk_not_base: + + break; + + } + + } + + return found; + +} + + + +/* Lookup BASE in the hierarchy dominated by T. Do access checking as + + ACCESS specifies. Return the binfo we discover (which might not be + + canonical). If KIND_PTR is non-NULL, fill with information about + + what kind of base we discoveded. + + + + Issue an error message if an inaccessible or ambiguous base is + + discovered, and return error_mark_node. */ + + + +tree + +lookup_base (t, base, access, kind_ptr) + + tree t, base; + + base_access access; + + base_kind *kind_ptr; + +{ + + tree binfo = NULL; /* The binfo we've found so far. */ + + base_kind bk; + + + + if (t == error_mark_node || base == error_mark_node) + + { + + if (kind_ptr) + + *kind_ptr = bk_not_base; + + return error_mark_node; + + } + + + + t = TYPE_MAIN_VARIANT (t); + + base = TYPE_MAIN_VARIANT (base); + + + + bk = lookup_base_r (TYPE_BINFO (t), base, access, 0, 0, 0, &binfo); + + + + switch (bk) + + { + + case bk_inaccessible: + + cp_error ("`%T' is an inaccessible base of `%T'", base, t); + + binfo = error_mark_node; + + break; + + case bk_ambig: + + if (access != ba_any) + + { + + cp_error ("`%T' is an ambiguous base of `%T'", base, t); + + binfo = error_mark_node; + + } + + break; + + + + default:; + + } + + + + if (kind_ptr) + + *kind_ptr = bk; + + + + return binfo; + +} + + + /* Worker function for get_dynamic_cast_base_type. */ + + static int + @@ -1467,15 +1565,6 @@ lookup_field_r (binfo, data) + } + else + { + - /* If the thing we're looking for is a virtual base class, then + - we know we've got what we want at this point; there's no way + - to get an ambiguity. */ + - if (VBASE_NAME_P (lfi->name)) + - { + - lfi->rval = nval; + - return nval; + - } + - + if (from_dep_base_p && TREE_CODE (nval) != TYPE_DECL + /* We need to return a member template class so we can + define partial specializations. Is there a better + @@ -2333,391 +2422,6 @@ dfs_unmark (binfo, data) + } + + + -static tree + -dfs_init_vbase_pointers (binfo, data) + - tree binfo; + - void *data; + -{ + - struct vbase_info *vi = (struct vbase_info *) data; + - tree type = BINFO_TYPE (binfo); + - tree fields; + - tree this_vbase_ptr; + - + - /* Don't initialize the same base more than once. */ + - SET_BINFO_VTABLE_PATH_MARKED (binfo); + - + - /* We know that VI->DECL_PTR points to the complete object. So, + - finding a pointer to this subobject is easy. */ + - this_vbase_ptr = build (PLUS_EXPR, + - build_pointer_type (type), + - vi->decl_ptr, + - BINFO_OFFSET (binfo)); + - + - /* We're going to iterate through all the pointers to virtual + - base-classes. They come at the beginning of the class. */ + - fields = TYPE_FIELDS (type); + - + - if (fields == NULL_TREE + - || DECL_NAME (fields) == NULL_TREE + - || ! VBASE_NAME_P (DECL_NAME (fields))) + - return NULL_TREE; + - + - if (build_pointer_type (type) + - != TYPE_MAIN_VARIANT (TREE_TYPE (this_vbase_ptr))) + - my_friendly_abort (125); + - + - while (fields && DECL_NAME (fields) && VBASE_NAME_P (DECL_NAME (fields))) + - { + - tree ref = build (COMPONENT_REF, TREE_TYPE (fields), + - build_indirect_ref (this_vbase_ptr, NULL_PTR), fields); + - tree init; + - tree vbase_type; + - tree vbase_binfo; + - + - vbase_type = TREE_TYPE (TREE_TYPE (fields)); + - vbase_binfo = binfo_for_vbase (vbase_type, vi->type); + - init = build (PLUS_EXPR, + - build_pointer_type (vbase_type), + - vi->decl_ptr, + - BINFO_OFFSET (vbase_binfo)); + - vi->inits + - = tree_cons (vbase_binfo, + - build_modify_expr (ref, NOP_EXPR, init), + - vi->inits); + - fields = TREE_CHAIN (fields); + - } + - + - return NULL_TREE; + -} + - + -/* Call CLEAR_BINFO_VTABLE_PATH_MARKED for BINFO. */ + - + -static tree + -dfs_vtable_path_unmark (binfo, data) + - tree binfo; + - void *data ATTRIBUTE_UNUSED; + -{ + - CLEAR_BINFO_VTABLE_PATH_MARKED (binfo); + - return NULL_TREE; + -} + - + -tree + -init_vbase_pointers (type, decl_ptr) + - tree type; + - tree decl_ptr; + -{ + - my_friendly_assert (!vbase_offsets_in_vtable_p (), 20000516); + - + - if (TYPE_USES_VIRTUAL_BASECLASSES (type)) + - { + - struct vbase_info vi; + - tree binfo = TYPE_BINFO (type); + - + - /* Find all the virtual base classes, marking them for later + - initialization. */ + - vi.type = type; + - vi.decl_ptr = decl_ptr; + - vi.inits = NULL_TREE; + - + - /* Build up a list of the initializers. */ + - dfs_walk_real (binfo, + - dfs_init_vbase_pointers, 0, + - unmarked_vtable_pathp, + - &vi); + - dfs_walk (binfo, + - dfs_vtable_path_unmark, + - marked_vtable_pathp, + - NULL); + - + - return vi.inits; + - } + - + - return 0; + -} + - + -/* get the virtual context (the vbase that directly contains the + - DECL_CONTEXT of the FNDECL) that the given FNDECL is declared in, + - or NULL_TREE if there is none. + - + - FNDECL must come from a virtual table from a virtual base to ensure + - that there is only one possible DECL_CONTEXT. + - + - We know that if there is more than one place (binfo) the fndecl that the + - declared, they all refer to the same binfo. See get_class_offset_1 for + - the check that ensures this. */ + - + -static tree + -virtual_context (fndecl, t, vbase) + - tree fndecl, t, vbase; + -{ + - tree path; + - if (get_base_distance (DECL_CONTEXT (fndecl), t, 0, &path) < 0) + - { + - /* DECL_CONTEXT can be ambiguous in t. */ + - if (get_base_distance (DECL_CONTEXT (fndecl), vbase, 0, &path) >= 0) + - { + - while (path) + - { + - /* Not sure if checking path == vbase is necessary here, but just in + - case it is. */ + - if (TREE_VIA_VIRTUAL (path) || path == vbase) + - return binfo_for_vbase (BINFO_TYPE (path), t); + - path = BINFO_INHERITANCE_CHAIN (path); + - } + - } + - /* This shouldn't happen, I don't want errors! */ + - warning ("recoverable compiler error, fixups for virtual function"); + - return vbase; + - } + - while (path) + - { + - if (TREE_VIA_VIRTUAL (path)) + - return binfo_for_vbase (BINFO_TYPE (path), t); + - path = BINFO_INHERITANCE_CHAIN (path); + - } + - return 0; + -} + - + -/* Fixups upcast offsets for one vtable. + - Entries may stay within the VBASE given, or + - they may upcast into a direct base, or + - they may upcast into a different vbase. + - + - We only need to do fixups in case 2 and 3. In case 2, we add in + - the virtual base offset to effect an upcast, in case 3, we add in + - the virtual base offset to effect an upcast, then subtract out the + - offset for the other virtual base, to effect a downcast into it. + - + - This routine mirrors fixup_vtable_deltas in functionality, though + - this one is runtime based, and the other is compile time based. + - Conceivably that routine could be removed entirely, and all fixups + - done at runtime. + - + - VBASE_OFFSETS is an association list of virtual bases that contains + - offset information for the virtual bases, so the offsets are only + - calculated once. */ + - + -static void + -expand_upcast_fixups (binfo, addr, orig_addr, vbase, vbase_addr, t, + - vbase_offsets) + - tree binfo, addr, orig_addr, vbase, vbase_addr, t, *vbase_offsets; + -{ + - tree virtuals; + - tree vc; + - tree delta; + - HOST_WIDE_INT n; + - + - while (BINFO_PRIMARY_P (binfo)) + - { + - binfo = BINFO_INHERITANCE_CHAIN (binfo); + - if (TREE_VIA_VIRTUAL (binfo)) + - return; + - } + - + - delta = purpose_member (vbase, *vbase_offsets); + - if (! delta) + - { + - delta = build (PLUS_EXPR, + - build_pointer_type (BINFO_TYPE (vbase)), + - orig_addr, + - BINFO_OFFSET (vbase)); + - delta = build (MINUS_EXPR, ptrdiff_type_node, delta, vbase_addr); + - delta = save_expr (delta); + - delta = tree_cons (vbase, delta, *vbase_offsets); + - *vbase_offsets = delta; + - } + - + - for (virtuals = BINFO_VIRTUALS (binfo), n = 0; + - virtuals; + - virtuals = TREE_CHAIN (virtuals), ++n) + - { + - tree current_fndecl = TREE_VALUE (virtuals); + - + - if (current_fndecl + - && current_fndecl != abort_fndecl + - && (vc=virtual_context (current_fndecl, t, vbase)) != vbase) + - { + - /* This may in fact need a runtime fixup. */ + - tree idx = build_int_2 (n, 0); + - tree vtbl = BINFO_VTABLE (binfo); + - tree nvtbl = lookup_name (DECL_NAME (vtbl), 0); + - tree aref, ref, naref; + - tree old_delta, new_delta; + - tree init; + - + - if (nvtbl == NULL_TREE + - || nvtbl == IDENTIFIER_GLOBAL_VALUE (DECL_NAME (vtbl))) + - { + - /* Dup it if it isn't in local scope yet. */ + - nvtbl = build_decl + - (VAR_DECL, DECL_NAME (vtbl), + - TYPE_MAIN_VARIANT (TREE_TYPE (vtbl))); + - DECL_ALIGN (nvtbl) = MAX (TYPE_ALIGN (double_type_node), + - DECL_ALIGN (nvtbl)); + - TREE_READONLY (nvtbl) = 0; + - DECL_ARTIFICIAL (nvtbl) = 1; + - nvtbl = pushdecl (nvtbl); + - init = NULL_TREE; + - cp_finish_decl (nvtbl, init, NULL_TREE, + - LOOKUP_ONLYCONVERTING); + - + - /* We don't set DECL_VIRTUAL_P and DECL_CONTEXT on nvtbl + - because they wouldn't be useful; everything that wants to + - look at the vtable will look at the decl for the normal + - vtable. Setting DECL_CONTEXT also screws up + - decl_function_context. */ + - + - init = build (MODIFY_EXPR, TREE_TYPE (nvtbl), + - nvtbl, vtbl); + - finish_expr_stmt (init); + - /* Update the vtable pointers as necessary. */ + - ref = build_vfield_ref + - (build_indirect_ref (addr, NULL_PTR), + - DECL_CONTEXT (TYPE_VFIELD (BINFO_TYPE (binfo)))); + - finish_expr_stmt + - (build_modify_expr (ref, NOP_EXPR, nvtbl)); + - } + - assemble_external (vtbl); + - aref = build_array_ref (vtbl, idx); + - naref = build_array_ref (nvtbl, idx); + - old_delta = build_component_ref (aref, delta_identifier, + - NULL_TREE, 0); + - new_delta = build_component_ref (naref, delta_identifier, + - NULL_TREE, 0); + - + - /* This is a upcast, so we have to add the offset for the + - virtual base. */ + - old_delta = cp_build_binary_op (PLUS_EXPR, old_delta, + - TREE_VALUE (delta)); + - if (vc) + - { + - /* If this is set, we need to subtract out the delta + - adjustments for the other virtual base that we + - downcast into. */ + - tree vc_delta = purpose_member (vc, *vbase_offsets); + - if (! vc_delta) + - { + - tree vc_addr = convert_pointer_to_real (vc, orig_addr); + - vc_delta = build (PLUS_EXPR, + - build_pointer_type (BINFO_TYPE (vc)), + - orig_addr, + - BINFO_OFFSET (vc)); + - vc_delta = build (MINUS_EXPR, ptrdiff_type_node, + - vc_delta, vc_addr); + - vc_delta = save_expr (vc_delta); + - *vbase_offsets = tree_cons (vc, vc_delta, *vbase_offsets); + - } + - else + - vc_delta = TREE_VALUE (vc_delta); + - + - /* This is a downcast, so we have to subtract the offset + - for the virtual base. */ + - old_delta = cp_build_binary_op (MINUS_EXPR, old_delta, vc_delta); + - } + - + - TREE_READONLY (new_delta) = 0; + - TREE_TYPE (new_delta) = + - cp_build_qualified_type (TREE_TYPE (new_delta), + - CP_TYPE_QUALS (TREE_TYPE (new_delta)) + - & ~TYPE_QUAL_CONST); + - finish_expr_stmt (build_modify_expr (new_delta, NOP_EXPR, + - old_delta)); + - } + - } + -} + - + -/* Fixup upcast offsets for all direct vtables. Patterned after + - expand_direct_vtbls_init. */ + - + -static void + -fixup_virtual_upcast_offsets (real_binfo, binfo, init_self, can_elide, addr, orig_addr, type, vbase, vbase_offsets) + - tree real_binfo, binfo; + - int init_self, can_elide; + - tree addr, orig_addr, type, vbase, *vbase_offsets; + -{ + - tree real_binfos = BINFO_BASETYPES (real_binfo); + - tree binfos = BINFO_BASETYPES (binfo); + - int i, n_baselinks = real_binfos ? TREE_VEC_LENGTH (real_binfos) : 0; + - + - for (i = 0; i < n_baselinks; i++) + - { + - tree real_base_binfo = TREE_VEC_ELT (real_binfos, i); + - tree base_binfo = TREE_VEC_ELT (binfos, i); + - int is_not_base_vtable + - = !BINFO_PRIMARY_P (real_base_binfo); + - if (! TREE_VIA_VIRTUAL (real_base_binfo)) + - fixup_virtual_upcast_offsets (real_base_binfo, base_binfo, + - is_not_base_vtable, can_elide, addr, + - orig_addr, type, vbase, vbase_offsets); + - } + -#if 0 + - /* Before turning this on, make sure it is correct. */ + - if (can_elide && ! BINFO_MODIFIED (binfo)) + - return; + -#endif + - /* Should we use something besides CLASSTYPE_VFIELDS? */ + - if (init_self && CLASSTYPE_VFIELDS (BINFO_TYPE (real_binfo))) + - { + - tree new_addr = convert_pointer_to_real (binfo, addr); + - expand_upcast_fixups (real_binfo, new_addr, orig_addr, vbase, addr, + - type, vbase_offsets); + - } + -} + - + -/* Fixup all the virtual upcast offsets for TYPE. DECL_PTR is the + - address of the sub-object being initialized. */ + - + -void + -fixup_all_virtual_upcast_offsets (decl_ptr) + - tree decl_ptr; + -{ + - tree if_stmt; + - tree in_charge_node; + - tree vbases; + - tree type; + - + - /* Only tweak the vtables if we're in charge. */ + - in_charge_node = current_in_charge_parm; + - if (!in_charge_node) + - /* There's no need for any fixups in this case. */ + - return; + - in_charge_node = cp_build_binary_op (EQ_EXPR, + - in_charge_node, integer_zero_node); + - if_stmt = begin_if_stmt (); + - finish_if_stmt_cond (in_charge_node, if_stmt); + - + - /* Iterate through the virtual bases, fixing up the upcast offset + - for each one. */ + - type = TREE_TYPE (TREE_TYPE (decl_ptr)); + - for (vbases = CLASSTYPE_VBASECLASSES (type); + - vbases; + - vbases = TREE_CHAIN (vbases)) + - { + - if (flag_vtable_thunks) + - /* We don't have dynamic thunks yet! So for now, just fail + - silently. */ + - ; + - else + - { + - tree vbase; + - tree vbase_offsets; + - tree addr; + - + - vbase = find_vbase_instance (TREE_PURPOSE (vbases), type); + - vbase_offsets = NULL_TREE; + - addr = convert_pointer_to_vbase (TREE_PURPOSE (vbases), decl_ptr); + - fixup_virtual_upcast_offsets (vbase, + - TYPE_BINFO (TREE_PURPOSE (vbases)), + - 1, 0, addr, decl_ptr, + - type, vbase, &vbase_offsets); + - } + - } + - + - /* Close out the if-statement. */ + - finish_then_clause (if_stmt); + - finish_if_stmt (); + -} + - + /* get virtual base class types. + This adds type to the vbase_types list in reverse dfs order. + Ordering is very important, so don't change it. */ + Index: gcc/cp/semantics.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/semantics.c,v + retrieving revision 1.189.2.17 + diff -u -p -r1.189.2.17 semantics.c + --- gcc/cp/semantics.c 2001/12/08 16:12:52 1.189.2.17 + +++ gcc/cp/semantics.c 2001/12/10 22:05:19 + @@ -2346,7 +2346,7 @@ emit_associated_thunks (fn) + is so that you can know statically the entire set of thunks that + will ever be needed for a given virtual function, thereby + enabling you to output all the thunks with the function itself. */ + - if (vcall_offsets_in_vtable_p () && DECL_VIRTUAL_P (fn)) + + if (DECL_VIRTUAL_P (fn)) + { + tree binfo; + tree v; + @@ -2412,8 +2412,8 @@ expand_body (fn) + simplify_aggr_init_exprs_r, + NULL); + + - /* If this is a constructor or destructor body, we have to clone it + - under the new ABI. */ + + /* If this is a constructor or destructor body, we have to clone + + it. */ + if (maybe_clone_body (fn)) + { + /* We don't want to process FN again, so pretend we've written + Index: gcc/cp/tree.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/tree.c,v + retrieving revision 1.232.2.10 + diff -u -p -r1.232.2.10 tree.c + --- gcc/cp/tree.c 2001/11/30 03:12:44 1.232.2.10 + +++ gcc/cp/tree.c 2001/12/10 22:05:20 + @@ -2220,12 +2220,6 @@ cp_valid_lang_attribute (attr_name, attr + } + if (is_attribute_p ("com_interface", attr_name)) + { + - if (! flag_vtable_thunks) + - { + - error ("`com_interface' only supported with -fvtable-thunks"); + - return 0; + - } + - + if (attr_args != NULL_TREE + || decl != NULL_TREE + || ! CLASS_TYPE_P (type) + Index: gcc/cp/typeck.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/typeck.c,v + retrieving revision 1.337.2.11 + diff -u -p -r1.337.2.11 typeck.c + --- gcc/cp/typeck.c 2001/11/20 04:39:23 1.337.2.11 + +++ gcc/cp/typeck.c 2001/12/10 22:05:24 + @@ -114,8 +114,11 @@ require_complete_type (value) + { + tree base, member = TREE_OPERAND (value, 1); + tree basetype = TYPE_OFFSET_BASETYPE (type); + + + my_friendly_assert (TREE_CODE (member) == FIELD_DECL, 305); + - base = convert_pointer_to (basetype, current_class_ptr); + + basetype = lookup_base (current_class_type, basetype, ba_check, NULL); + + base = build_base_path (PLUS_EXPR, current_class_ptr, basetype, 1); + + + value = build (COMPONENT_REF, TREE_TYPE (member), + build_indirect_ref (base, NULL_PTR), member); + return require_complete_type (value); + @@ -2235,23 +2238,15 @@ build_component_ref (datum, component, b + /* Handle base classes here... */ + if (base != basetype && TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P (basetype)) + { + - tree addr = build_unary_op (ADDR_EXPR, datum, 0); + - if (integer_zerop (addr)) + + tree binfo = lookup_base (TREE_TYPE (datum), base, ba_check, NULL); + + + + if (TREE_CODE (datum) == INDIRECT_REF + + && integer_zerop (TREE_OPERAND (datum, 0))) + { + error ("invalid reference to NULL ptr, use ptr-to-member instead"); + return error_mark_node; + - } + - if (VBASE_NAME_P (DECL_NAME (field))) + - { + - /* It doesn't matter which vbase pointer we grab, just + - find one of them. */ + - tree binfo = get_binfo (base, + - TREE_TYPE (TREE_TYPE (addr)), 0); + - addr = convert_pointer_to_real (binfo, addr); + } + - else + - addr = convert_pointer_to (base, addr); + - datum = build_indirect_ref (addr, NULL_PTR); + + datum = build_base_path (PLUS_EXPR, datum, binfo, 1); + if (datum == error_mark_node) + return error_mark_node; + } + @@ -2842,8 +2837,11 @@ build_x_function_call (function, params, + if (TREE_CODE (TREE_TYPE (decl)) != POINTER_TYPE + && ! TYPE_PTRMEMFUNC_P (TREE_TYPE (decl))) + { + + tree binfo = lookup_base (TREE_TYPE (decl), TREE_TYPE (ctypeptr), + + ba_check, NULL); + + + decl = build_unary_op (ADDR_EXPR, decl, 0); + - decl = convert_pointer_to (TREE_TYPE (ctypeptr), decl); + + decl = build_base_path (PLUS_EXPR, decl, binfo, 1); + } + else + decl = build_c_cast (ctypeptr, decl); + @@ -2862,13 +2860,11 @@ get_member_function_from_ptrfunc (instan + tree function; + { + if (TREE_CODE (function) == OFFSET_REF) + - { + - function = TREE_OPERAND (function, 1); + - } + + function = TREE_OPERAND (function, 1); + + if (TYPE_PTRMEMFUNC_P (TREE_TYPE (function))) + { + - tree fntype, idx, e1, delta, delta2, e2, e3, aref, vtbl; + + tree fntype, idx, e1, delta, delta2, e2, e3, vtbl; + tree instance, basetype; + + tree instance_ptr = *instance_ptrptr; + @@ -2893,14 +2889,18 @@ get_member_function_from_ptrfunc (instan + fntype = TYPE_PTRMEMFUNC_FN_TYPE (TREE_TYPE (function)); + basetype = TYPE_METHOD_BASETYPE (TREE_TYPE (fntype)); + + - /* Convert down to the right base, before using the instance. */ + - instance = convert_pointer_to_real (basetype, instance_ptr); + + /* Convert down to the right base, before using the instance. */ + + instance = lookup_base (TREE_TYPE (TREE_TYPE (instance_ptr)), basetype, + + ba_check, NULL); + + instance = build_base_path (PLUS_EXPR, instance_ptr, instance, 1); + if (instance == error_mark_node && instance_ptr != error_mark_node) + return instance; + + e3 = PFN_FROM_PTRMEMFUNC (function); + - + - vtbl = convert_pointer_to (ptr_type_node, instance); + + + + vtbl = build1 (NOP_EXPR, build_pointer_type (ptr_type_node), instance); + + TREE_CONSTANT (vtbl) = TREE_CONSTANT (instance); + + + delta = cp_convert (ptrdiff_type_node, + build_component_ref (function, delta_identifier, + NULL_TREE, 0)); + @@ -2950,27 +2950,8 @@ get_member_function_from_ptrfunc (instan + build_pointer_type (build_pointer_type (vtable_entry_type)), + vtbl, cp_convert (ptrdiff_type_node, delta2)); + vtbl = build_indirect_ref (vtbl, NULL_PTR); + - aref = build_array_ref (vtbl, idx); + - + - if (! flag_vtable_thunks) + - { + - aref = save_expr (aref); + - + - delta = cp_build_binary_op + - (PLUS_EXPR, + - build_conditional_expr (e1, + - build_component_ref (aref, + - delta_identifier, + - NULL_TREE, 0), + - integer_zero_node), + - delta); + - } + + e2 = build_array_ref (vtbl, idx); + + - if (flag_vtable_thunks) + - e2 = aref; + - else + - e2 = build_component_ref (aref, pfn_identifier, NULL_TREE, 0); + - + /* When using function descriptors, the address of the + vtable entry is treated as a function pointer. */ + if (TARGET_VTABLE_USES_DESCRIPTORS) + @@ -4277,8 +4258,11 @@ build_component_addr (arg, argtype) + /* Can't convert directly to ARGTYPE, since that + may have the same pointer type as one of our + baseclasses. */ + - rval = build1 (NOP_EXPR, argtype, + - convert_pointer_to (basetype, rval)); + + tree binfo = lookup_base (TREE_TYPE (TREE_TYPE (rval)), basetype, + + ba_check, NULL); + + + + rval = build_base_path (PLUS_EXPR, rval, binfo, 1); + + rval = build1 (NOP_EXPR, argtype, rval); + TREE_CONSTANT (rval) = TREE_CONSTANT (TREE_OPERAND (rval, 0)); + } + else + @@ -6107,8 +6091,7 @@ build_ptrmemfunc (type, pfn, force) + delta = build_component_ref (pfn, delta_identifier, NULL_TREE, 0); + } + + - /* Under the new ABI, the conversion is easy. Just adjust + - the DELTA field. */ + + /* Just adjust the DELTA field. */ + delta = cp_convert (ptrdiff_type_node, delta); + if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_delta) + n = cp_build_binary_op (LSHIFT_EXPR, n, integer_one_node); + @@ -6173,10 +6156,9 @@ expand_ptrmemfunc_cst (cst, delta, pfn) + *delta = fold (build (PLUS_EXPR, TREE_TYPE (*delta), + *delta, BINFO_OFFSET (binfo))); + + - /* Under the new ABI, we set PFN to the vtable offset at + - which the function can be found, plus one (unless + - ptrmemfunc_vbit_in_delta, in which case delta is shifted + - left, and then incremented). */ + + /* We set PFN to the vtable offset at which the function can be + + found, plus one (unless ptrmemfunc_vbit_in_delta, in which + + case delta is shifted left, and then incremented). */ + *pfn = DECL_VINDEX (fn); + *pfn = fold (build (MULT_EXPR, integer_type_node, *pfn, + TYPE_SIZE_UNIT (vtable_entry_type))); + Index: gcc/cp/typeck2.c + =================================================================== + RCS file: /cvs/gcc/gcc/gcc/cp/typeck2.c,v + retrieving revision 1.97.2.2 + diff -u -p -r1.97.2.2 typeck2.c + --- gcc/cp/typeck2.c 2001/04/12 05:26:11 1.97.2.2 + +++ gcc/cp/typeck2.c 2001/12/10 22:05:25 + @@ -980,12 +980,17 @@ build_scoped_ref (datum, basetype) + tree basetype; + { + tree ref; + + tree binfo; + + if (datum == error_mark_node) + return error_mark_node; + + binfo = lookup_base (TREE_TYPE (datum), basetype, ba_check, NULL); + + + if (!binfo) + + return error_not_base_type (TREE_TYPE (datum), basetype); + + + ref = build_unary_op (ADDR_EXPR, datum, 0); + - ref = convert_pointer_to (basetype, ref); + + ref = build_base_path (PLUS_EXPR, ref, binfo, 1); + + return build_indirect_ref (ref, "(compiler error in build_scoped_ref)"); + } diff -Nrc3pad gcc-3.0.2/contrib/gcc_update gcc-3.0.3/contrib/gcc_update *** gcc-3.0.2/contrib/gcc_update Sat Jul 28 23:46:24 2001 --- gcc-3.0.3/contrib/gcc_update Sun Nov 18 12:11:47 2001 *************** gcc/fixinc/fixincl.x: gcc/fixinc/fixincl *** 69,74 **** --- 69,77 ---- gcc/doc/gcov.1: gcc/doc/gcov.texi gcc/doc/cpp.1: gcc/doc/cpp.texi gcc/doc/gcc.1: gcc/doc/invoke.texi + gcc/doc/fsf-funding.7: gcc/doc/include/funding.texi + gcc/doc/gfdl.7: gcc/doc/include/fdl.texi + gcc/doc/gpl.7: gcc/doc/include/gpl.texi # And then, language-specific files gcc/f/intdoc.texi: gcc/f/intdoc.in gcc/f/intdoc.c gcc/f/intrin.h gcc/f/intrin.def # And libraries, at last diff -Nrc3pad gcc-3.0.2/contrib/texi2pod.pl gcc-3.0.3/contrib/texi2pod.pl *** gcc-3.0.2/contrib/texi2pod.pl Mon Jul 2 17:50:41 2001 --- gcc-3.0.3/contrib/texi2pod.pl Wed Nov 14 14:33:28 2001 *************** while() *** 71,76 **** --- 71,77 ---- |(?:end\s+)?group # @group .. @end group: ditto |page # @page: ditto |node # @node: useful only in .info file + |(?:end\s+)?ifnottex # @ifnottex .. @end ifnottex: use contents )\b/x and next; chomp; *************** while() *** 102,118 **** # Ignore @end foo, where foo is not an operation which may # cause us to skip, if we are presently skipping. my $ended = $1; ! next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu)$/; die "\@end $ended without \@$ended at line $.\n" unless defined $endw; die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw; $endw = pop @endwstack; ! if ($ended =~ /^(?:ifset|ifclear|ignore|menu)$/) { $skipping = pop @skstack; next; ! } elsif ($ended =~ /^(?:example|smallexample)$/) { $shift = ""; $_ = ""; # need a paragraph break } elsif ($ended =~ /^(?:itemize|enumerate|table)$/) { --- 103,119 ---- # Ignore @end foo, where foo is not an operation which may # cause us to skip, if we are presently skipping. my $ended = $1; ! next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex)$/; die "\@end $ended without \@$ended at line $.\n" unless defined $endw; die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw; $endw = pop @endwstack; ! if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex)$/) { $skipping = pop @skstack; next; ! } elsif ($ended =~ /^(?:example|smallexample|display)$/) { $shift = ""; $_ = ""; # need a paragraph break } elsif ($ended =~ /^(?:itemize|enumerate|table)$/) { *************** while() *** 142,148 **** next; }; ! /^\@(ignore|menu)\b/ and do { push @endwstack, $endw; push @skstack, $skipping; $endw = $1; --- 143,149 ---- next; }; ! /^\@(ignore|menu|iftex)\b/ and do { push @endwstack, $endw; push @skstack, $skipping; $endw = $1; *************** while() *** 171,176 **** --- 172,183 ---- s/\@\{/{/g; s/\@\}/}/g; s/\@\@/&at;/g; + + # Inside a verbatim block, handle @var specially. + if ($shift ne "") { + s/\@var\{([^\}]*)\}/<$1>/g; + } + # POD doesn't interpret E<> inside a verbatim block. if ($shift eq "") { s/) *** 184,190 **** /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and $defs{$1} = $2, next; /^\@clear\s+([a-zA-Z0-9_-]+)/ and delete $defs{$1}, next; ! /^\@section\s+(.+)$/ and $_ = "\n=head2 $1\n"; /^\@subsection\s+(.+)$/ and $_ = "\n=head3 $1\n"; # Block command handlers: --- 191,197 ---- /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and $defs{$1} = $2, next; /^\@clear\s+([a-zA-Z0-9_-]+)/ and delete $defs{$1}, next; ! /^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/ and $_ = "\n=head2 $1\n"; /^\@subsection\s+(.+)$/ and $_ = "\n=head3 $1\n"; # Block command handlers: *************** while() *** 196,202 **** $endw = "itemize"; }; ! /^\@enumerate(?:\s+([A-Z0-9]+))?/ and do { push @endwstack, $endw; push @icstack, $ic; if (defined $1) { --- 203,209 ---- $endw = "itemize"; }; ! /^\@enumerate(?:\s+([a-zA-Z0-9]+))?/ and do { push @endwstack, $endw; push @icstack, $ic; if (defined $1) { *************** while() *** 220,226 **** $endw = "table"; }; ! /^\@((?:small)?example)/ and do { push @endwstack, $endw; $endw = $1; $shift = "\t"; --- 227,233 ---- $endw = "table"; }; ! /^\@((?:small)?example|display)/ and do { push @endwstack, $endw; $endw = $1; $shift = "\t"; *************** while() *** 233,239 **** $_ = "\n=item $ic\<$1\>\n"; } else { $_ = "\n=item $ic\n"; ! $ic =~ y/A-Ya-y1-8/B-Zb-z2-9/; } }; --- 240,247 ---- $_ = "\n=item $ic\<$1\>\n"; } else { $_ = "\n=item $ic\n"; ! $ic =~ y/A-Ya-y/B-Zb-z/; ! $ic =~ s/(\d+)/$1 + 1/eg; } }; diff -Nrc3pad gcc-3.0.2/faq.html gcc-3.0.3/faq.html *** gcc-3.0.2/faq.html Tue Oct 23 10:56:16 2001 --- gcc-3.0.3/faq.html Thu Dec 20 11:56:10 2001 *************** page.

        *** 66,71 **** --- 66,72 ----
        1. Virtual memory exhausted
        2. Friend Templates
        3. +
        4. dynamic_cast, throw, typeid don't work with shared libraries
        5. Why do I need autoconf, bison, xgettext, automake, etc?
        6. Why can't I build a shared library?
        7. How to work around too long C++ symbol names? *************** friend declarations as template declarat *** 542,547 **** --- 543,607 ---- that the forward declaration was not necessary, but, according to the final version of the Standard, it is.

          + +
          +

          dynamic_cast, throw, typeid don't work with shared libraries

          + +

          The new C++ ABI in the GCC 3.0 series uses address comparisons, + rather than string compares, to determine type equality. This leads + to better performance. Like other objects that have to be present in the + final executable, these std::typeinfo_t objects have what + is called vague linkage because they are not tightly bound to any one + particular translation unit (object file). The compiler has to emit + them in any translation unit that requires their presence, and then + rely on the linking and loading process to make sure that only one of + them is active in the final executable. With static linking all of + these symbols are resolved at link time, but with dynamic linking, + further resolution occurs at load time. You have to ensure that + objects within a shared library are resolved against objects in the + executable and other shared libraries.

          + +
            +
          • For a program which is linked against a shared library, no additional + precautions need taking.
          • + +
          • You cannot create a shared library with the "-Bsymbolic" + option, as that prevents the resolution described above.
          • + +
          • If you use dlopen to explicitly load code from a shared + library, you must do several things. First, export global symbols from + the executable by linking it with the "-E" flag (you will + have to specify this as "-Wl,-E" if you are invoking + the linker in the usual manner from the compiler driver, g++). + You must also make the external symbols in the loaded library + available for subsequent libraries by providing the RTLD_GLOBAL + flag to dlopen. The symbol resolution can be immediate or + lazy.
          • + +
          + +

          Template instantiations are another, user visible, case of objects + with vague linkage, which needs similar resolution. If you do not take + the above precautions, you may discover that a template instantiation + with the same argument list, but instantiated in multiple translation + units, has several addresses, depending in which translation unit the + address is taken. (This is not an exhaustive list of the kind + of objects which have vague linkage and are expected to be resolved + during linking & loading.)

          + +

          If you are worried about different objects with the same name + colliding during the linking or loading process, then you should use + namespaces to disambiguate them. Giving distinct objects with global + linkage the same name is a violation of the One Definition Rule (ODR) + [basic.def.odr].

          + +

          For more details about the way that GCC implements these and other + C++ features, please read the ABI specification. + Note the std::typeinfo_t objects which must be + resolved all begin with "_ZTS". Refer to ld's + documentation for a description of the "-E" & + "-Bsymbolic" flags.


          Why do I need autoconf, bison, xgettext, automake, etc?

          diff -Nrc3pad gcc-3.0.2/fastjar/ChangeLog gcc-3.0.3/fastjar/ChangeLog *** gcc-3.0.2/fastjar/ChangeLog Tue Oct 23 10:19:07 2001 --- gcc-3.0.3/fastjar/ChangeLog Thu Dec 20 11:21:18 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/ChangeLog gcc-3.0.3/gcc/ChangeLog *** gcc-3.0.2/gcc/ChangeLog Tue Oct 23 10:19:18 2001 --- gcc-3.0.3/gcc/ChangeLog Thu Dec 20 11:21:30 2001 *************** *** 1,3 **** --- 1,547 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-13 Richard Henderson + + * stmt.c (expand_asm_operands): Correct and simplify the + conditions for spilling an output operand to memory. + + 2001-12-12 Bruce Korb + Rodney Brown + + * fixinc/inclhack.def (strict_ansi_not_ctd): Update for UnixWare 2.1.3. + * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 2.1.3. + * fixinc/tests/base/math.h: update for new test text for rework + + 2001-12-13 Alan Modra + + * config/rs6000/rs6000.c (rs6000_unique_section): Simplify and + correct code selecting section. + + 2001-12-11 Richard Henderson + + * except.c (sjlj_find_directly_reachable_regions): Don't + consider RNL_BLOCKED a directly reachable region. + (sjlj_assign_call_site_values): Trust directly_reachable. + (sjlj_emit_dispatch_table): Likewise. + + 2001-12-11 Neil Booth + + * c-common.c (combine_strings): Complain if concatenating + __FUNCTION__. + * c-parse.in (yylexname): Flag artificial strings. + * tree.h (TREE_ARTIFICIAL_STRING_P): New. + doc: + * extend.texi: Update. + + 2001-12-09 David Edelsohn + + * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN + to unions. + + 2001-12-08 Alan Modra + + * config/rs6000/rs6000.c (rs6000_unique_section): Add missing + parentheses. + + 2001-12-07 Craig Rodrigues + * expr.c (store_constructor): Handle zero-length arrays and + flexible arrays correctly. + + 2001-12-07 David O'Brien + + * elfos.h (_USING_ELFOS_H): Rename to USING_ELFOS_H, to match mainline. + * rs6000/rs6000.c (_USING_ELFOS_H): Likewise. + + 2001-12-06 Nick Clifton + + * config/arm/arm.h (STRUCT_VALUE): Suppress definition. + (STRUCT_VALUE_REGNUM): Restore definition. + + 2001-12-06 Richard Henderson + + * stmt.c (parse_input_constraint): Break out from ... + (expand_asm_operands): ... here. Loop over the operands twice, + the first time only calling mark_addressable. + + 2001-12-06 Rainer Orth + + * fixinc/inclhack.def (stdio_va_list): Handle __VA_LIST__ in Tru64 + UNIX V5.1A stdio.h. + * fixinc/fixincl.x: Regenerate. + Fixes PR libf2c/4826. + + 2001-12-05 Neil Booth + + * cppspec.c (lang_specific_driver): Set is_cpp_driver. + * gcc.c (process_command): Ensure the cpp driver sees + --help and --target-help, and that the help is printed + exactly once. + + 2001-12-04 DJ Delorie + + * fixinc/fixincl.c (initialize): Avoid problemsome macro + parameter names (PR 3388). + + 2001-12-04 Loren J. Rittle + + bootstrap/4422 + * configure.in: Setup ability to run ./stage[1234]/xgcc in + fixinc *as if* it were a proper lang subdirectory. + * configure: Rebuilt. + + 2001-12-04 Joseph S. Myers + + * doc/install.texi: Use the GFDL. Include years from old install + manual in copyright notice. Include copyright and GFDL notice on + HTML index page. Include usual footer on testing.html. + * doc/install.texi2html: Build gfdl.html. Use -I + $SOURCEDIR/include. + * doc/include/fdl.texi: Adapt for use in the install manual. + + 2001-12-04 Joseph S. Myers + + * doc/install.texi: Document that installed native compiler for + building cross compilers should be GCC 2.95 or later. + + 2001-12-03 Neil Booth + + PR c/4988 + * gcc.c (process_command): Don't add a preprocessor option for + --help and --target-help; cc1 is enough. + + 2001-12-03 Jason Merrill + + * dwarf2out.c (add_data_member_location_attribute): Do the + right thing for virtual bases. + * dbxout.c (dbxout_type): For a virtual base, print the offset + within the vtable. + + 2001-12-01 Olivier Hainque + + * unroll.c (loop_iterations): Give up on jumps with null JUMP_LABEL + while scanning for multiple back edges. + + 2001-12-01 Franz Sirl + + * ginclude/ppc-asm.h (JUMP_TARGET): New macro. + * config/rs6000/tramp.asm: Use it. + + 2001-11-30 Stephane Carrez + + * config/sparc/sparc.c (DF_MODES_NO_S): Fix pr/3623, define to + accept DFmode and DImode only. + + 2001-11-20 Zoltan Hidvegi + + * doloop.c (doloop_modify_runtime): Correct calculation of + iterations. + * unroll.c (unroll_loop): Correct special exit cases. + + 2001-11-30 Jakub Jelinek + + * config/sparc/sparc.md (movdf): Avoid calling validize_mem during + or after reload. + + 2001-11-27 John David Anglin + Bruce Korb + + * inclhack.def (AAA_time): Delete. + (hpux_size_t): Revise select and fix for HP-UX 11.11. + (hpux11_vsnprintf): Adapt to above hack. + + 2001-08-14 Steve Ellcey + + * tlink.c (scan_linker_output): Check string for unsatisfied in + addition to undefined and unresolved. + + 2001-11-29 Zoltan Hidvegi + + * doloop.c (doloop_valid_p): Check for LTU and GTU as well. + + 2001-11-29 Richard Henderson + + * ifcvt.c (noce_try_store_flag_constants): Test for overflow + in computing DIFF. + + 2001-11-29 Craig Rodrigues + + PR other/4932 + * config/i386/i386.c (print_operand): Verify that the + argument to %c is a constant and not a conditional which + needs to be reversed. + + 2001-11-27 Rainer Orth + + * gcc.c (set_input): Export. + Move declaration ... + gcc.h (set_input): ... here. + + 2001-11-27 Rainer Orth + + * gcc.c (set_collect_gcc_options): New function, split out from + main. + Ignore elided switches. + (do_spec): Invoke before executing command. + (do_spec_1): Likewise. + Fixes PR other/3968. + + 2001-11-27 Rainer Orth + + * config/i386/sol2.h (WINT_TYPE): Redefine. + (WINT_TYPE_SIZE): Likewise. + + 2001-11-26 Ian Lance Taylor + + * config/i386/i386.md (movstrsi): Use strmovqi rather than + strmovsi for final byte move. + + 2001-11-26 Alan Modra + + * final.c: (insn_lengths): Make it an int *, so that large jump + tables don't overflow. + + 2001-11-25 Stephane Carrez + + * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize + address computations. + + 2001-11-25 Stephane Carrez + + * config/m68hc11/m68hc11.c (d_register_operand): Must accept + register b (low part of d). + + 2001-11-25 Stephane Carrez + + * config/m68hc11/m68hc11.h (FUNCTION_PROFILER): Fix label name + passed to mcount. + + 2001-11-24 Neil Booth + + * cppmacro.c (warn_of_redefinition): Warn regardless of -pedantic. + * cppinit.c (init_dependency_output): Suppress other stdout + output when dumping dependencies. + + 2001-11-19 Brad Kaiser + + * reload1.c (elimination_effects): Use function_invariant_p + instead of CONSTANT_P when considering register equivalences. + + 2001-11-18 Craig Rodrigues + + PR bootstrap/4020 + * mklibgcc.in: Add missing semi-colons. + * Makefile.in: Same. + + 2001-11-18 Craig Rodrigues + + PR c/4448 + * gthr-win32.h: (__gthread_objc_thread_exit): Fix variable + name __objc_thread_exit_status so that it matches the + variable defined in objc/thr.h. + + 2001-11-18 Craig Rodrigues + + PR optimization/4815 + * alias.c: Merge from mainline: + 2001-08-05 Bernd Schmidt + * alias.c (rtx_equal_for_memref_p): VALUEs are only identical + if their CSELIB_VAL_PTRs are. + 2001-07-25 Andrew Haley + * alias.c (rtx_equal_for_memref_p): Allow strings as types in + operands. + + 2001-11-17 Craig Rodrigues + + PR target/4606 + * config.gcc: Remove reference to va-clipper.h. + + 2001-11-17 Christopher Faylor + Corinna Vinschen + + * config/i386/cygwin.h: Search target specific include directory for + w32api stuff, if appropriate. + + 2001-11-15 Kazu Hirata + + * config/h8300/h8300.md: Fix insn length of bit insns. + + 2001-11-15 Richard Hodson + + * config/h8300/h8300.c (dosize): Avoid corrupting R3 in interrupt + routines. + + 2001-11-14 Joseph S. Myers + + * Makefile.in (POD2MAN): Don't include --section=1. + (manext): Rename to man1ext. All users changed. + (man7ext): New. + (man7dir): New. + (generated-manpages): Also depend on $(docdir)/gfdl.7, + $(docdir)/gpl.7, and $(docdir)/fsf-funding.7. + ($(docdir)/gcov.1, $(docdir)/cpp.1, $(docdir)/gcc.1): Include + --section=1 in calls to $(POD2MAN). + ($(docdir)/gfdl.7, $(docdir)/gpl.7, $(docdir)/fsf-funding.7): New. + (maintainer-clean, install, uninstall): Handle the new man pages. + ($(docdir)/cpp.info, cpp.dvi): Depend on fdl.texi. + (installdirs): Create man7dir. + * doc/cpp.texi: Include GFDL in this manual. In the man page, + refer to gfdl(7) for the GFDL. Apply Front Cover and Back Cover + texts to man page. Include gpl(7), gfdl(7) and fsf-funding(7) in + the SEE ALSO man page section. + * doc/gcov.texi: Apply GFDL to man page. Include gpl(7), gfdl(7) + and fsf-funding(7) in the SEE ALSO man page section. + * doc/invoke.texi: Apply GFDL to man page. Include gpl(7), + gfdl(7) and fsf-funding(7) in the SEE ALSO man page section. + * doc/include/fdl.texi, doc/include/funding.texi, + doc/include/gpl.texi: Adjust for conversion by texi2pod.pl. + * doc/cpp.1, doc/gcc.1, doc/gcov.1: Regenerate. + * doc/gpl.7, doc/gfdl.7, doc/fsf-funding.7: New. + + 2001-11-13 Jeff Sturm + + * doc/install.texi (sparc-*-linux*): Mention requirements for + binutils and glibc. + + 2001-11-12 Craig Rodrigues + + PR bootstrap/3451 + * c-pragma.c: Rename macros BAD, BAD2, BAD_ACTION to + GCC_BAD, GCC_BAD2, GCC_BAD_ACTION. + + 2001-11-12 David O'Brien + + * config/ia64/freebsd.h: Fix comment (sync with mainline). + + 2001-05-15 Geoffrey Keating + + * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat + TARGET_RELOCATABLE like flag_pic for now. + + 2001-05-13 Geoff Keating + + * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to... + * config/rs6000/aix.h (EXCEPTION_SECTION): ... here. + * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete. + (ASM_PREFERRED_EH_DATA_FORMAT): Define. + (EXCEPTION_SECTION): Define. + + 2001-11-09 Jason Eckhardt + + * config/mips/mips.c (mips_output_conditional_branch): Do not hard + code the branch target as ".+16/.+12", but rather use labels. + + 2001-11-09 Gerald Pfeifer + + * doc/install.texi2html: Use $MAKEINFO --no-split. + + 2001-11-08 Richard Henderson + + * Makefile.in (GCC_FOR_TARGET): Add build_tooldir/sys-include. + (CROSS_SYSTEM_HEADER_DIR): Use build_tooldir not tooldir. + (ORDINARY_FLAGS_TO_PASS, stmp-fixinc): Likewise. + + 2001-11-08 Richard Henderson + + 2001-07-11 Richard Sandiford , + H.J. Lu + * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for + constant addresses. + (call_internal2): Likewise. + (call_value_internal1): Likewise. + (call_value_internal2): Likewise. + (call_value_multiple_internal1): Likewise. + (call_value_multiple_internal2): Likewise. + + * config/mips/mips.c (save_restore_insns): Remove GP from the + restore registers mask early instead of special casing it inside + the loop. + + * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST + case as well. + + * Makefile.in (NM_FOR_TARGET): Single build tree uses nm-new. + + 2001-11-07 Neil Booth + Per Bothner + H.J. Lu + + * acconfig.h (PREFIX_INCLUDE_DIR): New variable. + * config.in: Rebuild. + * cppdefault.c (cpp_include_defaults): Also search PREFIX_INCLUDE_DIR. + * Makefile.in (includedir): Rename to local_includedir. + (includedir): Define as $(prefix)/include. + * config.in (PREFIX_INCLUDE_DIR): New variable. + * configure.in (PREFIX_INCLUDE_DIR): Test for new variable. + + 2001-11-07 Joseph S. Myers + + * doc/gcc.texi: Move terminology and spelling conventions to + htdocs/codingconventions.html. + + 2001-11-06 Joseph S. Myers + + * doc/install.texi: Document that configure options not listed in + this file are unsupported. Document --with-system-zlib. + + 2001-11-05 Alan Modra + + * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used. + + 2001-11-05 Zack Weinberg + + * configure.in: AC_SUBST xm_defines. + * configure: Regenerate. + * Makefile.in: Set DEFINES=$(xm_defines) when building + tconfig.h. + + 2001-09-15 Roman Lechtchinsky + + * c-common.c (c_promoting_integer_type_p): Handle ?Imode types. + + 2001-08-18 Zack Weinberg + + * combine.c (make_compound_operation, simplify_comparison): + Fix typos testing for this or that instruction. + + 2001-07-26 Kazu Hirata + + * regmove.c (regmove_optimize): Don't replace a reg with + another reg of a different mode. + + 2001-06-16 Franz Sirl + + * gccspec.c (lang_specific_driver): If compiling ObjC, add + -shared-libgcc when necessary. + * Makefile.in (gccspec.o): Compile with DRIVER_DEFINES. + + 2001-06-11 Aldy Hernandez + + * loop.c (scan_loop): Do not combine asm statements. + + 2001-11-03 David O'Brien + + * config.gcc: Add FreeBSD/IA-64 target. Move inclusion of IA-64 + target headers to tm_file. + * config/ia64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove, + they are OS specific. Use CPP_CPU_SPEC rather than CPP_PREDEFINES, + so OS specific files and use CPP_PREDEFINES for their needs. + * config/ia64/elf.h (TARGET_VERSION): Add. Also, move inclusion of + target headers to tm_file. + * config/ia64/linux.h (TARGET_VERSION): Likewise. + * config/ia64/freebsd.h: New file. + * config/freebsd.h: Tidy up. + (_USING_CONFIG_FREEBSD): Define. + (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__. + (FBSD_CPP_SPEC): Define generic FreeBSD spec. + (FBSD_STARTFILE_SPEC): Likewise. + (FBSD_ENDFILE_SPEC): Likewise. + (FBSD_LIB_SPEC): Likewise. + (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed. + (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers + set an ELF-improper one. + + 2001-11-03 Joseph S. Myers + + * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi: + Use "invalid" instead of "illegal". Use @r in comments in + examples. + + 2001-11-01 Richard Sandiford + + * config/mips/mips.c (save_restore_insns): Don't mark any register + save slots as unchanging if current_function_calls_eh_return. + + 2001-11-01 Kazu Hirata + + * config/h8300/h8300.c (h8300_encode_label): Compute a string + before passing it to ggc_alloc_string. + + 2001-10-30 Jakub Jelinek + + * flow.c (merge_blocks): Don't merge blocks if second block is + nonlocal_goto handler. + + 2001-10-28 David Edelsohn + + * config/rs6000/rs6000.c (output_mi_thunk): Fix typo. + + 2001-10-28 David O'Brien + + * config/rs6000/sysv4.h (CPP_PREDEFINES): Quiet warning when overriden. + + 2001-10-28 Joseph S. Myers + + * toplev.c: Fix spelling errors. + + 2001-10-28 David O'Brien + + * config/elfos.h (_USING_ELFOS_H): Define. + * config/rs6000/rs6000.c: Test for _USING_ELFOS_H rather than + USING_SVR4_H to know when to turn on ELF support. + + 2001-10-28 Joseph S. Myers + + * doc/invoke.texi: Fix spelling. + + * doc/gcc.texi: Document use of "dependent" and American spelling. + + 2001-10-26 Andrew Cagney + + Import 2001-07-11 Andrew Cagney : + + * config.gcc: Recognize powerpc-*-netbsd*. + + * doc/install.texi (Host/target specific installation notes for + GCC): Mention powerpc-*-netbsd*. + + * config/rs6000/netbsd.h: New file. + (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine. + (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine. + (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine. + (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine. + (TARGET_VERSION): Redefine. + + * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize + mcall-netbsd as a match for mcall-sysv. + (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext). + (ncrti.S, ncrtn.S): New targets. + ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets. + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize + "netbsd' as a V4 ABI. + (ASM_SPEC): Check for -mcall-netbsd. + (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto. + (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto. + (LIB_SPEC, ENDFILE_SPEC): Ditto. + (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define. + (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define. + (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define. + (SUBTARGET_EXTRA_SPECS): Add NetBSD specs. + + * doc/invoke.texi (Option Summary): Add -mcall-netbsd. + (RS/6000 and PowerPC Options): Mention -mcall-netbsd. + + 2001-10-26 David Edelsohn + + * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and + MODE arguments to gen_rtx and compare operand with const0_rtx. + + 2001-10-26 Christopher Faylor + + * config/i386/cygwin.h: Search target specfic include directory, if + appropriate. + + 2001-10-24 Christopher Faylor + + * config/i386/cygwin.h: Use proper path for mingw crt files when + -mno-cygwin. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/Makefile.in gcc-3.0.3/gcc/Makefile.in *** gcc-3.0.2/gcc/Makefile.in Thu Oct 4 15:59:02 2001 --- gcc-3.0.3/gcc/Makefile.in Sun Nov 18 16:46:43 2001 *************** MAKEINFO = @MAKEINFO@ *** 133,139 **** MAKEINFOFLAGS = TEXI2DVI = texi2dvi TEXI2POD = perl $(srcdir)/../contrib/texi2pod.pl ! POD2MAN = pod2man --center="GNU" --release="gcc-$(version)" --section=1 # For GNUmake: let us decide what gets passed to recursive makes. MAKEOVERRIDES = @SET_MAKE@ --- 133,139 ---- MAKEINFOFLAGS = TEXI2DVI = texi2dvi TEXI2POD = perl $(srcdir)/../contrib/texi2pod.pl ! POD2MAN = pod2man --center="GNU" --release="gcc-$(version)" # For GNUmake: let us decide what gets passed to recursive makes. MAKEOVERRIDES = @SET_MAKE@ *************** USER_H = $(srcdir)/ginclude/stdarg.h $(s *** 190,196 **** # The GCC to use for compiling libgcc.a, enquire, and libgcc1-test. # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). ! GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. # It omits XCFLAGS, and specifies -B./. --- 190,196 ---- # The GCC to use for compiling libgcc.a, enquire, and libgcc1-test. # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). ! GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. # It omits XCFLAGS, and specifies -B./. *************** RANLIB_TEST_FOR_TARGET = \ *** 241,248 **** || ( [ "$(host_canonical)" = "$(target)" ] \ && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) NM_FOR_TARGET = ` \ ! if [ -f $(objdir)/../binutils/nm ] ; then \ ! echo $(objdir)/../binutils/nm ; \ else \ if [ "$(host_canonical)" = "$(target)" ] ; then \ echo nm; \ --- 241,248 ---- || ( [ "$(host_canonical)" = "$(target)" ] \ && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) NM_FOR_TARGET = ` \ ! if [ -f $(objdir)/../binutils/nm-new ] ; then \ ! echo $(objdir)/../binutils/nm-new ; \ else \ if [ "$(host_canonical)" = "$(target)" ] ; then \ echo nm; \ *************** OBSTACK_H = $(srcdir)/../include/obsta *** 260,266 **** SPLAY_TREE_H= $(srcdir)/../include/splay-tree.h # Default cross SYSTEM_HEADER_DIR, to be overridden by targets. ! CROSS_SYSTEM_HEADER_DIR = $(tooldir)/sys-include # Control whether to run fixproto and fixincludes. STMP_FIXPROTO = stmp-fixproto --- 260,266 ---- SPLAY_TREE_H= $(srcdir)/../include/splay-tree.h # Default cross SYSTEM_HEADER_DIR, to be overridden by targets. ! CROSS_SYSTEM_HEADER_DIR = $(build_tooldir)/sys-include # Control whether to run fixproto and fixincludes. STMP_FIXPROTO = stmp-fixproto *************** host_xm_file_list=@host_xm_file_list@ *** 287,292 **** --- 287,293 ---- host_xm_file=@host_xm_file@ host_xm_defines=@host_xm_defines@ xm_file=@xm_file@ + xm_defines=@xm_defines@ lang_specs_files=@lang_specs_files@ lang_options_files=@lang_options_files@ lang_tree_files=@lang_tree_files@ *************** dollar = @dollar@ *** 324,335 **** gcc_tooldir = @gcc_tooldir@ # Used to install the shared libgcc. slibdir = @slibdir@ ! # Since tooldir does not exist at build-time, use -B$(build_tooldir)/bin/ build_tooldir = $(exec_prefix)/$(target_alias) # Directory in which the compiler finds target-independent g++ includes. gcc_gxx_include_dir = @gcc_gxx_include_dir@ # Directory to search for site-specific includes. ! includedir = $(local_prefix)/include # where the info files go infodir = @infodir@ # Where cpp should go besides $prefix/bin if necessary --- 325,337 ---- gcc_tooldir = @gcc_tooldir@ # Used to install the shared libgcc. slibdir = @slibdir@ ! # Since gcc_tooldir does not exist at build-time, use -B$(build_tooldir)/bin/ build_tooldir = $(exec_prefix)/$(target_alias) # Directory in which the compiler finds target-independent g++ includes. gcc_gxx_include_dir = @gcc_gxx_include_dir@ # Directory to search for site-specific includes. ! local_includedir = $(local_prefix)/include ! includedir = $(prefix)/include # where the info files go infodir = @infodir@ # Where cpp should go besides $prefix/bin if necessary *************** cpp_install_dir = @cpp_install_dir@ *** 338,344 **** datadir = $(prefix)/@DATADIRNAME@ localedir = $(datadir)/locale # Extension (if any) to put in installed man-page filename. ! manext = .1 objext = .o exeext = @host_exeext@ build_exeext = @build_exeext@ --- 340,347 ---- datadir = $(prefix)/@DATADIRNAME@ localedir = $(datadir)/locale # Extension (if any) to put in installed man-page filename. ! man1ext = .1 ! man7ext = .7 objext = .o exeext = @host_exeext@ build_exeext = @build_exeext@ *************** build_exeext = @build_exeext@ *** 346,351 **** --- 349,355 ---- # Directory in which to put man pages. mandir = @mandir@ man1dir = $(mandir)/man1 + man7dir = $(mandir)/man7 # Dir for temp files. tmpdir = /tmp *************** ORDINARY_FLAGS_TO_PASS = \ *** 747,753 **** "prefix=$(prefix)" \ "local_prefix=$(local_prefix)" \ "gxx_include_dir=$(gcc_gxx_include_dir)" \ ! "tooldir=$(tooldir)" \ "gcc_tooldir=$(gcc_tooldir)" \ "bindir=$(bindir)" \ "libsubdir=$(libsubdir)" \ --- 751,757 ---- "prefix=$(prefix)" \ "local_prefix=$(local_prefix)" \ "gxx_include_dir=$(gcc_gxx_include_dir)" \ ! "build_tooldir=$(build_tooldir)" \ "gcc_tooldir=$(gcc_tooldir)" \ "bindir=$(bindir)" \ "libsubdir=$(libsubdir)" \ *************** cs-hconfig.h: Makefile *** 913,919 **** $(SHELL) $(srcdir)/mkconfig.sh hconfig.h cs-tconfig.h: Makefile $(CONFIG_H) except.h ! HEADERS="$(xm_file)" DEFINES="" TARGET_CPU_DEFAULT="" \ $(SHELL) $(srcdir)/mkconfig.sh tconfig.h # ??? Need extra help to get this definition copied to where libgcc can # see it. It shouldn't matter which compiler we use to get there. --- 917,924 ---- $(SHELL) $(srcdir)/mkconfig.sh hconfig.h cs-tconfig.h: Makefile $(CONFIG_H) except.h ! HEADERS="$(xm_file)" DEFINES="$(xm_defines)" \ ! TARGET_CPU_DEFAULT="" \ $(SHELL) $(srcdir)/mkconfig.sh tconfig.h # ??? Need extra help to get this definition copied to where libgcc can # see it. It shouldn't matter which compiler we use to get there. *************** gcc.o: gcc.c $(CONFIG_H) system.h intl.h *** 1338,1343 **** --- 1343,1354 ---- -c $(srcdir)/gcc.c) gccspec.o: gccspec.c $(CONFIG_H) system.h $(GCC_H) + (SHLIB_LINK='$(SHLIB_LINK)' \ + SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \ + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + $(DRIVER_DEFINES) \ + -c $(srcdir)/gccspec.c) + cppspec.o: cppspec.c $(CONFIG_H) system.h $(GCC_H) tree-check.h: s-check ; @true *************** PREPROCESSOR_DEFINES = \ *** 1974,1980 **** -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \ -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ ! -DLOCAL_INCLUDE_DIR=\"$(includedir)\" \ -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \ -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" --- 1985,1991 ---- -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \ -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ ! -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \ -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" *************** stmp-fixinc: fixinc.sh gsyslimits.h *** 2177,2191 **** cp $(srcdir)/gsyslimits.h include/syslimits.h; \ fi; \ chmod a+r include/syslimits.h) ! # If $(SYSTEM_HEADER_DIR) is $(tooldir)/sys-include, and # that directory exists, then make sure that $(libsubdir) exists. ! # This is because cpp is compiled to find $(tooldir)/include via # $(libsubdir)/$(unlibsubdir), which will only work if $(libsubdir) # exists. ! # We deliberately use tooldir instead of gcc_tooldir here. gcc_tooldir ! # won't work because libsubdir doesn't exist yet. ! if [ "$(SYSTEM_HEADER_DIR)" = "$(tooldir)/sys-include" ] \ ! && [ -d $(tooldir)/sys-include ]; then \ if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; fi; \ if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib; fi; \ if [ -d $(libdir)/gcc-lib/$(target_alias) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target_alias) ; fi; \ --- 2188,2202 ---- cp $(srcdir)/gsyslimits.h include/syslimits.h; \ fi; \ chmod a+r include/syslimits.h) ! # If $(SYSTEM_HEADER_DIR) is $(build_tooldir)/sys-include, and # that directory exists, then make sure that $(libsubdir) exists. ! # This is because cpp is compiled to find $(gcc_tooldir)/include via # $(libsubdir)/$(unlibsubdir), which will only work if $(libsubdir) # exists. ! # ??? Better would be to use -isystem $(build_tooldir)/sys-include, ! # but fixincludes does not take such arguments. ! if [ "$(SYSTEM_HEADER_DIR)" = "$(build_tooldir)/sys-include" ] \ ! && [ -d $(build_tooldir)/sys-include ]; then \ if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; fi; \ if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib; fi; \ if [ -d $(libdir)/gcc-lib/$(target_alias) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target_alias) ; fi; \ *************** docdir = $(srcdir)/doc *** 2280,2286 **** doc: $(BUILD_INFO) gccbug info: $(docdir)/cpp.info $(docdir)/gcc.info lang.info $(docdir)/cppinternals.info ! $(docdir)/cpp.info: $(docdir)/cpp.texi cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/cpp.info doc/cpp.texi $(docdir)/gcc.info: $(docdir)/gcc.texi $(docdir)/extend.texi \ --- 2291,2297 ---- doc: $(BUILD_INFO) gccbug info: $(docdir)/cpp.info $(docdir)/gcc.info lang.info $(docdir)/cppinternals.info ! $(docdir)/cpp.info: $(docdir)/cpp.texi $(docdir)/include/fdl.texi cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/cpp.info doc/cpp.texi $(docdir)/gcc.info: $(docdir)/gcc.texi $(docdir)/extend.texi \ *************** $(docdir)/cppinternals.info: $(docdir)/c *** 2298,2304 **** dvi: gcc.dvi cpp.dvi lang.dvi cppinternals.dvi # This works with GNU Make's default rule. ! cpp.dvi: $(docdir)/cpp.texi $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cpp.texi gcc.dvi: $(docdir)/gcc.texi $(docdir)/extend.texi $(docdir)/install-old.texi \ --- 2309,2315 ---- dvi: gcc.dvi cpp.dvi lang.dvi cppinternals.dvi # This works with GNU Make's default rule. ! cpp.dvi: $(docdir)/cpp.texi $(docdir)/include/fdl.texi $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cpp.texi gcc.dvi: $(docdir)/gcc.texi $(docdir)/extend.texi $(docdir)/install-old.texi \ *************** gcc.dvi: $(docdir)/gcc.texi $(docdir)/ex *** 2312,2323 **** cppinternals.dvi: $(docdir)/cppinternals.texi $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cppinternals.texi ! generated-manpages: $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 $(docdir)/gcov.1: $(docdir)/gcov.texi $(STAMP) $(docdir)/gcov.1 -$(TEXI2POD) < $(docdir)/gcov.texi > gcov.pod ! -($(POD2MAN) gcov.pod > $(docdir)/gcov.1.T$$$$ && \ mv -f $(docdir)/gcov.1.T$$$$ $(docdir)/gcov.1) || \ (rm -f $(docdir)/gcov.1.T$$$$ && exit 1) -rm -f gcov.pod --- 2323,2335 ---- cppinternals.dvi: $(docdir)/cppinternals.texi $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cppinternals.texi ! generated-manpages: $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 \ ! $(docdir)/gfdl.7 $(docdir)/gpl.7 $(docdir)/fsf-funding.7 $(docdir)/gcov.1: $(docdir)/gcov.texi $(STAMP) $(docdir)/gcov.1 -$(TEXI2POD) < $(docdir)/gcov.texi > gcov.pod ! -($(POD2MAN) --section=1 gcov.pod > $(docdir)/gcov.1.T$$$$ && \ mv -f $(docdir)/gcov.1.T$$$$ $(docdir)/gcov.1) || \ (rm -f $(docdir)/gcov.1.T$$$$ && exit 1) -rm -f gcov.pod *************** $(docdir)/gcov.1: $(docdir)/gcov.texi *** 2325,2331 **** $(docdir)/cpp.1: $(docdir)/cpp.texi $(STAMP) $(docdir)/cpp.1 -$(TEXI2POD) < $(docdir)/cpp.texi > cpp.pod ! -($(POD2MAN) cpp.pod > $(docdir)/cpp.1.T$$$$ && \ mv -f $(docdir)/cpp.1.T$$$$ $(docdir)/cpp.1) || \ (rm -f $(docdir)/cpp.1.T$$$$ && exit 1) -rm -f cpp.pod --- 2337,2343 ---- $(docdir)/cpp.1: $(docdir)/cpp.texi $(STAMP) $(docdir)/cpp.1 -$(TEXI2POD) < $(docdir)/cpp.texi > cpp.pod ! -($(POD2MAN) --section=1 cpp.pod > $(docdir)/cpp.1.T$$$$ && \ mv -f $(docdir)/cpp.1.T$$$$ $(docdir)/cpp.1) || \ (rm -f $(docdir)/cpp.1.T$$$$ && exit 1) -rm -f cpp.pod *************** $(docdir)/cpp.1: $(docdir)/cpp.texi *** 2333,2343 **** $(docdir)/gcc.1: $(docdir)/invoke.texi $(STAMP) $(docdir)/gcc.1 -$(TEXI2POD) < $(docdir)/invoke.texi > gcc.pod ! -($(POD2MAN) gcc.pod > $(docdir)/gcc.1.T$$$$ && \ mv -f $(docdir)/gcc.1.T$$$$ $(docdir)/gcc.1) || \ (rm -f $(docdir)/gcc.1.T$$$$ && exit 1) -rm -f gcc.pod # # Deletion of files made during compilation. # There are four levels of this: --- 2345,2380 ---- $(docdir)/gcc.1: $(docdir)/invoke.texi $(STAMP) $(docdir)/gcc.1 -$(TEXI2POD) < $(docdir)/invoke.texi > gcc.pod ! -($(POD2MAN) --section=1 gcc.pod > $(docdir)/gcc.1.T$$$$ && \ mv -f $(docdir)/gcc.1.T$$$$ $(docdir)/gcc.1) || \ (rm -f $(docdir)/gcc.1.T$$$$ && exit 1) -rm -f gcc.pod + $(docdir)/gfdl.7: $(docdir)/include/fdl.texi + $(STAMP) $(docdir)/gfdl.7 + -$(TEXI2POD) < $(docdir)/include/fdl.texi > gfdl.pod + -($(POD2MAN) --section=7 gfdl.pod > $(docdir)/gfdl.7.T$$$$ && \ + mv -f $(docdir)/gfdl.7.T$$$$ $(docdir)/gfdl.7) || \ + (rm -f $(docdir)/gfdl.7.T$$$$ && exit 1) + -rm -f gfdl.pod + + $(docdir)/gpl.7: $(docdir)/include/gpl.texi + $(STAMP) $(docdir)/gpl.7 + -$(TEXI2POD) < $(docdir)/include/gpl.texi > gpl.pod + -($(POD2MAN) --section=7 gpl.pod > $(docdir)/gpl.7.T$$$$ && \ + mv -f $(docdir)/gpl.7.T$$$$ $(docdir)/gpl.7) || \ + (rm -f $(docdir)/gpl.7.T$$$$ && exit 1) + -rm -f gpl.pod + + $(docdir)/fsf-funding.7: $(docdir)/include/funding.texi + $(STAMP) $(docdir)/fsf-funding.7 + -$(TEXI2POD) < $(docdir)/include/funding.texi > fsf-funding.pod + -($(POD2MAN) --section=7 fsf-funding.pod \ + > $(docdir)/fsf-funding.7.T$$$$ && \ + mv -f $(docdir)/fsf-funding.7.T$$$$ $(docdir)/fsf-funding.7) || \ + (rm -f $(docdir)/fsf-funding.7.T$$$$ && exit 1) + -rm -f fsf-funding.pod + # # Deletion of files made during compilation. # There are four levels of this: *************** maintainer-clean: *** 2469,2474 **** --- 2506,2512 ---- -rm -f $(docdir)/cpp.info* $(docdir)/gcc.info* -rm -f $(docdir)/cppinternals.info* -rm -f $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 + -rm -f $(docdir)/fsf-funding.7 $(docdir)/gfdl.7 $(docdir)/gpl.7 # # Entry points `install' and `uninstall'. # Also use `install-collect2' to install collect2 when the config files don't. *************** installdirs: *** 2556,2561 **** --- 2594,2600 ---- -parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \ if [ -d $$parent ] ; then true ; else mkdir $$parent ; chmod a+rx $$parent ; fi -if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; chmod a+rx $(man1dir) ; fi + -if [ -d $(man7dir) ] ; then true ; else mkdir $(man7dir) ; chmod a+rx $(man7dir) ; fi # Install the compiler executables built during cross compilation. install-common: native installdirs $(EXTRA_PARTS) lang.install-common *************** install-info: doc installdirs lang.insta *** 2651,2657 **** for f in cpp.info gcc.info cppinternals.info; do \ if [ -f $(infodir)/$$f ]; then \ install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \ ! else true; fi \ done; \ else true; fi; \ else true; fi; --- 2690,2696 ---- for f in cpp.info gcc.info cppinternals.info; do \ if [ -f $(infodir)/$$f ]; then \ install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \ ! else true; fi; \ done; \ else true; fi; \ else true; fi; *************** install-info: doc installdirs lang.insta *** 2661,2680 **** # Install the man pages. install-man: installdirs $(GENERATED_MANPAGES) lang.install-man -if [ -f gcc-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(GCC_CROSS_NAME)$(manext); \ ! $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_CROSS_NAME)$(manext); \ ! chmod a-x $(man1dir)/$(GCC_CROSS_NAME)$(manext); \ else \ ! rm -f $(man1dir)/$(GCC_INSTALL_NAME)$(manext); \ ! $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_INSTALL_NAME)$(manext); \ ! chmod a-x $(man1dir)/$(GCC_INSTALL_NAME)$(manext); \ fi ! -rm -f $(man1dir)/cpp$(manext) ! -$(INSTALL_DATA) $(docdir)/cpp.1 $(man1dir)/cpp$(manext) ! -chmod a-x $(man1dir)/cpp$(manext) ! -rm -f $(man1dir)/gcov$(manext) ! -$(INSTALL_DATA) $(docdir)/gcov.1 $(man1dir)/gcov$(manext) ! -chmod a-x $(man1dir)/gcov$(manext) # Install the library. install-libgcc: libgcc.mk libgcc.a installdirs --- 2700,2728 ---- # Install the man pages. install-man: installdirs $(GENERATED_MANPAGES) lang.install-man -if [ -f gcc-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \ else \ ! rm -f $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ fi ! -rm -f $(man1dir)/cpp$(man1ext) ! -$(INSTALL_DATA) $(docdir)/cpp.1 $(man1dir)/cpp$(man1ext) ! -chmod a-x $(man1dir)/cpp$(man1ext) ! -rm -f $(man1dir)/gcov$(man1ext) ! -$(INSTALL_DATA) $(docdir)/gcov.1 $(man1dir)/gcov$(man1ext) ! -chmod a-x $(man1dir)/gcov$(man1ext) ! -rm -f $(man7dir)/fsf-funding$(man7ext) ! -$(INSTALL_DATA) $(docdir)/fsf-funding.7 $(man7dir)/fsf-funding$(man7ext) ! -chmod a-x $(man7dir)/fsf-funding$(man7ext) ! -rm -f $(man7dir)/gfdl$(man7ext) ! -$(INSTALL_DATA) $(docdir)/gfdl.7 $(man7dir)/gfdl$(man7ext) ! -chmod a-x $(man7dir)/gfdl$(man7ext) ! -rm -f $(man7dir)/gpl$(man7ext) ! -$(INSTALL_DATA) $(docdir)/gpl.7 $(man7dir)/gpl$(man7ext) ! -chmod a-x $(man7dir)/gpl$(man7ext) # Install the library. install-libgcc: libgcc.mk libgcc.a installdirs *************** uninstall: intl.uninstall lang.uninstall *** 2787,2797 **** -rm -rf $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(GCOV_INSTALL_NAME)$(exeext) ! -rm -rf $(man1dir)/$(GCC_INSTALL_NAME)$(manext) ! -rm -rf $(man1dir)/$(GCC_CROSS_NAME)$(manext) ! -rm -rf $(man1dir)/cpp$(manext) ! -rm -rf $(man1dir)/protoize$(manext) ! -rm -rf $(man1dir)/unprotoize$(manext) -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info* -rm -f $(infodir)/cppinternals.info* # --- 2835,2845 ---- -rm -rf $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(GCOV_INSTALL_NAME)$(exeext) ! -rm -rf $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) ! -rm -rf $(man1dir)/$(GCC_CROSS_NAME)$(man1ext) ! -rm -rf $(man1dir)/cpp$(man1ext) ! -rm -rf $(man1dir)/protoize$(man1ext) ! -rm -rf $(man1dir)/unprotoize$(man1ext) -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info* -rm -f $(infodir)/cppinternals.info* # *************** unstage1 unstage2 unstage3 unstage4: *** 3038,3044 **** mv $$stage/$$i/* $$i/. 2>/dev/null; \ else \ mv $$stage/$$i .; \ ! fi \ done \ fi ; \ rm -f $${stage}_build $${stage}_copy ;\ --- 3086,3092 ---- mv $$stage/$$i/* $$i/. 2>/dev/null; \ else \ mv $$stage/$$i .; \ ! fi; \ done \ fi ; \ rm -f $${stage}_build $${stage}_copy ;\ diff -Nrc3pad gcc-3.0.2/gcc/NEWS gcc-3.0.3/gcc/NEWS *** gcc-3.0.2/gcc/NEWS Tue Oct 23 10:56:23 2001 --- gcc-3.0.3/gcc/NEWS Thu Dec 20 11:56:18 2001 *************** on the line of development that led to G *** 8,22 **** http://gcc.gnu.org/gcc-3.0/gcc-3.0.html June 18, 2001: GCC 3.0 has been released. _________________________________________________________________ ! GCC 3.0.1 ! August 20, 2001 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 3.0.1, which is a bug-fix release following GCC 3.0 ! released on June 18, 2001. 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 --- 8,26 ---- http://gcc.gnu.org/gcc-3.0/gcc-3.0.html June 18, 2001: GCC 3.0 has been released. + August 20, 2001: GCC 3.0.1 has been released. + October 25, 2001: GCC 3.0.2 has been released. + December 20, 2001: GCC 3.0.3 has been released. _________________________________________________________________ ! GCC 3.0.3 ! December 20, 2001 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 3.0.3, which is a bug-fix release following GCC 3.0.2 ! released on October 25, 2001, GCC 3.0.1 released on August 20, 2001, ! and GCC 3.0 released on June 18, 2001. 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 *************** http://gcc.gnu.org/gcc-3.0/gcc-3.0.html *** 47,59 **** Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There are also [12]other ways to contact the FSF. These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to ! [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 2001-10-18. References --- 51,63 ---- Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There are also [12]other ways to contact the FSF. These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to [14]gcc@gnu.org ! or [15]gcc@gcc.gnu.org, send other questions to [16]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 2001-12-20. References *************** References *** 70,77 **** 11. mailto:gnu@gnu.org 12. http://www.gnu.org/home.html#ContactInfo 13. http://gcc.gnu.org/about.html ! 14. mailto:gcc@gcc.gnu.org ! 15. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html --- 74,82 ---- 11. mailto:gnu@gnu.org 12. http://www.gnu.org/home.html#ContactInfo 13. http://gcc.gnu.org/about.html ! 14. mailto:gcc@gnu.org ! 15. mailto:gcc@gcc.gnu.org ! 16. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html *************** http://gcc.gnu.org/gcc-3.0/features.html *** 195,213 **** but not in GCC 3.0. + Fixes for various exception-handling bugs. + A port to the S/390 architecture. _________________________________________________________________ Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There are also [14]other ways to contact the FSF. These pages are maintained by [15]The GCC team. ! Please send comments on these web pages and GCC to ! [16]gcc@gcc.gnu.org, send other questions to [17]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 2001-10-18. References --- 200,235 ---- 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. _________________________________________________________________ Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There are also [14]other ways to contact the FSF. These pages are maintained by [15]The GCC team. ! Please send comments on these web pages and GCC to [16]gcc@gnu.org ! or [17]gcc@gcc.gnu.org, send other questions to [18]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 2001-12-20. References *************** References *** 226,233 **** 13. mailto:gnu@gnu.org 14. http://www.gnu.org/home.html#ContactInfo 15. http://gcc.gnu.org/about.html ! 16. mailto:gcc@gcc.gnu.org ! 17. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html --- 248,256 ---- 13. mailto:gnu@gnu.org 14. http://www.gnu.org/home.html#ContactInfo 15. http://gcc.gnu.org/about.html ! 16. mailto:gcc@gnu.org ! 17. mailto:gcc@gcc.gnu.org ! 18. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 266,278 **** Please send FSF & GNU inquiries & questions to [4]gnu@gnu.org. There are also [5]other ways to contact the FSF. These pages are maintained by [6]The GCC team. ! Please send comments on these web pages and GCC to ! [7]gcc@gcc.gnu.org, send other questions to [8]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 2001-10-18. References --- 289,301 ---- Please send FSF & GNU inquiries & questions to [4]gnu@gnu.org. There are also [5]other ways to contact the FSF. These pages are maintained by [6]The GCC team. ! Please send comments on these web pages and GCC to [7]gcc@gnu.org or ! [8]gcc@gcc.gnu.org, send other questions to [9]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 2001-12-12. References *************** References *** 282,289 **** 4. mailto:gnu@gnu.org 5. http://www.gnu.org/home.html#ContactInfo 6. http://gcc.gnu.org/about.html ! 7. mailto:gcc@gcc.gnu.org ! 8. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.3.html --- 305,313 ---- 4. mailto:gnu@gnu.org 5. http://www.gnu.org/home.html#ContactInfo 6. http://gcc.gnu.org/about.html ! 7. mailto:gcc@gnu.org ! 8. mailto:gcc@gcc.gnu.org ! 9. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.3.html *************** http://gcc.gnu.org/gcc-2.95/gcc-2.95.3.h *** 359,371 **** Please send FSF & GNU inquiries & questions to [15]gnu@gnu.org. There are also [16]other ways to contact the FSF. These pages are maintained by [17]The GCC team. ! Please send comments on these web pages and GCC to ! [18]gcc@gcc.gnu.org, send other questions to [19]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 2001-10-18. References --- 383,395 ---- Please send FSF & GNU inquiries & questions to [15]gnu@gnu.org. There are also [16]other ways to contact the FSF. These pages are maintained by [17]The GCC team. ! Please send comments on these web pages and GCC to [18]gcc@gnu.org ! or [19]gcc@gcc.gnu.org, send other questions to [20]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 2001-12-12. References *************** References *** 386,393 **** 15. mailto:gnu@gnu.org 16. http://www.gnu.org/home.html#ContactInfo 17. http://gcc.gnu.org/about.html ! 18. mailto:gcc@gcc.gnu.org ! 19. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.2.html --- 410,418 ---- 15. mailto:gnu@gnu.org 16. http://www.gnu.org/home.html#ContactInfo 17. http://gcc.gnu.org/about.html ! 18. mailto:gcc@gnu.org ! 19. mailto:gcc@gcc.gnu.org ! 20. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.2.html *************** http://gcc.gnu.org/gcc-2.95/gcc-2.95.2.h *** 519,531 **** Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There are also [15]other ways to contact the FSF. These pages are maintained by [16]The GCC team. ! Please send comments on these web pages and GCC to ! [17]gcc@gcc.gnu.org, send other questions to [18]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 2001-10-18. References --- 544,556 ---- Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There are also [15]other ways to contact the FSF. These pages are maintained by [16]The GCC team. ! Please send comments on these web pages and GCC to [17]gcc@gnu.org ! or [18]gcc@gcc.gnu.org, send other questions to [19]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 2001-12-12. References *************** References *** 545,552 **** 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html ! 17. mailto:gcc@gcc.gnu.org ! 18. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.1.html --- 570,578 ---- 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html ! 17. mailto:gcc@gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.1.html *************** http://gcc.gnu.org/gcc-2.95/gcc-2.95.1.h *** 652,664 **** Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There are also [15]other ways to contact the FSF. These pages are maintained by [16]The GCC team. ! Please send comments on these web pages and GCC to ! [17]gcc@gcc.gnu.org, send other questions to [18]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 2001-10-18. References --- 678,690 ---- Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There are also [15]other ways to contact the FSF. These pages are maintained by [16]The GCC team. ! Please send comments on these web pages and GCC to [17]gcc@gnu.org ! or [18]gcc@gcc.gnu.org, send other questions to [19]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 2001-12-12. References *************** References *** 678,685 **** 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html ! 17. mailto:gcc@gcc.gnu.org ! 18. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.html --- 704,712 ---- 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html ! 17. mailto:gcc@gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/gcc-2.95.html *************** http://gcc.gnu.org/gcc-2.95/gcc-2.95.htm *** 718,743 **** [7]caveats to using GCC 2.95. Download GCC 2.95 from the [8]GNU FTP server (ftp://ftp.gnu.org) ! Download GCC 2.95 from the [9]GCC/EGCS FTP server ! (ftp://go.cygnus.com) ! [10]Find a GNU mirror site ! [11]Find a GCC/EGCS mirror site ! For additional information about GCC please see the [12]GCC project ! web server or contact the [13]GCC development mailing list. _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. ! There are also [15]other ways to contact the FSF. ! These pages are maintained by [16]The GCC team. ! Please send comments on these web pages and GCC to ! [17]gcc@gcc.gnu.org, send other questions to [18]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 2001-10-18. References --- 745,768 ---- [7]caveats to using GCC 2.95. Download GCC 2.95 from the [8]GNU FTP server (ftp://ftp.gnu.org) ! [9]Find a GNU mirror site ! [10]Find a GCC/EGCS mirror site ! For additional information about GCC please see the [11]GCC project ! web server or contact the [12]GCC development mailing list. _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. ! There are also [14]other ways to contact the FSF. ! These pages are maintained by [15]The GCC team. ! Please send comments on these web pages and GCC to [16]gcc@gnu.org ! or [17]gcc@gcc.gnu.org, send other questions to [18]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 2001-12-12. References *************** References *** 749,762 **** 6. http://gcc.gnu.org/thanks.html 7. http://gcc.gnu.org/gcc-2.95/caveats.html 8. ftp://ftp.gnu.org/pub/gnu/gcc/ ! 9. ftp://go.cygnus.com/pub/sourceware.cygnus.com/pub/egcs/releases/index.html ! 10. http://www.gnu.org/order/ftp.html ! 11. http://gcc.gnu.org/mirrors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. mailto:gnu@gnu.org ! 15. http://www.gnu.org/home.html#ContactInfo ! 16. http://gcc.gnu.org/about.html 17. mailto:gcc@gcc.gnu.org 18. mailto:gnu@gnu.org ====================================================================== --- 774,787 ---- 6. http://gcc.gnu.org/thanks.html 7. http://gcc.gnu.org/gcc-2.95/caveats.html 8. ftp://ftp.gnu.org/pub/gnu/gcc/ ! 9. http://www.gnu.org/order/ftp.html ! 10. http://gcc.gnu.org/mirrors.html ! 11. http://gcc.gnu.org/index.html ! 12. mailto:gcc@gcc.gnu.org ! 13. mailto:gnu@gnu.org ! 14. http://www.gnu.org/home.html#ContactInfo ! 15. http://gcc.gnu.org/about.html ! 16. mailto:gcc@gnu.org 17. mailto:gcc@gcc.gnu.org 18. mailto:gnu@gnu.org ====================================================================== *************** http://gcc.gnu.org/gcc-2.95/features.htm *** 832,844 **** 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@gcc.gnu.org, send other questions to [22]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 2001-10-18. References --- 857,869 ---- 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 2001-12-12. References *************** References *** 862,869 **** 18. mailto:gnu@gnu.org 19. http://www.gnu.org/home.html#ContactInfo 20. http://gcc.gnu.org/about.html ! 21. mailto:gcc@gcc.gnu.org ! 22. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/gcc-2.95/caveats.html --- 887,895 ---- 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 ====================================================================== http://gcc.gnu.org/gcc-2.95/caveats.html *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 914,926 **** Please send FSF & GNU inquiries & questions to [4]gnu@gnu.org. There are also [5]other ways to contact the FSF. These pages are maintained by [6]The GCC team. ! Please send comments on these web pages and GCC to ! [7]gcc@gcc.gnu.org, send other questions to [8]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 2001-10-18. References --- 940,952 ---- Please send FSF & GNU inquiries & questions to [4]gnu@gnu.org. There are also [5]other ways to contact the FSF. These pages are maintained by [6]The GCC team. ! Please send comments on these web pages and GCC to [7]gcc@gnu.org or ! [8]gcc@gcc.gnu.org, send other questions to [9]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 2001-12-12. References *************** References *** 930,937 **** 4. mailto:gnu@gnu.org 5. http://www.gnu.org/home.html#ContactInfo 6. http://gcc.gnu.org/about.html ! 7. mailto:gcc@gcc.gnu.org ! 8. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/egcs-1.1.2.html --- 956,964 ---- 4. mailto:gnu@gnu.org 5. http://www.gnu.org/home.html#ContactInfo 6. http://gcc.gnu.org/about.html ! 7. mailto:gcc@gnu.org ! 8. mailto:gcc@gcc.gnu.org ! 9. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/egcs-1.1.2.html *************** http://gcc.gnu.org/egcs-1.1/egcs-1.1.2.h *** 1068,1080 **** Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-10-18. References --- 1095,1107 ---- Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to [10]gcc@gnu.org ! or [11]gcc@gcc.gnu.org, send other questions to [12]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 2001-12-12. References *************** References *** 1087,1094 **** 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/egcs-1.1.1.html --- 1114,1122 ---- 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/egcs-1.1.1.html *************** http://gcc.gnu.org/egcs-1.1/egcs-1.1.1.h *** 1196,1208 **** Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-10-18. References --- 1224,1236 ---- Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to [10]gcc@gnu.org ! or [11]gcc@gcc.gnu.org, send other questions to [12]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 2001-12-12. References *************** References *** 1215,1222 **** 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/egcs-1.1.html --- 1243,1251 ---- 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/egcs-1.1.html *************** http://gcc.gnu.org/egcs-1.1/egcs-1.1.htm *** 1278,1290 **** Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There are also [12]other ways to contact the FSF. These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to ! [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 2001-10-18. References --- 1307,1319 ---- Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There are also [12]other ways to contact the FSF. These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to [14]gcc@gnu.org ! or [15]gcc@gcc.gnu.org, send other questions to [16]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 2001-12-12. References *************** References *** 1301,1308 **** 11. mailto:gnu@gnu.org 12. http://www.gnu.org/home.html#ContactInfo 13. http://gcc.gnu.org/about.html ! 14. mailto:gcc@gcc.gnu.org ! 15. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html --- 1330,1338 ---- 11. mailto:gnu@gnu.org 12. http://www.gnu.org/home.html#ContactInfo 13. http://gcc.gnu.org/about.html ! 14. mailto:gcc@gnu.org ! 15. mailto:gcc@gcc.gnu.org ! 16. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 1377,1389 **** Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There are also [7]other ways to contact the FSF. These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to ! [9]gcc@gcc.gnu.org, send other questions to [10]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 2001-10-18. References --- 1407,1419 ---- Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There are also [7]other ways to contact the FSF. These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to [9]gcc@gnu.org or ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-12-12. References *************** References *** 1395,1402 **** 6. mailto:gnu@gnu.org 7. http://www.gnu.org/home.html#ContactInfo 8. http://gcc.gnu.org/about.html ! 9. mailto:gcc@gcc.gnu.org ! 10. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html --- 1425,1433 ---- 6. mailto:gnu@gnu.org 7. http://www.gnu.org/home.html#ContactInfo 8. http://gcc.gnu.org/about.html ! 9. mailto:gcc@gnu.org ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 1430,1442 **** Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There are also [3]other ways to contact the FSF. These pages are maintained by [4]The GCC team. ! Please send comments on these web pages and GCC to ! [5]gcc@gcc.gnu.org, send other questions to [6]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 2001-10-18. References --- 1461,1473 ---- Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There are also [3]other ways to contact the FSF. These pages are maintained by [4]The GCC team. ! Please send comments on these web pages and GCC to [5]gcc@gnu.org or ! [6]gcc@gcc.gnu.org, send other questions to [7]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 2001-12-12. References *************** References *** 1444,1451 **** 2. mailto:gnu@gnu.org 3. http://www.gnu.org/home.html#ContactInfo 4. http://gcc.gnu.org/about.html ! 5. mailto:gcc@gcc.gnu.org ! 6. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.html --- 1475,1483 ---- 2. mailto:gnu@gnu.org 3. http://www.gnu.org/home.html#ContactInfo 4. http://gcc.gnu.org/about.html ! 5. mailto:gcc@gnu.org ! 6. mailto:gcc@gcc.gnu.org ! 7. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.html *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.h *** 1527,1539 **** Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-10-18. References --- 1559,1571 ---- Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to [10]gcc@gnu.org ! or [11]gcc@gcc.gnu.org, send other questions to [12]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 2001-12-12. References *************** References *** 1546,1553 **** 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.html --- 1578,1586 ---- 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.html *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.h *** 1660,1672 **** Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-10-18. References --- 1693,1705 ---- Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to [10]gcc@gnu.org ! or [11]gcc@gcc.gnu.org, send other questions to [12]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 2001-12-12. References *************** References *** 1679,1686 **** 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.html --- 1712,1720 ---- 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.html *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 1702,1708 **** Many programs failed to link when compiled with EGCS 1.0 on Red Hat 5.0 or on systems with newer versions of glibc2. EGCS 1.0.1 should fix these problems. ! * Compatability with both EGCS 1.0 and GCC 2.8 libgcc exception handling interfaces. To avoid future compatibility problems, we strongly urge anyone who is planning on distributing shared libraries that contain C++ --- 1736,1742 ---- Many programs failed to link when compiled with EGCS 1.0 on Red Hat 5.0 or on systems with newer versions of glibc2. EGCS 1.0.1 should fix these problems. ! * Compatibility with both EGCS 1.0 and GCC 2.8 libgcc exception handling interfaces. To avoid future compatibility problems, we strongly urge anyone who is planning on distributing shared libraries that contain C++ *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 1793,1805 **** Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-10-18. References --- 1827,1839 ---- Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to [10]gcc@gnu.org ! or [11]gcc@gcc.gnu.org, send other questions to [12]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 2001-12-12. References *************** References *** 1812,1819 **** 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.html --- 1846,1854 ---- 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/egcs-1.0.html *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.htm *** 1883,1895 **** Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to ! [10]gcc@gcc.gnu.org, send other questions to [11]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 2001-10-18. References --- 1918,1930 ---- Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are also [8]other ways to contact the FSF. These pages are maintained by [9]The GCC team. ! Please send comments on these web pages and GCC to [10]gcc@gnu.org ! or [11]gcc@gcc.gnu.org, send other questions to [12]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 2001-12-12. References *************** References *** 1902,1909 **** 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gcc.gnu.org ! 11. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/features.html --- 1937,1945 ---- 7. mailto:gnu@gnu.org 8. http://www.gnu.org/home.html#ContactInfo 9. http://gcc.gnu.org/about.html ! 10. mailto:gcc@gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/features.html *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 1950,1962 **** Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There are also [4]other ways to contact the FSF. These pages are maintained by [5]The GCC team. ! Please send comments on these web pages and GCC to ! [6]gcc@gcc.gnu.org, send other questions to [7]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 2001-10-18. References --- 1986,1998 ---- Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There are also [4]other ways to contact the FSF. These pages are maintained by [5]The GCC team. ! Please send comments on these web pages and GCC to [6]gcc@gnu.org or ! [7]gcc@gcc.gnu.org, send other questions to [8]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 2001-12-12. References *************** References *** 1965,1972 **** 3. mailto:gnu@gnu.org 4. http://www.gnu.org/home.html#ContactInfo 5. http://gcc.gnu.org/about.html ! 6. mailto:gcc@gcc.gnu.org ! 7. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html --- 2001,2009 ---- 3. mailto:gnu@gnu.org 4. http://www.gnu.org/home.html#ContactInfo 5. http://gcc.gnu.org/about.html ! 6. mailto:gcc@gnu.org ! 7. mailto:gcc@gcc.gnu.org ! 8. mailto:gnu@gnu.org ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 2002,2014 **** Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There are also [3]other ways to contact the FSF. These pages are maintained by [4]The GCC team. ! Please send comments on these web pages and GCC to ! [5]gcc@gcc.gnu.org, send other questions to [6]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 2001-10-18. References --- 2039,2051 ---- Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There are also [3]other ways to contact the FSF. These pages are maintained by [4]The GCC team. ! Please send comments on these web pages and GCC to [5]gcc@gnu.org or ! [6]gcc@gcc.gnu.org, send other questions to [7]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 2001-12-12. References *************** References *** 2016,2021 **** 2. mailto:gnu@gnu.org 3. http://www.gnu.org/home.html#ContactInfo 4. http://gcc.gnu.org/about.html ! 5. mailto:gcc@gcc.gnu.org ! 6. mailto:gnu@gnu.org ====================================================================== --- 2053,2059 ---- 2. mailto:gnu@gnu.org 3. http://www.gnu.org/home.html#ContactInfo 4. http://gcc.gnu.org/about.html ! 5. mailto:gcc@gnu.org ! 6. mailto:gcc@gcc.gnu.org ! 7. mailto:gnu@gnu.org ====================================================================== diff -Nrc3pad gcc-3.0.2/gcc/acconfig.h gcc-3.0.3/gcc/acconfig.h *** gcc-3.0.2/gcc/acconfig.h Thu Jan 25 13:56:21 2001 --- gcc-3.0.3/gcc/acconfig.h Wed Nov 7 10:42:04 2001 *************** *** 26,31 **** --- 26,34 ---- /* Define to `int' if doesn't define. */ #undef ssize_t + /* Define if cpp should also search $prefix/include. */ + #undef PREFIX_INCLUDE_DIR + @BOTTOM@ /* Bison unconditionally undefines `const' if neither `__STDC__' nor diff -Nrc3pad gcc-3.0.2/gcc/alias.c gcc-3.0.3/gcc/alias.c *** gcc-3.0.2/gcc/alias.c Tue Sep 11 14:39:24 2001 --- gcc-3.0.3/gcc/alias.c Sun Nov 18 00:16:38 2001 *************** rtx_equal_for_memref_p (x, y) *** 1041,1046 **** --- 1041,1049 ---- /* Some RTL can be compared without a recursive examination. */ switch (code) { + case VALUE: + return CSELIB_VAL_PTR (x) == CSELIB_VAL_PTR (y); + case REG: return REGNO (x) == REGNO (y); *************** rtx_equal_for_memref_p (x, y) *** 1109,1114 **** --- 1112,1123 ---- if (rtx_equal_for_memref_p (XEXP (x, i), XEXP (y, i)) == 0) return 0; break; + + /* This can happen for asm operands. */ + case 's': + if (strcmp (XSTR (x, i), XSTR (y, i))) + return 0; + break; /* This can happen for an asm which clobbers memory. */ case '0': diff -Nrc3pad gcc-3.0.2/gcc/c-common.c gcc-3.0.3/gcc/c-common.c *** gcc-3.0.2/gcc/c-common.c Fri Jun 22 12:23:23 2001 --- gcc-3.0.3/gcc/c-common.c Tue Dec 11 14:16:06 2001 *************** combine_strings (strings) *** 401,407 **** wide_flag = 1; } else ! length += (TREE_STRING_LENGTH (t) - 1); } /* If anything is wide, the non-wides will be converted, --- 401,411 ---- wide_flag = 1; } else ! { ! length += (TREE_STRING_LENGTH (t) - 1); ! if (C_ARTIFICIAL_STRING_P (t) && !in_system_header) ! warning ("concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"); ! } } /* If anything is wide, the non-wides will be converted, *************** c_promoting_integer_type_p (t) *** 3554,3560 **** || TYPE_MAIN_VARIANT (t) == signed_char_type_node || TYPE_MAIN_VARIANT (t) == unsigned_char_type_node || TYPE_MAIN_VARIANT (t) == short_integer_type_node ! || TYPE_MAIN_VARIANT (t) == short_unsigned_type_node); case ENUMERAL_TYPE: /* ??? Technically all enumerations not larger than an int --- 3558,3565 ---- || TYPE_MAIN_VARIANT (t) == signed_char_type_node || TYPE_MAIN_VARIANT (t) == unsigned_char_type_node || TYPE_MAIN_VARIANT (t) == short_integer_type_node ! || TYPE_MAIN_VARIANT (t) == short_unsigned_type_node ! || TYPE_PRECISION (t) < TYPE_PRECISION (integer_type_node)); case ENUMERAL_TYPE: /* ??? Technically all enumerations not larger than an int diff -Nrc3pad gcc-3.0.2/gcc/c-common.h gcc-3.0.3/gcc/c-common.h *** gcc-3.0.2/gcc/c-common.h Tue Jun 5 00:46:57 2001 --- gcc-3.0.3/gcc/c-common.h Tue Dec 11 14:16:07 2001 *************** extern tree c_global_trees[CTI_MAX]; *** 215,220 **** --- 215,224 ---- These may be shadowed, and may be referenced from nested functions. */ #define C_DECLARED_LABEL_FLAG(label) TREE_LANG_FLAG_1 (label) + /* Flag strings given by __FUNCTION__ and __PRETTY_FUNCTION__ for a + warning if they undergo concatenation. */ + #define C_ARTIFICIAL_STRING_P(NODE) TREE_LANG_FLAG_0 (NODE) + typedef enum c_language_kind { clk_c, /* A dialect of C: K&R C, ANSI/ISO C89, C2000, diff -Nrc3pad gcc-3.0.2/gcc/c-parse.c gcc-3.0.3/gcc/c-parse.c *** gcc-3.0.2/gcc/c-parse.c Tue Oct 23 10:57:23 2001 --- gcc-3.0.3/gcc/c-parse.c Thu Dec 20 11:57:03 2001 *************** yylexname () *** 4299,4310 **** && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl); /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! yylval.ttype = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); return STRING; } } --- 4299,4313 ---- && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl), str; /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! str = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); ! if (yylval.ttype != func_id_node) ! C_ARTIFICIAL_STRING_P (str) = 1; ! yylval.ttype = str; return STRING; } } diff -Nrc3pad gcc-3.0.2/gcc/c-parse.in gcc-3.0.3/gcc/c-parse.in *** gcc-3.0.2/gcc/c-parse.in Tue Mar 6 17:19:55 2001 --- gcc-3.0.3/gcc/c-parse.in Tue Dec 11 14:17:13 2001 *************** yylexname () *** 3245,3256 **** && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl); /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! yylval.ttype = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); return STRING; } } --- 3245,3259 ---- && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl), str; /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! str = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); ! if (yylval.ttype != func_id_node) ! C_ARTIFICIAL_STRING_P (str) = 1; ! yylval.ttype = str; return STRING; } } diff -Nrc3pad gcc-3.0.2/gcc/c-parse.y gcc-3.0.3/gcc/c-parse.y *** gcc-3.0.2/gcc/c-parse.y Tue Oct 23 10:57:23 2001 --- gcc-3.0.3/gcc/c-parse.y Thu Dec 20 11:57:03 2001 *************** yylexname () *** 2424,2435 **** && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl); /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! yylval.ttype = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); return STRING; } } --- 2424,2438 ---- && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl), str; /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! str = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); ! if (yylval.ttype != func_id_node) ! C_ARTIFICIAL_STRING_P (str) = 1; ! yylval.ttype = str; return STRING; } } diff -Nrc3pad gcc-3.0.2/gcc/c-pragma.c gcc-3.0.3/gcc/c-pragma.c *** gcc-3.0.2/gcc/c-pragma.c Sat Jan 27 17:50:04 2001 --- gcc-3.0.3/gcc/c-pragma.c Mon Nov 12 19:44:36 2001 *************** *** 2,23 **** Copyright (C) 1992, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ! This file is part of GNU CC. ! GNU CC 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. ! GNU CC 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 GNU CC; see the file COPYING. If not, write to ! the Free Software Foundation, 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ #include "config.h" #include "system.h" --- 2,23 ---- Copyright (C) 1992, 1997, 1998, 1999, 2000, 2001 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. */ #include "config.h" #include "system.h" *************** Boston, MA 02111-1307, USA. */ *** 30,39 **** #include "toplev.h" #include "ggc.h" #include "c-lex.h" #include "tm_p.h" ! #define BAD(msgid) do { warning (msgid); return; } while (0) ! #define BAD2(msgid, arg) do { warning (msgid, arg); return; } while (0) #ifdef HANDLE_PRAGMA_PACK static void handle_pragma_pack PARAMS ((cpp_reader *)); --- 30,40 ---- #include "toplev.h" #include "ggc.h" #include "c-lex.h" + #include "output.h" #include "tm_p.h" ! #define GCC_BAD(msgid) do { warning (msgid); return; } while (0) ! #define GCC_BAD2(msgid, arg) do { warning (msgid, arg); return; } while (0) #ifdef HANDLE_PRAGMA_PACK static void handle_pragma_pack PARAMS ((cpp_reader *)); *************** static struct align_stack * alignment_st *** 53,59 **** #pragma pack(push,) is encountered, this stores the value of maximum_field_alignment in effect. When the final pop_alignment() happens, we restore the value to this, not to a value of 0 for ! maximum_field_alignment. Value is in bits. */ static int default_alignment; #define SET_GLOBAL_ALIGNMENT(ALIGN) \ (default_alignment = maximum_field_alignment = (ALIGN)) --- 54,60 ---- #pragma pack(push,) is encountered, this stores the value of maximum_field_alignment in effect. When the final pop_alignment() happens, we restore the value to this, not to a value of 0 for ! maximum_field_alignment. Value is in bits. */ static int default_alignment; #define SET_GLOBAL_ALIGNMENT(ALIGN) \ (default_alignment = maximum_field_alignment = (ALIGN)) *************** push_alignment (alignment, id) *** 84,90 **** /* The current value of maximum_field_alignment is not necessarily 0 since there may be a #pragma pack() in effect; remember it ! so that we can restore it after the final #pragma pop(). */ if (alignment_stack == NULL) default_alignment = maximum_field_alignment; --- 85,91 ---- /* The current value of maximum_field_alignment is not necessarily 0 since there may be a #pragma pack() in effect; remember it ! so that we can restore it after the final #pragma pop(). */ if (alignment_stack == NULL) default_alignment = maximum_field_alignment; *************** mark_align_stack (p) *** 158,166 **** #else /* not HANDLE_PRAGMA_PACK_PUSH_POP */ #define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = (ALIGN)) #define push_alignment(ID, N) \ ! BAD("#pragma pack(push[, id], ) is not supported on this target") #define pop_alignment(ID) \ ! BAD("#pragma pack(pop[, id], ) is not supported on this target") #endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ /* #pragma pack () --- 159,167 ---- #else /* not HANDLE_PRAGMA_PACK_PUSH_POP */ #define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = (ALIGN)) #define push_alignment(ID, N) \ ! GCC_BAD("#pragma pack(push[, id], ) is not supported on this target") #define pop_alignment(ID) \ ! GCC_BAD("#pragma pack(pop[, id], ) is not supported on this target") #endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ /* #pragma pack () *************** handle_pragma_pack (dummy) *** 180,186 **** enum { set, push, pop } action; if (c_lex (&x) != CPP_OPEN_PAREN) ! BAD ("missing '(' after '#pragma pack' - ignored"); token = c_lex (&x); if (token == CPP_CLOSE_PAREN) --- 181,187 ---- enum { set, push, pop } action; if (c_lex (&x) != CPP_OPEN_PAREN) ! GCC_BAD ("missing '(' after '#pragma pack' - ignored"); token = c_lex (&x); if (token == CPP_CLOSE_PAREN) *************** handle_pragma_pack (dummy) *** 193,206 **** align = TREE_INT_CST_LOW (x); action = set; if (c_lex (&x) != CPP_CLOSE_PAREN) ! BAD ("malformed '#pragma pack' - ignored"); } else if (token == CPP_NAME) { ! #define BAD_ACTION do { if (action == push) \ ! BAD ("malformed '#pragma pack(push[, id], )' - ignored"); \ else \ ! BAD ("malformed '#pragma pack(pop[, id])' - ignored"); \ } while (0) const char *op = IDENTIFIER_POINTER (x); --- 194,207 ---- align = TREE_INT_CST_LOW (x); action = set; if (c_lex (&x) != CPP_CLOSE_PAREN) ! GCC_BAD ("malformed '#pragma pack' - ignored"); } else if (token == CPP_NAME) { ! #define GCC_BAD_ACTION do { if (action == push) \ ! GCC_BAD ("malformed '#pragma pack(push[, id], )' - ignored"); \ else \ ! GCC_BAD ("malformed '#pragma pack(pop[, id])' - ignored"); \ } while (0) const char *op = IDENTIFIER_POINTER (x); *************** handle_pragma_pack (dummy) *** 209,219 **** else if (!strcmp (op, "pop")) action = pop; else ! BAD2 ("unknown action '%s' for '#pragma pack' - ignored", op); token = c_lex (&x); if (token != CPP_COMMA && action == push) ! BAD_ACTION; if (token == CPP_COMMA) { --- 210,220 ---- else if (!strcmp (op, "pop")) action = pop; else ! GCC_BAD2 ("unknown action '%s' for '#pragma pack' - ignored", op); token = c_lex (&x); if (token != CPP_COMMA && action == push) ! GCC_BAD_ACTION; if (token == CPP_COMMA) { *************** handle_pragma_pack (dummy) *** 222,228 **** { id = x; if (action == push && c_lex (&x) != CPP_COMMA) ! BAD_ACTION; token = c_lex (&x); } --- 223,229 ---- { id = x; if (action == push && c_lex (&x) != CPP_COMMA) ! GCC_BAD_ACTION; token = c_lex (&x); } *************** handle_pragma_pack (dummy) *** 234,249 **** token = c_lex (&x); } else ! BAD_ACTION; } } if (token != CPP_CLOSE_PAREN) ! BAD_ACTION; ! #undef BAD_ACTION } else ! BAD ("malformed '#pragma pack' - ignored"); if (c_lex (&x) != CPP_EOF) warning ("junk at end of '#pragma pack'"); --- 235,250 ---- token = c_lex (&x); } else ! GCC_BAD_ACTION; } } if (token != CPP_CLOSE_PAREN) ! GCC_BAD_ACTION; ! #undef GCC_BAD_ACTION } else ! GCC_BAD ("malformed '#pragma pack' - ignored"); if (c_lex (&x) != CPP_EOF) warning ("junk at end of '#pragma pack'"); *************** handle_pragma_pack (dummy) *** 260,266 **** align *= BITS_PER_UNIT; break; default: ! BAD2 ("alignment must be a small power of two, not %d", align); } switch (action) --- 261,267 ---- align *= BITS_PER_UNIT; break; default: ! GCC_BAD2 ("alignment must be a small power of two, not %d", align); } switch (action) *************** handle_pragma_weak (dummy) *** 286,297 **** value = 0; if (c_lex (&name) != CPP_NAME) ! BAD ("malformed #pragma weak, ignored"); t = c_lex (&x); if (t == CPP_EQ) { if (c_lex (&value) != CPP_NAME) ! BAD ("malformed #pragma weak, ignored"); t = c_lex (&x); } if (t != CPP_EOF) --- 287,298 ---- value = 0; if (c_lex (&name) != CPP_NAME) ! GCC_BAD ("malformed #pragma weak, ignored"); t = c_lex (&x); if (t == CPP_EQ) { if (c_lex (&value) != CPP_NAME) ! GCC_BAD ("malformed #pragma weak, ignored"); t = c_lex (&x); } if (t != CPP_EOF) diff -Nrc3pad gcc-3.0.2/gcc/combine.c gcc-3.0.3/gcc/combine.c *** gcc-3.0.2/gcc/combine.c Fri Jul 13 09:39:35 2001 --- gcc-3.0.3/gcc/combine.c Mon Nov 5 11:10:32 2001 *************** make_compound_operation (x, in_code) *** 6559,6566 **** case LSHIFTRT: /* If the sign bit is known to be zero, replace this with an arithmetic shift. */ ! if (ashr_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing ! && lshr_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing && mode_width <= HOST_BITS_PER_WIDE_INT && (nonzero_bits (XEXP (x, 0), mode) & (1 << (mode_width - 1))) == 0) { --- 6559,6566 ---- case LSHIFTRT: /* If the sign bit is known to be zero, replace this with an arithmetic shift. */ ! if (ashr_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing ! && lshr_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing && mode_width <= HOST_BITS_PER_WIDE_INT && (nonzero_bits (XEXP (x, 0), mode) & (1 << (mode_width - 1))) == 0) { *************** simplify_comparison (code, pop0, pop1) *** 11140,11146 **** /* If OP0 is an AND and we don't have an AND in MODE either, make a new AND in the proper mode. */ if (GET_CODE (op0) == AND ! && (add_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing)) op0 = gen_binary (AND, tmode, gen_lowpart_for_combine (tmode, --- 11140,11146 ---- /* If OP0 is an AND and we don't have an AND in MODE either, make a new AND in the proper mode. */ if (GET_CODE (op0) == AND ! && (and_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing)) op0 = gen_binary (AND, tmode, gen_lowpart_for_combine (tmode, diff -Nrc3pad gcc-3.0.2/gcc/config/arm/arm.h gcc-3.0.3/gcc/config/arm/arm.h *** gcc-3.0.2/gcc/config/arm/arm.h Thu May 24 14:03:58 2001 --- gcc-3.0.3/gcc/config/arm/arm.h Fri Dec 7 01:49:23 2001 *************** extern const char * structure_size_strin *** 896,903 **** --- 896,914 ---- /* Return the regiser number of the N'th (integer) argument. */ #define ARG_REGISTER(N) (N - 1) + #if 0 /* FIXME: The ARM backend has special code to handle structure + returns, and will reserve its own hidden first argument. So + if this macro is enabled a *second* hidden argument will be + reserved, which will break binary compatability with old + toolchains and also thunk handling. One day this should be + fixed. */ /* RTX for structure returns. NULL means use a hidden first argument. */ #define STRUCT_VALUE 0 + #else + /* Register in which address to store a structure value + is passed to a function. */ + #define STRUCT_VALUE_REGNUM ARG_REGISTER (1) + #endif /* Specify the registers used for certain standard purposes. The values of these macros are register numbers. */ diff -Nrc3pad gcc-3.0.2/gcc/config/elfos.h gcc-3.0.3/gcc/config/elfos.h *** gcc-3.0.2/gcc/config/elfos.h Mon Apr 16 11:25:40 2001 --- gcc-3.0.3/gcc/config/elfos.h Fri Dec 7 13:10:58 2001 *************** along with GNU CC; see the file COPYING. *** 21,26 **** --- 21,30 ---- the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + /* Define a symbol indicating that we are using elfos.h. */ + #define USING_ELFOS_H + /* The prefix to add to user-visible assembler symbols. For ELF systems the convention is *not* to prepend a leading diff -Nrc3pad gcc-3.0.2/gcc/config/fp-bit.h gcc-3.0.3/gcc/config/fp-bit.h *** gcc-3.0.2/gcc/config/fp-bit.h Fri Feb 2 03:02:05 2001 --- gcc-3.0.3/gcc/config/fp-bit.h Thu Nov 8 10:56:00 2001 *************** typedef unsigned int UDItype __attribute *** 163,168 **** --- 163,169 ---- # define multiply fpmul # define divide fpdiv # define compare fpcmp + # define usi_to_float __floatunsisf # define si_to_float sitofp # define float_to_si fptosi # define float_to_usi fptoui *************** typedef unsigned int UDItype __attribute *** 175,180 **** --- 176,182 ---- # define multiply dpmul # define divide dpdiv # define compare dpcmp + # define usi_to_float __floatunsidf # define si_to_float litodp # define float_to_si dptoli # define float_to_usi dptoul diff -Nrc3pad gcc-3.0.2/gcc/config/freebsd.h gcc-3.0.3/gcc/config/freebsd.h *** gcc-3.0.2/gcc/config/freebsd.h Wed May 30 16:05:30 2001 --- gcc-3.0.3/gcc/config/freebsd.h Sat Nov 3 12:28:24 2001 *************** Boston, MA 02111-1307, USA. */ *** 27,32 **** --- 27,35 ---- Loren J. Rittle . */ + /* To help with rs6000/sysv4.h carnal knowledge problem. */ + #define _USING_CONFIG_FREEBSD 1 + /* This defines which switch letters take arguments. On FreeBSD, most of the normal cases (defined in gcc.c) apply, and we also have -h* and -z* options (for the linker) (coming from SVR4). *************** Boston, MA 02111-1307, USA. */ *** 38,78 **** || (CHAR) == 'z' /* ignored by ld */ \ || (CHAR) == 'R') ! #undef SWITCH_TAKES_ARG #define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR)) #define FBSD_WORD_SWITCH_TAKES_ARG(STR) \ (DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \ || !strcmp ((STR), "rpath") || !strcmp ((STR), "rpath-link") \ || !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \ || !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker")) ! #undef WORD_SWITCH_TAKES_ARG #define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR)) #if FBSD_MAJOR == 6 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=6 -Dunix -D__ELF__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #if FBSD_MAJOR == 5 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=5 -Dunix -D__ELF__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #if FBSD_MAJOR == 4 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=4 -Dunix -D__ELF__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #if FBSD_MAJOR == 3 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=3 -Dunix -D__ELF__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #ifndef FBSD_CPP_PREDEFINES #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__ -Dunix -D__ELF__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #undef CPP_PREDEFINES --- 41,83 ---- || (CHAR) == 'z' /* ignored by ld */ \ || (CHAR) == 'R') ! #undef SWITCH_TAKES_ARG #define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR)) + /* This defines which multi-letter switches take arguments. */ + #define FBSD_WORD_SWITCH_TAKES_ARG(STR) \ (DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \ || !strcmp ((STR), "rpath") || !strcmp ((STR), "rpath-link") \ || !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \ || !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker")) ! #undef WORD_SWITCH_TAKES_ARG #define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR)) #if FBSD_MAJOR == 6 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=6 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #if FBSD_MAJOR == 5 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=5 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #if FBSD_MAJOR == 4 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=4 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #if FBSD_MAJOR == 3 #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__=3 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #ifndef FBSD_CPP_PREDEFINES #define FBSD_CPP_PREDEFINES \ ! "-D__FreeBSD__ -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" #endif #undef CPP_PREDEFINES *************** Boston, MA 02111-1307, USA. */ *** 81,91 **** /* Provide a CPP_SPEC appropriate for FreeBSD. We just deal with the GCC option `-posix', and PIC issues. */ ! #undef CPP_SPEC ! #define CPP_SPEC "%(cpp_cpu) \ %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ %{posix:-D_POSIX_SOURCE}" /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as required by the user-land thread model. Before __FreeBSD_version 500016, select the appropriate libc, depending on whether we're --- 86,120 ---- /* Provide a CPP_SPEC appropriate for FreeBSD. We just deal with the GCC option `-posix', and PIC issues. */ ! #define FBSD_CPP_SPEC " \ ! %(cpp_cpu) \ %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ %{posix:-D_POSIX_SOURCE}" + #undef CPP_SPEC + #define CPP_SPEC FBSD_CPP_SPEC + + /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add + the magical crtbegin.o file (see crtstuff.c) which provides part + of the support for getting C++ file-scope static object constructed + before entering `main'. */ + + #define FBSD_STARTFILE_SPEC \ + "%{!shared: \ + %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ + %{!p:%{profile:gcrt1.o%s} \ + %{!profile:crt1.o%s}}}} \ + crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" + + /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on + the magical crtend.o file (see crtstuff.c) which provides part of + the support for getting C++ file-scope static object constructed + before entering `main', followed by a normal "finalizer" file, + `crtn.o'. */ + + #define FBSD_ENDFILE_SPEC \ + "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" + /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as required by the user-land thread model. Before __FreeBSD_version 500016, select the appropriate libc, depending on whether we're *************** Boston, MA 02111-1307, USA. */ *** 100,108 **** misconfigured the gcc bootstrap but are later consulting FreeBSD manual pages that refer to the mythical -pthread option). */ ! #undef LIB_SPEC #ifdef FBSD_NO_THREADS ! #define LIB_SPEC " \ %{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \ is built with the --enable-threads configure-time option.} \ %{!shared: \ --- 129,140 ---- misconfigured the gcc bootstrap but are later consulting FreeBSD manual pages that refer to the mythical -pthread option). */ ! /* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate ! libc, depending on whether we're doing profiling or need threads support. ! (simular to the default, except no -lg, and no -p). */ ! #ifdef FBSD_NO_THREADS ! #define FBSD_LIB_SPEC " \ %{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \ is built with the --enable-threads configure-time option.} \ %{!shared: \ *************** is built with the --enable-threads confi *** 111,123 **** }" #else #if FBSD_MAJOR >= 5 ! #define LIB_SPEC " \ %{!shared: \ %{!pg: %{pthread:-lc_r} -lc} \ %{pg: %{pthread:-lc_r_p} -lc_p} \ }" #else ! #define LIB_SPEC " \ %{!shared: \ %{!pg: \ %{!pthread:-lc} \ --- 143,155 ---- }" #else #if FBSD_MAJOR >= 5 ! #define FBSD_LIB_SPEC " \ %{!shared: \ %{!pg: %{pthread:-lc_r} -lc} \ %{pg: %{pthread:-lc_r_p} -lc_p} \ }" #else ! #define FBSD_LIB_SPEC " \ %{!shared: \ %{!pg: \ %{!pthread:-lc} \ *************** is built with the --enable-threads confi *** 129,181 **** #endif #endif ! /* Code generation parameters. */ - /* Make gcc agree with . */ ! #undef WCHAR_TYPE #define WCHAR_TYPE "int" ! #undef WCHAR_UNSIGNED ! #define WCHAR_UNSIGNED 0 /* Don't default to pcc-struct-return, because gcc is the only compiler, and we want to retain compatibility with older gcc versions (even though the SVR4 ABI for the i386 says that records and unions are returned in memory). */ ! #undef DEFAULT_PCC_STRUCT_RETURN #define DEFAULT_PCC_STRUCT_RETURN 0 ! /* Ensure we the configuration knows our system correctly so we can link with ! libraries compiled with the native cc. */ #undef NO_DOLLAR_IN_LABEL /* Use more efficient ``thunks'' to implement C++ vtables. */ #undef DEFAULT_VTABLE_THUNKS #define DEFAULT_VTABLE_THUNKS 1 ! /* The GNU tools operate better with dwarf2 than stabs. Since we ! don't have any native tools to be compatible with, default to ! dwarf2. */ ! #undef PREFERRED_DEBUGGING_TYPE ! #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG ! #undef IDENT_ASM_OP #define IDENT_ASM_OP "\t.ident\t" /* Output #ident as a .ident. */ ! #undef ASM_OUTPUT_IDENT #define ASM_OUTPUT_IDENT(FILE, NAME) \ fprintf ((FILE), "%s\"%s\"\n", IDENT_ASM_OP, (NAME)); ! /* Miscellaneous parameters. */ ! /* Don't assume anything about the header files. */ ! #undef NO_IMPLICIT_EXTERN_C ! #define NO_IMPLICIT_EXTERN_C ! /* Allow #sccs in preprocessor. */ ! #define SCCS_DIRECTIVE ! /* Handle #pragma weak and #pragma pack. */ ! #define HANDLE_SYSV_PRAGMA --- 161,238 ---- #endif #endif ! #undef LIB_SPEC ! #define LIB_SPEC FBSD_LIB_SPEC ! /************************[ Target stuff ]***********************************/ ! ! /* Don't assume anything about the header files. */ ! #undef NO_IMPLICIT_EXTERN_C ! #define NO_IMPLICIT_EXTERN_C ! ! /* Allow #sccs in preprocessor. */ ! #undef SCCS_DIRECTIVE ! #define SCCS_DIRECTIVE ! ! /* Make gcc agree with FreeBSD's standard headers (, etc...) */ ! ! #undef WCHAR_TYPE #define WCHAR_TYPE "int" ! /* Code generation parameters. */ /* Don't default to pcc-struct-return, because gcc is the only compiler, and we want to retain compatibility with older gcc versions (even though the SVR4 ABI for the i386 says that records and unions are returned in memory). */ ! #undef DEFAULT_PCC_STRUCT_RETURN #define DEFAULT_PCC_STRUCT_RETURN 0 ! /* Use periods rather than dollar signs in special g++ assembler names. ! This ensures the configuration knows our system correctly so we can link ! with libraries compiled with the native cc. */ #undef NO_DOLLAR_IN_LABEL + /* The prefix to add to user-visible assembler symbols. + For System V Release 4 & ELF the convention is *not* to prepend a leading + underscore onto user-level symbol names. Some CPU files such as + config/sparc/sparc.h set this wrong for ELF. */ + + #undef USER_LABEL_PREFIX + #define USER_LABEL_PREFIX "" + + /* Handle #pragma weak and #pragma pack. */ + #undef HANDLE_SYSV_PRAGMA + #define HANDLE_SYSV_PRAGMA + /* Use more efficient ``thunks'' to implement C++ vtables. */ #undef DEFAULT_VTABLE_THUNKS #define DEFAULT_VTABLE_THUNKS 1 ! /************************[ Assembler stuff ]********************************/ ! #undef IDENT_ASM_OP #define IDENT_ASM_OP "\t.ident\t" /* Output #ident as a .ident. */ ! ! #undef ASM_OUTPUT_IDENT #define ASM_OUTPUT_IDENT(FILE, NAME) \ fprintf ((FILE), "%s\"%s\"\n", IDENT_ASM_OP, (NAME)); ! /************************[ Debugger stuff ]*********************************/ ! /* All ELF targets can support DWARF-2. */ ! #undef DWARF2_DEBUGGING_INFO ! #define DWARF2_DEBUGGING_INFO ! /* This is BSD, so we want the DBX format. */ ! #undef DBX_DEBUGGING_INFO ! #define DBX_DEBUGGING_INFO ! /* Even though this is BSD, ELF and the GNU tools operates better with dwarf2 ! than stabs. Since we don't have any native tools to be compatible with, ! defaulting to dwarf2 is OK. */ ! #undef PREFERRED_DEBUGGING_TYPE ! #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG diff -Nrc3pad gcc-3.0.2/gcc/config/h8300/h8300.c gcc-3.0.3/gcc/config/h8300/h8300.c *** gcc-3.0.2/gcc/config/h8300/h8300.c Thu Aug 30 11:06:05 2001 --- gcc-3.0.3/gcc/config/h8300/h8300.c Thu Nov 15 06:50:57 2001 *************** dosize (file, op, size) *** 167,172 **** --- 167,173 ---- subs since this shouldn't happen often. */ if ((TARGET_H8300 && size <= 4) || ((TARGET_H8300H || TARGET_H8300S) && size <= 8) + || (TARGET_H8300 && interrupt_handler) || (TARGET_H8300 && current_function_needs_context && ! strcmp (op, "sub"))) { *************** h8300_encode_label (decl) *** 3072,3084 **** { const char *str = XSTR (XEXP (DECL_RTL (decl), 0), 0); int len = strlen (str); ! char *newstr; ! newstr = ggc_alloc_string (NULL, len + 1); ! strcpy (newstr + 1, str); ! *newstr = '&'; ! XSTR (XEXP (DECL_RTL (decl), 0), 0) = newstr; } const char * --- 3073,3085 ---- { const char *str = XSTR (XEXP (DECL_RTL (decl), 0), 0); int len = strlen (str); ! char *newstr = alloca (len + 2); ! newstr[0] = '&'; ! strcpy (&newstr[1], str); ! XSTR (XEXP (DECL_RTL (decl), 0), 0) = ! ggc_alloc_string (newstr, len + 1); } const char * diff -Nrc3pad gcc-3.0.2/gcc/config/h8300/h8300.md gcc-3.0.3/gcc/config/h8300/h8300.md *** gcc-3.0.2/gcc/config/h8300/h8300.md Wed Aug 29 09:22:51 2001 --- gcc-3.0.3/gcc/config/h8300/h8300.md Thu Nov 15 12:52:24 2001 *************** *** 480,510 **** ;; ---------------------------------------------------------------------- (define_insn "" ! [(set (cc0) (zero_extract:QI (match_operand:QI 0 "bit_memory_operand" "rU") (const_int 1) ! (match_operand:QI 1 "const_int_operand" "n")))] "" "btst %Z1,%R0" ! [(set_attr "length" "2") ! (set_attr "cc" "set_zn")]) (define_insn "" ! [(set (cc0) (zero_extract:HI (match_operand:QI 0 "bit_memory_operand" "rU") (const_int 1) ! (match_operand:QI 1 "const_int_operand" "n")))] "" "btst %Z1,%Y0" ! [(set_attr "length" "2") ! (set_attr "cc" "set_zn")]) (define_insn "" ! [(set (cc0) (zero_extract:SI (match_operand:QI 0 "bit_memory_operand" "rU") (const_int 1) ! (match_operand:QI 1 "const_int_operand" "n")))] "" "btst %Z1,%Y0" ! [(set_attr "length" "2") ! (set_attr "cc" "set_zn")]) (define_insn "" [(set (cc0) (zero_extract:QI (match_operand:HI 0 "register_operand" "r") --- 480,510 ---- ;; ---------------------------------------------------------------------- (define_insn "" ! [(set (cc0) (zero_extract:QI (match_operand:QI 0 "bit_memory_operand" "r,U") (const_int 1) ! (match_operand:QI 1 "const_int_operand" "n,n")))] "" "btst %Z1,%R0" ! [(set_attr "length" "2,8") ! (set_attr "cc" "set_zn,set_zn")]) (define_insn "" ! [(set (cc0) (zero_extract:HI (match_operand:QI 0 "bit_memory_operand" "r,U") (const_int 1) ! (match_operand:QI 1 "const_int_operand" "n,n")))] "" "btst %Z1,%Y0" ! [(set_attr "length" "2,8") ! (set_attr "cc" "set_zn,set_zn")]) (define_insn "" ! [(set (cc0) (zero_extract:SI (match_operand:QI 0 "bit_memory_operand" "r,U") (const_int 1) ! (match_operand:QI 1 "const_int_operand" "n,n")))] "" "btst %Z1,%Y0" ! [(set_attr "length" "2,8") ! (set_attr "cc" "set_zn,set_zn")]) (define_insn "" [(set (cc0) (zero_extract:QI (match_operand:HI 0 "register_operand" "r") *************** *** 953,959 **** "@ and %X2,%X0 bclr %W2,%R0" ! [(set_attr "length" "2,4") (set_attr "adjust_length" "no") (set_attr "cc" "set_znv,none_0hit")]) --- 953,959 ---- "@ and %X2,%X0 bclr %W2,%R0" ! [(set_attr "length" "2,8") (set_attr "adjust_length" "no") (set_attr "cc" "set_znv,none_0hit")]) *************** *** 1058,1064 **** "@ or %X2,%X0 bset %V2,%R0" ! [(set_attr "length" "2,4") (set_attr "adjust_length" "no") (set_attr "cc" "set_znv,none_0hit")]) --- 1058,1064 ---- "@ or %X2,%X0 bset %V2,%R0" ! [(set_attr "length" "2,8") (set_attr "adjust_length" "no") (set_attr "cc" "set_znv,none_0hit")]) *************** *** 1145,1151 **** "@ xor %X2,%X0 bnot %V2,%R0" ! [(set_attr "length" "2,4") (set_attr "adjust_length" "no") (set_attr "cc" "set_znv,none_0hit")]) --- 1145,1151 ---- "@ xor %X2,%X0 bnot %V2,%R0" ! [(set_attr "length" "2,8") (set_attr "adjust_length" "no") (set_attr "cc" "set_znv,none_0hit")]) diff -Nrc3pad gcc-3.0.2/gcc/config/i386/cygwin.h gcc-3.0.3/gcc/config/i386/cygwin.h *** gcc-3.0.2/gcc/config/i386/cygwin.h Sun Oct 14 08:45:00 2001 --- gcc-3.0.3/gcc/config/i386/cygwin.h Sat Nov 17 09:39:20 2001 *************** Boston, MA 02111-1307, USA. */ *** 64,87 **** #define CPP_PREDEFINES "-D_X86_=1 -Asystem=winnt" #ifdef CROSS_COMPILE ! #define CYGWIN_INCLUDES "-idirafter " CYGWIN_CROSS_DIR "/include" ! #define W32API_INC "-idirafter " CYGWIN_CROSS_DIR "/include/w32api" #define W32API_LIB "-L" CYGWIN_CROSS_DIR "/lib/w32api/" #define CYGWIN_LIB CYGWIN_CROSS_DIR "/lib" #define MINGW_LIBS "-L" CYGWIN_CROSS_DIR "/lib/mingw" ! #define MINGW_INCLUDES "-isystem " CYGWIN_CROSS_DIR "/include/mingw/g++-3 "\ "-isystem " CYGWIN_CROSS_DIR "/include/mingw/g++ "\ ! "-idirafter " CYGWIN_CROSS_DIR "/include/mingw" #else ! #define CYGWIN_INCLUDES "-isystem /usr/local/include -idirafter /usr/include" ! #define W32API_INC "-idirafter /usr/include/w32api" ! #define W32API_LIB "-L/usr/lib/w32api/" #define CYGWIN_LIB "/usr/lib" #define MINGW_LIBS "-L/usr/local/lib/mingw -L/usr/lib/mingw" ! #define MINGW_INCLUDES "-isystem /usr/include/mingw/g++-3 "\ "-isystem /usr/include/mingw/g++ "\ ! "-isystem /usr/local/include/mingw " \ ! "-idirafter /usr/include/mingw" #endif /* Support the __declspec keyword by turning them into attributes. --- 64,92 ---- #define CPP_PREDEFINES "-D_X86_=1 -Asystem=winnt" #ifdef CROSS_COMPILE ! #define CYGWIN_INCLUDES "%{!nostdinc:-idirafter " CYGWIN_CROSS_DIR "/include}" ! #define W32API_INC "%{!nostdinc:-idirafter " CYGWIN_CROSS_DIR "/include/w32api}" #define W32API_LIB "-L" CYGWIN_CROSS_DIR "/lib/w32api/" #define CYGWIN_LIB CYGWIN_CROSS_DIR "/lib" #define MINGW_LIBS "-L" CYGWIN_CROSS_DIR "/lib/mingw" ! #define MINGW_INCLUDES "%{!nostdinc:-isystem " CYGWIN_CROSS_DIR "/include/mingw/g++-3 "\ "-isystem " CYGWIN_CROSS_DIR "/include/mingw/g++ "\ ! "-idirafter " CYGWIN_CROSS_DIR "/include/mingw}" #else ! #define CYGWIN_INCLUDES "%{!nostdinc:-isystem /usr/local/include "\ ! "-idirafter " CYGWIN_CROSS_DIR "/include "\ ! "-idirafter /usr/include}" ! #define W32API_INC "%{!nostdinc:"\ ! "-idirafter " CYGWIN_CROSS_DIR "/include/w32api "\ ! "-idirafter /usr/include/w32api}" ! #define W32API_LIB "-L" CYGWIN_CROSS_DIR "/lib/w32api/ -L/usr/lib/w32api/" #define CYGWIN_LIB "/usr/lib" #define MINGW_LIBS "-L/usr/local/lib/mingw -L/usr/lib/mingw" ! #define MINGW_INCLUDES "%{!nostdinc:-isystem /usr/include/mingw/g++-3 "\ "-isystem /usr/include/mingw/g++ "\ ! "-isystem /usr/local/include/mingw "\ ! "-idirafter " CYGWIN_CROSS_DIR "/include/mingw "\ ! "-idirafter /usr/include/mingw}" #endif /* Support the __declspec keyword by turning them into attributes. *************** Boston, MA 02111-1307, USA. */ *** 111,118 **** #undef STARTFILE_SPEC #define STARTFILE_SPEC "\ ! %{shared|mdll: %{mno-cygwin:" MINGW_LIBS " mingw/dllcrt2%O%s}}\ ! %{!shared: %{!mdll: %{!mno-cygwin:crt0%O%s} %{mno-cygwin:" MINGW_LIBS " mingw/crt2%O%s}\ %{pg:gcrt0%O%s}}}\ " --- 116,123 ---- #undef STARTFILE_SPEC #define STARTFILE_SPEC "\ ! %{shared|mdll: %{mno-cygwin:" MINGW_LIBS " dllcrt2%O%s}}\ ! %{!shared: %{!mdll: %{!mno-cygwin:crt0%O%s} %{mno-cygwin:" MINGW_LIBS " crt2%O%s}\ %{pg:gcrt0%O%s}}}\ " diff -Nrc3pad gcc-3.0.2/gcc/config/i386/i386.c gcc-3.0.3/gcc/config/i386/i386.c *** gcc-3.0.2/gcc/config/i386/i386.c Fri Sep 14 10:11:12 2001 --- gcc-3.0.3/gcc/config/i386/i386.c Thu Nov 29 13:48:41 2001 *************** print_operand (file, x, code) *** 3566,3571 **** --- 3566,3578 ---- /* Like above, but reverse condition */ case 'c': + /* Check to see if argument to %c is really a constant + and not a condition code which needs to be reversed. */ + if (GET_RTX_CLASS (GET_CODE (x)) != '<') + { + output_operand_lossage ("operand is neither a constant nor a condition code, invalid operand code 'c'"); + return; + } put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 1, 0, file); return; case 'f': diff -Nrc3pad gcc-3.0.2/gcc/config/i386/i386.md gcc-3.0.3/gcc/config/i386/i386.md *** gcc-3.0.2/gcc/config/i386/i386.md Fri Oct 5 12:45:34 2001 --- gcc-3.0.3/gcc/config/i386/i386.md Mon Nov 26 13:59:47 2001 *************** *** 10917,10923 **** LABEL_NUSES (label) = 1; } if (align > 1 && count > 0 && (count & 1)) ! emit_insn (gen_strmovsi (destreg, srcreg)); if (align <= 1 || count < 0) { rtx label = gen_label_rtx (); --- 10917,10923 ---- LABEL_NUSES (label) = 1; } if (align > 1 && count > 0 && (count & 1)) ! emit_insn (gen_strmovqi (destreg, srcreg)); if (align <= 1 || count < 0) { rtx label = gen_label_rtx (); diff -Nrc3pad gcc-3.0.2/gcc/config/i386/sol2.h gcc-3.0.3/gcc/config/i386/sol2.h *** gcc-3.0.2/gcc/config/i386/sol2.h Fri Sep 28 14:31:01 2001 --- gcc-3.0.3/gcc/config/i386/sol2.h Tue Nov 27 08:11:34 2001 *************** Boston, MA 02111-1307, USA. */ *** 69,74 **** --- 69,81 ---- (flag_pic ? (GLOBAL ? DW_EH_PE_indirect : 0) | DW_EH_PE_datarel \ : DW_EH_PE_absptr) + /* Solaris 2/Intel uses a wint_t different from the default, as on SPARC. */ + #undef WINT_TYPE + #define WINT_TYPE "long int" + + #undef WINT_TYPE_SIZE + #define WINT_TYPE_SIZE BITS_PER_WORD + /* Add "sun" to the list of symbols defined for SVR4. */ #undef CPP_PREDEFINES #define CPP_PREDEFINES \ diff -Nrc3pad gcc-3.0.2/gcc/config/ia64/elf.h gcc-3.0.3/gcc/config/ia64/elf.h *** gcc-3.0.2/gcc/config/ia64/elf.h Wed Mar 8 16:26:04 2000 --- gcc-3.0.3/gcc/config/ia64/elf.h Sat Nov 3 12:28:24 2001 *************** *** 1,8 **** /* Definitions for embedded ia64-elf target. */ ! #include "ia64/ia64.h" ! #include "elfos.h" ! #include "sysv4.h" /* svr4.h links with crti.o/crtn.o, but elfos.h does not. We override elfos.h so that we can use the standard ELF Unix method. */ --- 1,44 ---- /* Definitions for embedded ia64-elf target. */ ! /* This macro is a C statement to print on `stderr' a string describing the ! particular machine description choice. */ ! ! #define TARGET_VERSION fprintf (stderr, " (IA-64) ELF"); ! ! /* Define this to be a string constant containing `-D' options to define the ! predefined macros that identify this machine and system. These macros will ! be predefined unless the `-ansi' option is specified. */ ! /* ??? This is undefed in svr4.h. */ ! #define CPP_PREDEFINES "-Dia64 -Amachine=ia64" ! ! /* A C string constant that tells the GNU CC driver program options to pass to ! the assembler. It can also specify how to translate options you give to GNU ! CC into options for GNU CC to pass to the assembler. */ ! ! #if ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GNU_AS) != 0 ! /* GNU AS. */ ! #define ASM_SPEC \ ! "%{mno-gnu-as:-N so} %{!mno-gnu-as:-x} %{mconstant-gp} %{mauto-pic}" ! #else ! /* Intel ias. */ ! #define ASM_SPEC \ ! "%{!mgnu-as:-N so} %{mgnu-as:-x} %{mconstant-gp:-M const_gp}\ ! %{mauto-pic:-M no_plabel}" ! #endif ! ! /* A C string constant that tells the GNU CC driver program options to pass to ! the linker. It can also specify how to translate options you give to GNU CC ! into options for GNU CC to pass to the linker. */ ! ! /* The Intel linker does not support dynamic linking, so we need -dn. ! The Intel linker gives annoying messages unless -N so is used. */ ! #if ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GNU_LD) != 0 ! /* GNU LD. */ ! #define LINK_SPEC "%{mno-gnu-ld:-dn -N so}" ! #else ! /* Intel ild. */ ! #define LINK_SPEC "%{!mgnu-ld:-dn -N so}" ! #endif /* svr4.h links with crti.o/crtn.o, but elfos.h does not. We override elfos.h so that we can use the standard ELF Unix method. */ diff -Nrc3pad gcc-3.0.2/gcc/config/ia64/freebsd.h gcc-3.0.3/gcc/config/ia64/freebsd.h *** gcc-3.0.2/gcc/config/ia64/freebsd.h Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/config/ia64/freebsd.h Mon Nov 12 08:30:39 2001 *************** *** 0 **** --- 1,89 ---- + /* Definitions for Intel IA-64 running FreeBSD using the ELF format + Copyright (C) 2001 Free Software Foundation, Inc. + Contributed by David E. O'Brien and BSDi. + + This file is part of GNU CC. + + GNU CC 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. + + GNU CC 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 GNU CC; see the file COPYING. If not, write to + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + + #undef LINK_SPEC + #define LINK_SPEC \ + "%{p:%e`-p' not supported; use `-pg' and gprof(1)} \ + %{Wl,*:%*} \ + %{assert*} %{R*} %{rpath*} %{defsym*} \ + %{shared:-Bshareable %{h*} %{soname*}} \ + %{symbolic:-Bsymbolic} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ + %{static:-Bstatic}}" + + #undef ASM_SPEC + #define ASM_SPEC "-x %{mconstant-gp} %{mauto-pic}" + + + /************************[ Target stuff ]***********************************/ + + /* Define the actual types of some ANSI-mandated types. + Needs to agree with . GCC defaults come from c-decl.c, + c-common.c, and config//.h. */ + + /* Earlier headers may get this wrong for FreeBSD. + We use the GCC defaults instead. */ + #undef WCHAR_TYPE + + #undef WCHAR_UNSIGNED + #define WCHAR_UNSIGNED 0 + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 + + #undef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (FreeBSD/IA-64 ELF)"); + + #define TARGET_ELF 1 + + #define DONT_USE_BUILTIN_SETJMP + #define JMP_BUF_SIZE 76 + + /* Output any profiling code before the prologue. */ + + #undef PROFILE_BEFORE_PROLOGUE + #define PROFILE_BEFORE_PROLOGUE 1 + + /* A C statement or compound statement to output to FILE some assembler code to + call the profiling subroutine `mcount'. */ + + #undef FUNCTION_PROFILER + #define FUNCTION_PROFILER(FILE, LABELNO) \ + do { \ + char buf[20]; \ + ASM_GENERATE_INTERNAL_LABEL (buf, "LP", LABELNO); \ + fputs ("\talloc out0 = ar.pfs, 8, 0, 4, 0\n", FILE); \ + if (TARGET_AUTO_PIC) \ + fputs ("\tmovl out3 = @gprel(", FILE); \ + else \ + fputs ("\taddl out3 = @ltoff(", FILE); \ + assemble_name (FILE, buf); \ + if (TARGET_AUTO_PIC) \ + fputs (");;\n", FILE); \ + else \ + fputs ("), r1;;\n", FILE); \ + fputs ("\tmov out1 = r1\n", FILE); \ + fputs ("\tmov out2 = b0\n", FILE); \ + fputs ("\tbr.call.sptk.many b0 = _mcount;;\n", FILE); \ + } while (0) diff -Nrc3pad gcc-3.0.2/gcc/config/ia64/hpux.h gcc-3.0.3/gcc/config/ia64/hpux.h *** gcc-3.0.2/gcc/config/ia64/hpux.h Thu Mar 15 20:42:09 2001 --- gcc-3.0.3/gcc/config/ia64/hpux.h Sat Nov 3 12:28:24 2001 *************** along with GNU CC; see the file COPYING. *** 20,25 **** --- 20,30 ---- the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + /* This macro is a C statement to print on `stderr' a string describing the + particular machine description choice. */ + + #define TARGET_VERSION fprintf (stderr, " (IA-64) HP-UX"); + #undef CPP_PREDEFINES #define CPP_PREDEFINES "\ -D__IA64__ -D__ia64 -D__ia64__ -D__hpux -D__hpux__ -Dhpux -Dunix \ diff -Nrc3pad gcc-3.0.2/gcc/config/ia64/ia64.h gcc-3.0.3/gcc/config/ia64/ia64.h *** gcc-3.0.2/gcc/config/ia64/ia64.h Fri Sep 21 18:33:20 2001 --- gcc-3.0.3/gcc/config/ia64/ia64.h Sat Nov 3 12:28:24 2001 *************** Boston, MA 02111-1307, USA. */ *** 31,41 **** /* Run-time target specifications */ ! /* Define this to be a string constant containing `-D' options to define the ! predefined macros that identify this machine and system. These macros will ! be predefined unless the `-ansi' option is specified. */ ! /* ??? This is undefed in svr4.h. */ ! #define CPP_PREDEFINES "-Dia64 -Amachine=ia64" /* This declaration should be present. */ extern int target_flags; --- 31,41 ---- /* Run-time target specifications */ ! #define CPP_CPU_SPEC "\ ! -Acpu=ia64 -Amachine=ia64 \ ! %{!ansi:%{!std=c*:%{!std=i*:-Dia64}}} -D__ia64 -D__ia64__" ! ! #define CC1_SPEC "%(cc1_cpu) " /* This declaration should be present. */ extern int target_flags; *************** extern const char *ia64_fixed_range_stri *** 169,179 **** N_("Specify range of registers to make fixed.")}, \ } - /* This macro is a C statement to print on `stderr' a string describing the - particular machine description choice. */ - - #define TARGET_VERSION fprintf (stderr, " (IA-64)"); - /* Sometimes certain combinations of command options do not make sense on a particular target machine. You can define a macro `OVERRIDE_OPTIONS' to take account of this. This macro, if defined, is executed once just after --- 169,174 ---- *************** extern const char *ia64_fixed_range_stri *** 201,206 **** --- 196,202 ---- defines in other tm.h files. */ #define CPP_SPEC \ "%{mcpu=itanium:-D__itanium__} %{mbig-endian:-D__BIG_ENDIAN__} \ + %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ -D__LONG_MAX__=9223372036854775807L" /* If this macro is defined, the preprocessor will not define the builtin macro *************** extern const char *ia64_fixed_range_stri *** 235,270 **** into options for GNU CC to pass to the `cc1plus'. */ /* #define CC1PLUS_SPEC "" */ - - /* A C string constant that tells the GNU CC driver program options to pass to - the assembler. It can also specify how to translate options you give to GNU - CC into options for GNU CC to pass to the assembler. */ - - #if ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GNU_AS) != 0 - /* GNU AS. */ - #define ASM_SPEC \ - "%{mno-gnu-as:-N so} %{!mno-gnu-as:-x} %{mconstant-gp} %{mauto-pic}" - #else - /* Intel ias. */ - #define ASM_SPEC \ - "%{!mgnu-as:-N so} %{mgnu-as:-x} %{mconstant-gp:-M const_gp}\ - %{mauto-pic:-M no_plabel}" - #endif - - /* A C string constant that tells the GNU CC driver program options to pass to - the linker. It can also specify how to translate options you give to GNU CC - into options for GNU CC to pass to the linker. */ - - /* The Intel linker does not support dynamic linking, so we need -dn. - The Intel linker gives annoying messages unless -N so is used. */ - #if ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GNU_LD) != 0 - /* GNU LD. */ - #define LINK_SPEC "%{mno-gnu-ld:-dn -N so}" - #else - /* Intel ild. */ - #define LINK_SPEC "%{!mgnu-ld:-dn -N so}" - #endif - /* Storage Layout */ --- 231,236 ---- diff -Nrc3pad gcc-3.0.2/gcc/config/ia64/linux.h gcc-3.0.3/gcc/config/ia64/linux.h *** gcc-3.0.2/gcc/config/ia64/linux.h Fri Jun 8 10:10:35 2001 --- gcc-3.0.3/gcc/config/ia64/linux.h Sat Nov 3 12:28:24 2001 *************** *** 1,7 **** /* Definitions for ia64-linux target. */ ! #include "ia64/ia64.h" ! #include ! #include "sysv4.h" /* This is for -profile to use -lc_p instead of -lc. */ #undef CC1_SPEC --- 1,9 ---- /* Definitions for ia64-linux target. */ ! ! /* This macro is a C statement to print on `stderr' a string describing the ! particular machine description choice. */ ! ! #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux"); /* This is for -profile to use -lc_p instead of -lc. */ #undef CC1_SPEC diff -Nrc3pad gcc-3.0.2/gcc/config/m68hc11/m68hc11.c gcc-3.0.3/gcc/config/m68hc11/m68hc11.c *** gcc-3.0.2/gcc/config/m68hc11/m68hc11.c Sun Sep 30 05:53:26 2001 --- gcc-3.0.3/gcc/config/m68hc11/m68hc11.c Sun Nov 25 08:39:26 2001 *************** d_register_operand (operand, mode) *** 912,918 **** return GET_CODE (operand) == REG && (REGNO (operand) >= FIRST_PSEUDO_REGISTER ! || REGNO (operand) == HARD_D_REGNUM); } int --- 912,919 ---- return GET_CODE (operand) == REG && (REGNO (operand) >= FIRST_PSEUDO_REGISTER ! || REGNO (operand) == HARD_D_REGNUM ! || (mode == QImode && REGNO (operand) == HARD_B_REGNUM)); } int diff -Nrc3pad gcc-3.0.2/gcc/config/m68hc11/m68hc11.h gcc-3.0.3/gcc/config/m68hc11/m68hc11.h *** gcc-3.0.2/gcc/config/m68hc11/m68hc11.h Sun Sep 30 05:47:16 2001 --- gcc-3.0.3/gcc/config/m68hc11/m68hc11.h Sun Nov 25 08:32:05 2001 *************** typedef struct m68hc11_args *** 1134,1140 **** /* Output assembler code to FILE to increment profiler label # LABELNO for profiling a function entry. */ #define FUNCTION_PROFILER(FILE, LABELNO) \ ! asm_fprintf (FILE, "\tldy LP%d\n\tjsr 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. */ --- 1134,1140 ---- /* Output assembler code to FILE to increment profiler label # LABELNO for profiling a function entry. */ #define FUNCTION_PROFILER(FILE, LABELNO) \ ! asm_fprintf (FILE, "\tldy\t.LP%d\n\tjsr 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. */ diff -Nrc3pad gcc-3.0.2/gcc/config/m68hc11/m68hc11.md gcc-3.0.3/gcc/config/m68hc11/m68hc11.md *** gcc-3.0.2/gcc/config/m68hc11/m68hc11.md Mon Oct 1 06:38:13 2001 --- gcc-3.0.3/gcc/config/m68hc11/m68hc11.md Sun Nov 25 08:48:15 2001 *************** *** 6105,6110 **** --- 6105,6136 ---- ;;-------------------------------------------------------------------- ;; + ;; 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)))] + "") + + ;; ;; This peephole catches the address computations generated by the reload ;; pass. (define_peephole diff -Nrc3pad gcc-3.0.2/gcc/config/mips/mips.c gcc-3.0.3/gcc/config/mips/mips.c *** gcc-3.0.2/gcc/config/mips/mips.c Sat May 19 17:31:43 2001 --- gcc-3.0.3/gcc/config/mips/mips.c Fri Nov 9 14:08:44 2001 *************** save_restore_insns (store_p, large_reg, *** 6416,6421 **** --- 6416,6422 ---- { long mask = current_frame_info.mask; long fmask = current_frame_info.fmask; + long real_mask = mask; int regno; rtx base_reg_rtx; HOST_WIDE_INT base_offset; *************** save_restore_insns (store_p, large_reg, *** 6428,6433 **** --- 6429,6440 ---- && ! BITSET_P (mask, HARD_FRAME_POINTER_REGNUM - GP_REG_FIRST)) abort (); + /* Do not restore GP under certain conditions. */ + if (! store_p + && TARGET_ABICALLS + && (mips_abi == ABI_32 || mips_abi == ABI_O64)) + mask &= ~(1 << (PIC_OFFSET_TABLE_REGNUM - GP_REG_FIRST)); + if (mask == 0 && fmask == 0) return; *************** save_restore_insns (store_p, large_reg, *** 6567,6573 **** gen_rtx (PLUS, Pmode, base_reg_rtx, GEN_INT (gp_offset - base_offset))); ! RTX_UNCHANGING_P (mem_rtx) = 1; /* The mips16 does not have an instruction to load $31, so we load $7 instead, and work things out --- 6574,6581 ---- gen_rtx (PLUS, Pmode, base_reg_rtx, GEN_INT (gp_offset - base_offset))); ! if (! current_function_calls_eh_return) ! RTX_UNCHANGING_P (mem_rtx) = 1; /* The mips16 does not have an instruction to load $31, so we load $7 instead, and work things out *************** save_restore_insns (store_p, large_reg, *** 6596,6604 **** insn = emit_move_insn (mem_rtx, reg_rtx); RTX_FRAME_RELATED_P (insn) = 1; } ! else if (!TARGET_ABICALLS ! || (mips_abi != ABI_32 && mips_abi != ABI_O64) ! || regno != (PIC_OFFSET_TABLE_REGNUM - GP_REG_FIRST)) { emit_move_insn (reg_rtx, mem_rtx); if (TARGET_MIPS16 --- 6604,6610 ---- insn = emit_move_insn (mem_rtx, reg_rtx); RTX_FRAME_RELATED_P (insn) = 1; } ! else { emit_move_insn (reg_rtx, mem_rtx); if (TARGET_MIPS16 *************** save_restore_insns (store_p, large_reg, *** 6610,6659 **** } else { ! if (store_p || !TARGET_ABICALLS ! || (mips_abi != ABI_32 && mips_abi != ABI_O64) ! || regno != (PIC_OFFSET_TABLE_REGNUM - GP_REG_FIRST)) ! { ! int r = regno; ! /* The mips16 does not have an instruction to ! load $31, so we load $7 instead, and work ! things out in the caller. */ ! if (TARGET_MIPS16 && ! store_p && r == GP_REG_FIRST + 31) ! r = GP_REG_FIRST + 7; ! /* The mips16 sometimes needs to save $18. */ ! if (TARGET_MIPS16 ! && regno != GP_REG_FIRST + 31 ! && ! M16_REG_P (regno)) { ! if (! store_p) ! r = GP_REG_FIRST + 6; ! else ! { ! r = GP_REG_FIRST + 3; ! fprintf (file, "\tmove\t%s,%s\n", ! reg_names[r], reg_names[regno]); ! } } - fprintf (file, "\t%s\t%s,", - (TARGET_64BIT - ? (store_p) ? "sd" : "ld" - : (store_p) ? "sw" : "lw"), - reg_names[r]); - fprintf (file, HOST_WIDE_INT_PRINT_DEC, - gp_offset - base_offset); - fprintf (file, "(%s)\n", reg_names[REGNO(base_reg_rtx)]); - if (! store_p - && TARGET_MIPS16 - && regno != GP_REG_FIRST + 31 - && ! M16_REG_P (regno)) - fprintf (file, "\tmove\t%s,%s\n", - reg_names[regno], reg_names[r]); } ! } gp_offset -= GET_MODE_SIZE (gpr_mode); } } else base_reg_rtx = 0, base_offset = 0; --- 6616,6666 ---- } else { ! int r = regno; ! /* The mips16 does not have an instruction to ! load $31, so we load $7 instead, and work ! things out in the caller. */ ! if (TARGET_MIPS16 && ! store_p && r == GP_REG_FIRST + 31) ! r = GP_REG_FIRST + 7; ! ! /* The mips16 sometimes needs to save $18. */ ! if (TARGET_MIPS16 ! && regno != GP_REG_FIRST + 31 ! && ! M16_REG_P (regno)) ! { ! if (! store_p) ! r = GP_REG_FIRST + 6; ! else { ! r = GP_REG_FIRST + 3; ! fprintf (file, "\tmove\t%s,%s\n", ! reg_names[r], reg_names[regno]); } } ! fprintf (file, "\t%s\t%s,", ! (TARGET_64BIT ! ? (store_p) ? "sd" : "ld" ! : (store_p) ? "sw" : "lw"), ! reg_names[r]); ! fprintf (file, HOST_WIDE_INT_PRINT_DEC, ! gp_offset - base_offset); ! fprintf (file, "(%s)\n", reg_names[REGNO(base_reg_rtx)]); ! if (! store_p ! && TARGET_MIPS16 ! && regno != GP_REG_FIRST + 31 ! && ! M16_REG_P (regno)) ! fprintf (file, "\tmove\t%s,%s\n", ! reg_names[regno], reg_names[r]); } gp_offset -= GET_MODE_SIZE (gpr_mode); } + /* If the restore is being supressed, still take into account + the offset at which it is stored. */ + else if (BITSET_P (real_mask, regno - GP_REG_FIRST)) + { + gp_offset -= GET_MODE_SIZE (gpr_mode); + } } else base_reg_rtx = 0, base_offset = 0; *************** save_restore_insns (store_p, large_reg, *** 6779,6785 **** gen_rtx (PLUS, Pmode, base_reg_rtx, GEN_INT (fp_offset - base_offset))); ! RTX_UNCHANGING_P (mem_rtx) = 1; if (store_p) { --- 6786,6793 ---- gen_rtx (PLUS, Pmode, base_reg_rtx, GEN_INT (fp_offset - base_offset))); ! if (! current_function_calls_eh_return) ! RTX_UNCHANGING_P (mem_rtx) = 1; if (store_p) { *************** mips_output_conditional_branch (insn, *** 9521,9567 **** .set macro .set reorder l: ! Because we have to jump four bytes *past* the following ! instruction if this branch was annulled, we can't just use ! a label, as in the picture above; there's no way to put the ! label after the next instruction, as the assembler does not ! accept `.L+4' as the target of a branch. (We can't just ! wait until the next instruction is output; it might be a ! macro and take up more than four bytes. Once again, we see ! why we want to eliminate macros.) ! ! If the branch is annulled, we jump four more bytes that we ! would otherwise; that way we skip the annulled instruction ! in the delay slot. */ ! ! const char *target ! = ((mips_branch_likely || length == 16) ? ".+16" : ".+12"); ! char *c; ! strcpy (buffer, "%(%<"); ! c = strchr (buffer, '\0'); ! /* Generate the reversed comparision. This takes four ! bytes. */ if (float_p) ! sprintf (c, "%%*b%s\t%%Z2%s", inverted_p ? comp : inverted_comp, target); else ! sprintf (c, "%%*b%s%s\t%s%s,%s", inverted_p ? comp : inverted_comp, need_z_p ? "z" : "", op1, op2, target); ! strcat (c, "\n\tnop\n\tj\t%1"); if (length == 16) /* The delay slot was unfilled. Since we're inside .noreorder, the assembler will not fill in the NOP for us, so we must do it ourselves. */ ! strcat (buffer, "\n\tnop"); ! strcat (buffer, "%>%)"); ! return buffer; } /* We do not currently use this code. It handles jumps to --- 9529,9576 ---- .set macro .set reorder l: + */ ! rtx orig_target; ! rtx target = gen_label_rtx (); ! output_asm_insn ("%(%<", NULL); ! orig_target = operands[1]; ! operands[1] = target; ! /* Generate the reversed comparision. This takes four bytes. */ if (float_p) ! sprintf (buffer, "%%*b%s\t%%Z2%s", inverted_p ? comp : inverted_comp, target); else ! sprintf (buffer, "%%*b%s%s\t%s%s,%s", inverted_p ? comp : inverted_comp, need_z_p ? "z" : "", op1, op2, target); ! output_asm_insn (buffer, operands); ! operands[1] = orig_target; ! ! output_asm_insn ("nop\n\tj\t%1", operands); ! if (length == 16) /* The delay slot was unfilled. Since we're inside .noreorder, the assembler will not fill in the NOP for us, so we must do it ourselves. */ ! output_asm_insn ("nop", 0); ! else ! { ! /* Output delay slot instruction. */ ! rtx insn = final_sequence; ! final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file, ! optimize, 0, 1); ! INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1; ! } ! output_asm_insn ("%>%)", 0); ! ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L", ! CODE_LABEL_NUMBER (target)); ! return ""; } /* We do not currently use this code. It handles jumps to diff -Nrc3pad gcc-3.0.2/gcc/config/mips/mips.md gcc-3.0.3/gcc/config/mips/mips.md *** gcc-3.0.2/gcc/config/mips/mips.md Thu Jun 14 13:42:18 2001 --- gcc-3.0.3/gcc/config/mips/mips.md Thu Nov 8 11:27:10 2001 *************** ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j *** 9668,9677 **** { register rtx target = operands[0]; ! if (GET_CODE (target) == SYMBOL_REF) ! return \"%*jal\\t%0\"; ! else if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%0\\n\\t%*jal\\t%2,%@%]\"; else return \"%*jal\\t%2,%0\"; }" --- 9668,9677 ---- { register rtx target = operands[0]; ! if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%0\\n\\t%*jal\\t%2,%@%]\"; + else if (CONSTANT_ADDRESS_P (target)) + return \"%*jal\\t%0\"; else return \"%*jal\\t%2,%0\"; }" *************** ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j *** 9687,9701 **** { register rtx target = operands[0]; ! if (GET_CODE (target) == SYMBOL_REF) { if (GET_MODE (target) == SImode) return \"la\\t%^,%0\\n\\tjal\\t%2,%^\"; else return \"dla\\t%^,%0\\n\\tjal\\t%2,%^\"; } - else if (GET_CODE (target) == CONST_INT) - return \"li\\t%^,%0\\n\\tjal\\t%2,%^\"; else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%0\\n\\tjal\\t%2,%^\"; else --- 9687,9701 ---- { register rtx target = operands[0]; ! if (GET_CODE (target) == CONST_INT) ! return \"li\\t%^,%0\\n\\tjal\\t%2,%^\"; ! else if (CONSTANT_ADDRESS_P (target)) { if (GET_MODE (target) == SImode) return \"la\\t%^,%0\\n\\tjal\\t%2,%^\"; else return \"dla\\t%^,%0\\n\\tjal\\t%2,%^\"; } else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%0\\n\\tjal\\t%2,%^\"; else *************** ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j *** 9875,9884 **** { register rtx target = operands[1]; ! if (GET_CODE (target) == SYMBOL_REF) ! return \"%*jal\\t%1\"; ! else if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%1\\n\\t%*jal\\t%3,%@%]\"; else return \"%*jal\\t%3,%1\"; }" --- 9875,9884 ---- { register rtx target = operands[1]; ! if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%1\\n\\t%*jal\\t%3,%@%]\"; + else if (CONSTANT_ADDRESS_P (target)) + return \"%*jal\\t%1\"; else return \"%*jal\\t%3,%1\"; }" *************** ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j *** 9895,9909 **** { register rtx target = operands[1]; ! if (GET_CODE (target) == SYMBOL_REF) { if (GET_MODE (target) == SImode) return \"la\\t%^,%1\\n\\tjal\\t%3,%^\"; else return \"dla\\t%^,%1\\n\\tjal\\t%3,%^\"; } - else if (GET_CODE (target) == CONST_INT) - return \"li\\t%^,%1\\n\\tjal\\t%3,%^\"; else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%1\\n\\tjal\\t%3,%^\"; else --- 9895,9909 ---- { register rtx target = operands[1]; ! if (GET_CODE (target) == CONST_INT) ! return \"li\\t%^,%1\\n\\tjal\\t%3,%^\"; ! else if (CONSTANT_ADDRESS_P (target)) { if (GET_MODE (target) == SImode) return \"la\\t%^,%1\\n\\tjal\\t%3,%^\"; else return \"dla\\t%^,%1\\n\\tjal\\t%3,%^\"; } else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%1\\n\\tjal\\t%3,%^\"; else *************** ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j *** 10007,10016 **** { register rtx target = operands[1]; ! if (GET_CODE (target) == SYMBOL_REF) ! return \"%*jal\\t%1\"; ! else if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%1\\n\\t%*jal\\t%4,%@%]\"; else return \"%*jal\\t%4,%1\"; }" --- 10007,10016 ---- { register rtx target = operands[1]; ! if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%1\\n\\t%*jal\\t%4,%@%]\"; + else if (CONSTANT_ADDRESS_P (target)) + return \"%*jal\\t%1\"; else return \"%*jal\\t%4,%1\"; }" *************** ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j *** 10030,10044 **** { register rtx target = operands[1]; ! if (GET_CODE (target) == SYMBOL_REF) { if (GET_MODE (target) == SImode) return \"la\\t%^,%1\\n\\tjal\\t%4,%^\"; else return \"la\\t%^,%1\\n\\tjal\\t%4,%^\"; } - else if (GET_CODE (target) == CONST_INT) - return \"li\\t%^,%1\\n\\tjal\\t%4,%^\"; else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%1\\n\\tjal\\t%4,%^\"; else --- 10030,10044 ---- { register rtx target = operands[1]; ! if (GET_CODE (target) == CONST_INT) ! return \"li\\t%^,%1\\n\\tjal\\t%4,%^\"; ! else if (CONSTANT_ADDRESS_P (target)) { if (GET_MODE (target) == SImode) return \"la\\t%^,%1\\n\\tjal\\t%4,%^\"; else return \"la\\t%^,%1\\n\\tjal\\t%4,%^\"; } else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%1\\n\\tjal\\t%4,%^\"; else diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/aix.h gcc-3.0.3/gcc/config/rs6000/aix.h *** gcc-3.0.2/gcc/config/rs6000/aix.h Fri May 25 14:16:12 2001 --- gcc-3.0.3/gcc/config/rs6000/aix.h Fri Nov 9 15:00:30 2001 *************** toc_section () \ *** 591,596 **** --- 591,602 ---- putc ('\n', ASM_OUT_FILE); \ } while (0) + /* Define the name of the section to use for the exception tables. + TODO: test and see if we can use read_only_data_section, if so, + remove this. */ + + #define EXCEPTION_SECTION data_section + /* __throw will restore its own return address to be the same as the return address of the function that the throw is being made to. This is unfortunate, because we want to check the original diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/netbsd.h gcc-3.0.3/gcc/config/rs6000/netbsd.h *** gcc-3.0.2/gcc/config/rs6000/netbsd.h Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/config/rs6000/netbsd.h Sat Oct 27 11:59:58 2001 *************** *** 0 **** --- 1,61 ---- + /* Definitions of target machine for GNU compiler, + for PowerPC NetBSD systems. + Copyright 2001 Free Software Foundation, Inc. + + This file is part of GNU CC. + + GNU CC 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. + + GNU CC 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 GNU CC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + + /* Under NetBSD, the normal location of the various *crt*.o files is + the /usr/lib directory [from config/netbsd.h]. */ + + #undef STANDARD_STARTFILE_PREFIX + #define STANDARD_STARTFILE_PREFIX "/usr/lib/" + + /* FIXME: Should this macro be treated the same as for the other + spec's? */ + /* NOTE: -dc and -dp are equivalent yet NetBSD's CC passes both both! + NetBSD's CC also passes -O1 but we can skip that. NetBSD explictly + sets ``-e _start'', since LD knows this, skip it. */ + + #undef LINK_SHLIB_SPEC + #define LINK_SHLIB_SPEC "\ + %{shared:-shared} \ + %{!shared: %{static:-dc -dp -static}} \ + %{!shared: %{!static:-dc -dp}} \ + " + + /* Override the defaults. */ + #undef LIB_DEFAULT_SPEC + #define LIB_DEFAULT_SPEC "%(lib_netbsd)" + + #undef STARTFILE_DEFAULT_SPEC + #define STARTFILE_DEFAULT_SPEC "%(startfile_netbsd)" + + #undef ENDFILE_DEFAULT_SPEC + #define ENDFILE_DEFAULT_SPEC "%(endfile_netbsd)" + + #undef LINK_START_DEFAULT_SPEC + #define LINK_START_DEFAULT_SPEC "%(link_start_netbsd)" + + #undef LINK_OS_DEFAULT_SPEC + #define LINK_OS_DEFAULT_SPEC "%(link_os_netbsd)" + + #undef CPP_OS_DEFAULT_SPEC + #define CPP_OS_DEFAULT_SPEC "%(cpp_os_netbsd)" + + #undef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (PowerPC NetBSD/ELF)"); diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/rs6000.c gcc-3.0.3/gcc/config/rs6000/rs6000.c *** gcc-3.0.2/gcc/config/rs6000/rs6000.c Tue Sep 25 10:59:04 2001 --- gcc-3.0.3/gcc/config/rs6000/rs6000.c Wed Dec 12 16:41:22 2001 *************** int rs6000_compare_fp_p; *** 75,81 **** get the address of the GOT section */ int rs6000_pic_labelno; ! #ifdef USING_SVR4_H /* Which abi to adhere to */ const char *rs6000_abi_name = RS6000_ABI_NAME; --- 75,81 ---- get the address of the GOT section */ int rs6000_pic_labelno; ! #ifdef USING_ELFOS_H /* Which abi to adhere to */ const char *rs6000_abi_name = RS6000_ABI_NAME; *************** rs6000_file_start (file, default_cpu) *** 442,448 **** } } ! #ifdef USING_SVR4_H switch (rs6000_sdata) { case SDATA_NONE: fprintf (file, "%s -msdata=none", start); start = ""; break; --- 442,448 ---- } } ! #ifdef USING_ELFOS_H switch (rs6000_sdata) { case SDATA_NONE: fprintf (file, "%s -msdata=none", start); start = ""; break; *************** output_mi_thunk (file, thunk_fndecl, del *** 6952,6958 **** assemble_name (file, buf); putc ('\n', file); text_section (); ! asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s," : "\tld %s", r12); assemble_name (file, buf); asm_fprintf (file, "(%s)\n", reg_names[2]); asm_fprintf (file, --- 6952,6958 ---- assemble_name (file, buf); putc ('\n', file); text_section (); ! asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s," : "\tld %s,", r12); assemble_name (file, buf); asm_fprintf (file, "(%s)\n", reg_names[2]); asm_fprintf (file, *************** rs6000_longcall_ref (call_ref) *** 7930,7936 **** Do not define this macro if you put all constants in the read-only data section. */ ! #ifdef USING_SVR4_H void rs6000_select_rtx_section (mode, x) --- 7930,7936 ---- Do not define this macro if you put all constants in the read-only data section. */ ! #ifdef USING_ELFOS_H void rs6000_select_rtx_section (mode, x) *************** rs6000_select_section (decl, reloc) *** 7990,7996 **** RELOC indicates whether the initial value of EXP requires link-time relocations. If you do not define this macro, GCC will use the symbol name prefixed by `.' as the section name. Note - this ! macro can now be called for unitialised data items as well as initialised data and functions. */ void --- 7990,7996 ---- RELOC indicates whether the initial value of EXP requires link-time relocations. If you do not define this macro, GCC will use the symbol name prefixed by `.' as the section name. Note - this ! macro can now be called for uninitialized data items as well as initialised data and functions. */ void *************** rs6000_unique_section (decl, reloc) *** 7998,8006 **** tree decl; int reloc; { - int size = int_size_in_bytes (TREE_TYPE (decl)); - int needs_sdata; - int readonly; int len; int sec; const char *name; --- 7998,8003 ---- *************** rs6000_unique_section (decl, reloc) *** 8009,8048 **** static const char *const prefixes[7][2] = { - { ".text.", ".gnu.linkonce.t." }, { ".rodata.", ".gnu.linkonce.r." }, { ".sdata2.", ".gnu.linkonce.s2." }, { ".data.", ".gnu.linkonce.d." }, { ".sdata.", ".gnu.linkonce.s." }, { ".bss.", ".gnu.linkonce.b." }, ! { ".sbss.", ".gnu.linkonce.sb." } }; - - needs_sdata = (TREE_CODE (decl) != FUNCTION_DECL - && size > 0 - && size <= g_switch_value - && rs6000_sdata != SDATA_NONE - && (rs6000_sdata != SDATA_DATA || TREE_PUBLIC (decl))); ! if (TREE_CODE (decl) == STRING_CST) ! readonly = ! flag_writable_strings; ! else if (TREE_CODE (decl) == VAR_DECL) ! readonly = (! (flag_pic && reloc) ! && TREE_READONLY (decl) ! && ! TREE_SIDE_EFFECTS (decl) ! && DECL_INITIAL (decl) ! && DECL_INITIAL (decl) != error_mark_node ! && TREE_CONSTANT (DECL_INITIAL (decl))); else ! readonly = 1; ! if (needs_sdata && rs6000_sdata != SDATA_EABI) ! readonly = 0; ! sec = ((TREE_CODE (decl) == FUNCTION_DECL ? 0 : 1) ! + (readonly ? 0 : 2) ! + (needs_sdata ? 1 : 0) ! + (DECL_INITIAL (decl) == 0 ! || DECL_INITIAL (decl) == error_mark_node) ? 4 : 0); STRIP_NAME_ENCODING (name, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))); prefix = prefixes[sec][DECL_ONE_ONLY (decl)]; --- 8006,8059 ---- static const char *const prefixes[7][2] = { { ".rodata.", ".gnu.linkonce.r." }, { ".sdata2.", ".gnu.linkonce.s2." }, { ".data.", ".gnu.linkonce.d." }, { ".sdata.", ".gnu.linkonce.s." }, { ".bss.", ".gnu.linkonce.b." }, ! { ".sbss.", ".gnu.linkonce.sb." }, ! { ".text.", ".gnu.linkonce.t." } }; ! if (TREE_CODE (decl) == FUNCTION_DECL) ! sec = 6; else ! { ! int readonly; ! int needs_sdata; ! int size; ! readonly = 1; ! if (TREE_CODE (decl) == STRING_CST) ! readonly = ! flag_writable_strings; ! else if (TREE_CODE (decl) == VAR_DECL) ! readonly = (! (flag_pic && reloc) ! && TREE_READONLY (decl) ! && ! TREE_SIDE_EFFECTS (decl) ! && TREE_CONSTANT (DECL_INITIAL (decl))); ! ! size = int_size_in_bytes (TREE_TYPE (decl)); ! needs_sdata = (size > 0 ! && size <= g_switch_value ! && rs6000_sdata != SDATA_NONE ! && (rs6000_sdata != SDATA_DATA || TREE_PUBLIC (decl))); ! ! if (DECL_INITIAL (decl) == 0 ! || DECL_INITIAL (decl) == error_mark_node) ! sec = 4; ! else if (! readonly) ! sec = 2; ! else ! sec = 0; ! ! if (needs_sdata) ! { ! /* .sdata2 is only for EABI. */ ! if (sec == 0 && rs6000_sdata != SDATA_EABI) ! sec = 2; ! sec += 1; ! } ! } STRIP_NAME_ENCODING (name, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))); prefix = prefixes[sec][DECL_ONE_ONLY (decl)]; *************** rs6000_encode_section_info (decl) *** 8132,8138 **** } } ! #endif /* USING_SVR4_H */ /* Return a REG that occurs in ADDR with coefficient 1. --- 8143,8149 ---- } } ! #endif /* USING_ELFOS_H */ /* Return a REG that occurs in ADDR with coefficient 1. diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/rs6000.h gcc-3.0.3/gcc/config/rs6000/rs6000.h *** gcc-3.0.2/gcc/config/rs6000/rs6000.h Mon Sep 10 11:06:28 2001 --- gcc-3.0.3/gcc/config/rs6000/rs6000.h Fri Nov 9 15:00:30 2001 *************** extern int rs6000_compare_fp_p; *** 2308,2319 **** #define TARGET_MEM_FUNCTIONS - /* Define the name of the section to use for the exception tables. - TODO: test and see if we can use read_only_data_section, if so, - remove this. */ - - #define EXCEPTION_SECTION data_section - /* Flag to say the TOC is initialized */ extern int toc_initialized; --- 2308,2313 ---- diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/rs6000.md gcc-3.0.3/gcc/config/rs6000/rs6000.md *** gcc-3.0.2/gcc/config/rs6000/rs6000.md Mon Sep 10 11:06:29 2001 --- gcc-3.0.3/gcc/config/rs6000/rs6000.md Mon Nov 5 18:11:00 2001 *************** operands[2] = GEN_INT (INTVAL (operands[ *** 9115,9122 **** ;; Code to initialize the TOC register... (define_insn "load_toc_aix_si" ! [(set (match_operand:SI 0 "register_operand" "=r") ! (unspec:SI [(const_int 0)] 7))] "! TARGET_ELF && TARGET_32BIT" "* { --- 9115,9123 ---- ;; Code to initialize the TOC register... (define_insn "load_toc_aix_si" ! [(parallel [(set (match_operand:SI 0 "register_operand" "=r") ! (unspec:SI [(const_int 0)] 7)) ! (use (reg:SI 2))])] "! TARGET_ELF && TARGET_32BIT" "* { *************** operands[2] = GEN_INT (INTVAL (operands[ *** 9129,9136 **** [(set_attr "type" "load")]) (define_insn "load_toc_aix_di" ! [(set (match_operand:DI 0 "register_operand" "=r") ! (unspec:DI [(const_int 0)] 7))] "! TARGET_ELF && TARGET_64BIT" "* { --- 9130,9138 ---- [(set_attr "type" "load")]) (define_insn "load_toc_aix_di" ! [(parallel [(set (match_operand:DI 0 "register_operand" "=r") ! (unspec:DI [(const_int 0)] 7)) ! (use (reg:DI 2))])] "! TARGET_ELF && TARGET_64BIT" "* { *************** operands[2] = GEN_INT (INTVAL (operands[ *** 12532,12555 **** positive_2 = branch_positive_comparison_operator (operands[3], CCEQmode); if (! positive_1) ! operands[1] = gen_rtx (SImode, ! rs6000_reverse_condition (GET_MODE (operands[2]), GET_CODE (operands[1])), ! operands[2]); else if (GET_MODE (operands[1]) != SImode) ! operands[1] = gen_rtx (SImode, ! GET_CODE (operands[1]), ! operands[2]); if (! positive_2) ! operands[3] = gen_rtx (SImode, ! rs6000_reverse_condition (GET_MODE (operands[4]), GET_CODE (operands[3])), ! operands[4]); else if (GET_MODE (operands[3]) != SImode) ! operands[3] = gen_rtx (SImode, ! GET_CODE (operands[3]), ! operands[4]); if (positive_1 == positive_2) { --- 12534,12557 ---- positive_2 = branch_positive_comparison_operator (operands[3], CCEQmode); if (! positive_1) ! operands[1] = gen_rtx (rs6000_reverse_condition (GET_MODE (operands[2]), GET_CODE (operands[1])), ! SImode, ! operands[2], const0_rtx); else if (GET_MODE (operands[1]) != SImode) ! operands[1] = gen_rtx (GET_CODE (operands[1]), ! SImode, ! operands[2], const0_rtx); if (! positive_2) ! operands[3] = gen_rtx (rs6000_reverse_condition (GET_MODE (operands[4]), GET_CODE (operands[3])), ! SImode, ! operands[4], const0_rtx); else if (GET_MODE (operands[3]) != SImode) ! operands[3] = gen_rtx (GET_CODE (operands[3]), ! SImode, ! operands[4], const0_rtx); if (positive_1 == positive_2) { diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/sysv4.h gcc-3.0.3/gcc/config/rs6000/sysv4.h *** gcc-3.0.2/gcc/config/rs6000/sysv4.h Sun May 13 00:10:12 2001 --- gcc-3.0.3/gcc/config/rs6000/sysv4.h Fri Nov 9 15:00:31 2001 *************** do { \ *** 197,202 **** --- 197,204 ---- rs6000_current_abi = ABI_AIX; \ else if (!strcmp (rs6000_abi_name, "linux")) \ rs6000_current_abi = ABI_V4; \ + else if (!strcmp (rs6000_abi_name, "netbsd")) \ + rs6000_current_abi = ABI_V4; \ else if (!strcmp (rs6000_abi_name, "solaris")) \ rs6000_current_abi = ABI_SOLARIS; \ else \ *************** do { \ *** 418,430 **** #define MINIMAL_TOC_SECTION_ASM_OP \ ((TARGET_RELOCATABLE || flag_pic) ? "\t.section\t\".got2\",\"aw\"" : "\t.section\t\".got1\",\"aw\"") - /* Put relocatable data in .data, not .rodata so initialized pointers can be updated. */ - /* Override elfos.h definition. */ - #undef CONST_SECTION_ASM_OP - #define CONST_SECTION_ASM_OP \ - ((TARGET_RELOCATABLE || flag_pic) ? "\t.section\t\".data\"\t# .rodata" : "\t.section\t\".rodata\"") - - #define SDATA_SECTION_ASM_OP "\t.section\t\".sdata\",\"aw\"" #define SDATA2_SECTION_ASM_OP "\t.section\t\".sdata2\",\"a\"" #define SBSS_SECTION_ASM_OP \ --- 420,425 ---- *************** do { \ *** 1017,1023 **** #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (PowerPC System V.4)"); ! #define CPP_PREDEFINES \ "-DPPC -Dunix -D__svr4__ -Asystem=unix -Asystem=svr4 -Acpu=powerpc -Amachine=powerpc" /* Pass various options to the assembler. */ --- 1012,1019 ---- #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (PowerPC System V.4)"); ! #undef CPP_PREDEFINES ! #define CPP_PREDEFINES \ "-DPPC -Dunix -D__svr4__ -Asystem=unix -Asystem=svr4 -Acpu=powerpc -Amachine=powerpc" /* Pass various options to the assembler. */ *************** do { \ *** 1031,1037 **** %{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ %{mcall-solaris: -mlittle -msolaris} \ ! %{mcall-linux: -mbig} }}}}" #define CC1_ENDIAN_BIG_SPEC "" --- 1027,1034 ---- %{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ %{mcall-solaris: -mlittle -msolaris} \ ! %{mcall-linux: -mbig} \ ! %{mcall-netbsd: -mbig} }}}}" #define CC1_ENDIAN_BIG_SPEC "" *************** do { \ *** 1050,1058 **** %{mcall-aixdesc: -mbig %(cc1_endian_big) } \ %{mcall-solaris: -mlittle %(cc1_endian_little) } \ %{mcall-linux: -mbig %(cc1_endian_big) } \ ! %{!mcall-aixdesc: %{!mcall-solaris: %{!mcall-linux: \ %(cc1_endian_default) \ ! }}} \ }}}} \ %{mcall-solaris: -mregnames } \ %{mno-sdata: -msdata=none } \ --- 1047,1056 ---- %{mcall-aixdesc: -mbig %(cc1_endian_big) } \ %{mcall-solaris: -mlittle %(cc1_endian_little) } \ %{mcall-linux: -mbig %(cc1_endian_big) } \ ! %{mcall-netbsd: -mbig %(cc1_endian_big) } \ ! %{!mcall-aixdesc: %{!mcall-solaris: %{!mcall-linux: %{!mcall-netbsd: \ %(cc1_endian_default) \ ! }}}} \ }}}} \ %{mcall-solaris: -mregnames } \ %{mno-sdata: -msdata=none } \ *************** do { \ *** 1060,1066 **** %{!meabi: %{!mno-eabi: \ %{mrelocatable: -meabi } \ %{mcall-solaris: -mno-eabi } \ ! %{mcall-linux: -mno-eabi }}} \ %{msdata: -msdata=default} \ %{mno-sdata: -msdata=none} \ %{profile: -p}" --- 1058,1065 ---- %{!meabi: %{!mno-eabi: \ %{mrelocatable: -meabi } \ %{mcall-solaris: -mno-eabi } \ ! %{mcall-linux: -mno-eabi } \ ! %{mcall-netbsd: -mno-eabi }}} \ %{msdata: -msdata=default} \ %{mno-sdata: -msdata=none} \ %{profile: -p}" *************** do { \ *** 1089,1096 **** %{mmvme: %(link_start_mvme) } \ %{msim: %(link_start_sim) } \ %{mcall-linux: %(link_start_linux) } \ %{mcall-solaris: %(link_start_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(link_start_default) }}}}}}" #define LINK_START_DEFAULT_SPEC "" --- 1088,1096 ---- %{mmvme: %(link_start_mvme) } \ %{msim: %(link_start_sim) } \ %{mcall-linux: %(link_start_linux) } \ + %{mcall-netbsd: %(link_start_netbsd) } \ %{mcall-solaris: %(link_start_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(link_start_default) }}}}}}}" #define LINK_START_DEFAULT_SPEC "" *************** do { \ *** 1143,1150 **** %{mmvme: %(link_os_mvme) } \ %{msim: %(link_os_sim) } \ %{mcall-linux: %(link_os_linux) } \ %{mcall-solaris: %(link_os_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(link_os_default) }}}}}}" #define LINK_OS_DEFAULT_SPEC "" --- 1143,1151 ---- %{mmvme: %(link_os_mvme) } \ %{msim: %(link_os_sim) } \ %{mcall-linux: %(link_os_linux) } \ + %{mcall-netbsd: %(link_os_netbsd) } \ %{mcall-solaris: %(link_os_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(link_os_default) }}}}}}}" #define LINK_OS_DEFAULT_SPEC "" *************** do { \ *** 1191,1198 **** %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ %{mcall-solaris: %(cpp_endian_solaris) } \ %{mcall-linux: %(cpp_endian_big) } \ %{mcall-aixdesc: %(cpp_endian_big) } \ ! %{!mcall-solaris: %{!mcall-linux: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}" #define CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)" --- 1192,1200 ---- %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ %{mcall-solaris: %(cpp_endian_solaris) } \ %{mcall-linux: %(cpp_endian_big) } \ + %{mcall-netbsd: %(cpp_endian_big) } \ %{mcall-aixdesc: %(cpp_endian_big) } \ ! %{!mcall-solaris: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}}" #define CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)" *************** do { \ *** 1204,1211 **** %{mmvme: %(cpp_os_mvme) } \ %{msim: %(cpp_os_sim) } \ %{mcall-linux: %(cpp_os_linux) } \ %{mcall-solaris: %(cpp_os_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(cpp_os_default) }}}}}}" #define CPP_OS_DEFAULT_SPEC "" --- 1206,1214 ---- %{mmvme: %(cpp_os_mvme) } \ %{msim: %(cpp_os_sim) } \ %{mcall-linux: %(cpp_os_linux) } \ + %{mcall-netbsd: %(cpp_os_netbsd) } \ %{mcall-solaris: %(cpp_os_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(cpp_os_default) }}}}}}}" #define CPP_OS_DEFAULT_SPEC "" *************** do { \ *** 1217,1224 **** %{mmvme: %(startfile_mvme) } \ %{msim: %(startfile_sim) } \ %{mcall-linux: %(startfile_linux) } \ %{mcall-solaris: %(startfile_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(startfile_default) }}}}}}" #define STARTFILE_DEFAULT_SPEC "" --- 1220,1228 ---- %{mmvme: %(startfile_mvme) } \ %{msim: %(startfile_sim) } \ %{mcall-linux: %(startfile_linux) } \ + %{mcall-netbsd: %(startfile_netbsd) } \ %{mcall-solaris: %(startfile_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(startfile_default) }}}}}}}" #define STARTFILE_DEFAULT_SPEC "" *************** do { \ *** 1230,1237 **** %{mmvme: %(lib_mvme) } \ %{msim: %(lib_sim) } \ %{mcall-linux: %(lib_linux) } \ %{mcall-solaris: %(lib_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(lib_default) }}}}}}" #define LIB_DEFAULT_SPEC "" --- 1234,1242 ---- %{mmvme: %(lib_mvme) } \ %{msim: %(lib_sim) } \ %{mcall-linux: %(lib_linux) } \ + %{mcall-netbsd: %(lib_netbsd) } \ %{mcall-solaris: %(lib_solaris) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(lib_default) }}}}}}}" #define LIB_DEFAULT_SPEC "" *************** do { \ *** 1243,1251 **** %{mmvme: %(endfile_mvme)} \ %{msim: %(endfile_sim)} \ %{mcall-linux: %(endfile_linux) } \ %{mcall-solaris: %(endfile_solaris)} \ %{mvxworks: %(endfile_vxworks) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %{!mvxworks: %(endfile_default) }}}}}}}" #define ENDFILE_DEFAULT_SPEC "" --- 1248,1257 ---- %{mmvme: %(endfile_mvme)} \ %{msim: %(endfile_sim)} \ %{mcall-linux: %(endfile_linux) } \ + %{mcall-netbsd: %(endfile_netbsd) } \ %{mcall-solaris: %(endfile_solaris)} \ %{mvxworks: %(endfile_vxworks) } \ ! %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %{!mvxworks: %(endfile_default) }}}}}}}}" #define ENDFILE_DEFAULT_SPEC "" *************** do { \ *** 1341,1346 **** --- 1347,1375 ---- -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}" #endif + /* NetBSD support. */ + #define LIB_NETBSD_SPEC "\ + %{profile:-lgmon -lc_p} %{!profile:-lc}" + + #define STARTFILE_NETBSD_SPEC "\ + ncrti.o%s crt0.o%s \ + %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" + + #define ENDFILE_NETBSD_SPEC "\ + %{!shared:crtend.o%s} %{shared:crtendS.o%s} \ + ncrtn.o%s" + + #define LINK_START_NETBSD_SPEC "\ + " + + #define LINK_OS_NETBSD_SPEC "\ + %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}" + + #define CPP_OS_NETBSD_SPEC "\ + -D__powerpc__ -D__NetBSD__ -D__ELF__ -D__KPRINTF_ATTRIBUTE__" + /* Solaris support. */ /* For Solaris, Gcc automatically adds in one of the files /usr/ccs/lib/values-Xc.o, /usr/ccs/lib/values-Xa.o, or *************** do { \ *** 1436,1441 **** --- 1465,1471 ---- { "lib_mvme", LIB_MVME_SPEC }, \ { "lib_sim", LIB_SIM_SPEC }, \ { "lib_linux", LIB_LINUX_SPEC }, \ + { "lib_netbsd", LIB_NETBSD_SPEC }, \ { "lib_solaris", LIB_SOLARIS_SPEC }, \ { "lib_vxworks", LIB_VXWORKS_SPEC }, \ { "lib_default", LIB_DEFAULT_SPEC }, \ *************** do { \ *** 1444,1449 **** --- 1474,1480 ---- { "startfile_mvme", STARTFILE_MVME_SPEC }, \ { "startfile_sim", STARTFILE_SIM_SPEC }, \ { "startfile_linux", STARTFILE_LINUX_SPEC }, \ + { "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \ { "startfile_solaris", STARTFILE_SOLARIS_SPEC }, \ { "startfile_vxworks", STARTFILE_VXWORKS_SPEC }, \ { "startfile_default", STARTFILE_DEFAULT_SPEC }, \ *************** do { \ *** 1452,1457 **** --- 1483,1489 ---- { "endfile_mvme", ENDFILE_MVME_SPEC }, \ { "endfile_sim", ENDFILE_SIM_SPEC }, \ { "endfile_linux", ENDFILE_LINUX_SPEC }, \ + { "endfile_netbsd", ENDFILE_NETBSD_SPEC }, \ { "endfile_solaris", ENDFILE_SOLARIS_SPEC }, \ { "endfile_vxworks", ENDFILE_VXWORKS_SPEC }, \ { "endfile_default", ENDFILE_DEFAULT_SPEC }, \ *************** do { \ *** 1464,1469 **** --- 1496,1502 ---- { "link_start_mvme", LINK_START_MVME_SPEC }, \ { "link_start_sim", LINK_START_SIM_SPEC }, \ { "link_start_linux", LINK_START_LINUX_SPEC }, \ + { "link_start_netbsd", LINK_START_NETBSD_SPEC }, \ { "link_start_solaris", LINK_START_SOLARIS_SPEC }, \ { "link_start_vxworks", LINK_START_VXWORKS_SPEC }, \ { "link_start_default", LINK_START_DEFAULT_SPEC }, \ *************** do { \ *** 1473,1478 **** --- 1506,1512 ---- { "link_os_mvme", LINK_OS_MVME_SPEC }, \ { "link_os_sim", LINK_OS_SIM_SPEC }, \ { "link_os_linux", LINK_OS_LINUX_SPEC }, \ + { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ { "link_os_solaris", LINK_OS_SOLARIS_SPEC }, \ { "link_os_vxworks", LINK_OS_VXWORKS_SPEC }, \ { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ *************** do { \ *** 1489,1494 **** --- 1523,1529 ---- { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \ { "cpp_os_sim", CPP_OS_SIM_SPEC }, \ { "cpp_os_linux", CPP_OS_LINUX_SPEC }, \ + { "cpp_os_netbsd", CPP_OS_NETBSD_SPEC }, \ { "cpp_os_solaris", CPP_OS_SOLARIS_SPEC }, \ { "cpp_os_vxworks", CPP_OS_VXWORKS_SPEC }, \ { "cpp_os_default", CPP_OS_DEFAULT_SPEC }, *************** do { \ *** 1580,1582 **** --- 1615,1627 ---- = init_one_libfunc (SQRTTF_LIBCALL); \ } \ } while (0) + + /* Select a format to encode pointers in exception handling data. CODE + is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is + true if the symbol may be affected by dynamic relocations. */ + #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ + ((flag_pic || TARGET_RELOCATABLE) \ + ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \ + : DW_EH_PE_absptr) + + #define EXCEPTION_SECTION readonly_data_section diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/t-ppccomm gcc-3.0.3/gcc/config/rs6000/t-ppccomm *** gcc-3.0.2/gcc/config/rs6000/t-ppccomm Mon Apr 9 16:52:50 2001 --- gcc-3.0.3/gcc/config/rs6000/t-ppccomm Sat Oct 27 11:59:59 2001 *************** MULTILIB_MATCHES_FLOAT = msoft-float=mcp *** 39,54 **** msoft-float=mcpu?823 \ msoft-float=mcpu?860 MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian ! MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \ crtbeginS$(objext) crtendS$(objext) \ ! ecrti$(objext) ecrtn$(objext) scrt0$(objext) scrti$(objext) scrtn$(objext) ! # We build {e,s}crti.o, {e,s}crtn.o, and scrt0.o which serve to add begin and ! # end labels to all of the special sections used when we link using gcc. # Assemble startup files. ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm --- 39,57 ---- msoft-float=mcpu?823 \ msoft-float=mcpu?860 MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian ! MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \ crtbeginS$(objext) crtendS$(objext) \ ! ecrti$(objext) ecrtn$(objext) \ ! scrt0$(objext) scrti$(objext) scrtn$(objext) \ ! ncrti$(objext) ncrtn$(objext) ! # We build {e,s}crti.o, {e,s}crtn.o, and {s,n}crt0.o which serve to ! # add begin and end labels to all of the special sections used when we ! # link using gcc. # Assemble startup files. ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm *************** ecrti.S: $(srcdir)/config/rs6000/eabi-ci *** 57,62 **** --- 60,73 ---- ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S + ncrti.S: $(srcdir)/config/rs6000/sol-ci.asm + sed -e 's/__init/_init/' -e 's/__fini/_fini/' \ + $(srcdir)/config/rs6000/sol-ci.asm >ncrti.S + + ncrtn.S: $(srcdir)/config/rs6000/sol-cn.asm + sed -e 's/__init/_init/' -e 's/__fini/_fini/' \ + $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S + scrti.S: $(srcdir)/config/rs6000/sol-ci.asm cat $(srcdir)/config/rs6000/sol-ci.asm >scrti.S *************** $(T)ecrti$(objext): ecrti.S *** 72,77 **** --- 83,94 ---- $(T)ecrtn$(objext): ecrtn.S $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrtn.S -o $(T)ecrtn$(objext) + + $(T)ncrti$(objext): ncrti.S + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrti.S -o $(T)ncrti$(objext) + + $(T)ncrtn$(objext): ncrtn.S + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrtn.S -o $(T)ncrtn$(objext) $(T)scrti$(objext): scrti.S $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrti.S -o $(T)scrti$(objext) diff -Nrc3pad gcc-3.0.2/gcc/config/rs6000/tramp.asm gcc-3.0.3/gcc/config/rs6000/tramp.asm *** gcc-3.0.2/gcc/config/rs6000/tramp.asm Wed Mar 15 19:16:41 2000 --- gcc-3.0.3/gcc/config/rs6000/tramp.asm Sat Dec 1 05:29:21 2001 *************** FUNC_START(__trampoline_setup) *** 104,109 **** blr .Labort: ! bl FUNC_NAME(abort) FUNC_END(__trampoline_setup) --- 104,109 ---- blr .Labort: ! bl JUMP_TARGET(abort) FUNC_END(__trampoline_setup) diff -Nrc3pad gcc-3.0.2/gcc/config/sparc/sparc.c gcc-3.0.3/gcc/config/sparc/sparc.c *** gcc-3.0.2/gcc/config/sparc/sparc.c Sun May 13 00:10:12 2001 --- gcc-3.0.3/gcc/config/sparc/sparc.c Fri Nov 30 15:27:26 2001 *************** enum sparc_mode_class { *** 2982,2988 **** #define DF_MODES (S_MODES | D_MODES) /* Modes for double-float only quantities. */ ! #define DF_MODES_NO_S (D_MODES) /* Modes for quad-float only quantities. */ #define TF_ONLY_MODES (1 << (int) TF_MODE) --- 2982,2988 ---- #define DF_MODES (S_MODES | D_MODES) /* Modes for double-float only quantities. */ ! #define DF_MODES_NO_S ((1 << (int) D_MODE) | (1 << (int) DF_MODE)) /* Modes for quad-float only quantities. */ #define TF_ONLY_MODES (1 << (int) TF_MODE) diff -Nrc3pad gcc-3.0.2/gcc/config/sparc/sparc.md gcc-3.0.3/gcc/config/sparc/sparc.md *** gcc-3.0.2/gcc/config/sparc/sparc.md Wed Jul 25 06:35:00 2001 --- gcc-3.0.3/gcc/config/sparc/sparc.md Fri Nov 30 11:44:02 2001 *************** *** 3269,3274 **** --- 3269,3279 ---- && fp_zero_operand (operands[1], DFmode)) goto movdf_is_ok; + /* We are able to build any DF constant in integer registers. */ + if (REGNO (operands[0]) < 32 + && (reload_completed || reload_in_progress)) + goto movdf_is_ok; + operands[1] = validize_mem (force_const_mem (GET_MODE (operands[0]), operands[1])); } diff -Nrc3pad gcc-3.0.2/gcc/config.gcc gcc-3.0.3/gcc/config.gcc *** gcc-3.0.2/gcc/config.gcc Tue Oct 9 17:25:25 2001 --- gcc-3.0.3/gcc/config.gcc Sat Nov 17 16:29:45 2001 *************** clipper-intergraph-clix*) *** 667,673 **** tm_file="${tm_file} svr3.h clipper/clix.h" xm_file=clipper/xm-clix.h xmake_file=clipper/x-clix - extra_headers=va-clipper.h extra_parts="crtbegin.o crtend.o" install_headers_dir=install-headers-cpio ;; --- 667,672 ---- *************** i960-*-*) # Default i960 environment. *** 1623,1629 **** use_collect2=yes ;; ia64*-*-elf*) ! tm_file=ia64/elf.h tmake_file="ia64/t-ia64" target_cpu_default="0" if test x$gas = xyes --- 1622,1628 ---- use_collect2=yes ;; ia64*-*-elf*) ! tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/elf.h" tmake_file="ia64/t-ia64" target_cpu_default="0" if test x$gas = xyes *************** ia64*-*-elf*) *** 1636,1643 **** fi float_format=i386 ;; ia64*-*-linux*) ! tm_file=ia64/linux.h tmake_file="t-slibgcc-elf-ver t-linux ia64/t-ia64 ia64/t-glibc" target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" if test x$enable_threads = xyes; then --- 1635,1649 ---- fi float_format=i386 ;; + ia64*-*-freebsd*) + tm_file="${tm_file} ${fbsd_tm_file} elfos.h ia64/sysv4.h ia64/freebsd.h" + target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" + tmake_file="${tmake_file} ia64/t-ia64" + xmake_file=none + float_format=i386 + ;; ia64*-*-linux*) ! tm_file="${tm_file} linux.h ia64/sysv4.h ia64/linux.h" tmake_file="t-slibgcc-elf-ver t-linux ia64/t-ia64 ia64/t-glibc" target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" if test x$enable_threads = xyes; then *************** powerpc-*-sysv*) *** 2788,2793 **** --- 2794,2807 ---- extra_headers=ppc-asm.h tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" xmake_file=rs6000/x-sysv4 + ;; + powerpc-*-netbsd*) + tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/netbsd.h" + xm_file=rs6000/xm-sysv4.h + xm_defines=POSIX + extra_headers=ppc-asm.h + tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" + xmake_file=none ;; powerpc-*-chorusos*) tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/chorus.h" diff -Nrc3pad gcc-3.0.2/gcc/config.in gcc-3.0.3/gcc/config.in *** gcc-3.0.2/gcc/config.in Tue Oct 23 10:56:01 2001 --- gcc-3.0.3/gcc/config.in Thu Dec 20 11:55:55 2001 *************** *** 1,4 **** ! /* config.in. Generated automatically from configure.in by autoheader. */ /* Define if using alloca.c. */ #undef C_ALLOCA --- 1,4 ---- ! /* config.in. Generated automatically from configure.in by autoheader 2.13. */ /* Define if using alloca.c. */ #undef C_ALLOCA *************** *** 101,106 **** --- 101,109 ---- /* Define to `int' if doesn't define. */ #undef ssize_t + + /* Define if cpp should also search $prefix/include. */ + #undef PREFIX_INCLUDE_DIR /* Define if you have the __argz_count function. */ #undef HAVE___ARGZ_COUNT diff -Nrc3pad gcc-3.0.2/gcc/configure gcc-3.0.3/gcc/configure *** gcc-3.0.2/gcc/configure Wed Aug 1 11:17:00 2001 --- gcc-3.0.3/gcc/configure Tue Dec 4 11:42:41 2001 *************** ${CONFIG_SHELL-/bin/sh} $srcdir/configur *** 7214,7219 **** --- 7214,7220 ---- + # Echo that links are built if test x$host = x$target then *************** s%@tm_file@%$tm_file%g *** 7521,7526 **** --- 7522,7528 ---- s%@tm_p_file_list@%$tm_p_file_list%g s%@tm_p_file@%$tm_p_file%g s%@xm_file@%$xm_file%g + s%@xm_defines@%$xm_defines%g s%@will_use_collect2@%$will_use_collect2%g s%@c_target_objs@%$c_target_objs%g s%@cxx_target_objs@%$cxx_target_objs%g *************** esac *** 7839,7845 **** # This is virtually a duplicate of what happens in configure.lang; we do # an extra check to make sure this only happens if ln -s can be used. if test "$symbolic_link" = "ln -s"; then ! for d in .. ${subdirs} ; do if test $d != ..; then STARTDIR=`pwd` cd $d --- 7841,7847 ---- # This is virtually a duplicate of what happens in configure.lang; we do # an extra check to make sure this only happens if ln -s can be used. if test "$symbolic_link" = "ln -s"; then ! for d in .. ${subdirs} fixinc ; do if test $d != ..; then STARTDIR=`pwd` cd $d diff -Nrc3pad gcc-3.0.2/gcc/configure.in gcc-3.0.3/gcc/configure.in *** gcc-3.0.2/gcc/configure.in Tue Jul 24 18:46:30 2001 --- gcc-3.0.3/gcc/configure.in Tue Dec 4 11:42:38 2001 *************** if test x"$gcc_cv_as_dwarf2_debug_line" *** 1612,1617 **** --- 1612,1621 ---- fi AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line) + if test "$prefix" != "/usr" && test "$prefix" != "/usr/local" ; then + AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include") + fi + # Figure out what language subdirectories are present. # Look if the user specified --enable-languages="..."; if not, use # the environment variable $LANGUAGES if defined. $LANGUAGES might *************** AC_SUBST(tm_file) *** 2026,2031 **** --- 2030,2036 ---- AC_SUBST(tm_p_file_list) AC_SUBST(tm_p_file) AC_SUBST(xm_file) + AC_SUBST(xm_defines) AC_SUBST(will_use_collect2) AC_SUBST(c_target_objs) AC_SUBST(cxx_target_objs) *************** esac *** 2088,2094 **** # This is virtually a duplicate of what happens in configure.lang; we do # an extra check to make sure this only happens if ln -s can be used. if test "$symbolic_link" = "ln -s"; then ! for d in .. ${subdirs} ; do if test $d != ..; then STARTDIR=`pwd` cd $d --- 2093,2099 ---- # This is virtually a duplicate of what happens in configure.lang; we do # an extra check to make sure this only happens if ln -s can be used. if test "$symbolic_link" = "ln -s"; then ! for d in .. ${subdirs} fixinc ; do if test $d != ..; then STARTDIR=`pwd` cd $d diff -Nrc3pad gcc-3.0.2/gcc/cp/ChangeLog gcc-3.0.3/gcc/cp/ChangeLog *** gcc-3.0.2/gcc/cp/ChangeLog Tue Oct 23 10:19:31 2001 --- gcc-3.0.3/gcc/cp/ChangeLog Thu Dec 20 11:21:50 2001 *************** *** 1,3 **** --- 1,89 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-12 Jason Merrill + + * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER + if we're in a template. + + 2001-12-08 John David Anglin + + * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in + call to build_aggr_init. + * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. + + 2001-12-05 Jason Merrill + + * pt.c (push_tinst_level): No longer static. + * cp-tree.h: Declare it. + * optimize.c (expand_call_inline): Record template instantiation + context. + + * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY + on the __*_type_info type if we haven't seen a definition. + + 2001-12-03 Hans-Peter Nilsson + + * decl.c (xref_basetypes): Don't use C99 construct in tag_code + declaration and initialization. + + 2001-12-03 Kriang Lerdsuwanakij + + * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, + CONST_CAST_EXPR. + * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. + + 2001-12-03 Mumit Khan + + PR c++/3394 + * decl.c (xref_basetypes): Handle attributes between + 'class' and name. + + 2001-12-03 Jason Merrill + + * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the + immediate binfos for our virtual bases. + + 2001-11-29 Mark Mitchell + + PR c++/3048 + * cp-tree.h (ovl_member): Remove. + * decl2.c (merge_functions): Handle extern "C" functions + specially. + * tree.c (ovl_member): Remove. + + PR c++/4842 + * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a + FUNCTION_DECL, as input. + (mark_overriders): Remove. + (warn_hidden): Rework for the new ABI. + + PR c++/3471 + * call.c (convert_like_real): Do not build additional temporaries + for rvalues of class type. + + 2001-11-20 Mark Mitchell + + PR c++/3637 + * call.c (non_reference): Add documentation. + (convert_class_to_reference): Do not strip reference types + from conversion operators. + (maybe_handle_ref_bind): Simplify. + (compare_ics): Correct handling of references. + + 2001-11-19 Mark Mitchell + + * cp/decl2.c (grok_alignof): Make sure that expression created + while processing a template do not have a type. + * cp/typeck.c (c_sizeof): Likewise. + (expr_sizeof): Likewise. + (c_alignof): Likewise. + + 2001-11-14 Joseph S. Myers + + * Make-lang.in: Change all uses of $(manext) to $(man1ext). + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/cp/Make-lang.in gcc-3.0.3/gcc/cp/Make-lang.in *** gcc-3.0.2/gcc/cp/Make-lang.in Fri Sep 21 18:33:22 2001 --- gcc-3.0.3/gcc/cp/Make-lang.in Wed Nov 14 14:33:42 2001 *************** c++.install-info: *** 184,196 **** c++.install-man: $(srcdir)/cp/g++.1 -if [ -f cc1plus$(exeext) ] ; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(GXX_CROSS_NAME)$(manext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_CROSS_NAME)$(manext); \ ! chmod a-x $(man1dir)/$(GXX_CROSS_NAME)$(manext); \ else \ ! rm -f $(man1dir)/$(GXX_INSTALL_NAME)$(manext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_INSTALL_NAME)$(manext); \ ! chmod a-x $(man1dir)/$(GXX_INSTALL_NAME)$(manext); \ fi; \ else true; fi --- 184,196 ---- c++.install-man: $(srcdir)/cp/g++.1 -if [ -f cc1plus$(exeext) ] ; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ else \ ! rm -f $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ fi; \ else true; fi *************** c++.uninstall: *** 201,208 **** -rm -rf $(bindir)/$(GXX_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext) ! -rm -rf $(man1dir)/$(GXX_INSTALL_NAME)$(manext) ! -rm -rf $(man1dir)/$(GXX_CROSS_NAME)$(manext) # # Clean hooks: # A lot of the ancillary files are deleted by the main makefile. --- 201,208 ---- -rm -rf $(bindir)/$(GXX_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext) ! -rm -rf $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext) ! -rm -rf $(man1dir)/$(GXX_CROSS_NAME)$(man1ext) # # Clean hooks: # A lot of the ancillary files are deleted by the main makefile. diff -Nrc3pad gcc-3.0.2/gcc/cp/call.c gcc-3.0.3/gcc/cp/call.c *** gcc-3.0.2/gcc/cp/call.c Tue Sep 4 06:03:03 2001 --- gcc-3.0.3/gcc/cp/call.c Thu Nov 29 12:16:18 2001 *************** static tree reference_binding PARAMS ((t *** 87,93 **** static tree non_reference PARAMS ((tree)); static tree build_conv PARAMS ((enum tree_code, tree, tree)); static int is_subseq PARAMS ((tree, tree)); ! static int maybe_handle_ref_bind PARAMS ((tree*, tree*)); static void maybe_handle_implicit_object PARAMS ((tree*)); static struct z_candidate * add_candidate PARAMS ((struct z_candidate *, tree, tree, int)); --- 87,93 ---- static tree non_reference PARAMS ((tree)); static tree build_conv PARAMS ((enum tree_code, tree, tree)); static int is_subseq PARAMS ((tree, tree)); ! static tree maybe_handle_ref_bind PARAMS ((tree*)); static void maybe_handle_implicit_object PARAMS ((tree*)); static struct z_candidate * add_candidate PARAMS ((struct z_candidate *, tree, tree, int)); *************** build_conv (code, type, from) *** 638,643 **** --- 638,646 ---- return t; } + /* If T is a REFERENCE_TYPE return the type to which T refers. + Otherwise, return T itself. */ + static tree non_reference (t) tree t; *************** convert_class_to_reference (t, s, expr) *** 998,1005 **** return NULL_TREE; conv = build1 (IDENTITY_CONV, s, expr); ! conv = build_conv (USER_CONV, ! non_reference (TREE_TYPE (TREE_TYPE (cand->fn))), conv); TREE_OPERAND (conv, 1) = build_ptr_wrapper (cand); ICS_USER_FLAG (conv) = 1; --- 1001,1007 ---- return NULL_TREE; conv = build1 (IDENTITY_CONV, s, expr); ! conv = build_conv (USER_CONV, TREE_TYPE (TREE_TYPE (cand->fn)), conv); TREE_OPERAND (conv, 1) = build_ptr_wrapper (cand); ICS_USER_FLAG (conv) = 1; *************** convert_like_real (convs, expr, fn, argn *** 3788,3794 **** If the target is a class, that means call a ctor. */ if (IS_AGGR_TYPE (totype) ! && (inner >= 0 || !real_lvalue_p (expr))) { savew = warningcount, savee = errorcount; expr = build_new_method_call --- 3790,3796 ---- If the target is a class, that means call a ctor. */ if (IS_AGGR_TYPE (totype) ! && (inner >= 0 || !lvalue_p (expr))) { savew = warningcount, savee = errorcount; expr = build_new_method_call *************** maybe_handle_implicit_object (ics) *** 4757,4779 **** } } ! /* If ICS is a REF_BIND, modify it appropriately, set TARGET_TYPE ! to the type the reference originally referred to, and return 1. ! Otherwise, return 0. */ ! static int ! maybe_handle_ref_bind (ics, target_type) tree* ics; - tree* target_type; { if (TREE_CODE (*ics) == REF_BIND) { ! *target_type = TREE_TYPE (TREE_TYPE (*ics)); *ics = TREE_OPERAND (*ics, 0); ! return 1; } ! ! return 0; } /* Compare two implicit conversion sequences according to the rules set out in --- 4759,4780 ---- } } ! /* If *ICS is a REF_BIND set *ICS to the remainder of the conversion, ! and return the type to which the reference refers. Otherwise, ! leave *ICS unchanged and return NULL_TREE. */ ! static tree ! maybe_handle_ref_bind (ics) tree* ics; { if (TREE_CODE (*ics) == REF_BIND) { ! tree type = TREE_TYPE (TREE_TYPE (*ics)); *ics = TREE_OPERAND (*ics, 0); ! return type; } ! ! return NULL_TREE; } /* Compare two implicit conversion sequences according to the rules set out in *************** compare_ics (ics1, ics2) *** 4800,4807 **** /* REF_BINDING is non-zero if the result of the conversion sequence is a reference type. In that case TARGET_TYPE is the type referred to by the reference. */ - int ref_binding1; - int ref_binding2; tree target_type1; tree target_type2; --- 4801,4806 ---- *************** compare_ics (ics1, ics2) *** 4810,4817 **** maybe_handle_implicit_object (&ics2); /* Handle reference parameters. */ ! ref_binding1 = maybe_handle_ref_bind (&ics1, &target_type1); ! ref_binding2 = maybe_handle_ref_bind (&ics2, &target_type2); /* [over.ics.rank] --- 4809,4816 ---- maybe_handle_implicit_object (&ics2); /* Handle reference parameters. */ ! target_type1 = maybe_handle_ref_bind (&ics1); ! target_type2 = maybe_handle_ref_bind (&ics2); /* [over.ics.rank] *************** compare_ics (ics1, ics2) *** 5050,5058 **** } } } ! else if (IS_AGGR_TYPE_CODE (TREE_CODE (from_type1)) && same_type_p (from_type1, from_type2)) { /* [over.ics.rank] --binding of an expression of type C to a reference of type --- 5049,5059 ---- } } } ! else if (CLASS_TYPE_P (non_reference (from_type1)) && same_type_p (from_type1, from_type2)) { + tree from = non_reference (from_type1); + /* [over.ics.rank] --binding of an expression of type C to a reference of type *************** compare_ics (ics1, ics2) *** 5060,5067 **** reference of type A& --conversion of C to B is better than conversion of C to A, */ ! if (is_properly_derived_from (from_type1, to_type1) ! && is_properly_derived_from (from_type1, to_type2)) { if (is_properly_derived_from (to_type1, to_type2)) return 1; --- 5061,5068 ---- reference of type A& --conversion of C to B is better than conversion of C to A, */ ! if (is_properly_derived_from (from, to_type1) ! && is_properly_derived_from (from, to_type2)) { if (is_properly_derived_from (to_type1, to_type2)) return 1; *************** compare_ics (ics1, ics2) *** 5069,5077 **** return -1; } } ! else if (IS_AGGR_TYPE_CODE (TREE_CODE (to_type1)) && same_type_p (to_type1, to_type2)) { /* [over.ics.rank] --binding of an expression of type B to a reference of type --- 5070,5080 ---- return -1; } } ! else if (CLASS_TYPE_P (non_reference (to_type1)) && same_type_p (to_type1, to_type2)) { + tree to = non_reference (to_type1); + /* [over.ics.rank] --binding of an expression of type B to a reference of type *************** compare_ics (ics1, ics2) *** 5079,5086 **** reference of type A&, --onversion of B to A is better than conversion of C to A */ ! if (is_properly_derived_from (from_type1, to_type1) ! && is_properly_derived_from (from_type2, to_type1)) { if (is_properly_derived_from (from_type2, from_type1)) return 1; --- 5082,5089 ---- reference of type A&, --onversion of B to A is better than conversion of C to A */ ! if (is_properly_derived_from (from_type1, to) ! && is_properly_derived_from (from_type2, to)) { if (is_properly_derived_from (from_type2, from_type1)) return 1; *************** compare_ics (ics1, ics2) *** 5108,5114 **** initialized by S2 refers is more cv-qualified than the type to which the reference initialized by S1 refers */ ! if (ref_binding1 && ref_binding2 && same_type_ignoring_top_level_qualifiers_p (to_type1, to_type2)) return comp_cv_qualification (target_type2, target_type1); --- 5111,5117 ---- initialized by S2 refers is more cv-qualified than the type to which the reference initialized by S1 refers */ ! if (target_type1 && target_type2 && same_type_ignoring_top_level_qualifiers_p (to_type1, to_type2)) return comp_cv_qualification (target_type2, target_type1); diff -Nrc3pad gcc-3.0.2/gcc/cp/class.c gcc-3.0.3/gcc/cp/class.c *** gcc-3.0.2/gcc/cp/class.c Fri Sep 21 18:33:22 2001 --- gcc-3.0.3/gcc/cp/class.c Sun Dec 2 18:38:50 2001 *************** static void finish_struct_bits PARAMS (( *** 122,128 **** static int alter_access PARAMS ((tree, tree, tree)); static void handle_using_decl PARAMS ((tree, tree)); static int strictly_overrides PARAMS ((tree, tree)); - static void mark_overriders PARAMS ((tree, tree)); static void check_for_override PARAMS ((tree, tree)); static tree dfs_modify_vtables PARAMS ((tree, void *)); static tree modify_all_vtables PARAMS ((tree, int *, tree)); --- 122,127 ---- *************** strictly_overrides (fndecl1, fndecl2) *** 3003,3061 **** return 0; } ! /* Get the base virtual function declarations in T that are either ! overridden or hidden by FNDECL as a list. We set TREE_PURPOSE with ! the overrider/hider. */ static tree ! get_basefndecls (fndecl, t) ! tree fndecl, t; { ! tree methods = TYPE_METHODS (t); tree base_fndecls = NULL_TREE; ! tree binfos = BINFO_BASETYPES (TYPE_BINFO (t)); ! int i, n_baseclasses = binfos ? TREE_VEC_LENGTH (binfos) : 0; ! ! while (methods) ! { ! if (TREE_CODE (methods) == FUNCTION_DECL ! && DECL_VINDEX (methods) != NULL_TREE ! && DECL_NAME (fndecl) == DECL_NAME (methods)) ! base_fndecls = tree_cons (fndecl, methods, base_fndecls); ! methods = TREE_CHAIN (methods); ! } if (base_fndecls) return base_fndecls; for (i = 0; i < n_baseclasses; i++) { ! tree base_binfo = TREE_VEC_ELT (binfos, i); ! tree basetype = BINFO_TYPE (base_binfo); ! ! base_fndecls = chainon (get_basefndecls (fndecl, basetype), base_fndecls); } return base_fndecls; } - /* Mark the functions that have been hidden with their overriders. - Since we start out with all functions already marked with a hider, - no need to mark functions that are just hidden. - - Subroutine of warn_hidden. */ - - static void - mark_overriders (fndecl, base_fndecls) - tree fndecl, base_fndecls; - { - for (; base_fndecls; base_fndecls = TREE_CHAIN (base_fndecls)) - if (same_signature_p (fndecl, TREE_VALUE (base_fndecls))) - TREE_PURPOSE (base_fndecls) = fndecl; - } - /* If this declaration supersedes the declaration of a method declared virtual in the base class, then mark this field as being virtual as well. */ --- 3002,3038 ---- return 0; } ! /* Get the base virtual function declarations in T that have the ! indicated NAME. */ static tree ! get_basefndecls (name, t) ! tree name, t; { ! tree methods; tree base_fndecls = NULL_TREE; ! int n_baseclasses = CLASSTYPE_N_BASECLASSES (t); ! int i; ! for (methods = TYPE_METHODS (t); methods; methods = TREE_CHAIN (methods)) ! if (TREE_CODE (methods) == FUNCTION_DECL ! && DECL_VINDEX (methods) != NULL_TREE ! && DECL_NAME (methods) == name) ! base_fndecls = tree_cons (NULL_TREE, methods, base_fndecls); if (base_fndecls) return base_fndecls; for (i = 0; i < n_baseclasses; i++) { ! tree basetype = TYPE_BINFO_BASETYPE (t, i); ! base_fndecls = chainon (get_basefndecls (name, basetype), base_fndecls); } return base_fndecls; } /* If this declaration supersedes the declaration of a method declared virtual in the base class, then mark this field as being virtual as well. */ *************** warn_hidden (t) *** 3103,3159 **** /* We go through each separately named virtual function. */ for (i = 2; i < n_methods && TREE_VEC_ELT (method_vec, i); ++i) { ! tree fns = TREE_VEC_ELT (method_vec, i); ! tree fndecl = NULL_TREE; ! ! tree base_fndecls = NULL_TREE; ! tree binfos = BINFO_BASETYPES (TYPE_BINFO (t)); ! int i, n_baseclasses = binfos ? TREE_VEC_LENGTH (binfos) : 0; ! /* First see if we have any virtual functions in this batch. */ ! for (; fns; fns = OVL_NEXT (fns)) { ! fndecl = OVL_CURRENT (fns); ! if (DECL_VINDEX (fndecl)) ! break; } ! if (fns == NULL_TREE) continue; ! /* First we get a list of all possible functions that might be ! hidden from each base class. */ ! for (i = 0; i < n_baseclasses; i++) { ! tree base_binfo = TREE_VEC_ELT (binfos, i); ! tree basetype = BINFO_TYPE (base_binfo); ! ! base_fndecls = chainon (get_basefndecls (fndecl, basetype), ! base_fndecls); } - fns = OVL_NEXT (fns); - - /* ...then mark up all the base functions with overriders, preferring - overriders to hiders. */ - if (base_fndecls) - for (; fns; fns = OVL_NEXT (fns)) - { - fndecl = OVL_CURRENT (fns); - if (DECL_VINDEX (fndecl)) - mark_overriders (fndecl, base_fndecls); - } - /* Now give a warning for all base functions without overriders, as they are hidden. */ ! for (; base_fndecls; base_fndecls = TREE_CHAIN (base_fndecls)) ! if (!same_signature_p (TREE_PURPOSE (base_fndecls), ! TREE_VALUE (base_fndecls))) ! { ! /* Here we know it is a hider, and no overrider exists. */ ! cp_warning_at ("`%D' was hidden", TREE_VALUE (base_fndecls)); ! cp_warning_at (" by `%D'", TREE_PURPOSE (base_fndecls)); ! } } } --- 3080,3138 ---- /* We go through each separately named virtual function. */ for (i = 2; i < n_methods && TREE_VEC_ELT (method_vec, i); ++i) { ! tree fns; ! tree name; ! tree fndecl; ! tree base_fndecls; ! int j; ! /* All functions in this slot in the CLASSTYPE_METHOD_VEC will ! have the same name. Figure out what name that is. */ ! name = DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, i))); ! /* There are no possibly hidden functions yet. */ ! base_fndecls = NULL_TREE; ! /* Iterate through all of the base classes looking for possibly ! hidden functions. */ ! for (j = 0; j < CLASSTYPE_N_BASECLASSES (t); j++) { ! tree basetype = TYPE_BINFO_BASETYPE (t, j); ! base_fndecls = chainon (get_basefndecls (name, basetype), ! base_fndecls); } ! /* If there are no functions to hide, continue. */ ! if (!base_fndecls) continue; ! /* Remove any overridden functions. */ ! for (fns = TREE_VEC_ELT (method_vec, i); fns; fns = OVL_NEXT (fns)) { ! fndecl = OVL_CURRENT (fns); ! if (DECL_VINDEX (fndecl)) ! { ! tree *prev = &base_fndecls; ! ! while (*prev) ! /* If the method from the base class has the same ! signature as the method from the derived class, it ! has been overridden. */ ! if (same_signature_p (fndecl, TREE_VALUE (*prev))) ! *prev = TREE_CHAIN (*prev); ! else ! prev = &TREE_CHAIN (*prev); ! } } /* Now give a warning for all base functions without overriders, as they are hidden. */ ! while (base_fndecls) ! { ! /* Here we know it is a hider, and no overrider exists. */ ! cp_warning_at ("`%D' was hidden", TREE_VALUE (base_fndecls)); ! cp_warning_at (" by `%D'", ! OVL_CURRENT (TREE_VEC_ELT (method_vec, i))); ! base_fndecls = TREE_CHAIN (base_fndecls); ! } } } *************** finish_vtbls (t) *** 7135,7140 **** --- 7114,7120 ---- { tree list; tree vbase; + int i; /* Under the new ABI, we lay out the primary and secondary vtables in one contiguous vtable. The primary vtable is *************** finish_vtbls (t) *** 7158,7163 **** --- 7138,7155 ---- accumulate_vtbl_inits (real_base, real_base, TYPE_BINFO (t), t, list); + } + + /* Fill in BINFO_VPTR_FIELD in the immediate binfos for our virtual + base classes, for the benefit of the debugging backends. */ + for (i = 0; i < BINFO_N_BASETYPES (TYPE_BINFO (t)); ++i) + { + tree base = BINFO_BASETYPE (TYPE_BINFO (t), i); + if (TREE_VIA_VIRTUAL (base)) + { + tree vbase = binfo_for_vbase (BINFO_TYPE (base), t); + BINFO_VPTR_FIELD (base) = BINFO_VPTR_FIELD (vbase); + } } if (TYPE_BINFO_VTABLE (t)) diff -Nrc3pad gcc-3.0.2/gcc/cp/cp-tree.h gcc-3.0.3/gcc/cp/cp-tree.h *** gcc-3.0.2/gcc/cp/cp-tree.h Tue Aug 7 06:06:43 2001 --- gcc-3.0.3/gcc/cp/cp-tree.h Sat Dec 8 08:12:51 2001 *************** enum overload_flags { NO_SPECIAL = 0, DT *** 3508,3514 **** LOOKUP_ONLYCONVERTING means that non-conversion constructors are not tried. DIRECT_BIND means that if a temporary is created, it should be created so that it lives as long as the current variable bindings; otherwise it ! only lives until the end of the complete-expression. LOOKUP_SPECULATIVELY means return NULL_TREE if we cannot find what we are after. Note, LOOKUP_COMPLAIN is checked and error messages printed before LOOKUP_SPECULATIVELY is checked. --- 3508,3517 ---- LOOKUP_ONLYCONVERTING means that non-conversion constructors are not tried. DIRECT_BIND means that if a temporary is created, it should be created so that it lives as long as the current variable bindings; otherwise it ! only lives until the end of the complete-expression. It also forces ! direct-initialization in cases where other parts of the compiler have ! already generated a temporary, such as reference initialization and the ! catch parameter. LOOKUP_SPECULATIVELY means return NULL_TREE if we cannot find what we are after. Note, LOOKUP_COMPLAIN is checked and error messages printed before LOOKUP_SPECULATIVELY is checked. *************** extern void do_decl_instantiation PARAM *** 4173,4178 **** --- 4176,4182 ---- extern void do_type_instantiation PARAMS ((tree, tree, int)); extern tree instantiate_decl PARAMS ((tree, int)); extern tree get_bindings PARAMS ((tree, tree, tree)); + extern int push_tinst_level PARAMS ((tree)); extern void pop_tinst_level PARAMS ((void)); extern int more_specialized_class PARAMS ((tree, tree)); extern int is_member_template PARAMS ((tree)); *************** extern int is_overloaded_fn PARAMS ((t *** 4404,4410 **** extern tree get_first_fn PARAMS ((tree)); extern int bound_pmf_p PARAMS ((tree)); extern tree ovl_cons PARAMS ((tree, tree)); - extern int ovl_member PARAMS ((tree, tree)); extern tree build_overload PARAMS ((tree, tree)); extern tree fnaddr_from_vtable_entry PARAMS ((tree)); extern tree function_arg_chain PARAMS ((tree)); --- 4408,4413 ---- diff -Nrc3pad gcc-3.0.2/gcc/cp/decl.c gcc-3.0.3/gcc/cp/decl.c *** gcc-3.0.2/gcc/cp/decl.c Thu Jul 26 01:07:24 2001 --- gcc-3.0.3/gcc/cp/decl.c Thu Dec 6 04:54:12 2001 *************** xref_basetypes (code_type_node, name, re *** 12792,12798 **** tree base; int i, len; ! enum tag_types tag_code = (enum tag_types) tree_low_cst (code_type_node, 1); if (tag_code == union_type) { --- 12792,12807 ---- tree base; int i, len; ! enum tag_types tag_code; ! ! /* If we are called from the parser, code_type_node will sometimes be a ! TREE_LIST. This indicates that the user wrote ! "class __attribute__ ((foo)) bar". Extract the attributes so that ! tree_low_cst doesn't crash. */ ! if (TREE_CODE (code_type_node) == TREE_LIST) ! code_type_node = TREE_VALUE (code_type_node); ! ! tag_code = (enum tag_types) tree_low_cst (code_type_node, 1); if (tag_code == union_type) { diff -Nrc3pad gcc-3.0.2/gcc/cp/decl2.c gcc-3.0.3/gcc/cp/decl2.c *** gcc-3.0.2/gcc/cp/decl2.c Fri Sep 21 18:33:23 2001 --- gcc-3.0.3/gcc/cp/decl2.c Thu Nov 29 19:12:42 2001 *************** grok_alignof (expr) *** 1054,1060 **** int bestalign; if (processing_template_decl) ! return build_min (ALIGNOF_EXPR, sizetype, expr); if (TREE_CODE (expr) == COMPONENT_REF && DECL_C_BIT_FIELD (TREE_OPERAND (expr, 1))) --- 1054,1060 ---- int bestalign; if (processing_template_decl) ! return build_min_nt (ALIGNOF_EXPR, expr); if (TREE_CODE (expr) == COMPONENT_REF && DECL_C_BIT_FIELD (TREE_OPERAND (expr, 1))) *************** merge_functions (s1, s2) *** 4278,4286 **** { for (; s2; s2 = OVL_NEXT (s2)) { ! tree fn = OVL_CURRENT (s2); ! if (! ovl_member (fn, s1)) ! s1 = build_overload (fn, s1); } return s1; } --- 4278,4303 ---- { for (; s2; s2 = OVL_NEXT (s2)) { ! tree fn2 = OVL_CURRENT (s2); ! tree fns1; ! ! for (fns1 = s1; fns1; fns1 = OVL_NEXT (fns1)) ! { ! tree fn1 = OVL_CURRENT (fns1); ! ! /* If the function from S2 is already in S1, there is no ! need to add it again. For `extern "C"' functions, we ! might have two FUNCTION_DECLs for the same function, in ! different namespaces; again, we only need one of them. */ ! if (fn1 == fn2 ! || (DECL_EXTERN_C_P (fn1) && DECL_EXTERN_C_P (fn2) ! && DECL_NAME (fn1) == DECL_NAME (fn2))) ! break; ! } ! ! /* If we exhausted all of the functions in S1, FN2 is new. */ ! if (!fns1) ! s1 = build_overload (fn2, s1); } return s1; } diff -Nrc3pad gcc-3.0.2/gcc/cp/mangle.c gcc-3.0.3/gcc/cp/mangle.c *** gcc-3.0.2/gcc/cp/mangle.c Thu Apr 26 01:30:53 2001 --- gcc-3.0.3/gcc/cp/mangle.c Mon Dec 3 09:38:50 2001 *************** write_expression (expr) *** 1817,1834 **** /* If it wasn't any of those, recursively expand the expression. */ write_string (operator_name_info[(int) code].mangled_name); ! /* Handle pointers-to-members specially. */ ! if (code == SCOPE_REF) { write_type (TREE_OPERAND (expr, 0)); if (TREE_CODE (TREE_OPERAND (expr, 1)) == IDENTIFIER_NODE) write_source_name (TREE_OPERAND (expr, 1)); else write_encoding (TREE_OPERAND (expr, 1)); } - else - for (i = 0; i < TREE_CODE_LENGTH (code); ++i) - write_expression (TREE_OPERAND (expr, i)); } } --- 1817,1848 ---- /* If it wasn't any of those, recursively expand the expression. */ write_string (operator_name_info[(int) code].mangled_name); ! switch (code) { + case CAST_EXPR: + write_type (TREE_TYPE (expr)); + write_expression (TREE_VALUE (TREE_OPERAND (expr, 0))); + break; + + case STATIC_CAST_EXPR: + case CONST_CAST_EXPR: + write_type (TREE_TYPE (expr)); + write_expression (TREE_OPERAND (expr, 0)); + break; + + /* Handle pointers-to-members specially. */ + case SCOPE_REF: write_type (TREE_OPERAND (expr, 0)); if (TREE_CODE (TREE_OPERAND (expr, 1)) == IDENTIFIER_NODE) write_source_name (TREE_OPERAND (expr, 1)); else write_encoding (TREE_OPERAND (expr, 1)); + break; + + default: + for (i = 0; i < TREE_CODE_LENGTH (code); ++i) + write_expression (TREE_OPERAND (expr, i)); } } } diff -Nrc3pad gcc-3.0.2/gcc/cp/operators.def gcc-3.0.3/gcc/cp/operators.def *** gcc-3.0.2/gcc/cp/operators.def Tue Apr 3 21:17:06 2001 --- gcc-3.0.3/gcc/cp/operators.def Mon Dec 3 09:38:51 2001 *************** DEF_SIMPLE_OPERATOR ("alignof", ALIGNOF_ *** 102,107 **** --- 102,110 ---- /* The cast operator. */ DEF_SIMPLE_OPERATOR ("", TYPE_EXPR, "cv", 1) + DEF_SIMPLE_OPERATOR ("", CAST_EXPR, "cv", 1) + DEF_SIMPLE_OPERATOR ("", CONST_CAST_EXPR, "cv", 1) + DEF_SIMPLE_OPERATOR ("", STATIC_CAST_EXPR, "cv", 1) /* Binary operators. */ DEF_SIMPLE_OPERATOR ("+", PLUS_EXPR, "pl", 2) diff -Nrc3pad gcc-3.0.2/gcc/cp/optimize.c gcc-3.0.3/gcc/cp/optimize.c *** gcc-3.0.2/gcc/cp/optimize.c Thu Aug 30 07:43:42 2001 --- gcc-3.0.3/gcc/cp/optimize.c Thu Dec 6 04:54:15 2001 *************** expand_call_inline (tp, walk_subtrees, d *** 777,782 **** --- 777,786 ---- if (!inlinable_function_p (fn, id)) return NULL_TREE; + if (DECL_TEMPLATE_INSTANTIATION (fn) + && ! push_tinst_level (fn)) + return NULL_TREE; + /* Set the current filename and line number to the function we are inlining so that when we create new _STMT nodes here they get line numbers corresponding to the function we are calling. We *************** expand_call_inline (tp, walk_subtrees, d *** 914,919 **** --- 918,926 ---- /* Don't walk into subtrees. We've already handled them above. */ *walk_subtrees = 0; + + if (DECL_TEMPLATE_INSTANTIATION (fn)) + pop_tinst_level (); /* Keep iterating. */ return NULL_TREE; diff -Nrc3pad gcc-3.0.2/gcc/cp/pt.c gcc-3.0.3/gcc/cp/pt.c *** gcc-3.0.2/gcc/cp/pt.c Thu Aug 23 06:50:35 2001 --- gcc-3.0.3/gcc/cp/pt.c Thu Dec 6 04:54:16 2001 *************** static int try_one_overload PARAMS ((tre *** 100,106 **** unification_kind_t, int)); static int unify PARAMS ((tree, tree, tree, tree, int)); static void add_pending_template PARAMS ((tree)); - static int push_tinst_level PARAMS ((tree)); static void reopen_tinst_level PARAMS ((tree)); static tree classtype_mangled_name PARAMS ((tree)); static char *mangle_class_name_for_template PARAMS ((const char *, tree, tree)); --- 100,105 ---- *************** lookup_template_class (d1, arglist, in_d *** 4186,4194 **** Create the partial instantiation. */ TREE_VEC_LENGTH (arglist)--; ! template = tsubst (template, arglist, /*complain=*/0, NULL_TREE); TREE_VEC_LENGTH (arglist)++; - found = template; } } --- 4185,4192 ---- Create the partial instantiation. */ TREE_VEC_LENGTH (arglist)--; ! found = tsubst (template, arglist, /*complain=*/0, NULL_TREE); TREE_VEC_LENGTH (arglist)++; } } *************** static int last_template_error_tick; *** 4434,4440 **** /* We're starting to instantiate D; record the template instantiation context for diagnostics and to restore it later. */ ! static int push_tinst_level (d) tree d; { --- 4432,4438 ---- /* We're starting to instantiate D; record the template instantiation context for diagnostics and to restore it later. */ ! int push_tinst_level (d) tree d; { diff -Nrc3pad gcc-3.0.2/gcc/cp/rtti.c gcc-3.0.3/gcc/cp/rtti.c *** gcc-3.0.2/gcc/cp/rtti.c Wed Oct 3 10:02:28 2001 --- gcc-3.0.3/gcc/cp/rtti.c Thu Dec 6 04:54:19 2001 *************** create_pseudo_type_info VPARAMS((const c *** 1302,1307 **** --- 1302,1316 ---- /* Get the vtable decl. */ real_type = xref_tag (class_type_node, get_identifier (real_name), 1); + if (! TYPE_SIZE (real_type)) + { + /* We never saw a definition of this type, so we need to tell the + compiler that this is an exported class, as indeed all of the + __*_type_info classes are. */ + SET_CLASSTYPE_INTERFACE_KNOWN (real_type); + CLASSTYPE_INTERFACE_ONLY (real_type) = 1; + } + vtable_decl = get_vtable_decl (real_type, /*complete=*/1); vtable_decl = build_unary_op (ADDR_EXPR, vtable_decl, 0); diff -Nrc3pad gcc-3.0.2/gcc/cp/semantics.c gcc-3.0.3/gcc/cp/semantics.c *** gcc-3.0.2/gcc/cp/semantics.c Wed Jul 11 09:57:25 2001 --- gcc-3.0.3/gcc/cp/semantics.c Wed Dec 12 11:05:20 2001 *************** finish_mem_initializers (init_list) *** 1167,1175 **** setup_vtbl_ptr (member_init_list, base_init_list); } ! /* Cache the value of this class's main virtual function table pointer ! in a register variable. This will save one indirection if a ! more than one virtual function call is made this function. */ void setup_vtbl_ptr (member_init_list, base_init_list) --- 1167,1178 ---- setup_vtbl_ptr (member_init_list, base_init_list); } ! /* Do the initialization work necessary at the beginning of a constructor ! or destructor. This means processing member initializers and setting ! vtable pointers. ! ! ??? The call to keep_next_level at the end applies to all functions, but ! should probably go somewhere else. */ void setup_vtbl_ptr (member_init_list, base_init_list) *************** setup_vtbl_ptr (member_init_list, base_i *** 1182,1208 **** if (vtbls_set_up_p) return; ! if (DECL_CONSTRUCTOR_P (current_function_decl)) { ! if (processing_template_decl) ! add_stmt (build_min_nt ! (CTOR_INITIALIZER, ! member_init_list, base_init_list)); ! else ! { ! tree ctor_stmt; ! /* Mark the beginning of the constructor. */ ! ctor_stmt = build_stmt (CTOR_STMT); ! CTOR_BEGIN_P (ctor_stmt) = 1; ! add_stmt (ctor_stmt); ! /* And actually initialize the base-classes and members. */ ! emit_base_init (member_init_list, base_init_list); ! } } ! else if (DECL_DESTRUCTOR_P (current_function_decl) ! && !processing_template_decl) { tree if_stmt; tree compound_stmt; --- 1185,1206 ---- if (vtbls_set_up_p) return; ! if (processing_template_decl) ! add_stmt (build_min_nt (CTOR_INITIALIZER, ! member_init_list, base_init_list)); ! else if (DECL_CONSTRUCTOR_P (current_function_decl)) { ! tree ctor_stmt; ! /* Mark the beginning of the constructor. */ ! ctor_stmt = build_stmt (CTOR_STMT); ! CTOR_BEGIN_P (ctor_stmt) = 1; ! add_stmt (ctor_stmt); ! /* And actually initialize the base-classes and members. */ ! emit_base_init (member_init_list, base_init_list); } ! else if (DECL_DESTRUCTOR_P (current_function_decl)) { tree if_stmt; tree compound_stmt; *************** simplify_aggr_init_exprs_r (tp, walk_sub *** 2310,2316 **** int old_ac = flag_access_control; flag_access_control = 0; ! call_expr = build_aggr_init (slot, call_expr, LOOKUP_ONLYCONVERTING); flag_access_control = old_ac; copy_from_buffer_p = 1; } --- 2308,2315 ---- int old_ac = flag_access_control; flag_access_control = 0; ! call_expr = build_aggr_init (slot, call_expr, ! DIRECT_BIND | LOOKUP_ONLYCONVERTING); flag_access_control = old_ac; copy_from_buffer_p = 1; } diff -Nrc3pad gcc-3.0.2/gcc/cp/tree.c gcc-3.0.3/gcc/cp/tree.c *** gcc-3.0.2/gcc/cp/tree.c Sun May 13 00:10:21 2001 --- gcc-3.0.3/gcc/cp/tree.c Thu Nov 29 19:12:44 2001 *************** build_overload (decl, chain) *** 995,1017 **** return ovl_cons (decl, chain); } - /* True if fn is in ovl. */ - - int - ovl_member (fn, ovl) - tree fn; - tree ovl; - { - if (ovl == NULL_TREE) - return 0; - if (TREE_CODE (ovl) != OVERLOAD) - return ovl == fn; - for (; ovl; ovl = OVL_CHAIN (ovl)) - if (OVL_FUNCTION (ovl) == fn) - return 1; - return 0; - } - int is_aggr_type_2 (t1, t2) tree t1, t2; --- 995,1000 ---- diff -Nrc3pad gcc-3.0.2/gcc/cp/typeck.c gcc-3.0.3/gcc/cp/typeck.c *** gcc-3.0.2/gcc/cp/typeck.c Fri Sep 21 18:33:24 2001 --- gcc-3.0.3/gcc/cp/typeck.c Mon Nov 19 20:39:23 2001 *************** c_sizeof (type) *** 1550,1556 **** tree size; if (processing_template_decl) ! return build_min (SIZEOF_EXPR, sizetype, type); if (code == FUNCTION_TYPE) { --- 1550,1556 ---- tree size; if (processing_template_decl) ! return build_min_nt (SIZEOF_EXPR, type); if (code == FUNCTION_TYPE) { *************** expr_sizeof (e) *** 1612,1618 **** tree e; { if (processing_template_decl) ! return build_min (SIZEOF_EXPR, sizetype, e); if (TREE_CODE (e) == COMPONENT_REF && DECL_C_BIT_FIELD (TREE_OPERAND (e, 1))) --- 1612,1618 ---- tree e; { if (processing_template_decl) ! return build_min_nt (SIZEOF_EXPR, e); if (TREE_CODE (e) == COMPONENT_REF && DECL_C_BIT_FIELD (TREE_OPERAND (e, 1))) *************** c_alignof (type) *** 1686,1692 **** tree t; if (processing_template_decl) ! return build_min (ALIGNOF_EXPR, sizetype, type); if (code == FUNCTION_TYPE || code == METHOD_TYPE) t = size_int (FUNCTION_BOUNDARY / BITS_PER_UNIT); --- 1686,1692 ---- tree t; if (processing_template_decl) ! return build_min_nt (ALIGNOF_EXPR, type); if (code == FUNCTION_TYPE || code == METHOD_TYPE) t = size_int (FUNCTION_BOUNDARY / BITS_PER_UNIT); diff -Nrc3pad gcc-3.0.2/gcc/cppdefault.c gcc-3.0.3/gcc/cppdefault.c *** gcc-3.0.2/gcc/cppdefault.c Mon May 14 12:46:13 2001 --- gcc-3.0.3/gcc/cppdefault.c Wed Nov 7 10:42:04 2001 *************** const struct default_include cpp_include *** 47,52 **** --- 47,55 ---- /* /usr/local/include comes before the fixincluded header files. */ { LOCAL_INCLUDE_DIR, 0, 0, 1 }, #endif + #ifdef PREFIX_INCLUDE_DIR + { PREFIX_INCLUDE_DIR, 0, 0, 1 }, + #endif #ifdef GCC_INCLUDE_DIR /* This is the dir for fixincludes and for gcc's private headers. */ { GCC_INCLUDE_DIR, "GCC", 0, 0 }, diff -Nrc3pad gcc-3.0.2/gcc/cppinit.c gcc-3.0.3/gcc/cppinit.c *** gcc-3.0.2/gcc/cppinit.c Sat Jun 9 16:05:32 2001 --- gcc-3.0.3/gcc/cppinit.c Sat Nov 24 05:44:14 2001 *************** init_dependency_output (pfile) *** 1781,1792 **** } /* If dependencies go to standard output, or -MG is used, we should ! suppress output. The user may be requesting other stuff to ! stdout, with -dM, -v etc. We let them shoot themselves in the ! foot. */ if (CPP_OPTION (pfile, deps_file) == 0 || CPP_OPTION (pfile, print_deps_missing_files)) ! CPP_OPTION (pfile, no_output) = 1; } static void --- 1781,1794 ---- } /* If dependencies go to standard output, or -MG is used, we should ! suppress output, including -dM, -dI etc. */ if (CPP_OPTION (pfile, deps_file) == 0 || CPP_OPTION (pfile, print_deps_missing_files)) ! { ! CPP_OPTION (pfile, no_output) = 1; ! CPP_OPTION (pfile, dump_macros) = 0; ! CPP_OPTION (pfile, dump_includes) = 0; ! } } static void diff -Nrc3pad gcc-3.0.2/gcc/cppmacro.c gcc-3.0.3/gcc/cppmacro.c *** gcc-3.0.2/gcc/cppmacro.c Mon Oct 8 14:56:36 2001 --- gcc-3.0.3/gcc/cppmacro.c Sat Nov 24 05:44:13 2001 *************** warn_of_redefinition (pfile, node, macro *** 1180,1188 **** if (node->flags & NODE_WARN) return 1; - if (! CPP_PEDANTIC (pfile)) - return 0; - /* Redefinition of a macro is allowed if and only if the old and new definitions are the same. (6.10.3 paragraph 2). */ macro1 = node->value.macro; --- 1180,1185 ---- diff -Nrc3pad gcc-3.0.2/gcc/cppspec.c gcc-3.0.3/gcc/cppspec.c *** gcc-3.0.2/gcc/cppspec.c Thu Jan 11 14:10:49 2001 --- gcc-3.0.3/gcc/cppspec.c Tue Dec 4 23:19:34 2001 *************** lang_specific_driver (in_argc, in_argv, *** 103,108 **** --- 103,111 ---- int i, j, quote = 0; const char **new_argv; int new_argc; + extern int is_cpp_driver; + + is_cpp_driver = 1; /* First pass. If we see an -S or -c, barf. If we see an input file, turn off read_stdin. If we see a second input file, it is actually diff -Nrc3pad gcc-3.0.2/gcc/dbxout.c gcc-3.0.3/gcc/dbxout.c *** gcc-3.0.2/gcc/dbxout.c Fri Jun 8 11:18:26 2001 --- gcc-3.0.3/gcc/dbxout.c Sun Dec 2 18:38:46 2001 *************** dbxout_type (type, full, show_arg_types) *** 1442,1450 **** have_used_extensions = 1; putc (TREE_VIA_VIRTUAL (child) ? '1' : '0', asmfile); putc (TREE_VIA_PUBLIC (child) ? '2' : '0', asmfile); ! fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, ! (tree_low_cst (BINFO_OFFSET (child), 0) ! * BITS_PER_UNIT)); fputc (',', asmfile); CHARS (15); dbxout_type (BINFO_TYPE (child), 0, 0); --- 1442,1458 ---- have_used_extensions = 1; putc (TREE_VIA_VIRTUAL (child) ? '1' : '0', asmfile); putc (TREE_VIA_PUBLIC (child) ? '2' : '0', asmfile); ! if (TREE_VIA_VIRTUAL (child) && strcmp (language_string, "GNU C++") == 0) ! /* For a virtual base, print the (negative) offset within ! the vtable where we must look to find the necessary ! adjustment. */ ! fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, ! (tree_low_cst (BINFO_VPTR_FIELD (child), 0) ! * BITS_PER_UNIT)); ! else ! fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, ! (tree_low_cst (BINFO_OFFSET (child), 0) ! * BITS_PER_UNIT)); fputc (',', asmfile); CHARS (15); dbxout_type (BINFO_TYPE (child), 0, 0); diff -Nrc3pad gcc-3.0.2/gcc/doc/cpp.1 gcc-3.0.3/gcc/doc/cpp.1 *** gcc-3.0.2/gcc/doc/cpp.1 Tue Oct 23 10:56:01 2001 --- gcc-3.0.3/gcc/doc/cpp.1 Wed Nov 14 14:33:38 2001 *************** *** 1,5 **** ! .\" Automatically generated by Pod::Man version 1.19 ! .\" Fri Oct 12 11:20:12 2001 .\" .\" Standard preamble: .\" ======================================================================== --- 1,5 ---- ! .\" Automatically generated by Pod::Man version 1.22 ! .\" Wed Nov 14 22:27:21 2001 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 131,137 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.0.2" "2001-10-12" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor --- 131,137 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.0.3" "2001-11-14" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor *************** added in the future. *** 427,437 **** \&\fIstandard\fR may be one of: .RS 4 ! .if n .IP """iso9899:1990""" 4 .el .IP "\f(CWiso9899:1990\fR" 4 .IX Item "iso9899:1990" .PD 0 ! .if n .IP """c89""" 4 .el .IP "\f(CWc89\fR" 4 .IX Item "c89" .PD --- 427,437 ---- \&\fIstandard\fR may be one of: .RS 4 ! .ie n .IP """iso9899:1990""" 4 .el .IP "\f(CWiso9899:1990\fR" 4 .IX Item "iso9899:1990" .PD 0 ! .ie n .IP """c89""" 4 .el .IP "\f(CWc89\fR" 4 .IX Item "c89" .PD *************** The \s-1ISO\s0 C standard from 1990. \f *** 439,473 **** this version of the standard. .Sp The \fB\-ansi\fR option is equivalent to \fB\-std=c89\fR. ! .if n .IP """iso9899:199409""" 4 .el .IP "\f(CWiso9899:199409\fR" 4 .IX Item "iso9899:199409" The 1990 C standard, as amended in 1994. ! .if n .IP """iso9899:1999""" 4 .el .IP "\f(CWiso9899:1999\fR" 4 .IX Item "iso9899:1999" .PD 0 ! .if n .IP """c99""" 4 .el .IP "\f(CWc99\fR" 4 .IX Item "c99" ! .if n .IP """iso9899:199x""" 4 .el .IP "\f(CWiso9899:199x\fR" 4 .IX Item "iso9899:199x" ! .if n .IP """c9x""" 4 .el .IP "\f(CWc9x\fR" 4 .IX Item "c9x" .PD The revised \s-1ISO\s0 C standard, published in December 1999. Before publication, this was known as C9X. ! .if n .IP """gnu89""" 4 .el .IP "\f(CWgnu89\fR" 4 .IX Item "gnu89" The 1990 C standard plus \s-1GNU\s0 extensions. This is the default. ! .if n .IP """gnu99""" 4 .el .IP "\f(CWgnu99\fR" 4 .IX Item "gnu99" .PD 0 ! .if n .IP """gnu9x""" 4 .el .IP "\f(CWgnu9x\fR" 4 .IX Item "gnu9x" .PD --- 439,473 ---- this version of the standard. .Sp The \fB\-ansi\fR option is equivalent to \fB\-std=c89\fR. ! .ie n .IP """iso9899:199409""" 4 .el .IP "\f(CWiso9899:199409\fR" 4 .IX Item "iso9899:199409" The 1990 C standard, as amended in 1994. ! .ie n .IP """iso9899:1999""" 4 .el .IP "\f(CWiso9899:1999\fR" 4 .IX Item "iso9899:1999" .PD 0 ! .ie n .IP """c99""" 4 .el .IP "\f(CWc99\fR" 4 .IX Item "c99" ! .ie n .IP """iso9899:199x""" 4 .el .IP "\f(CWiso9899:199x\fR" 4 .IX Item "iso9899:199x" ! .ie n .IP """c9x""" 4 .el .IP "\f(CWc9x\fR" 4 .IX Item "c9x" .PD The revised \s-1ISO\s0 C standard, published in December 1999. Before publication, this was known as C9X. ! .ie n .IP """gnu89""" 4 .el .IP "\f(CWgnu89\fR" 4 .IX Item "gnu89" The 1990 C standard plus \s-1GNU\s0 extensions. This is the default. ! .ie n .IP """gnu99""" 4 .el .IP "\f(CWgnu99\fR" 4 .IX Item "gnu99" .PD 0 ! .ie n .IP """gnu9x""" 4 .el .IP "\f(CWgnu9x\fR" 4 .IX Item "gnu9x" .PD *************** Print out \s-1GNU\s0 \s-1CPP\s0's versio *** 689,694 **** --- 689,695 ---- preprocess as normal. With two dashes, exit immediately. .SH "SEE ALSO" .IX Header "SEE ALSO" + \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7), \&\fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIcpp\fR, \fIgcc\fR, and \&\fIbinutils\fR. .SH "COPYRIGHT" *************** Free Software Foundation, Inc. *** 700,706 **** Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. A copy of ! the license is included in the accompanying manual for \s-1GCC\s0, in the ! section ``\s-1GNU\s0 Free Documentation License''. ! This manual contains no Invariant Sections, and has no Front-Cover Texts ! or Back-Cover Texts. --- 701,720 ---- Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. A copy of ! the license is included in the ! man page \fIgfdl\fR\|(7). ! This manual contains no Invariant Sections. The Front-Cover Texts are ! (a) (see below), and the Back-Cover Texts are (b) (see below). ! .PP ! (a) The \s-1FSF\s0's Front-Cover Text is: ! .PP ! .Vb 1 ! \& A GNU Manual ! .Ve ! (b) The \s-1FSF\s0's Back-Cover Text is: ! .PP ! .Vb 3 ! \& You have freedom to copy and modify this GNU Manual, like GNU ! \& software. Copies published by the Free Software Foundation raise ! \& funds for GNU development. ! .Ve diff -Nrc3pad gcc-3.0.2/gcc/doc/cpp.info gcc-3.0.3/gcc/doc/cpp.info *** gcc-3.0.2/gcc/doc/cpp.info Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/cpp.info Thu Dec 20 11:59:47 2001 *************** END-INFO-DIR-ENTRY *** 9,80 ****  Indirect: cpp.info-1: 191 ! cpp.info-2: 49230 ! cpp.info-3: 98558 ! cpp.info-4: 138540  Tag Table: (Indirect) Node: Top191 ! Node: Overview2745 ! Node: Initial processing5113 ! Node: Tokenization11570 ! Ref: Tokenization-Footnote-118741 ! Node: The preprocessing language18852 ! Node: Header Files21725 ! Node: Include Syntax23603 ! Node: Include Operation25105 ! Node: Search Path27001 ! Node: Once-Only Headers29553 ! Node: Computed Includes31207 ! Node: Wrapper Headers34346 ! Node: System Headers36765 ! Node: Macros38789 ! Node: Object-like Macros39889 ! Node: Function-like Macros43475 ! Node: Macro Arguments45085 ! Node: Stringification49230 ! Node: Concatenation52431 ! Node: Variadic Macros55545 ! Node: Predefined Macros59882 ! Node: Standard Predefined Macros60465 ! Node: Common Predefined Macros65887 ! Node: System-specific Predefined Macros72087 ! Node: C++ Named Operators74099 ! Node: Undefining and Redefining Macros75054 ! Node: Macro Pitfalls77132 ! Node: Misnesting77657 ! Node: Operator Precedence Problems78758 ! Node: Swallowing the Semicolon80613 ! Node: Duplication of Side Effects82625 ! Node: Self-Referential Macros84797 ! Node: Argument Prescan87207 ! Node: Newlines in Arguments90950 ! Node: Conditionals91895 ! Node: Conditional Uses93724 ! Node: Conditional Syntax95077 ! Node: Ifdef95392 ! Node: If98558 ! Node: Defined100971 ! Node: Else102244 ! Node: Elif102805 ! Node: Deleted Code104085 ! Node: Diagnostics105327 ! Node: Line Control106944 ! Node: Pragmas109058 ! Node: Other Directives113326 ! Node: Preprocessor Output114520 ! Node: Traditional Mode117616 ! Node: Implementation Details123195 ! Node: Implementation-defined behavior123818 ! Node: Implementation limits126091 ! Node: Obsolete Features128798 ! Node: Assertions129285 ! Node: Obsolete once-only headers131816 ! Node: Miscellaneous obsolete features133584 ! Node: Differences from previous versions134917 ! Node: Invocation138540 ! Node: Index of Directives157052 ! Node: Concept Index158413  End Tag Table --- 9,81 ----  Indirect: cpp.info-1: 191 ! cpp.info-2: 49238 ! cpp.info-3: 98566 ! cpp.info-4: 138548  Tag Table: (Indirect) Node: Top191 ! Node: Overview2753 ! Node: Initial processing5121 ! Node: Tokenization11578 ! Ref: Tokenization-Footnote-118749 ! Node: The preprocessing language18860 ! Node: Header Files21733 ! Node: Include Syntax23611 ! Node: Include Operation25113 ! Node: Search Path27009 ! Node: Once-Only Headers29561 ! Node: Computed Includes31215 ! Node: Wrapper Headers34354 ! Node: System Headers36773 ! Node: Macros38797 ! Node: Object-like Macros39897 ! Node: Function-like Macros43483 ! Node: Macro Arguments45093 ! Node: Stringification49238 ! Node: Concatenation52439 ! Node: Variadic Macros55553 ! Node: Predefined Macros59890 ! Node: Standard Predefined Macros60473 ! Node: Common Predefined Macros65895 ! Node: System-specific Predefined Macros72095 ! Node: C++ Named Operators74107 ! Node: Undefining and Redefining Macros75062 ! Node: Macro Pitfalls77140 ! Node: Misnesting77665 ! Node: Operator Precedence Problems78766 ! Node: Swallowing the Semicolon80621 ! Node: Duplication of Side Effects82633 ! Node: Self-Referential Macros84805 ! Node: Argument Prescan87215 ! Node: Newlines in Arguments90958 ! Node: Conditionals91903 ! Node: Conditional Uses93732 ! Node: Conditional Syntax95085 ! Node: Ifdef95400 ! Node: If98566 ! Node: Defined100979 ! Node: Else102252 ! Node: Elif102813 ! Node: Deleted Code104093 ! Node: Diagnostics105335 ! Node: Line Control106952 ! Node: Pragmas109066 ! Node: Other Directives113334 ! Node: Preprocessor Output114528 ! Node: Traditional Mode117624 ! Node: Implementation Details123203 ! Node: Implementation-defined behavior123826 ! Node: Implementation limits126099 ! Node: Obsolete Features128806 ! Node: Assertions129293 ! Node: Obsolete once-only headers131824 ! Node: Miscellaneous obsolete features133592 ! Node: Differences from previous versions134925 ! Node: Invocation138548 ! Node: GNU Free Documentation License157071 ! Node: Index of Directives176966 ! Node: Concept Index178347  End Tag Table diff -Nrc3pad gcc-3.0.2/gcc/doc/cpp.info-1 gcc-3.0.3/gcc/doc/cpp.info-1 *** gcc-3.0.2/gcc/doc/cpp.info-1 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/cpp.info-1 Thu Dec 20 11:59:47 2001 *************** useful on its own. *** 29,34 **** --- 29,35 ---- * Traditional Mode:: * Implementation Details:: * Invocation:: + * GNU Free Documentation License:: * Index of Directives:: * Concept Index:: *************** Obsolete Features *** 112,119 **** 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. A copy of ! the license is included in the accompanying manual for GCC, in the ! section "GNU Free Documentation License". This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). --- 113,120 ---- 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. A copy of ! the license is included in the section entitled "GNU Free Documentation ! License". This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). diff -Nrc3pad gcc-3.0.2/gcc/doc/cpp.info-4 gcc-3.0.3/gcc/doc/cpp.info-4 *** gcc-3.0.2/gcc/doc/cpp.info-4 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/cpp.info-4 Thu Dec 20 11:59:47 2001 *************** START-INFO-DIR-ENTRY *** 7,13 **** END-INFO-DIR-ENTRY  ! File: cpp.info, Node: Invocation, Next: Index of Directives, Prev: Implementation Details, Up: Top Invocation ********** --- 7,13 ---- END-INFO-DIR-ENTRY  ! File: cpp.info, Node: Invocation, Next: GNU Free Documentation License, Prev: Implementation Details, Up: Top Invocation ********** *************** single-letter options may _not_ be group *** 473,479 **** preprocess as normal. With two dashes, exit immediately.  ! File: cpp.info, Node: Index of Directives, Next: Concept Index, Prev: Invocation, Up: Top Index of Directives ******************* --- 473,865 ---- preprocess as normal. With two dashes, exit immediately.  ! File: cpp.info, Node: GNU Free Documentation License, Next: Index of Directives, Prev: Invocation, Up: Top ! ! GNU Free Documentation License ! ****************************** ! ! Version 1.1, March 2000 ! ! Copyright (C) 2000 Free Software Foundation, Inc. ! 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! ! Everyone is permitted to copy and distribute verbatim copies ! of this license document, but changing it is not allowed. ! ! 0. PREAMBLE ! ! The purpose of this License is to make a manual, textbook, or other ! written document "free" in the sense of freedom: to assure everyone ! the effective freedom to copy and redistribute it, with or without ! modifying it, either commercially or noncommercially. Secondarily, ! this License preserves for the author and publisher a way to get ! credit for their work, while not being considered responsible for ! modifications made by others. ! ! This License is a kind of "copyleft", which means that derivative ! works of the document must themselves be free in the same sense. ! It complements the GNU General Public License, which is a copyleft ! license designed for free software. ! ! We have designed this License in order to use it for manuals for ! free software, because free software needs free documentation: a ! free program should come with manuals providing the same freedoms ! that the software does. But this License is not limited to ! software manuals; it can be used for any textual work, regardless ! of subject matter or whether it is published as a printed book. ! We recommend this License principally for works whose purpose is ! instruction or reference. ! ! 1. APPLICABILITY AND DEFINITIONS ! ! This License applies to any manual or other work that contains a ! notice placed by the copyright holder saying it can be distributed ! under the terms of this License. The "Document", below, refers to ! any such manual or work. Any member of the public is a licensee, ! and is addressed as "you". ! ! A "Modified Version" of the Document means any work containing the ! Document or a portion of it, either copied verbatim, or with ! modifications and/or translated into another language. ! ! A "Secondary Section" is a named appendix or a front-matter ! section of the Document that deals exclusively with the ! relationship of the publishers or authors of the Document to the ! Document's overall subject (or to related matters) and contains ! nothing that could fall directly within that overall subject. ! (For example, if the Document is in part a textbook of ! mathematics, a Secondary Section may not explain any mathematics.) ! The relationship could be a matter of historical connection with ! the subject or with related matters, or of legal, commercial, ! philosophical, ethical or political position regarding them. ! ! The "Invariant Sections" are certain Secondary Sections whose ! titles are designated, as being those of Invariant Sections, in ! the notice that says that the Document is released under this ! License. ! ! The "Cover Texts" are certain short passages of text that are ! listed, as Front-Cover Texts or Back-Cover Texts, in the notice ! that says that the Document is released under this License. ! ! A "Transparent" copy of the Document means a machine-readable copy, ! represented in a format whose specification is available to the ! general public, whose contents can be viewed and edited directly ! and straightforwardly with generic text editors or (for images ! composed of pixels) generic paint programs or (for drawings) some ! widely available drawing editor, and that is suitable for input to ! text formatters or for automatic translation to a variety of ! formats suitable for input to text formatters. A copy made in an ! otherwise Transparent file format whose markup has been designed ! to thwart or discourage subsequent modification by readers is not ! Transparent. A copy that is not "Transparent" is called "Opaque". ! ! Examples of suitable formats for Transparent copies include plain ! ASCII without markup, Texinfo input format, LaTeX input format, ! SGML or XML using a publicly available DTD, and ! standard-conforming simple HTML designed for human modification. ! Opaque formats include PostScript, PDF, proprietary formats that ! can be read and edited only by proprietary word processors, SGML ! or XML for which the DTD and/or processing tools are not generally ! available, and the machine-generated HTML produced by some word ! processors for output purposes only. ! ! The "Title Page" means, for a printed book, the title page itself, ! plus such following pages as are needed to hold, legibly, the ! material this License requires to appear in the title page. For ! works in formats which do not have any title page as such, "Title ! Page" means the text near the most prominent appearance of the ! work's title, preceding the beginning of the body of the text. ! ! 2. VERBATIM COPYING ! ! You may copy and distribute the Document in any medium, either ! commercially or noncommercially, provided that this License, the ! copyright notices, and the license notice saying this License ! applies to the Document are reproduced in all copies, and that you ! add no other conditions whatsoever to those of this License. You ! may not use technical measures to obstruct or control the reading ! or further copying of the copies you make or distribute. However, ! you may accept compensation in exchange for copies. If you ! distribute a large enough number of copies you must also follow ! the conditions in section 3. ! ! You may also lend copies, under the same conditions stated above, ! and you may publicly display copies. ! ! 3. COPYING IN QUANTITY ! ! If you publish printed copies of the Document numbering more than ! 100, and the Document's license notice requires Cover Texts, you ! must enclose the copies in covers that carry, clearly and legibly, ! all these Cover Texts: Front-Cover Texts on the front cover, and ! Back-Cover Texts on the back cover. Both covers must also clearly ! and legibly identify you as the publisher of these copies. The ! front cover must present the full title with all words of the ! title equally prominent and visible. You may add other material ! on the covers in addition. Copying with changes limited to the ! covers, as long as they preserve the title of the Document and ! satisfy these conditions, can be treated as verbatim copying in ! other respects. ! ! If the required texts for either cover are too voluminous to fit ! legibly, you should put the first ones listed (as many as fit ! reasonably) on the actual cover, and continue the rest onto ! adjacent pages. ! ! If you publish or distribute Opaque copies of the Document ! numbering more than 100, you must either include a ! machine-readable Transparent copy along with each Opaque copy, or ! state in or with each Opaque copy a publicly-accessible ! computer-network location containing a complete Transparent copy ! of the Document, free of added material, which the general ! network-using public has access to download anonymously at no ! charge using public-standard network protocols. If you use the ! latter option, you must take reasonably prudent steps, when you ! begin distribution of Opaque copies in quantity, to ensure that ! this Transparent copy will remain thus accessible at the stated ! location until at least one year after the last time you ! distribute an Opaque copy (directly or through your agents or ! retailers) of that edition to the public. ! ! It is requested, but not required, that you contact the authors of ! the Document well before redistributing any large number of ! copies, to give them a chance to provide you with an updated ! version of the Document. ! ! 4. MODIFICATIONS ! ! You may copy and distribute a Modified Version of the Document ! under the conditions of sections 2 and 3 above, provided that you ! release the Modified Version under precisely this License, with ! the Modified Version filling the role of the Document, thus ! licensing distribution and modification of the Modified Version to ! whoever possesses a copy of it. In addition, you must do these ! things in the Modified Version: ! ! A. Use in the Title Page (and on the covers, if any) a title ! distinct from that of the Document, and from those of ! previous versions (which should, if there were any, be listed ! in the History section of the Document). You may use the ! same title as a previous version if the original publisher of ! that version gives permission. ! ! B. List on the Title Page, as authors, one or more persons or ! entities responsible for authorship of the modifications in ! the Modified Version, together with at least five of the ! principal authors of the Document (all of its principal ! authors, if it has less than five). ! ! C. State on the Title page the name of the publisher of the ! Modified Version, as the publisher. ! ! D. Preserve all the copyright notices of the Document. ! ! E. Add an appropriate copyright notice for your modifications ! adjacent to the other copyright notices. ! ! F. Include, immediately after the copyright notices, a license ! notice giving the public permission to use the Modified ! Version under the terms of this License, in the form shown in ! the Addendum below. ! ! G. Preserve in that license notice the full lists of Invariant ! Sections and required Cover Texts given in the Document's ! license notice. ! ! H. Include an unaltered copy of this License. ! ! I. Preserve the section entitled "History", and its title, and ! add to it an item stating at least the title, year, new ! authors, and publisher of the Modified Version as given on ! the Title Page. If there is no section entitled "History" in ! the Document, create one stating the title, year, authors, ! and publisher of the Document as given on its Title Page, ! then add an item describing the Modified Version as stated in ! the previous sentence. ! ! J. Preserve the network location, if any, given in the Document ! for public access to a Transparent copy of the Document, and ! likewise the network locations given in the Document for ! previous versions it was based on. These may be placed in ! the "History" section. You may omit a network location for a ! work that was published at least four years before the ! Document itself, or if the original publisher of the version ! it refers to gives permission. ! ! K. In any section entitled "Acknowledgments" or "Dedications", ! preserve the section's title, and preserve in the section all ! the substance and tone of each of the contributor ! acknowledgments and/or dedications given therein. ! ! L. Preserve all the Invariant Sections of the Document, ! unaltered in their text and in their titles. Section numbers ! or the equivalent are not considered part of the section ! titles. ! ! M. Delete any section entitled "Endorsements". Such a section ! may not be included in the Modified Version. ! ! N. Do not retitle any existing section as "Endorsements" or to ! conflict in title with any Invariant Section. ! ! If the Modified Version includes new front-matter sections or ! appendices that qualify as Secondary Sections and contain no ! material copied from the Document, you may at your option ! designate some or all of these sections as invariant. To do this, ! add their titles to the list of Invariant Sections in the Modified ! Version's license notice. These titles must be distinct from any ! other section titles. ! ! You may add a section entitled "Endorsements", provided it contains ! nothing but endorsements of your Modified Version by various ! parties--for example, statements of peer review or that the text ! has been approved by an organization as the authoritative ! definition of a standard. ! ! You may add a passage of up to five words as a Front-Cover Text, ! and a passage of up to 25 words as a Back-Cover Text, to the end ! of the list of Cover Texts in the Modified Version. Only one ! passage of Front-Cover Text and one of Back-Cover Text may be ! added by (or through arrangements made by) any one entity. If the ! Document already includes a cover text for the same cover, ! previously added by you or by arrangement made by the same entity ! you are acting on behalf of, you may not add another; but you may ! replace the old one, on explicit permission from the previous ! publisher that added the old one. ! ! The author(s) and publisher(s) of the Document do not by this ! License give permission to use their names for publicity for or to ! assert or imply endorsement of any Modified Version. ! ! 5. COMBINING DOCUMENTS ! ! You may combine the Document with other documents released under ! this License, under the terms defined in section 4 above for ! modified versions, provided that you include in the combination ! all of the Invariant Sections of all of the original documents, ! unmodified, and list them all as Invariant Sections of your ! combined work in its license notice. ! ! The combined work need only contain one copy of this License, and ! multiple identical Invariant Sections may be replaced with a single ! copy. If there are multiple Invariant Sections with the same name ! but different contents, make the title of each such section unique ! by adding at the end of it, in parentheses, the name of the ! original author or publisher of that section if known, or else a ! unique number. Make the same adjustment to the section titles in ! the list of Invariant Sections in the license notice of the ! combined work. ! ! In the combination, you must combine any sections entitled ! "History" in the various original documents, forming one section ! entitled "History"; likewise combine any sections entitled ! "Acknowledgments", and any sections entitled "Dedications". You ! must delete all sections entitled "Endorsements." ! ! 6. COLLECTIONS OF DOCUMENTS ! ! You may make a collection consisting of the Document and other ! documents released under this License, and replace the individual ! copies of this License in the various documents with a single copy ! that is included in the collection, provided that you follow the ! rules of this License for verbatim copying of each of the ! documents in all other respects. ! ! You may extract a single document from such a collection, and ! distribute it individually under this License, provided you insert ! a copy of this License into the extracted document, and follow ! this License in all other respects regarding verbatim copying of ! that document. ! ! 7. AGGREGATION WITH INDEPENDENT WORKS ! ! A compilation of the Document or its derivatives with other ! separate and independent documents or works, in or on a volume of ! a storage or distribution medium, does not as a whole count as a ! Modified Version of the Document, provided no compilation ! copyright is claimed for the compilation. Such a compilation is ! called an "aggregate", and this License does not apply to the ! other self-contained works thus compiled with the Document, on ! account of their being thus compiled, if they are not themselves ! derivative works of the Document. ! ! If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one ! quarter of the entire aggregate, the Document's Cover Texts may be ! placed on covers that surround only the Document within the ! aggregate. Otherwise they must appear on covers around the whole ! aggregate. ! ! 8. TRANSLATION ! ! Translation is considered a kind of modification, so you may ! distribute translations of the Document under the terms of section ! 4. Replacing Invariant Sections with translations requires special ! permission from their copyright holders, but you may include ! translations of some or all Invariant Sections in addition to the ! original versions of these Invariant Sections. You may include a ! translation of this License provided that you also include the ! original English version of this License. In case of a ! disagreement between the translation and the original English ! version of this License, the original English version will prevail. ! ! 9. TERMINATION ! ! You may not copy, modify, sublicense, or distribute the Document ! except as expressly provided for under this License. Any other ! attempt to copy, modify, sublicense or distribute the Document is ! void, and will automatically terminate your rights under this ! License. However, parties who have received copies, or rights, ! from you under this License will not have their licenses ! terminated so long as such parties remain in full compliance. ! ! 10. FUTURE REVISIONS OF THIS LICENSE ! ! The Free Software Foundation may publish new, revised versions of ! the GNU Free Documentation License from time to time. Such new ! versions will be similar in spirit to the present version, but may ! differ in detail to address new problems or concerns. See ! `http://www.gnu.org/copyleft/'. ! ! Each version of the License is given a distinguishing version ! number. If the Document specifies that a particular numbered ! version of this License "or any later version" applies to it, you ! have the option of following the terms and conditions either of ! that specified version or of any later version that has been ! published (not as a draft) by the Free Software Foundation. If ! the Document does not specify a version number of this License, ! you may choose any version ever published (not 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; ! with the Invariant Sections being LIST THEIR TITLES, with the ! Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. ! A copy of the license is included in the section entitled ``GNU ! Free Documentation License''. ! ! If you have no Invariant Sections, write "with no Invariant Sections" ! instead of saying which ones are invariant. If you have no Front-Cover ! Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being ! LIST"; likewise for Back-Cover Texts. ! ! If your document contains nontrivial examples of program code, we ! recommend releasing these examples in parallel under your choice of ! free software license, such as the GNU General Public License, to ! permit their use in free software. ! !  ! File: cpp.info, Node: Index of Directives, Next: Concept Index, Prev: GNU Free Documentation License, Up: Top Index of Directives ******************* *************** Concept Index *** 543,548 **** --- 929,935 ---- * directives: The preprocessing language. * empty macro arguments: Macro Arguments. * expansion of arguments: Argument Prescan. + * FDL, GNU Free Documentation License: GNU Free Documentation License. * function-like macros: Function-like Macros. * grouping options: Invocation. * guard macro: Once-Only Headers. diff -Nrc3pad gcc-3.0.2/gcc/doc/cpp.texi gcc-3.0.3/gcc/doc/cpp.texi *** gcc-3.0.2/gcc/doc/cpp.texi Wed Oct 17 02:06:42 2001 --- gcc-3.0.3/gcc/doc/cpp.texi Wed Nov 14 14:33:36 2001 *************** Free Software Foundation, Inc. *** 15,36 **** 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. A copy of ! the license is included in the accompanying manual for GCC, in the ! section ``GNU Free Documentation License''. @c man end ! @end macro ! ! @c The manpage doesn't have Front-Cover and Back-Cover Texts, but the ! @c complete manual does. -zw ! @ignore @c man begin COPYRIGHT ! This manual contains no Invariant Sections, and has no Front-Cover Texts ! or Back-Cover Texts. @c man end @end ignore @macro covertexts This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). --- 15,32 ---- 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. A copy of ! the license is included in the @c man end ! section entitled ``GNU Free Documentation License''. @ignore @c man begin COPYRIGHT ! man page gfdl(7). @c man end @end ignore + @end macro @macro covertexts + @c man begin COPYRIGHT This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). *************** This manual contains no Invariant Sectio *** 43,48 **** --- 39,45 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. + @c man end @end macro @macro gcctabopt{body} *************** useful on its own. *** 92,97 **** --- 89,95 ---- * Traditional Mode:: * Implementation Details:: * Invocation:: + * GNU Free Documentation License:: * Index of Directives:: * Concept Index:: *************** cpp [@option{-D}@var{macro}[=@var{defn}] *** 3800,3805 **** --- 3798,3804 ---- Only the most useful options are listed here; see below for the remainder. @c man end @c man begin SEEALSO + gpl(7), gfdl(7), fsf-funding(7), gcc(1), as(1), ld(1), and the Info entries for @file{cpp}, @file{gcc}, and @file{binutils}. @c man end *************** Print out GNU CPP's version number. Wit *** 4273,4278 **** --- 4272,4279 ---- preprocess as normal. With two dashes, exit immediately. @end table @c man end + + @include fdl.texi @page @node Index of Directives diff -Nrc3pad gcc-3.0.2/gcc/doc/extend.texi gcc-3.0.3/gcc/doc/extend.texi *** gcc-3.0.2/gcc/doc/extend.texi Tue Oct 9 16:14:16 2001 --- gcc-3.0.3/gcc/doc/extend.texi Tue Dec 11 14:17:25 2001 *************** object. For example: *** 987,996 **** struct foo @{ int x; int y[]; @}; struct bar @{ struct foo z; @}; ! struct foo a = @{ 1, @{ 2, 3, 4 @} @}; // Legal. ! struct bar b = @{ @{ 1, @{ 2, 3, 4 @} @} @}; // Illegal. ! struct bar c = @{ @{ 1, @{ @} @} @}; // Legal. ! struct foo d[1] = @{ @{ 1 @{ 2, 3, 4 @} @} @}; // Illegal. @end example @node Variable Length --- 987,996 ---- struct foo @{ int x; int y[]; @}; struct bar @{ struct foo z; @}; ! struct foo a = @{ 1, @{ 2, 3, 4 @} @}; // @r{Valid.} ! struct bar b = @{ @{ 1, @{ 2, 3, 4 @} @} @}; // @r{Invalid.} ! struct bar c = @{ @{ 1, @{ @} @} @}; // @r{Valid.} ! struct foo d[1] = @{ @{ 1 @{ 2, 3, 4 @} @} @}; // @r{Invalid.} @end example @node Variable Length *************** __PRETTY_FUNCTION__ = int a::sub (int) *** 3648,3655 **** The compiler automagically replaces the identifiers with a string literal containing the appropriate name. Thus, they are neither preprocessor macros, like @code{__FILE__} and @code{__LINE__}, nor ! variables. This means that they catenate with other string literals, and ! that they can be used to initialize char arrays. For example @smallexample char here[] = "Function " __FUNCTION__ " in " __FILE__; --- 3648,3655 ---- The compiler automagically replaces the identifiers with a string literal containing the appropriate name. Thus, they are neither preprocessor macros, like @code{__FILE__} and @code{__LINE__}, nor ! variables. This means that they catenate with other string literals, ! and that they can be used to initialize char arrays. For example @smallexample char here[] = "Function " __FUNCTION__ " in " __FILE__; *************** On the other hand, @samp{#ifdef __FUNCTI *** 3659,3666 **** meaning inside a function, since the preprocessor does not do anything special with the identifier @code{__FUNCTION__}. ! GCC also supports the magic word @code{__func__}, defined by the ! ISO standard C99: @display The identifier @code{__func__} is implicitly declared by the translator --- 3659,3667 ---- meaning inside a function, since the preprocessor does not do anything special with the identifier @code{__FUNCTION__}. ! Note that these semantics are deprecated, and that GCC 3.2 will handle ! @code{__FUNCTION__} and @code{__PRETTY_FUNCTION__} the same way as ! @code{__func__}. @code{__func__} is defined by the ISO standard C99: @display The identifier @code{__func__} is implicitly declared by the translator diff -Nrc3pad gcc-3.0.2/gcc/doc/fsf-funding.7 gcc-3.0.3/gcc/doc/fsf-funding.7 *** gcc-3.0.2/gcc/doc/fsf-funding.7 Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/doc/fsf-funding.7 Thu Dec 20 11:55:55 2001 *************** *** 0 **** --- 1,188 ---- + .\" Automatically generated by Pod::Man version 1.22 + .\" Wed Nov 14 22:27:25 2001 + .\" + .\" Standard preamble: + .\" ======================================================================== + .de Sh \" Subsection heading + .br + .if t .Sp + .ne 5 + .PP + \fB\\$1\fR + .PP + .. + .de Sp \" Vertical space (when we can't use .PP) + .if t .sp .5v + .if n .sp + .. + .de Vb \" Begin verbatim text + .ft CW + .nf + .ne \\$1 + .. + .de Ve \" End verbatim text + .ft R + + .fi + .. + .\" Set up some character translations and predefined strings. \*(-- will + .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left + .\" double quote, and \*(R" will give a right double quote. | will give a + .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to + .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' + .\" expand to `' in nroff, nothing in troff, for use with C<>. + .tr \(*W-|\(bv\*(Tr + .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' + .ie n \{\ + . ds -- \(*W- + . ds PI pi + . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch + . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch + . ds L" "" + . ds R" "" + . ds C` "" + . ds C' "" + 'br\} + .el\{\ + . ds -- \|\(em\| + . ds PI \(*p + . ds L" `` + . ds R" '' + 'br\} + .\" + .\" If the F register is turned on, we'll generate index entries on stderr for + .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index + .\" entries marked with X<> in POD. Of course, you'll have to process the + .\" output yourself in some meaningful fashion. + .if \nF \{\ + . de IX + . tm Index:\\$1\t\\n%\t"\\$2" + .. + . nr % 0 + . rr F + .\} + .\" + .\" For nroff, turn off justification. Always turn off hyphenation; it makes + .\" way too many mistakes in technical documents. + .hy 0 + .if n .na + .\" + .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). + .\" Fear. Run. Save yourself. No user-serviceable parts. + . \" fudge factors for nroff and troff + .if n \{\ + . ds #H 0 + . ds #V .8m + . ds #F .3m + . ds #[ \f1 + . ds #] \fP + .\} + .if t \{\ + . ds #H ((1u-(\\\\n(.fu%2u))*.13m) + . ds #V .6m + . ds #F 0 + . ds #[ \& + . ds #] \& + .\} + . \" simple accents for nroff and troff + .if n \{\ + . ds ' \& + . ds ` \& + . ds ^ \& + . ds , \& + . ds ~ ~ + . ds / + .\} + .if t \{\ + . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" + . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' + . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' + . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' + . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' + . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' + .\} + . \" troff and (daisy-wheel) nroff accents + .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' + .ds 8 \h'\*(#H'\(*b\h'-\*(#H' + .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] + .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' + .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' + .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] + .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] + .ds ae a\h'-(\w'a'u*4/10)'e + .ds Ae A\h'-(\w'A'u*4/10)'E + . \" corrections for vroff + .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' + .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' + . \" for low resolution devices (crt and lpr) + .if \n(.H>23 .if \n(.V>19 \ + \{\ + . ds : e + . ds 8 ss + . ds o a + . ds d- d\h'-1'\(ga + . ds D- D\h'-1'\(hy + . ds th \o'bp' + . ds Th \o'LP' + . ds ae ae + . ds Ae AE + .\} + .rm #[ #] #H #V #F C + .\" ======================================================================== + .\" + .IX Title "fsf-funding 7" + .TH fsf-funding 7 "gcc-3.0.3" "2001-11-14" "GNU" + .UC + .SH "NAME" + fsf-funding \- Funding Free Software + .SH "DESCRIPTION" + .IX Header "DESCRIPTION" + .Sh "Funding Free Software" + .IX Subsection "Funding Free Software" + If you want to have more free software a few years from now, it makes + sense for you to help encourage people to contribute funds for its + development. The most effective approach known is to encourage + commercial redistributors to donate. + .PP + Users of free software systems can boost the pace of development by + encouraging for-a-fee distributors to donate part of their selling price + to free software developers\-\-\-the Free Software Foundation, and others. + .PP + The way to convince distributors to do this is to demand it and expect + it from them. So when you compare distributors, judge them partly by + how much they give to free software development. Show distributors + they must compete to be the one who gives the most. + .PP + To make this approach work, you must insist on numbers that you can + compare, such as, ``We will donate ten dollars to the Frobnitz project + for each disk sold.'' Don't be satisfied with a vague promise, such as + ``A portion of the profits are donated,'' since it doesn't give a basis + for comparison. + .PP + Even a precise fraction ``of the profits from this disk'' is not very + meaningful, since creative accounting and unrelated business decisions + can greatly alter what fraction of the sales price counts as profit. + If the price you pay is \f(CW$50\fR, ten percent of the profit is probably + less than a dollar; it might be a few cents, or nothing at all. + .PP + Some redistributors do development work themselves. This is useful too; + but to keep everyone honest, you need to inquire how much they do, and + what kind. Some kinds of development make much more long-term + difference than others. For example, maintaining a separate version of + a program contributes very little; maintaining the standard version of a + program for the whole community contributes much. Easy new ports + contribute little, since someone else would surely do them; difficult + ports such as adding a new \s-1CPU\s0 to the \s-1GNU\s0 Compiler Collection contribute more; + major new features or packages contribute the most. + .PP + By establishing the idea that supporting further development is ``the + proper thing to do'' when distributing free software for a fee, we can + assure a steady flow of resources into making more free software. + .SH "SEE ALSO" + .IX Header "SEE ALSO" + \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7). + .SH "COPYRIGHT" + .IX Header "COPYRIGHT" + Copyright (c) 1994 Free Software Foundation, Inc. + Verbatim copying and redistribution of this section is permitted + without royalty; alteration is not permitted. diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.1 gcc-3.0.3/gcc/doc/gcc.1 *** gcc-3.0.2/gcc/doc/gcc.1 Wed Oct 17 06:14:31 2001 --- gcc-3.0.3/gcc/doc/gcc.1 Wed Nov 14 14:33:38 2001 *************** *** 1,5 **** ! .\" Automatically generated by Pod::Man version 1.19 ! .\" Wed Oct 17 11:39:25 2001 .\" .\" Standard preamble: .\" ======================================================================== --- 1,5 ---- ! .\" Automatically generated by Pod::Man version 1.22 ! .\" Wed Nov 14 22:27:22 2001 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 131,137 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "gcc-3.0.2" "2001-10-17" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler --- 131,137 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "gcc-3.0.3" "2001-11-14" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler *************** in the following sections. *** 444,450 **** \&\-mstrict-align \-mno-strict-align \-mrelocatable \&\-mno-relocatable \-mrelocatable-lib \-mno-relocatable-lib \&\-mtoc \-mno-toc \-mlittle \-mlittle-endian \-mbig \-mbig-endian ! \&\-mcall-aix \-mcall-sysv \-mprototype \-mno-prototype \&\-msim \-mmvme \-mads \-myellowknife \-memb \-msdata \&\-msdata=\fR\fIopt\fR \fB\-mvxworks \-G\fR \fInum\fR .Sp --- 444,450 ---- \&\-mstrict-align \-mno-strict-align \-mrelocatable \&\-mno-relocatable \-mrelocatable-lib \-mno-relocatable-lib \&\-mtoc \-mno-toc \-mlittle \-mlittle-endian \-mbig \-mbig-endian ! \&\-mcall-aix \-mcall-sysv \-mcall-netbsd \-mprototype \-mno-prototype \&\-msim \-mmvme \-mads \-myellowknife \-memb \-msdata \&\-msdata=\fR\fIopt\fR \fB\-mvxworks \-G\fR \fInum\fR .Sp *************** available paths and filenames in file \f *** 2378,2396 **** .Sp Several function names have a special meaning: .RS 4 ! .if n .IP """_\|_bb_jumps_\|_""" 4 .el .IP "\f(CW_\|_bb_jumps_\|_\fR" 4 .IX Item "__bb_jumps__" Write source, target and frequency of jumps to file \fIbb.out\fR. ! .if n .IP """_\|_bb_hidecall_\|_""" 4 .el .IP "\f(CW_\|_bb_hidecall_\|_\fR" 4 .IX Item "__bb_hidecall__" Exclude function calls from frequency count. ! .if n .IP """_\|_bb_showret_\|_""" 4 .el .IP "\f(CW_\|_bb_showret_\|_\fR" 4 .IX Item "__bb_showret__" Include function returns in frequency count. ! .if n .IP """_\|_bb_trace_\|_""" 4 .el .IP "\f(CW_\|_bb_trace_\|_\fR" 4 .IX Item "__bb_trace__" Write the sequence of basic blocks executed to file \fIbbtrace.gz\fR. --- 2378,2396 ---- .Sp Several function names have a special meaning: .RS 4 ! .ie n .IP """_\|_bb_jumps_\|_""" 4 .el .IP "\f(CW_\|_bb_jumps_\|_\fR" 4 .IX Item "__bb_jumps__" Write source, target and frequency of jumps to file \fIbb.out\fR. ! .ie n .IP """_\|_bb_hidecall_\|_""" 4 .el .IP "\f(CW_\|_bb_hidecall_\|_\fR" 4 .IX Item "__bb_hidecall__" Exclude function calls from frequency count. ! .ie n .IP """_\|_bb_showret_\|_""" 4 .el .IP "\f(CW_\|_bb_showret_\|_\fR" 4 .IX Item "__bb_showret__" Include function returns in frequency count. ! .ie n .IP """_\|_bb_trace_\|_""" 4 .el .IP "\f(CW_\|_bb_trace_\|_\fR" 4 .IX Item "__bb_trace__" Write the sequence of basic blocks executed to file \fIbbtrace.gz\fR. *************** This is useful when you use \fB\-nostdli *** 2747,2753 **** but you do want to link with \fIlibgcc.a\fR. You can do .Sp .Vb 1 ! \& gcc -nostdlib I... `gcc -print-libgcc-file-name` .Ve .IP "\fB\-print-search-dirs\fR" 4 .IX Item "-print-search-dirs" --- 2747,2753 ---- but you do want to link with \fIlibgcc.a\fR. You can do .Sp .Vb 1 ! \& gcc -nostdlib ... `gcc -print-libgcc-file-name` .Ve .IP "\fB\-print-search-dirs\fR" 4 .IX Item "-print-search-dirs" *************** optimization. If more memory than speci *** 3320,3326 **** optimization will not be done. .IP "\fBmax-pending-list-length\fR" 4 .IX Item "max-pending-list-length" ! The maximum number of pending dependancies scheduling will allow before flushing the current state and starting over. Large functions with few branches or calls can create excessively large lists which needlessly consume memory and resources. --- 3320,3326 ---- optimization will not be done. .IP "\fBmax-pending-list-length\fR" 4 .IX Item "max-pending-list-length" ! The maximum number of pending dependencies scheduling will allow before flushing the current state and starting over. Large functions with few branches or calls can create excessively large lists which needlessly consume memory and resources. *************** operating system. *** 5539,5544 **** --- 5539,5548 ---- .IX Item "-mcall-linux" On System V.4 and embedded PowerPC systems compile code for the Linux-based \s-1GNU\s0 system. + .IP "\fB\-mcall-netbsd\fR" 4 + .IX Item "-mcall-netbsd" + On System V.4 and embedded PowerPC systems compile code for the + NetBSD operating system. .IP "\fB\-mprototype\fR" 4 .IX Item "-mprototype" .PD 0 *************** to subtle defects. Supplying them in ca *** 8085,8090 **** --- 8089,8095 ---- is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" + \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7), \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIg77\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIadb\fR\|(1), \fIdbx\fR\|(1), \fIsdb\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIg77\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. *************** See the Info entry for \fIgcc\fR, or *** 8097,8113 **** Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. .PP ! Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are ! preserved on all copies. .PP ! Permission is granted to copy and distribute modified versions of this ! manual under the conditions for verbatim copying, provided also that the ! entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. .PP ! Permission is granted to copy and distribute translations of this manual ! into another language, under the above conditions for modified versions, ! except that this permission notice may be included in translations ! approved by the Free Software Foundation instead of in the original ! English. --- 8102,8124 ---- Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. .PP ! Permission is granted to copy, distribute and/or modify this document ! under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 or ! any later version published by the Free Software Foundation; with the ! Invariant Sections being ``\s-1GNU\s0 General Public License'' and ``Funding ! Free Software'', the Front-Cover texts being (a) (see below), and with ! the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fIgfdl\fR\|(7) man page. .PP ! (a) The \s-1FSF\s0's Front-Cover Text is: .PP ! .Vb 1 ! \& A GNU Manual ! .Ve ! (b) The \s-1FSF\s0's Back-Cover Text is: ! .PP ! .Vb 3 ! \& You have freedom to copy and modify this GNU Manual, like GNU ! \& software. Copies published by the Free Software Foundation raise ! \& funds for GNU development. ! .Ve diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info gcc-3.0.3/gcc/doc/gcc.info *** gcc-3.0.2/gcc/doc/gcc.info Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info Thu Dec 20 11:59:48 2001 *************** funds for GNU development. *** 38,80 ****  Indirect: gcc.info-1: 1239 ! gcc.info-2: 42106 ! gcc.info-3: 72696 ! gcc.info-4: 104877 ! gcc.info-5: 151171 ! gcc.info-6: 196514 ! gcc.info-7: 244071 ! gcc.info-8: 292862 ! gcc.info-9: 328088 ! gcc.info-10: 376478 ! gcc.info-11: 424908 ! gcc.info-12: 473283 ! gcc.info-13: 522565 ! gcc.info-14: 572050 ! gcc.info-15: 615270 ! gcc.info-16: 658606 ! gcc.info-17: 698828 ! gcc.info-18: 747832 ! gcc.info-19: 782569 ! gcc.info-20: 828524 ! gcc.info-21: 871818 ! gcc.info-22: 921750 ! gcc.info-23: 971719 ! gcc.info-24: 985350 ! gcc.info-25: 1029817 ! gcc.info-26: 1074211 ! gcc.info-27: 1107334 ! gcc.info-28: 1154724 ! gcc.info-29: 1201943 ! gcc.info-30: 1251618 ! gcc.info-31: 1295221 ! gcc.info-32: 1341493 ! gcc.info-33: 1390685 ! gcc.info-34: 1425372 ! gcc.info-35: 1473633 ! gcc.info-36: 1518044 ! gcc.info-37: 1534916 ! gcc.info-38: 1595103  Tag Table: (Indirect) --- 38,80 ----  Indirect: gcc.info-1: 1239 ! gcc.info-2: 42118 ! gcc.info-3: 72708 ! gcc.info-4: 104889 ! gcc.info-5: 151183 ! gcc.info-6: 196526 ! gcc.info-7: 244083 ! gcc.info-8: 292990 ! gcc.info-9: 328216 ! gcc.info-10: 376606 ! gcc.info-11: 425036 ! gcc.info-12: 473411 ! gcc.info-13: 522693 ! gcc.info-14: 572288 ! gcc.info-15: 615508 ! gcc.info-16: 658844 ! gcc.info-17: 699066 ! gcc.info-18: 748070 ! gcc.info-19: 782807 ! gcc.info-20: 828762 ! gcc.info-21: 872056 ! gcc.info-22: 921988 ! gcc.info-23: 971957 ! gcc.info-24: 985588 ! gcc.info-25: 1030055 ! gcc.info-26: 1074449 ! gcc.info-27: 1107572 ! gcc.info-28: 1154962 ! gcc.info-29: 1202181 ! gcc.info-30: 1251856 ! gcc.info-31: 1295459 ! gcc.info-32: 1341731 ! gcc.info-33: 1390923 ! gcc.info-34: 1425610 ! gcc.info-35: 1473871 ! gcc.info-36: 1518282 ! gcc.info-37: 1535154 ! gcc.info-38: 1595411  Tag Table: (Indirect) *************** Node: G++ and GCC3383 *** 83,391 **** Node: Standards5794 Node: Invoking GCC12244 Node: Option Summary15889 ! Node: Overall Options34540 ! Node: Invoking G++40660 ! Node: C Dialect Options42106 ! Node: C++ Dialect Options56329 ! Node: Objective-C Dialect Options69285 ! Node: Language Independent Options70908 ! Node: Warning Options72696 ! Node: Debugging Options104877 ! Node: Optimize Options126587 ! Node: Preprocessor Options151171 ! Node: Assembler Options161408 ! Node: Link Options161775 ! Ref: Link Options-Footnote-1169028 ! Node: Directory Options169364 ! Node: Spec Files173370 ! Node: Target Options190876 ! Node: Submodel Options194863 ! Node: M680x0 Options196514 ! Node: M68hc1x Options202521 ! Node: VAX Options203701 ! Node: SPARC Options204237 ! Node: Convex Options214121 ! Node: AMD29K Options216302 ! Node: ARM Options219698 ! Node: MN10200 Options232219 ! Node: MN10300 Options232741 ! Node: M32R/D Options233792 ! Node: M88K Options236141 ! Node: RS/6000 and PowerPC Options244071 ! Node: RT Options263503 ! Node: MIPS Options265206 ! Node: i386 Options275391 ! Node: HPPA Options285855 ! Node: Intel 960 Options289920 ! Node: DEC Alpha Options292862 ! Node: Clipper Options302256 ! Node: H8/300 Options302656 ! Node: SH Options303585 ! Node: System V Options305901 ! Node: TMS320C3x/C4x Options306719 ! Node: V850 Options312231 ! Node: ARC Options314240 ! Node: NS32K Options315441 ! Node: AVR Options319690 ! Node: MCore Options321401 ! Node: IA-64 Options322545 ! Node: D30V Options324933 ! Node: S/390 and zSeries Options326176 ! Node: Code Gen Options328088 ! Node: Environment Variables344918 ! Node: Running Protoize351256 ! Node: Installation357613 ! Node: Configuration Files361194 ! Node: Configurations362798 ! Node: Cross-Compiler367022 ! Node: Steps of Cross368781 ! Node: Configure Cross369899 ! Node: Tools and Libraries370536 ! Node: Cross Headers372975 ! Node: Build Cross374972 ! Node: VMS Install376478 ! Node: Collect2386411 ! Node: Header Dirs388976 ! Node: C Extensions390399 ! Node: Statement Exprs394221 ! Node: Local Labels397313 ! Node: Labels as Values399378 ! Ref: Labels as Values-Footnote-1401437 ! Node: Nested Functions401622 ! Node: Constructing Calls405461 ! Node: Naming Types407548 ! Node: Typeof408642 ! Node: Lvalues410518 ! Node: Conditionals412958 ! Node: Long Long413849 ! Node: Complex415348 ! Node: Hex Floats418016 ! Node: Zero Length419045 ! Node: Variable Length422146 ! Node: Variadic Macros424908 ! Node: Escaped Newlines427298 ! Node: Multi-line Strings428181 ! Node: Subscripting428785 ! Node: Pointer Arith429418 ! Node: Initializers429983 ! Node: Compound Literals430466 ! Node: Designated Inits432505 ! Node: Case Ranges436179 ! Node: Cast to Union436859 ! Node: Mixed Declarations437942 ! Node: Function Attributes438437 ! Node: Attribute Syntax459797 ! Node: Function Prototypes468608 ! Node: C++ Comments470404 ! Node: Dollar Signs470999 ! Node: Character Escapes471457 ! Node: Alignment471744 ! Node: Variable Attributes473283 ! Node: Type Attributes482916 ! Node: Inline492204 ! Node: Extended Asm496940 ! Node: Asm Labels513069 ! Node: Explicit Reg Vars514746 ! Node: Global Reg Vars516200 ! Node: Local Reg Vars520765 ! Node: Alternate Keywords522565 ! Node: Incomplete Enums524252 ! Node: Function Names525008 ! Node: Return Address527335 ! Node: Other Builtins529477 ! Node: C++ Extensions535548 ! Node: Min and Max537109 ! Node: Volatiles538515 ! Node: Restricted Pointers541885 ! Node: Vague Linkage543455 ! Node: C++ Interface547113 ! Ref: C++ Interface-Footnote-1552201 ! Node: Template Instantiation552340 ! Node: Bound member functions561170 ! Node: C++ Attributes562721 ! Node: Java Exceptions564325 ! Node: Deprecated Features565730 ! Node: Backwards Compatibility567494 ! Node: Objective C568842 ! Node: Executing code before main569412 ! Node: What you can and what you cannot do in +load572050 ! Node: Type encoding574216 ! Node: Garbage Collection577468 ! Node: Constant string objects580132 ! Node: compatibility_alias581766 ! Node: Gcov582645 ! Node: Gcov Intro583162 ! Node: Invoking Gcov585837 ! Node: Gcov and Optimization591575 ! Node: Gcov Data Files592992 ! Node: Trouble596557 ! Node: Actual Bugs598151 ! Node: Cross-Compiler Problems599059 ! Node: Interoperation600520 ! Node: External Bugs613778 ! Node: Incompatibilities615270 ! Node: Fixed Headers624878 ! Node: Standard Libraries627187 ! Node: Disappointments628557 ! Node: C++ Misunderstandings633095 ! Node: Static Definitions633821 ! Node: Temporaries634868 ! Node: Copy Assignment636845 ! Node: Protoize Caveats638663 ! Node: Non-bugs642618 ! Node: Warnings and Errors652510 ! Node: Bugs654270 ! Node: Bug Criteria655623 ! Node: Bug Lists658047 ! Node: Bug Reporting658606 ! Node: gccbug670709 ! Node: Service671529 ! Node: Contributing672275 ! Node: VMS672980 ! Node: Include Files and VMS673363 ! Node: Global Declarations677228 ! Node: VMS Misc681532 ! Node: Makefile685835 ! Node: Portability692494 ! Node: Interface694248 ! Node: Passes698828 ! Node: Trees721679 ! Node: Deficiencies724419 ! Node: Tree overview724649 ! Node: Macros and Functions728784 ! Node: Identifiers728918 ! Node: Containers730434 ! Node: Types731578 ! Node: Scopes743358 ! Node: Namespaces744114 ! Node: Classes747832 ! Node: Declarations752475 ! Node: Functions758529 ! Node: Function Basics761059 ! Node: Function Bodies767805 ! Node: Attributes781180 ! Node: Expression trees782569 ! Node: RTL805018 ! Node: RTL Objects807049 ! Node: RTL Classes810082 ! Node: Accessors814588 ! Node: Flags816968 ! Node: Machine Modes828524 ! Node: Constants836308 ! Node: Regs and Memory841489 ! Node: Arithmetic854129 ! Node: Comparisons860390 ! Node: Bit-Fields864510 ! Node: Vector Operations865928 ! Node: Conversions867702 ! Node: RTL Declarations871009 ! Node: Side Effects871818 ! Node: Incdec886668 ! Node: Assembler890221 ! Node: Insns891743 ! Node: Calls916191 ! Node: Sharing918785 ! Node: Reading RTL921750 ! Node: Machine Desc922693 ! Node: Overview924897 ! Node: Patterns926936 ! Node: Example930172 ! Node: RTL Template931300 ! Node: Output Template943765 ! Node: Output Statement947747 ! Node: Constraints951459 ! Node: Simple Constraints952390 ! Node: Multi-Alternative964346 ! Node: Class Preferences967181 ! Node: Modifiers968061 ! Node: Machine Constraints971719 ! Node: Standard Names985350 ! Node: Pattern Ordering1025775 ! Node: Dependent Patterns1027002 ! Node: Jump Patterns1029817 ! Node: Looping Patterns1035564 ! Node: Insn Canonicalizations1040157 ! Node: Expander Definitions1043655 ! Node: Insn Splitting1051787 ! Node: Peephole Definitions1060437 ! Node: define_peephole1061680 ! Node: define_peephole21068055 ! Node: Insn Attributes1071116 ! Node: Defining Attributes1072199 ! Node: Expressions1074211 ! Node: Tagging Insns1080800 ! Node: Attr Example1085162 ! Node: Insn Lengths1087538 ! Node: Constant Attributes1090831 ! Node: Delay Slots1091991 ! Node: Function Units1095202 ! Node: Conditional Execution1100872 ! Node: Constant Definitions1103728 ! Node: Target Macros1105306 ! Node: Driver1107334 ! Node: Run-time Target1125769 ! Node: Per-Function Data1132799 ! Node: Storage Layout1136060 ! Node: Type Layout1154724 ! Node: Registers1164570 ! Node: Register Basics1165485 ! Node: Allocation Order1170685 ! Node: Values in Registers1172098 ! Node: Leaf Functions1177215 ! Node: Stack Registers1179980 ! Node: Register Classes1180777 ! Node: Stack and Calling1201458 ! Node: Frame Layout1201943 ! Node: Stack Checking1211713 ! Node: Frame Registers1215245 ! Node: Elimination1219659 ! Node: Stack Arguments1223914 ! Node: Register Arguments1230887 ! Node: Scalar Return1242129 ! Node: Aggregate Return1246367 ! Node: Caller Saves1250081 ! Node: Function Entry1251618 ! Node: Profiling1262539 ! Node: Inlining1270777 ! Node: Tail Calling1271329 ! Node: Varargs1271918 ! Node: Trampolines1279593 ! Node: Library Calls1286798 ! Node: Addressing Modes1295221 ! Node: Condition Code1306495 ! Node: Costs1313352 ! Node: Sections1326266 ! Node: PIC1333581 ! Node: Assembler Format1336290 ! Node: File Framework1337357 ! Node: Data Output1341493 ! Node: Uninitialized Data1349267 ! Node: Label Output1354664 ! Node: Initialization1367837 ! Node: Macros for Initialization1373977 ! Node: Instruction Output1379234 ! Node: Dispatch Tables1388133 ! Node: Exception Region Output1390685 ! Node: Alignment Output1394184 ! Node: Debugging Info1397741 ! Node: All Debuggers1398350 ! Node: DBX Options1401159 ! Node: DBX Hooks1406531 ! Node: File Names and DBX1410177 ! Node: SDB and DWARF1412150 ! Node: Cross-compilation1415559 ! Node: Mode Switching1422135 ! Node: Misc1425372 ! Node: Config1457340 ! Node: Fragments1465024 ! Node: Target Fragment1465619 ! Node: Host Fragment1470532 ! Node: Funding1471134 ! Node: GNU/Linux1473633 ! Node: Copying1478948 ! Node: GNU Free Documentation License1498159 ! Node: Contributors1518044 ! Node: Option Index1534916 ! Node: Index1595103  End Tag Table --- 83,391 ---- Node: Standards5794 Node: Invoking GCC12244 Node: Option Summary15889 ! Node: Overall Options34552 ! Node: Invoking G++40672 ! Node: C Dialect Options42118 ! Node: C++ Dialect Options56341 ! Node: Objective-C Dialect Options69297 ! Node: Language Independent Options70920 ! Node: Warning Options72708 ! Node: Debugging Options104889 ! Node: Optimize Options126599 ! Node: Preprocessor Options151183 ! Node: Assembler Options161420 ! Node: Link Options161787 ! Ref: Link Options-Footnote-1169040 ! Node: Directory Options169376 ! Node: Spec Files173382 ! Node: Target Options190888 ! Node: Submodel Options194875 ! Node: M680x0 Options196526 ! Node: M68hc1x Options202533 ! Node: VAX Options203713 ! Node: SPARC Options204249 ! Node: Convex Options214133 ! Node: AMD29K Options216314 ! Node: ARM Options219710 ! Node: MN10200 Options232231 ! Node: MN10300 Options232753 ! Node: M32R/D Options233804 ! Node: M88K Options236153 ! Node: RS/6000 and PowerPC Options244083 ! Node: RT Options263631 ! Node: MIPS Options265334 ! Node: i386 Options275519 ! Node: HPPA Options285983 ! Node: Intel 960 Options290048 ! Node: DEC Alpha Options292990 ! Node: Clipper Options302384 ! Node: H8/300 Options302784 ! Node: SH Options303713 ! Node: System V Options306029 ! Node: TMS320C3x/C4x Options306847 ! Node: V850 Options312359 ! Node: ARC Options314368 ! Node: NS32K Options315569 ! Node: AVR Options319818 ! Node: MCore Options321529 ! Node: IA-64 Options322673 ! Node: D30V Options325061 ! Node: S/390 and zSeries Options326304 ! Node: Code Gen Options328216 ! Node: Environment Variables345046 ! Node: Running Protoize351384 ! Node: Installation357741 ! Node: Configuration Files361322 ! Node: Configurations362926 ! Node: Cross-Compiler367150 ! Node: Steps of Cross368909 ! Node: Configure Cross370027 ! Node: Tools and Libraries370664 ! Node: Cross Headers373103 ! Node: Build Cross375100 ! Node: VMS Install376606 ! Node: Collect2386539 ! Node: Header Dirs389104 ! Node: C Extensions390527 ! Node: Statement Exprs394349 ! Node: Local Labels397441 ! Node: Labels as Values399506 ! Ref: Labels as Values-Footnote-1401565 ! Node: Nested Functions401750 ! Node: Constructing Calls405589 ! Node: Naming Types407676 ! Node: Typeof408770 ! Node: Lvalues410646 ! Node: Conditionals413086 ! Node: Long Long413977 ! Node: Complex415476 ! Node: Hex Floats418144 ! Node: Zero Length419173 ! Node: Variable Length422274 ! Node: Variadic Macros425036 ! Node: Escaped Newlines427426 ! Node: Multi-line Strings428309 ! Node: Subscripting428913 ! Node: Pointer Arith429546 ! Node: Initializers430111 ! Node: Compound Literals430594 ! Node: Designated Inits432633 ! Node: Case Ranges436307 ! Node: Cast to Union436987 ! Node: Mixed Declarations438070 ! Node: Function Attributes438565 ! Node: Attribute Syntax459925 ! Node: Function Prototypes468736 ! Node: C++ Comments470532 ! Node: Dollar Signs471127 ! Node: Character Escapes471585 ! Node: Alignment471872 ! Node: Variable Attributes473411 ! Node: Type Attributes483044 ! Node: Inline492332 ! Node: Extended Asm497068 ! Node: Asm Labels513197 ! Node: Explicit Reg Vars514874 ! Node: Global Reg Vars516328 ! Node: Local Reg Vars520893 ! Node: Alternate Keywords522693 ! Node: Incomplete Enums524380 ! Node: Function Names525136 ! Node: Return Address527573 ! Node: Other Builtins529715 ! Node: C++ Extensions535786 ! Node: Min and Max537347 ! Node: Volatiles538753 ! Node: Restricted Pointers542123 ! Node: Vague Linkage543693 ! Node: C++ Interface547351 ! Ref: C++ Interface-Footnote-1552439 ! Node: Template Instantiation552578 ! Node: Bound member functions561408 ! Node: C++ Attributes562959 ! Node: Java Exceptions564563 ! Node: Deprecated Features565968 ! Node: Backwards Compatibility567732 ! Node: Objective C569080 ! Node: Executing code before main569650 ! Node: What you can and what you cannot do in +load572288 ! Node: Type encoding574454 ! Node: Garbage Collection577706 ! Node: Constant string objects580370 ! Node: compatibility_alias582004 ! Node: Gcov582883 ! Node: Gcov Intro583400 ! Node: Invoking Gcov586075 ! Node: Gcov and Optimization591813 ! Node: Gcov Data Files593230 ! Node: Trouble596795 ! Node: Actual Bugs598389 ! Node: Cross-Compiler Problems599297 ! Node: Interoperation600758 ! Node: External Bugs614016 ! Node: Incompatibilities615508 ! Node: Fixed Headers625116 ! Node: Standard Libraries627425 ! Node: Disappointments628795 ! Node: C++ Misunderstandings633333 ! Node: Static Definitions634059 ! Node: Temporaries635106 ! Node: Copy Assignment637083 ! Node: Protoize Caveats638901 ! Node: Non-bugs642856 ! Node: Warnings and Errors652748 ! Node: Bugs654508 ! Node: Bug Criteria655861 ! Node: Bug Lists658285 ! Node: Bug Reporting658844 ! Node: gccbug670947 ! Node: Service671767 ! Node: Contributing672513 ! Node: VMS673218 ! Node: Include Files and VMS673601 ! Node: Global Declarations677466 ! Node: VMS Misc681770 ! Node: Makefile686073 ! Node: Portability692732 ! Node: Interface694486 ! Node: Passes699066 ! Node: Trees721917 ! Node: Deficiencies724657 ! Node: Tree overview724887 ! Node: Macros and Functions729022 ! Node: Identifiers729156 ! Node: Containers730672 ! Node: Types731816 ! Node: Scopes743596 ! Node: Namespaces744352 ! Node: Classes748070 ! Node: Declarations752713 ! Node: Functions758767 ! Node: Function Basics761297 ! Node: Function Bodies768043 ! Node: Attributes781418 ! Node: Expression trees782807 ! Node: RTL805256 ! Node: RTL Objects807287 ! Node: RTL Classes810320 ! Node: Accessors814826 ! Node: Flags817206 ! Node: Machine Modes828762 ! Node: Constants836546 ! Node: Regs and Memory841727 ! Node: Arithmetic854367 ! Node: Comparisons860628 ! Node: Bit-Fields864748 ! Node: Vector Operations866166 ! Node: Conversions867940 ! Node: RTL Declarations871247 ! Node: Side Effects872056 ! Node: Incdec886906 ! Node: Assembler890459 ! Node: Insns891981 ! Node: Calls916429 ! Node: Sharing919023 ! Node: Reading RTL921988 ! Node: Machine Desc922931 ! Node: Overview925135 ! Node: Patterns927174 ! Node: Example930410 ! Node: RTL Template931538 ! Node: Output Template944003 ! Node: Output Statement947985 ! Node: Constraints951697 ! Node: Simple Constraints952628 ! Node: Multi-Alternative964584 ! Node: Class Preferences967419 ! Node: Modifiers968299 ! Node: Machine Constraints971957 ! Node: Standard Names985588 ! Node: Pattern Ordering1026013 ! Node: Dependent Patterns1027240 ! Node: Jump Patterns1030055 ! Node: Looping Patterns1035802 ! Node: Insn Canonicalizations1040395 ! Node: Expander Definitions1043893 ! Node: Insn Splitting1052025 ! Node: Peephole Definitions1060675 ! Node: define_peephole1061918 ! Node: define_peephole21068293 ! Node: Insn Attributes1071354 ! Node: Defining Attributes1072437 ! Node: Expressions1074449 ! Node: Tagging Insns1081038 ! Node: Attr Example1085400 ! Node: Insn Lengths1087776 ! Node: Constant Attributes1091069 ! Node: Delay Slots1092229 ! Node: Function Units1095440 ! Node: Conditional Execution1101110 ! Node: Constant Definitions1103966 ! Node: Target Macros1105544 ! Node: Driver1107572 ! Node: Run-time Target1126007 ! Node: Per-Function Data1133037 ! Node: Storage Layout1136298 ! Node: Type Layout1154962 ! Node: Registers1164808 ! Node: Register Basics1165723 ! Node: Allocation Order1170923 ! Node: Values in Registers1172336 ! Node: Leaf Functions1177453 ! Node: Stack Registers1180218 ! Node: Register Classes1181015 ! Node: Stack and Calling1201696 ! Node: Frame Layout1202181 ! Node: Stack Checking1211951 ! Node: Frame Registers1215483 ! Node: Elimination1219897 ! Node: Stack Arguments1224152 ! Node: Register Arguments1231125 ! Node: Scalar Return1242367 ! Node: Aggregate Return1246605 ! Node: Caller Saves1250319 ! Node: Function Entry1251856 ! Node: Profiling1262777 ! Node: Inlining1271015 ! Node: Tail Calling1271567 ! Node: Varargs1272156 ! Node: Trampolines1279831 ! Node: Library Calls1287036 ! Node: Addressing Modes1295459 ! Node: Condition Code1306733 ! Node: Costs1313590 ! Node: Sections1326504 ! Node: PIC1333819 ! Node: Assembler Format1336528 ! Node: File Framework1337595 ! Node: Data Output1341731 ! Node: Uninitialized Data1349505 ! Node: Label Output1354902 ! Node: Initialization1368075 ! Node: Macros for Initialization1374215 ! Node: Instruction Output1379472 ! Node: Dispatch Tables1388371 ! Node: Exception Region Output1390923 ! Node: Alignment Output1394422 ! Node: Debugging Info1397979 ! Node: All Debuggers1398588 ! Node: DBX Options1401397 ! Node: DBX Hooks1406769 ! Node: File Names and DBX1410415 ! Node: SDB and DWARF1412388 ! Node: Cross-compilation1415797 ! Node: Mode Switching1422373 ! Node: Misc1425610 ! Node: Config1457578 ! Node: Fragments1465262 ! Node: Target Fragment1465857 ! Node: Host Fragment1470770 ! Node: Funding1471372 ! Node: GNU/Linux1473871 ! Node: Copying1479186 ! Node: GNU Free Documentation License1498397 ! Node: Contributors1518282 ! Node: Option Index1535154 ! Node: Index1595411  End Tag Table diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-1 gcc-3.0.3/gcc/doc/gcc.info-1 *** gcc-3.0.2/gcc/doc/gcc.info-1 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-1 Thu Dec 20 11:59:48 2001 *************** _Machine Dependent Options_ *** 594,600 **** -mstrict-align -mno-strict-align -mrelocatable -mno-relocatable -mrelocatable-lib -mno-relocatable-lib -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian ! -mcall-aix -mcall-sysv -mprototype -mno-prototype -msim -mmvme -mads -myellowknife -memb -msdata -msdata=OPT -mvxworks -G NUM --- 594,600 ---- -mstrict-align -mno-strict-align -mrelocatable -mno-relocatable -mrelocatable-lib -mno-relocatable-lib -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian ! -mcall-aix -mcall-sysv -mcall-netbsd -mprototype -mno-prototype -msim -mmvme -mads -myellowknife -memb -msdata -msdata=OPT -mvxworks -G NUM diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-10 gcc-3.0.3/gcc/doc/gcc.info-10 *** gcc-3.0.2/gcc/doc/gcc.info-10 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-10 Thu Dec 20 11:59:48 2001 *************** object. For example: *** 1126,1135 **** struct foo { int x; int y[]; }; struct bar { struct foo z; }; ! struct foo a = { 1, { 2, 3, 4 } }; // Legal. ! struct bar b = { { 1, { 2, 3, 4 } } }; // Illegal. ! struct bar c = { { 1, { } } }; // Legal. ! struct foo d[1] = { { 1 { 2, 3, 4 } } }; // Illegal.  File: gcc.info, Node: Variable Length, Next: Variadic Macros, Prev: Zero Length, Up: C Extensions --- 1126,1135 ---- struct foo { int x; int y[]; }; struct bar { struct foo z; }; ! struct foo a = { 1, { 2, 3, 4 } }; // Valid. ! struct bar b = { { 1, { 2, 3, 4 } } }; // Invalid. ! struct bar c = { { 1, { } } }; // Valid. ! struct foo d[1] = { { 1 { 2, 3, 4 } } }; // Invalid.  File: gcc.info, Node: Variable Length, Next: Variadic Macros, Prev: Zero Length, Up: C Extensions diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-13 gcc-3.0.3/gcc/doc/gcc.info-13 *** gcc-3.0.2/gcc/doc/gcc.info-13 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-13 Thu Dec 20 11:59:48 2001 *************** can be used to initialize char arrays. *** 145,152 **** meaning inside a function, since the preprocessor does not do anything special with the identifier `__FUNCTION__'. ! GCC also supports the magic word `__func__', defined by the ISO ! standard C99: The identifier `__func__' is implicitly declared by the translator as if, immediately following the opening brace of each function --- 145,153 ---- meaning inside a function, since the preprocessor does not do anything special with the identifier `__FUNCTION__'. ! Note that these semantics are deprecated, and that GCC 3.2 will ! handle `__FUNCTION__' and `__PRETTY_FUNCTION__' the same way as ! `__func__'. `__func__' is defined by the ISO standard C99: The identifier `__func__' is implicitly declared by the translator as if, immediately following the opening brace of each function diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-28 gcc-3.0.3/gcc/doc/gcc.info-28 *** gcc-3.0.2/gcc/doc/gcc.info-28 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-28 Thu Dec 20 11:59:48 2001 *************** return. *** 996,1002 **** `CLASS_CANNOT_CHANGE_MODE_P(FROM, TO)' A C expression that is true if, for a register in ! `CLASS_CANNOT_CHANGE_MODE', the requested mode punning is illegal. For the example, loading 32-bit integer or floating-point objects into floating-point registers on the Alpha extends them to 64-bits. --- 996,1002 ---- `CLASS_CANNOT_CHANGE_MODE_P(FROM, TO)' A C expression that is true if, for a register in ! `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. diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-34 gcc-3.0.3/gcc/doc/gcc.info-34 *** gcc-3.0.2/gcc/doc/gcc.info-34 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-34 Thu Dec 20 11:59:48 2001 *************** some macros that vary: *** 868,874 **** acts as a "bit bucket". If you do not define this macro, GCC will use `/dev/null' as the bit bucket. If the target does not support a bit bucket, this should be defined to the null string, or some ! other illegal filename. If the bit bucket is not writable, GCC will use a temporary file instead. `COLLECT_EXPORT_LIST' --- 868,874 ---- acts as a "bit bucket". If you do not define this macro, GCC will use `/dev/null' as the bit bucket. If the target does not support a bit bucket, this should be defined to the null string, or some ! other invalid filename. If the bit bucket is not writable, GCC will use a temporary file instead. `COLLECT_EXPORT_LIST' diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-37 gcc-3.0.3/gcc/doc/gcc.info-37 *** gcc-3.0.2/gcc/doc/gcc.info-37 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-37 Thu Dec 20 11:59:48 2001 *************** look up both forms. *** 448,453 **** --- 448,454 ---- * mcall-aix: RS/6000 and PowerPC Options. * mcall-lib-mul: RT Options. * mcall-linux: RS/6000 and PowerPC Options. + * mcall-netbsd: RS/6000 and PowerPC Options. * mcall-prologues: AVR Options. * mcall-solaris: RS/6000 and PowerPC Options. * mcall-sysv: RS/6000 and PowerPC Options. diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-4 gcc-3.0.3/gcc/doc/gcc.info-4 *** gcc-3.0.2/gcc/doc/gcc.info-4 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-4 Thu Dec 20 11:59:48 2001 *************** of optimizations to be performed is desi *** 1123,1129 **** required, the optimization will not be done. `max-pending-list-length' ! The maximum number of pending dependancies scheduling will allow before flushing the current state and starting over. Large functions with few branches or calls can create excessively large lists which needlessly consume memory and --- 1123,1129 ---- required, the optimization will not be done. `max-pending-list-length' ! The maximum number of pending dependencies scheduling will allow before flushing the current state and starting over. Large functions with few branches or calls can create excessively large lists which needlessly consume memory and diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.info-7 gcc-3.0.3/gcc/doc/gcc.info-7 *** gcc-3.0.2/gcc/doc/gcc.info-7 Tue Oct 23 11:00:26 2001 --- gcc-3.0.3/gcc/doc/gcc.info-7 Thu Dec 20 11:59:48 2001 *************** IBM RS/6000 and PowerPC Options *** 355,360 **** --- 355,364 ---- On System V.4 and embedded PowerPC systems compile code for the Linux-based GNU system. + `-mcall-netbsd' + On System V.4 and embedded PowerPC systems compile code for the + NetBSD operating system. + `-mprototype' `-mno-prototype' On System V.4 and embedded PowerPC systems assume that all calls to diff -Nrc3pad gcc-3.0.2/gcc/doc/gcc.texi gcc-3.0.3/gcc/doc/gcc.texi *** gcc-3.0.2/gcc/doc/gcc.texi Mon Oct 22 17:23:34 2001 --- gcc-3.0.3/gcc/doc/gcc.texi Wed Nov 7 06:56:45 2001 *************** *** 41,64 **** @c @c anything else? --mew 10feb93 - @c For consistency, use the following: - @c - "32-bit" rather than "32 bit" as an adjective. - @c - "back end" as a noun, "back-end" as an adjective. - @c - "bit-field" not "bitfield" or "bit field" (following the C and C++ - @c standards). - @c - "built-in" as an adjective ("built-in function"), or sometimes - @c "built in", not "builtin" (which isn't a word). - @c - "front end" as a noun, "front-end" as an adjective. - @c - "GCC" for the GNU Compiler Collection, both generally - @c and as the GNU C Compiler in the context of compiling C; - @c "G++" for the C++ compiler; "gcc" and "g++" (lowercase), - @c marked up with @command, for the commands for compilation when the - @c emphasis is on those; "GNU C" and "GNU C++" for language dialects; - @c and try to avoid the older term "GNU CC". - @c - "nonzero" rather than "non-zero". - @c - "@code{NULL}" rather than "NULL". - @c - "Objective-C" rather than "Objective C". - @macro gcctabopt{body} @code{\body\} @end macro --- 41,46 ---- *************** The name of a file or file-like object o *** 3919,3925 **** a ``bit bucket''. If you do not define this macro, GCC will use @samp{/dev/null} as the bit bucket. If the target does not support a bit bucket, this should be defined to the null string, or some other ! illegal filename. If the bit bucket is not writable, GCC will use a temporary file instead. @findex COLLECT_EXPORT_LIST --- 3901,3907 ---- a ``bit bucket''. If you do not define this macro, GCC will use @samp{/dev/null} as the bit bucket. If the target does not support a bit bucket, this should be defined to the null string, or some other ! invalid filename. If the bit bucket is not writable, GCC will use a temporary file instead. @findex COLLECT_EXPORT_LIST diff -Nrc3pad gcc-3.0.2/gcc/doc/gcov.1 gcc-3.0.3/gcc/doc/gcov.1 *** gcc-3.0.2/gcc/doc/gcov.1 Fri Oct 12 04:29:34 2001 --- gcc-3.0.3/gcc/doc/gcov.1 Wed Nov 14 14:33:39 2001 *************** *** 1,5 **** ! .\" Automatically generated by Pod::Man version 1.19 ! .\" Fri Oct 12 11:20:12 2001 .\" .\" Standard preamble: .\" ======================================================================== --- 1,5 ---- ! .\" Automatically generated by Pod::Man version 1.22 ! .\" Wed Nov 14 22:27:21 2001 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 131,137 **** .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.0.2" "2001-10-12" "GNU" .UC .SH "NAME" gcov \- coverage testing tool --- 131,137 ---- .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.0.3" "2001-11-14" "GNU" .UC .SH "NAME" gcov \- coverage testing tool *************** the output does not indicate how many ti *** 378,399 **** many times the result was 1. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgcc\fR\|(1) and the Info entry for \fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1996, 1997, 1999, 2000 Free Software Foundation, Inc. .PP ! Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are ! preserved on all copies. .PP ! Permission is granted to copy and distribute modified versions of this ! manual under the conditions for verbatim copying, provided also that the ! entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. .PP ! Permission is granted to copy and distribute translations of this manual ! into another language, under the above conditions for modified versions, ! except that this permission notice may be included in translations ! approved by the Free Software Foundation instead of in the original ! English. --- 378,405 ---- many times the result was 1. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7), \fIgcc\fR\|(1) and the Info entry for \fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1996, 1997, 1999, 2000 Free Software Foundation, Inc. .PP ! Permission is granted to copy, distribute and/or modify this document ! under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 or ! any later version published by the Free Software Foundation; with the ! Invariant Sections being ``\s-1GNU\s0 General Public License'' and ``Funding ! Free Software'', the Front-Cover texts being (a) (see below), and with ! the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fIgfdl\fR\|(7) man page. .PP ! (a) The \s-1FSF\s0's Front-Cover Text is: .PP ! .Vb 1 ! \& A GNU Manual ! .Ve ! (b) The \s-1FSF\s0's Back-Cover Text is: ! .PP ! .Vb 3 ! \& You have freedom to copy and modify this GNU Manual, like GNU ! \& software. Copies published by the Free Software Foundation raise ! \& funds for GNU development. ! .Ve diff -Nrc3pad gcc-3.0.2/gcc/doc/gcov.texi gcc-3.0.3/gcc/doc/gcov.texi *** gcc-3.0.2/gcc/doc/gcov.texi Wed Jun 27 08:08:24 2001 --- gcc-3.0.3/gcc/doc/gcov.texi Wed Nov 14 14:33:37 2001 *************** *** 6,25 **** @c man begin COPYRIGHT Copyright @copyright{} 1996, 1997, 1999, 2000 Free Software Foundation, Inc. ! Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are ! preserved on all copies. ! Permission is granted to copy and distribute modified versions of this ! manual under the conditions for verbatim copying, provided also that the ! entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. ! Permission is granted to copy and distribute translations of this manual ! into another language, under the above conditions for modified versions, ! except that this permission notice may be included in translations ! approved by the Free Software Foundation instead of in the original ! English. @c man end @c Set file name and title for the man page. @setfilename gcov --- 6,28 ---- @c man begin COPYRIGHT Copyright @copyright{} 1996, 1997, 1999, 2000 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 ! any later version published by the Free Software Foundation; with the ! Invariant Sections being ``GNU General Public License'' and ``Funding ! Free Software'', the Front-Cover texts being (a) (see below), and with ! the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the gfdl(7) man page. ! (a) The FSF's Front-Cover Text is: ! A GNU Manual ! ! (b) The FSF's Back-Cover Text is: ! ! You have freedom to copy and modify this GNU Manual, like GNU ! software. Copies published by the Free Software Foundation raise ! funds for GNU development. @c man end @c Set file name and title for the man page. @setfilename gcov *************** gcov [-b] [-c] [-v] [-n] [-l] [-f] [-o d *** 116,122 **** gcov [@option{-b}] [@option{-c}] [@option{-v}] [@option{-n}] [@option{-l}] [@option{-f}] [@option{-o} @var{directory}] @var{sourcefile} @c man end @c man begin SEEALSO ! gcc(1) and the Info entry for @file{gcc}. @c man end @end ignore --- 119,125 ---- gcov [@option{-b}] [@option{-c}] [@option{-v}] [@option{-n}] [@option{-l}] [@option{-f}] [@option{-o} @var{directory}] @var{sourcefile} @c man end @c man begin SEEALSO ! gpl(7), gfdl(7), fsf-funding(7), gcc(1) and the Info entry for @file{gcc}. @c man end @end ignore diff -Nrc3pad gcc-3.0.2/gcc/doc/gfdl.7 gcc-3.0.3/gcc/doc/gfdl.7 *** gcc-3.0.2/gcc/doc/gfdl.7 Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/doc/gfdl.7 Thu Dec 20 11:55:55 2001 *************** *** 0 **** --- 1,516 ---- + .\" Automatically generated by Pod::Man version 1.22 + .\" Wed Nov 14 22:27:24 2001 + .\" + .\" Standard preamble: + .\" ======================================================================== + .de Sh \" Subsection heading + .br + .if t .Sp + .ne 5 + .PP + \fB\\$1\fR + .PP + .. + .de Sp \" Vertical space (when we can't use .PP) + .if t .sp .5v + .if n .sp + .. + .de Vb \" Begin verbatim text + .ft CW + .nf + .ne \\$1 + .. + .de Ve \" End verbatim text + .ft R + + .fi + .. + .\" Set up some character translations and predefined strings. \*(-- will + .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left + .\" double quote, and \*(R" will give a right double quote. | will give a + .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to + .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' + .\" expand to `' in nroff, nothing in troff, for use with C<>. + .tr \(*W-|\(bv\*(Tr + .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' + .ie n \{\ + . ds -- \(*W- + . ds PI pi + . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch + . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch + . ds L" "" + . ds R" "" + . ds C` "" + . ds C' "" + 'br\} + .el\{\ + . ds -- \|\(em\| + . ds PI \(*p + . ds L" `` + . ds R" '' + 'br\} + .\" + .\" If the F register is turned on, we'll generate index entries on stderr for + .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index + .\" entries marked with X<> in POD. Of course, you'll have to process the + .\" output yourself in some meaningful fashion. + .if \nF \{\ + . de IX + . tm Index:\\$1\t\\n%\t"\\$2" + .. + . nr % 0 + . rr F + .\} + .\" + .\" For nroff, turn off justification. Always turn off hyphenation; it makes + .\" way too many mistakes in technical documents. + .hy 0 + .if n .na + .\" + .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). + .\" Fear. Run. Save yourself. No user-serviceable parts. + . \" fudge factors for nroff and troff + .if n \{\ + . ds #H 0 + . ds #V .8m + . ds #F .3m + . ds #[ \f1 + . ds #] \fP + .\} + .if t \{\ + . ds #H ((1u-(\\\\n(.fu%2u))*.13m) + . ds #V .6m + . ds #F 0 + . ds #[ \& + . ds #] \& + .\} + . \" simple accents for nroff and troff + .if n \{\ + . ds ' \& + . ds ` \& + . ds ^ \& + . ds , \& + . ds ~ ~ + . ds / + .\} + .if t \{\ + . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" + . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' + . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' + . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' + . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' + . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' + .\} + . \" troff and (daisy-wheel) nroff accents + .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' + .ds 8 \h'\*(#H'\(*b\h'-\*(#H' + .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] + .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' + .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' + .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] + .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] + .ds ae a\h'-(\w'a'u*4/10)'e + .ds Ae A\h'-(\w'A'u*4/10)'E + . \" corrections for vroff + .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' + .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' + . \" for low resolution devices (crt and lpr) + .if \n(.H>23 .if \n(.V>19 \ + \{\ + . ds : e + . ds 8 ss + . ds o a + . ds d- d\h'-1'\(ga + . ds D- D\h'-1'\(hy + . ds th \o'bp' + . ds Th \o'LP' + . ds ae ae + . ds Ae AE + .\} + .rm #[ #] #H #V #F C + .\" ======================================================================== + .\" + .IX Title "gfdl 7" + .TH gfdl 7 "gcc-3.0.3" "2001-11-14" "GNU" + .UC + .SH "NAME" + gfdl \- \s-1GNU\s0 Free Documentation License + .SH "DESCRIPTION" + .IX Header "DESCRIPTION" + .Sh "\s-1GNU\s0 Free Documentation License" + .IX Subsection "GNU Free Documentation License" + .Sh "Version 1.1, March 2000" + .IX Subsection "Version 1.1, March 2000" + .Vb 2 + \& Copyright (c) 2000 Free Software Foundation, Inc. + \& 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + .Ve + .Vb 2 + \& Everyone is permitted to copy and distribute verbatim copies + \& of this license document, but changing it is not allowed. + .Ve + .IP "0." 4 + \&\s-1PREAMBLE\s0 + .Sp + The purpose of this License is to make a manual, textbook, or other + written document \fIfree\fR in the sense of freedom: to assure everyone + the effective freedom to copy and redistribute it, with or without + modifying it, either commercially or noncommercially. Secondarily, + this License preserves for the author and publisher a way to get + credit for their work, while not being considered responsible for + modifications made by others. + .Sp + This License is a kind of ``copyleft'', which means that derivative + works of the document must themselves be free in the same sense. It + complements the \s-1GNU\s0 General Public License, which is a copyleft + license designed for free software. + .Sp + We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. + .IP "1." 4 + \&\s-1APPLICABILITY\s0 \s-1AND\s0 \s-1DEFINITIONS\s0 + .Sp + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be distributed + under the terms of this License. The ``Document'', below, refers to any + such manual or work. Any member of the public is a licensee, and is + addressed as ``you''. + .Sp + A ``Modified Version'' of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + .Sp + A ``Secondary Section'' is a named appendix or a front-matter section of + the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall subject + (or to related matters) and contains nothing that could fall directly + within that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. + .Sp + The ``Invariant Sections'' are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. + .Sp + The ``Cover Texts'' are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. + .Sp + A ``Transparent'' copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, whose contents can be viewed and edited directly and + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy that is + not ``Transparent'' is called ``Opaque''. + .Sp + Examples of suitable formats for Transparent copies include plain + \&\s-1ASCII\s0 without markup, Texinfo input format, LaTeX input format, + \&\f(CW@acronym\fR{\s-1SGML\s0} or \f(CW@acronym\fR{\s-1XML\s0} using a publicly available + \&\f(CW@acronym\fR{\s-1DTD\s0}, and standard-conforming simple \f(CW@acronym\fR{\s-1HTML\s0} designed + for human modification. Opaque formats include PostScript, + \&\f(CW@acronym\fR{\s-1PDF\s0}, proprietary formats that can be read and edited only by + proprietary word processors, \f(CW@acronym\fR{\s-1SGML\s0} or \f(CW@acronym\fR{\s-1XML\s0} for which + the \f(CW@acronym\fR{\s-1DTD\s0} and/or processing tools are not generally available, + and the machine-generated \f(CW@acronym\fR{\s-1HTML\s0} produced by some word + processors for output purposes only. + .Sp + The ``Title Page'' means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, ``Title Page'' means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. + .IP "2." 4 + \&\s-1VERBATIM\s0 \s-1COPYING\s0 + .Sp + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. + .Sp + You may also lend copies, under the same conditions stated above, and + you may publicly display copies. + .IP "3." 4 + \&\s-1COPYING\s0 \s-1IN\s0 \s-1QUANTITY\s0 + .Sp + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. + .Sp + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. + .Sp + If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a publicly-accessible computer-network location containing a complete + Transparent copy of the Document, free of added material, which the + general network-using public has access to download anonymously at no + charge using public-standard network protocols. If you use the latter + option, you must take reasonably prudent steps, when you begin + distribution of Opaque copies in quantity, to ensure that this + Transparent copy will remain thus accessible at the stated location + until at least one year after the last time you distribute an Opaque + copy (directly or through your agents or retailers) of that edition to + the public. + .Sp + It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. + .IP "4." 4 + \&\s-1MODIFICATIONS\s0 + .Sp + You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: + .RS 4 + .IP "A." 4 + Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. + .IP "B." 4 + List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). + .IP "C." 4 + State on the Title page the name of the publisher of the + Modified Version, as the publisher. + .IP "D." 4 + Preserve all the copyright notices of the Document. + .IP "E." 4 + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + .IP "F." 4 + Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. + .IP "G." 4 + Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. + .IP "H." 4 + Include an unaltered copy of this License. + .IP "I." 4 + Preserve the section entitled ``History'', and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled ``History'' in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. + .IP "J." 4 + Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the ``History'' section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. + .IP "K." 4 + In any section entitled ``Acknowledgments'' or ``Dedications'', + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgments + and/or dedications given therein. + .IP "L." 4 + Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. + .IP "M." 4 + Delete any section entitled ``Endorsements''. Such a section + may not be included in the Modified Version. + .IP "N." 4 + Do not retitle any existing section as ``Endorsements'' + or to conflict in title with any Invariant Section. + .RE + .RS 4 + .Sp + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. + .Sp + You may add a section entitled ``Endorsements'', provided it contains + nothing but endorsements of your Modified Version by various + parties\-\-\-for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. + .Sp + You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. + .Sp + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. + .RE + .IP "5." 4 + \&\s-1COMBINING\s0 \s-1DOCUMENTS\s0 + .Sp + You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice. + .Sp + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. + .Sp + In the combination, you must combine any sections entitled ``History'' + in the various original documents, forming one section entitled + ``History''; likewise combine any sections entitled ``Acknowledgments'', + and any sections entitled ``Dedications''. You must delete all sections + entitled ``Endorsements.'' + .IP "6." 4 + \&\s-1COLLECTIONS\s0 \s-1OF\s0 \s-1DOCUMENTS\s0 + .Sp + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. + .Sp + You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. + .IP "7." 4 + \&\s-1AGGREGATION\s0 \s-1WITH\s0 \s-1INDEPENDENT\s0 \s-1WORKS\s0 + .Sp + A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, does not as a whole count as a Modified Version + of the Document, provided no compilation copyright is claimed for the + compilation. Such a compilation is called an ``aggregate'', and this + License does not apply to the other self-contained works thus compiled + with the Document, on account of their being thus compiled, if they + are not themselves derivative works of the Document. + .Sp + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one quarter + of the entire aggregate, the Document's Cover Texts may be placed on + covers that surround only the Document within the aggregate. + Otherwise they must appear on covers around the whole aggregate. + .IP "8." 4 + \&\s-1TRANSLATION\s0 + .Sp + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License provided that you also include the + original English version of this License. In case of a disagreement + between the translation and the original English version of this + License, the original English version will prevail. + .IP "9." 4 + \&\s-1TERMINATION\s0 + .Sp + You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. + .IP "10." 4 + .IX Item "10." + \&\s-1FUTURE\s0 \s-1REVISIONS\s0 \s-1OF\s0 \s-1THIS\s0 \s-1LICENSE\s0 + .Sp + The Free Software Foundation may publish new, revised versions + of the \s-1GNU\s0 Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + <\fBhttp://www.gnu.org/copyleft/\fR>. + .Sp + Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License ``or any later version'' applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + as a draft) by the Free Software Foundation. + .Sh "\s-1ADDENDUM:\s0 How to use this License for your documents" + .IX Subsection "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: + .PP + .Vb 8 + \& Copyright (C) . + \& 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; + \& with the Invariant Sections being , with the + \& Front-Cover Texts being , and with the Back-Cover Texts being . + \& A copy of the license is included in the section entitled ``GNU + \& Free Documentation License''. + .Ve + If you have no Invariant Sections, write ``with no Invariant Sections'' + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write ``no Front-Cover Texts'' instead of + ``Front-Cover Texts being \fIlist\fR''; likewise for Back-Cover Texts. + .PP + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the \s-1GNU\s0 General Public License, + to permit their use in free software. + .SH "SEE ALSO" + .IX Header "SEE ALSO" + \&\fIgpl\fR\|(7), \fIfsf-funding\fR\|(7). + .SH "COPYRIGHT" + .IX Header "COPYRIGHT" + Copyright (c) 2000 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, \s-1MA\s0 02111\-1307, \s-1USA\s0 + .PP + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. diff -Nrc3pad gcc-3.0.2/gcc/doc/gpl.7 gcc-3.0.3/gcc/doc/gpl.7 *** gcc-3.0.2/gcc/doc/gpl.7 Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/doc/gpl.7 Thu Dec 20 11:55:55 2001 *************** *** 0 **** --- 1,522 ---- + .\" Automatically generated by Pod::Man version 1.22 + .\" Wed Nov 14 22:27:25 2001 + .\" + .\" Standard preamble: + .\" ======================================================================== + .de Sh \" Subsection heading + .br + .if t .Sp + .ne 5 + .PP + \fB\\$1\fR + .PP + .. + .de Sp \" Vertical space (when we can't use .PP) + .if t .sp .5v + .if n .sp + .. + .de Vb \" Begin verbatim text + .ft CW + .nf + .ne \\$1 + .. + .de Ve \" End verbatim text + .ft R + + .fi + .. + .\" Set up some character translations and predefined strings. \*(-- will + .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left + .\" double quote, and \*(R" will give a right double quote. | will give a + .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to + .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' + .\" expand to `' in nroff, nothing in troff, for use with C<>. + .tr \(*W-|\(bv\*(Tr + .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' + .ie n \{\ + . ds -- \(*W- + . ds PI pi + . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch + . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch + . ds L" "" + . ds R" "" + . ds C` "" + . ds C' "" + 'br\} + .el\{\ + . ds -- \|\(em\| + . ds PI \(*p + . ds L" `` + . ds R" '' + 'br\} + .\" + .\" If the F register is turned on, we'll generate index entries on stderr for + .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index + .\" entries marked with X<> in POD. Of course, you'll have to process the + .\" output yourself in some meaningful fashion. + .if \nF \{\ + . de IX + . tm Index:\\$1\t\\n%\t"\\$2" + .. + . nr % 0 + . rr F + .\} + .\" + .\" For nroff, turn off justification. Always turn off hyphenation; it makes + .\" way too many mistakes in technical documents. + .hy 0 + .if n .na + .\" + .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). + .\" Fear. Run. Save yourself. No user-serviceable parts. + . \" fudge factors for nroff and troff + .if n \{\ + . ds #H 0 + . ds #V .8m + . ds #F .3m + . ds #[ \f1 + . ds #] \fP + .\} + .if t \{\ + . ds #H ((1u-(\\\\n(.fu%2u))*.13m) + . ds #V .6m + . ds #F 0 + . ds #[ \& + . ds #] \& + .\} + . \" simple accents for nroff and troff + .if n \{\ + . ds ' \& + . ds ` \& + . ds ^ \& + . ds , \& + . ds ~ ~ + . ds / + .\} + .if t \{\ + . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" + . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' + . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' + . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' + . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' + . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' + .\} + . \" troff and (daisy-wheel) nroff accents + .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' + .ds 8 \h'\*(#H'\(*b\h'-\*(#H' + .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] + .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' + .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' + .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] + .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] + .ds ae a\h'-(\w'a'u*4/10)'e + .ds Ae A\h'-(\w'A'u*4/10)'E + . \" corrections for vroff + .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' + .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' + . \" for low resolution devices (crt and lpr) + .if \n(.H>23 .if \n(.V>19 \ + \{\ + . ds : e + . ds 8 ss + . ds o a + . ds d- d\h'-1'\(ga + . ds D- D\h'-1'\(hy + . ds th \o'bp' + . ds Th \o'LP' + . ds ae ae + . ds Ae AE + .\} + .rm #[ #] #H #V #F C + .\" ======================================================================== + .\" + .IX Title "gpl 7" + .TH gpl 7 "gcc-3.0.3" "2001-11-14" "GNU" + .UC + .SH "NAME" + gpl \- \s-1GNU\s0 General Public License + .SH "DESCRIPTION" + .IX Header "DESCRIPTION" + .Sh "\s-1GNU\s0 \s-1GENERAL\s0 \s-1PUBLIC\s0 \s-1LICENSE\s0" + .IX Subsection "GNU GENERAL PUBLIC LICENSE" + .Sh "Version 2, June 1991" + .IX Subsection "Version 2, June 1991" + .Vb 2 + \& Copyright (c) 1989, 1991 Free Software Foundation, Inc. + \& 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + .Ve + .Vb 2 + \& Everyone is permitted to copy and distribute verbatim copies + \& of this license document, but changing it is not allowed. + .Ve + .Sh "Preamble" + .IX Subsection "Preamble" + .Vb 9 + \& The licenses for most software are designed to take away your + \&freedom to share and change it. By contrast, the GNU General Public + \&License is intended to guarantee your freedom to share and change free + \&software---to make sure the software is free for all its users. This + \&General Public License applies to most of the Free Software + \&Foundation's software and to any other program whose authors commit to + \&using it. (Some other Free Software Foundation software is covered by + \&the GNU Library General Public License instead.) You can apply it to + \&your programs, too. + .Ve + .Vb 6 + \& When we speak of free software, we are referring to freedom, not + \&price. Our General Public Licenses are designed to make sure that you + \&have the freedom to distribute copies of free software (and charge for + \&this service if you wish), that you receive source code or can get it + \&if you want it, that you can change the software or use pieces of it + \&in new free programs; and that you know you can do these things. + .Ve + .Vb 4 + \& To protect your rights, we need to make restrictions that forbid + \&anyone to deny you these rights or to ask you to surrender the rights. + \&These restrictions translate to certain responsibilities for you if you + \&distribute copies of the software, or if you modify it. + .Ve + .Vb 5 + \& For example, if you distribute copies of such a program, whether + \&gratis or for a fee, you must give the recipients all the rights that + \&you have. You must make sure that they, too, receive or can get the + \&source code. And you must show them these terms so they know their + \&rights. + .Ve + .Vb 3 + \& We protect your rights with two steps: (1) copyright the software, and + \&(2) offer you this license which gives you legal permission to copy, + \&distribute and/or modify the software. + .Ve + .Vb 6 + \& Also, for each author's protection and ours, we want to make certain + \&that everyone understands that there is no warranty for this free + \&software. If the software is modified by someone else and passed on, we + \&want its recipients to know that what they have is not the original, so + \&that any problems introduced by others will not reflect on the original + \&authors' reputations. + .Ve + .Vb 5 + \& Finally, any free program is threatened constantly by software + \&patents. We wish to avoid the danger that redistributors of a free + \&program will individually obtain patent licenses, in effect making the + \&program proprietary. To prevent this, we have made it clear that any + \&patent must be licensed for everyone's free use or not licensed at all. + .Ve + .Vb 2 + \& The precise terms and conditions for copying, distribution and + \&modification follow. + .Ve + .Sh "\s-1TERMS\s0 \s-1AND\s0 \s-1CONDITIONS\s0 \s-1FOR\s0 \s-1COPYING\s0, \s-1DISTRIBUTION\s0 \s-1AND\s0 \s-1MODIFICATION\s0" + .IX Subsection "TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION" + .IP "0." 4 + This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The ``Program'', below, + refers to any such program or work, and a ``work based on the Program'' + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term ``modification''.) Each licensee is addressed as ``you''. + .Sp + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + .IP "1." 4 + You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + .Sp + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + .IP "2." 4 + You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + .RS 4 + .IP "a." 4 + You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + .IP "b." 4 + You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + .IP "c." 4 + If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + .RE + .RS 4 + .Sp + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + .Sp + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + .Sp + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + .RE + .IP "3." 4 + You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + .RS 4 + .IP "a." 4 + Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + .IP "b." 4 + Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + .IP "c." 4 + Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + .RE + .RS 4 + .Sp + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + .Sp + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + .RE + .IP "4." 4 + You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + .IP "5." 4 + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + .IP "6." 4 + Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + .IP "7." 4 + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + .Sp + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + .Sp + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + .Sp + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + .IP "8." 4 + If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + .IP "9." 4 + The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + .Sp + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and ``any + later version'', you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + .IP "10." 4 + .IX Item "10." + If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + .Sh "\s-1NO\s0 \s-1WARRANTY\s0" + .IX Subsection "NO WARRANTY" + .IP "11." 4 + .IX Item "11." + \&\s-1BECAUSE\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 + \&\s-1FOR\s0 \s-1THE\s0 \s-1PROGRAM\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 + \&\s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 + \&\s-1PROVIDE\s0 \s-1THE\s0 \s-1PROGRAM\s0 ``\s-1AS\s0 \s-1IS\s0'' \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 \s-1EXPRESSED\s0 + \&\s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 \s-1WARRANTIES\s0 \s-1OF\s0 + \&\s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 \s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 + \&\s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1IS\s0 \s-1WITH\s0 \s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 + \&\s-1PROGRAM\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 \s-1NECESSARY\s0 \s-1SERVICING\s0, + \&\s-1REPAIR\s0 \s-1OR\s0 \s-1CORRECTION\s0. + .IP "12." 4 + .IX Item "12." + \&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 + \&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 + \&\s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1ABOVE\s0, \s-1BE\s0 \s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, + \&\s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0 \s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 + \&\s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 \s-1THE\s0 \s-1PROGRAM\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 + \&\s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 \s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 + \&\s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A \s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 + \&\s-1PROGRAMS\s0), \s-1EVEN\s0 \s-1IF\s0 \s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 + \&\s-1POSSIBILITY\s0 \s-1OF\s0 \s-1SUCH\s0 \s-1DAMAGES\s0. + .Sh "\s-1END\s0 \s-1OF\s0 \s-1TERMS\s0 \s-1AND\s0 \s-1CONDITIONS\s0" + .IX Subsection "END OF TERMS AND CONDITIONS" + .Sh "How to Apply These Terms to Your New Programs" + .IX Subsection "How to Apply These Terms to Your New Programs" + .Vb 3 + \& If you develop a new program, and you want it to be of the greatest + \&possible use to the public, the best way to achieve this is to make it + \&free software which everyone can redistribute and change under these terms. + .Ve + .Vb 4 + \& To do so, attach the following notices to the program. It is safest + \&to attach them to the start of each source file to most effectively + \&convey the exclusion of warranty; and each file should have at least + \&the ``copyright'' line and a pointer to where the full notice is found. + .Ve + .Vb 2 + \& + \& Copyright (C) + .Ve + .Vb 4 + \& 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; either version 2 of the License, or + \& (at your option) any later version. + .Ve + .Vb 4 + \& This program 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. + .Ve + .Vb 4 + \& You should have received a copy of the GNU General Public License + \& along with this program; if not, write to the Free Software + \& Foundation, Inc., 59 Temple Place - Suite 330, + \& Boston, MA 02111-1307, USA. + .Ve + Also add information on how to contact you by electronic and paper mail. + .PP + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + .PP + .Vb 5 + \& Gnomovision version 69, Copyright (C) + \& Gnomovision comes with ABSOLUTELY NO WARRANTY; for details + \& type `show w'. + \& This is free software, and you are welcome to redistribute it + \& under certain conditions; type `show c' for details. + .Ve + The hypothetical commands \fBshow w\fR and \fBshow c\fR should show + the appropriate parts of the General Public License. Of course, the + commands you use may be called something other than \fBshow w\fR and + \&\fBshow c\fR; they could even be mouse-clicks or menu items\-\-\-whatever + suits your program. + .PP + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the program, if + necessary. Here is a sample; alter the names: + .PP + .Vb 2 + \& Yoyodyne, Inc., hereby disclaims all copyright interest in the program + \& `Gnomovision' (which makes passes at compilers) written by James Hacker. + .Ve + .Vb 2 + \& , 1 April 1989 + \& Ty Coon, President of Vice + .Ve + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the \s-1GNU\s0 Library General + Public License instead of this License. + .SH "SEE ALSO" + .IX Header "SEE ALSO" + \&\fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7). + .SH "COPYRIGHT" + .IX Header "COPYRIGHT" + Copyright (c) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place \- Suite 330, Boston, \s-1MA\s0 02111\-1307, \s-1USA\s0 + .PP + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. diff -Nrc3pad gcc-3.0.2/gcc/doc/include/fdl.texi gcc-3.0.3/gcc/doc/include/fdl.texi *** gcc-3.0.2/gcc/doc/include/fdl.texi Wed Jul 4 09:23:07 2001 --- gcc-3.0.3/gcc/doc/include/fdl.texi Tue Dec 4 01:25:39 2001 *************** *** 1,6 **** --- 1,36 ---- + @ignore + @c Set file name and title for man page. + @setfilename gfdl + @settitle GNU Free Documentation License + @c man begin SEEALSO + gpl(7), fsf-funding(7). + @c man end + @c man begin COPYRIGHT + Copyright @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 + of this license document, but changing it is not allowed. + @c man end + @end ignore + @c Special handling for inclusion in the install manual. + @ifset gfdlhtml + @ifnothtml + @comment node-name, next, previous, up + @node GNU Free Documentation License, Concept Index, Specific, Top + @end ifnothtml + @html +

          Installing GCC: GNU Free Documentation License

          + @end html + @ifnothtml + @unnumbered GNU Free Documentation License + @end ifnothtml + @end ifset + @c man begin DESCRIPTION + @ifclear gfdlhtml @node GNU Free Documentation License @unnumbered GNU Free Documentation License + @end ifclear @cindex FDL, GNU Free Documentation License @center Version 1.1, March 2000 *************** to permit their use in free software. *** 401,403 **** --- 431,434 ---- @c ispell-local-pdict: "ispell-dict" @c End: + @c man end diff -Nrc3pad gcc-3.0.2/gcc/doc/include/funding.texi gcc-3.0.3/gcc/doc/include/funding.texi *** gcc-3.0.2/gcc/doc/include/funding.texi Wed Jul 4 09:23:07 2001 --- gcc-3.0.3/gcc/doc/include/funding.texi Wed Nov 14 14:33:40 2001 *************** *** 1,4 **** --- 1,13 ---- + @ignore + @c Set file name and title for man page. + @setfilename fsf-funding + @settitle Funding Free Software + @c man begin SEEALSO + gpl(7), gfdl(7). + @c man end + @end ignore @node Funding + @c man begin DESCRIPTION @unnumbered Funding Free Software If you want to have more free software a few years from now, it makes *************** major new features or packages contribut *** 40,48 **** By establishing the idea that supporting further development is ``the proper thing to do'' when distributing free software for a fee, we can assure a steady flow of resources into making more free software. @display ! Copyright (C) 1994 Free Software Foundation, Inc. Verbatim copying and redistribution of this section is permitted without royalty; alteration is not permitted. @end display --- 49,60 ---- By establishing the idea that supporting further development is ``the proper thing to do'' when distributing free software for a fee, we can assure a steady flow of resources into making more free software. + @c man end @display ! @c man begin COPYRIGHT ! Copyright @copyright{} 1994 Free Software Foundation, Inc. Verbatim copying and redistribution of this section is permitted without royalty; alteration is not permitted. + @c man end @end display diff -Nrc3pad gcc-3.0.2/gcc/doc/include/gpl.texi gcc-3.0.3/gcc/doc/include/gpl.texi *** gcc-3.0.2/gcc/doc/include/gpl.texi Wed Jul 4 09:23:07 2001 --- gcc-3.0.3/gcc/doc/include/gpl.texi Wed Nov 14 14:33:40 2001 *************** *** 1,4 **** --- 1,20 ---- + @ignore + @c Set file name and title for man page. + @setfilename gpl + @settitle GNU General Public License + @c man begin SEEALSO + gfdl(7), fsf-funding(7). + @c man end + @c man begin COPYRIGHT + Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + @c man end + @end ignore @node Copying + @c man begin DESCRIPTION @unnumbered GNU GENERAL PUBLIC LICENSE @center Version 2, June 1991 *************** proprietary programs. If your program i *** 390,392 **** --- 406,409 ---- consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. + @c man end diff -Nrc3pad gcc-3.0.2/gcc/doc/install.texi gcc-3.0.3/gcc/doc/install.texi *** gcc-3.0.2/gcc/doc/install.texi Wed Oct 17 02:06:43 2001 --- gcc-3.0.3/gcc/doc/install.texi Mon Dec 10 13:34:19 2001 *************** *** 32,39 **** @ifset binarieshtml @settitle Installing GCC: Binaries @end ifset ! @c Copyright (C) 2001 Free Software Foundation, Inc. @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com @c Include everything if we're not making html --- 32,43 ---- @ifset binarieshtml @settitle Installing GCC: Binaries @end ifset + @ifset gfdlhtml + @settitle Installing GCC: GNU Free Documentation License + @end ifset ! @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! @c 1999, 2000, 2001 Free Software Foundation, Inc. @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com @c Include everything if we're not making html *************** *** 46,57 **** @set testhtml @set finalinstallhtml @set binarieshtml @end ifnothtml @c Part 2 Summary Description and Copyright ! @ifinfo ! Copyright @copyright{} 2001 Free Software Foundation, Inc. @end ifinfo @c Part 3 Titlepage and Copyright --- 50,83 ---- @set testhtml @set finalinstallhtml @set binarieshtml + @set gfdlhtml @end ifnothtml @c Part 2 Summary Description and Copyright ! @macro copyrightnotice ! Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. ! @sp 1 ! 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; with no ! Invariant Sections, the Front-Cover texts being (a) (see below), and ! with the Back-Cover Texts being (b) (see below). A copy of the ! license is included in the section entitled ``@uref{./gfdl.html,,GNU ! Free Documentation License}''. ! (a) The FSF's Front-Cover Text is: ! ! A GNU Manual ! ! (b) The FSF's Back-Cover Text is: ! ! You have freedom to copy and modify this GNU Manual, like GNU ! software. Copies published by the Free Software Foundation raise ! funds for GNU development. ! @end macro ! @ifinfo ! @copyrightnotice{} @end ifinfo @c Part 3 Titlepage and Copyright *************** Copyright @copyright{} 2001 Free Softwar *** 63,69 **** @c The following two commands start the copyright page. @page @vskip 0pt plus 1filll ! Copyright @copyright{} 2001 Free Software Foundation, Inc. @end titlepage @c Part 4 Top node and Master Menu --- 89,95 ---- @c The following two commands start the copyright page. @page @vskip 0pt plus 1filll ! @copyrightnotice{} @end titlepage @c Part 4 Top node and Master Menu *************** Copyright @copyright{} 2001 Free Softwar *** 79,84 **** --- 105,111 ---- * Specific:: Host/target specific installation notes for GCC. * Binaries:: Where to get pre-compiled binaries. + * GNU Free Documentation License:: How you can copy and share this manual. * Concept Index:: This index has two entries. @end menu @end ifinfo *************** more binaries exist that use them. *** 161,166 **** --- 188,195 ---- @end html @ifhtml @uref{./index.html,,Return to the GCC Installation page} + + @copyrightnotice{} @end ifhtml @end ifset *************** implies that the host defaults to @var{t *** 307,313 **** @heading Options specification Use @var{options} to override several configure time options for ! GCC@. A partial list of supported @var{options}: @table @code @item --prefix=@var{dirname} --- 336,344 ---- @heading Options specification Use @var{options} to override several configure time options for ! GCC@. A list of supported @var{options} follows; @command{configure ! --help} may list other options, but those not listed below may not ! work and should not normally be used. @table @code @item --prefix=@var{dirname} *************** inferior @code{catgets} interface, the G *** 708,713 **** --- 739,748 ---- ignores @code{catgets} and instead uses GCC's copy of the GNU @code{gettext} library. The @option{--with-catgets} option causes the build procedure to use the host's @code{catgets} in this situation. + + @item --with-system-zlib + Use installed zlib rather than that included with GCC@. This option + only applies if the Java front end is being built. @end table Some options which only apply to building cross compilers: *************** as parts of GCC can only be built with G *** 884,890 **** To build a cross compiler, we first recommend building and installing a native compiler. You can then use the native GCC compiler to build the ! cross compiler. Assuming you have already installed a native copy of GCC and configured your cross compiler, issue the command @command{make}, which performs the --- 919,926 ---- To build a cross compiler, we first recommend building and installing a native compiler. You can then use the native GCC compiler to build the ! cross compiler. The installed native compiler needs to be GCC version ! 2.95 or later. Assuming you have already installed a native copy of GCC and configured your cross compiler, issue the command @command{make}, which performs the *************** behave on different platforms and compar *** 1067,1072 **** --- 1103,1115 ---- few failing testcases are possible even on released versions and you should look here first if you think your results are unreasonable. + @html +
          +

          + @end html + @ifhtml + @uref{./index.html,,Return to the GCC Installation page} + @end ifhtml @end ifset @c ***Final install*********************************************************** *************** info format in @file{@var{infodir}} (nor *** 1100,1117 **** If you don't mind, please quickly review the @uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0 build status page}. ! If your system is not listed, send a note to @email{gcc@@gcc.gnu.org} indicating that you successfully built and installed GCC. ! Include the output from running @file{@var{srcdir}/config.guess}. (Do ! not send us the @file{config.guess} file itself, just the one-line output from ! running it!) Also specify which version you built. ! If the build was for GNU/Linux, also include the distribution name and version ! (e.g., Red Hat 7.1 or Debian 2.2.3, available from @file{/etc/issue}) ! and the version of glibc you used; for RPM-based systems like Red Hat, Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version, and on systems like Debian and Progeny use @samp{dpkg -l libc6}. We'd also like to know if the @ifnothtml --- 1143,1188 ---- If you don't mind, please quickly review the @uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0 build status page}. ! If your system is not listed for the version of GCC that you built, ! send a note to @email{gcc@@gcc.gnu.org} indicating that you successfully built and installed GCC. + Include the following information: ! @itemize @bullet ! @item ! Output from running @file{@var{srcdir}/config.guess}. Do not send us ! that file itself, just the one-line output from running it. ! ! @item ! The output of @samp{gcc -v} for your newly installed gcc. ! This tells us which version of GCC you built and the options you passed to ! configure. ! ! @item ! If the build was for GNU/Linux, also include: ! @itemize @bullet ! @item ! The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3); ! this information should be available from @file{/etc/issue}. ! ! @item ! The version of the Linux kernel, available from @samp{uname --version} ! or @samp{uname -a}. ! ! @item ! The version of glibc you used; for RPM-based systems like Red Hat, Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version, and on systems like Debian and Progeny use @samp{dpkg -l libc6}. + @end itemize + For other systems, you can include similar information if you think it is + relevant. + + @item + Any other information that you think would be useful to people building + GCC on the same configuration. The new entry in the build status list + will include a link to the archived copy of your message. + @end itemize We'd also like to know if the @ifnothtml *************** works. *** 1245,1251 **** @c ***Specific**************************************************************** @ifnothtml @comment node-name, next, previous, up ! @node Specific, Concept Index, Binaries, Top @end ifnothtml @ifset specifichtml @html --- 1316,1322 ---- @c ***Specific**************************************************************** @ifnothtml @comment node-name, next, previous, up ! @node Specific, GNU Free Documentation License, Binaries, Top @end ifnothtml @ifset specifichtml @html *************** as new information becomes available. *** 1415,1420 **** --- 1486,1493 ---- @item @uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*} @item + @uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*} + @item @uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix} @item @uref{#powerpc-*-eabisim,,powerpc-*-eabisim} *************** as new information becomes available. *** 1447,1452 **** --- 1520,1527 ---- @item @uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1} @item + @uref{#sparc-*-linux*,,sparc-*-linux*} + @item @uref{#sparc64-*-*,,sparc64-*-*} @item @uref{#*-*-sysv*,,*-*-sysv*} *************** if you initially built it with gcc-2.7.2 *** 2984,2989 **** --- 3059,3073 ----


          @end html + @heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd* + PowerPC system in big endian mode running NetBSD@. To build the + documentation you will need Texinfo version 4.0 (NetBSD 1.5.1 included + Texinfo version 3.12). + + @html +

          +
          + @end html @heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as the default. *************** newer: @command{g++} will complain that *** 3106,3112 **** that omitting the type means @code{int}; this assumption worked for C89 but is wrong for C++, and is now wrong for C99 also. ! @command{g++} accepts such (illegal) constructs with the option @option{-fpermissive}; it will assume that any missing type is @code{int} (as defined by C89). --- 3190,3196 ---- that omitting the type means @code{int}; this assumption worked for C89 but is wrong for C++, and is now wrong for C99 also. ! @command{g++} accepts such (invalid) constructs with the option @option{-fpermissive}; it will assume that any missing type is @code{int} (as defined by C89). *************** for this platform, too. *** 3233,3238 **** --- 3317,3333 ----


          @end html + @heading @anchor{sparc-*-linux*}sparc-*-linux* + + GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 + or newer on this platform. All earlier binutils and glibc + releases mishandled unaligned relocations on @code{sparc-*-*} targets. + + + @html +

          +
          + @end html @heading @anchor{sparc64-*-*}sparc64-*-* GCC version 2.95 is not able to compile code correctly for *************** automatically. *** 3415,3425 **** @end ifhtml @end ifset @c *************************************************************************** @c Part 6 The End of the Document @ifinfo @comment node-name, next, previous, up ! @node Concept Index, , Specific, Top @end ifinfo @ifinfo --- 3510,3533 ---- @end ifhtml @end ifset + @c ***GFDL******************************************************************** + @ifset gfdlhtml + @include fdl.texi + @html +

          +
          +

          + @end html + @ifhtml + @uref{./index.html,,Return to the GCC Installation page} + @end ifhtml + @end ifset + @c *************************************************************************** @c Part 6 The End of the Document @ifinfo @comment node-name, next, previous, up ! @node Concept Index, , GNU Free Documentation License, Top @end ifinfo @ifinfo diff -Nrc3pad gcc-3.0.2/gcc/doc/install.texi2html gcc-3.0.3/gcc/doc/install.texi2html *** gcc-3.0.2/gcc/doc/install.texi2html Fri Jun 8 00:21:49 2001 --- gcc-3.0.3/gcc/doc/install.texi2html Tue Dec 4 01:25:40 2001 *************** if [ ! -d $DESTDIR ]; then *** 22,30 **** fi for x in index.html specific.html download.html configure.html \ ! build.html test.html finalinstall.html binaries.html do define=`echo $x | sed -e 's/\.//g'` echo "define = $define" ! $MAKEINFO $SOURCEDIR/install.texi --html -D$define -o$DESTDIR/$x done --- 22,30 ---- fi for x in index.html specific.html download.html configure.html \ ! build.html test.html finalinstall.html binaries.html gfdl.html do define=`echo $x | sed -e 's/\.//g'` echo "define = $define" ! $MAKEINFO -I $SOURCEDIR/include $SOURCEDIR/install.texi --html --no-split -D$define -o$DESTDIR/$x done diff -Nrc3pad gcc-3.0.2/gcc/doc/invoke.texi gcc-3.0.3/gcc/doc/invoke.texi *** gcc-3.0.2/gcc/doc/invoke.texi Wed Oct 17 02:06:44 2001 --- gcc-3.0.3/gcc/doc/invoke.texi Wed Nov 14 14:33:37 2001 *************** *** 8,27 **** Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ! Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are ! preserved on all copies. ! Permission is granted to copy and distribute modified versions of this ! manual under the conditions for verbatim copying, provided also that the ! entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. ! Permission is granted to copy and distribute translations of this manual ! into another language, under the above conditions for modified versions, ! except that this permission notice may be included in translations ! approved by the Free Software Foundation instead of in the original ! English. @c man end @c Set file name and title for the man page. @setfilename gcc --- 8,30 ---- Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 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 ! any later version published by the Free Software Foundation; with the ! Invariant Sections being ``GNU General Public License'' and ``Funding ! Free Software'', the Front-Cover texts being (a) (see below), and with ! the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the gfdl(7) man page. ! (a) The FSF's Front-Cover Text is: ! A GNU Manual ! ! (b) The FSF's Back-Cover Text is: ! ! You have freedom to copy and modify this GNU Manual, like GNU ! software. Copies published by the Free Software Foundation raise ! funds for GNU development. @c man end @c Set file name and title for the man page. @setfilename gcc *************** Only the most useful options are listed *** 39,44 **** --- 42,48 ---- remainder. @samp{g++} accepts mostly the same options as @samp{gcc}. @c man end @c man begin SEEALSO + gpl(7), gfdl(7), fsf-funding(7), cpp(1), gcov(1), g77(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1) and the Info entries for @file{gcc}, @file{cpp}, @file{g77}, @file{as}, @file{ld}, @file{binutils} and @file{gdb}. *************** in the following sections. *** 432,438 **** -mstrict-align -mno-strict-align -mrelocatable @gol -mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol ! -mcall-aix -mcall-sysv -mprototype -mno-prototype @gol -msim -mmvme -mads -myellowknife -memb -msdata @gol -msdata=@var{opt} -mvxworks -G @var{num}} --- 436,442 ---- -mstrict-align -mno-strict-align -mrelocatable @gol -mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol ! -mcall-aix -mcall-sysv -mcall-netbsd -mprototype -mno-prototype @gol -msim -mmvme -mads -myellowknife -memb -msdata @gol -msdata=@var{opt} -mvxworks -G @var{num}} *************** optimization. If more memory than speci *** 3720,3726 **** optimization will not be done. @item max-pending-list-length ! The maximum number of pending dependancies scheduling will allow before flushing the current state and starting over. Large functions with few branches or calls can create excessively large lists which needlessly consume memory and resources. --- 3724,3730 ---- optimization will not be done. @item max-pending-list-length ! The maximum number of pending dependencies scheduling will allow before flushing the current state and starting over. Large functions with few branches or calls can create excessively large lists which needlessly consume memory and resources. *************** operating system. *** 6732,6737 **** --- 6736,6746 ---- @opindex mcall-linux On System V.4 and embedded PowerPC systems compile code for the Linux-based GNU system. + + @item -mcall-netbsd + @opindex mcall-netbsd + On System V.4 and embedded PowerPC systems compile code for the + NetBSD operating system. @item -mprototype @itemx -mno-prototype diff -Nrc3pad gcc-3.0.2/gcc/doc/tm.texi gcc-3.0.3/gcc/doc/tm.texi *** gcc-3.0.2/gcc/doc/tm.texi Wed Oct 17 02:06:48 2001 --- gcc-3.0.3/gcc/doc/tm.texi Sat Nov 3 05:26:58 2001 *************** which the compiler may not change modes *** 2345,2351 **** @item CLASS_CANNOT_CHANGE_MODE_P(@var{from}, @var{to}) A C expression that is true if, for a register in ! @code{CLASS_CANNOT_CHANGE_MODE}, the requested mode punning is illegal. For the example, loading 32-bit integer or floating-point objects into floating-point registers on the Alpha extends them to 64-bits. --- 2345,2351 ---- @item CLASS_CANNOT_CHANGE_MODE_P(@var{from}, @var{to}) A C expression that is true if, for a register in ! @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. diff -Nrc3pad gcc-3.0.2/gcc/doloop.c gcc-3.0.3/gcc/doloop.c *** gcc-3.0.2/gcc/doloop.c Sat May 12 13:32:26 2001 --- gcc-3.0.3/gcc/doloop.c Fri Nov 30 14:45:14 2001 *************** doloop_valid_p (loop, jump_insn) *** 352,374 **** && ((loop_info->comparison_code == LEU && INTVAL (loop_info->increment) > 0) || (loop_info->comparison_code == GEU ! && INTVAL (loop_info->increment) < 0))) { /* If the comparison is LEU and the comparison value is UINT_MAX then the loop will not terminate. Similarly, if the comparison code is GEU and the initial value is 0, the loop will not terminate. ! Note that with LE and GE, the loop behaviour can be ! implementation dependent if an overflow occurs, say between ! INT_MAX and INT_MAX + 1. We thus don't have to worry about ! these two cases. ??? We could compute these conditions at run-time and have a additional jump around the loop to ensure an infinite loop. However, it is very unlikely that this is the intended behaviour of the loop and checking for these rare boundary ! conditions would pessimize all other code. */ if (loop_dump_stream) fprintf (loop_dump_stream, "Doloop: Possible infinite iteration case ignored.\n"); --- 352,389 ---- && ((loop_info->comparison_code == LEU && INTVAL (loop_info->increment) > 0) || (loop_info->comparison_code == GEU ! && INTVAL (loop_info->increment) < 0) ! || (loop_info->comparison_code == LTU ! && INTVAL (loop_info->increment) > 1) ! || (loop_info->comparison_code == GTU ! && INTVAL (loop_info->increment) < -1))) { /* If the comparison is LEU and the comparison value is UINT_MAX then the loop will not terminate. Similarly, if the comparison code is GEU and the initial value is 0, the loop will not terminate. ! If the absolute increment is not 1, the loop can be infinite ! even with LTU/GTU, e.g. for (i = 3; i > 0; i -= 2) ! ! Note that with LE and GE, the loop behaviour is undefined ! (C++ standard section 5 clause 5) if an overflow occurs, say ! between INT_MAX and INT_MAX + 1. We thus don't have to worry ! about these two cases. ??? We could compute these conditions at run-time and have a additional jump around the loop to ensure an infinite loop. However, it is very unlikely that this is the intended behaviour of the loop and checking for these rare boundary ! conditions would pessimize all other code. ! ! If the loop is executed only a few times an extra check to ! restart the loop could use up most of the benefits of using a ! count register loop. Note however, that normally, this ! restart branch would never execute, so it could be predicted ! well by the CPU. We should generate the pessimistic code by ! default, and have an option, e.g. -funsafe-loops that would ! enable count-register loops in this case. */ if (loop_dump_stream) fprintf (loop_dump_stream, "Doloop: Possible infinite iteration case ignored.\n"); *************** doloop_modify_runtime (loop, iterations_ *** 568,582 **** /* The number of iterations (prior to any loop unrolling) is given by: (abs (final - initial) + abs_inc - 1) / abs_inc. - However, it is possible for the summation to overflow, and a - safer method is: - - abs (final - initial) / abs_inc + (abs (final - initial) % abs_inc) != 0 - If the loop has been unrolled, then the loop body has been preconditioned to iterate a multiple of unroll_number times. The number of iterations of the loop body is simply: ! abs (final - initial) / (abs_inc * unroll_number). The division and modulo operations can be avoided by requiring that the increment is a power of 2 (precondition_loop_p enforces --- 583,592 ---- /* The number of iterations (prior to any loop unrolling) is given by: (abs (final - initial) + abs_inc - 1) / abs_inc. If the loop has been unrolled, then the loop body has been preconditioned to iterate a multiple of unroll_number times. The number of iterations of the loop body is simply: ! (abs (final - initial) + abs_inc - 1) / (abs_inc * unroll_number). The division and modulo operations can be avoided by requiring that the increment is a power of 2 (precondition_loop_p enforces *************** doloop_modify_runtime (loop, iterations_ *** 590,656 **** copy_rtx (neg_inc ? final_value : initial_value), NULL_RTX, unsigned_p, OPTAB_LIB_WIDEN); ! if (loop_info->unroll_number == 1) { ! if (abs_inc != 1) ! { ! int shift_count; ! rtx extra; ! rtx label; ! shift_count = exact_log2 (abs_inc); ! if (shift_count < 0) ! abort (); ! /* abs (final - initial) / abs_inc */ ! iterations = expand_binop (GET_MODE (diff), lshr_optab, ! diff, GEN_INT (shift_count), NULL_RTX, 1, OPTAB_LIB_WIDEN); ! ! /* abs (final - initial) % abs_inc */ ! extra = expand_binop (GET_MODE (iterations), and_optab, ! diff, GEN_INT (abs_inc - 1), ! NULL_RTX, 1, ! OPTAB_LIB_WIDEN); ! ! /* If (abs (final - initial) % abs_inc == 0) jump past ! following increment instruction. */ ! label = gen_label_rtx(); ! emit_cmp_and_jump_insns (extra, const0_rtx, EQ, NULL_RTX, ! GET_MODE (extra), 0, 0, label); ! JUMP_LABEL (get_last_insn ()) = label; ! LABEL_NUSES (label)++; ! ! /* Increment the iteration count by one. */ ! iterations = expand_binop (GET_MODE (iterations), add_optab, ! iterations, GEN_INT (1), iterations, 1, OPTAB_LIB_WIDEN); - - emit_label (label); } else ! iterations = diff; } else ! { ! int shift_count; ! ! /* precondition_loop_p has preconditioned the loop so that the ! iteration count of the loop body is always a power of 2. ! Since we won't get an overflow calculating the loop count, ! the code we emit is simpler. */ ! shift_count = exact_log2 (loop_info->unroll_number * abs_inc); ! if (shift_count < 0) ! abort (); ! ! iterations = expand_binop (GET_MODE (diff), lshr_optab, ! diff, GEN_INT (shift_count), ! NULL_RTX, 1, ! OPTAB_LIB_WIDEN); ! } ! /* If there is a NOTE_INSN_LOOP_VTOP, we have a `for' or `while' style loop, with a loop exit test at the start. Thus, we can --- 600,639 ---- copy_rtx (neg_inc ? final_value : initial_value), NULL_RTX, unsigned_p, OPTAB_LIB_WIDEN); ! if (abs_inc * loop_info->unroll_number != 1) { ! int shift_count; ! shift_count = exact_log2 (abs_inc * loop_info->unroll_number); ! if (shift_count < 0) ! abort (); ! if (abs_inc != 1) ! { ! /* abs (final - initial + abs_inc - 1) / abs_inc / unroll_number ! If we get an overflow, the loop is infinite, and ! the loop count is set to zero. That is not really ! infinite but it will run UINT_MAX+1 times. */ ! iterations = expand_binop (GET_MODE (diff), add_optab, ! diff, GEN_INT (abs_inc - 1), NULL_RTX, 1, OPTAB_LIB_WIDEN); ! iterations = expand_binop (GET_MODE (iterations), lshr_optab, ! iterations, GEN_INT (shift_count), iterations, 1, OPTAB_LIB_WIDEN); } else ! { ! /* abs (final - initial) / abs_inc. */ ! iterations = expand_binop (GET_MODE (diff), lshr_optab, ! diff, GEN_INT (shift_count), ! NULL_RTX, 1, ! OPTAB_LIB_WIDEN); ! } } else ! iterations = diff; /* If there is a NOTE_INSN_LOOP_VTOP, we have a `for' or `while' style loop, with a loop exit test at the start. Thus, we can *************** doloop_modify_runtime (loop, iterations_ *** 661,667 **** not executed before the start of the loop. We need to determine if the loop will terminate after the first pass and to limit the iteration count to one if necessary. */ ! if (! loop->vtop) { rtx label; --- 644,650 ---- not executed before the start of the loop. We need to determine if the loop will terminate after the first pass and to limit the iteration count to one if necessary. */ ! if (! loop->vtop && comparison_code != NE) { rtx label; *************** doloop_modify_runtime (loop, iterations_ *** 674,686 **** is guaranteed to execute at least once. */ if (loop_info->unroll_number == 1) { /* Emit insns to test if the loop will immediately terminate and to set the iteration count to 1 if true. */ label = gen_label_rtx(); ! emit_cmp_and_jump_insns (copy_rtx (initial_value), copy_rtx (loop_info->comparison_value), ! comparison_code, NULL_RTX, mode, 0, 0, ! label); JUMP_LABEL (get_last_insn ()) = label; LABEL_NUSES (label)++; emit_move_insn (iterations, const1_rtx); --- 657,674 ---- is guaranteed to execute at least once. */ if (loop_info->unroll_number == 1) { + rtx incremented_initval; /* Emit insns to test if the loop will immediately terminate and to set the iteration count to 1 if true. */ label = gen_label_rtx(); ! incremented_initval = expand_binop (mode, add_optab, ! copy_rtx (initial_value), ! increment, NULL_RTX, 0, ! OPTAB_LIB_WIDEN); ! emit_cmp_and_jump_insns (incremented_initval, copy_rtx (loop_info->comparison_value), ! comparison_code, NULL_RTX, mode, ! unsigned_p, 0, label); JUMP_LABEL (get_last_insn ()) = label; LABEL_NUSES (label)++; emit_move_insn (iterations, const1_rtx); diff -Nrc3pad gcc-3.0.2/gcc/dwarf2out.c gcc-3.0.3/gcc/dwarf2out.c *** gcc-3.0.2/gcc/dwarf2out.c Fri Oct 5 11:02:02 2001 --- gcc-3.0.3/gcc/dwarf2out.c Sun Dec 2 18:38:44 2001 *************** is_c_family () *** 4574,4579 **** --- 4574,4586 ---- } static inline int + is_cxx () + { + return (get_AT_unsigned (comp_unit_die, DW_AT_language) + == DW_LANG_C_plus_plus); + } + + static inline int is_fortran () { register unsigned lang = get_AT_unsigned (comp_unit_die, DW_AT_language); *************** add_data_member_location_attribute (die, *** 7890,7917 **** register dw_die_ref die; register tree decl; { ! register unsigned long offset; ! register dw_loc_descr_ref loc_descr; ! register enum dwarf_location_atom op; if (TREE_CODE (decl) == TREE_VEC) ! offset = tree_low_cst (BINFO_OFFSET (decl), 0); else offset = field_byte_offset (decl); ! /* The DWARF2 standard says that we should assume that the structure address ! is already on the stack, so we can specify a structure field address ! by using DW_OP_plus_uconst. */ #ifdef MIPS_DEBUGGING_INFO ! /* ??? The SGI dwarf reader does not handle the DW_OP_plus_uconst operator ! correctly. It works only if we leave the offset on the stack. */ ! op = DW_OP_constu; #else ! op = DW_OP_plus_uconst; #endif ! loc_descr = new_loc_descr (op, offset, 0); add_AT_loc (die, DW_AT_data_member_location, loc_descr); } --- 7897,7966 ---- register dw_die_ref die; register tree decl; { ! long offset; ! dw_loc_descr_ref loc_descr = 0; if (TREE_CODE (decl) == TREE_VEC) ! { ! /* We're working on the TAG_inheritance for a base class. */ ! ! if (TREE_VIA_VIRTUAL (decl) && is_cxx ()) ! { ! /* For C++ virtual bases we can't just use BINFO_OFFSET, as they ! aren't at a fixed offset from all (sub)objects of the same ! type. We need to extract the appropriate offset from our ! vtable. The following dwarf expression means ! ! BaseAddr = ObAddr + *((*ObAddr) - Offset) ! ! This is specific to the V3 ABI, of course. */ ! ! dw_loc_descr_ref tmp; ! /* Make a copy of the object address. */ ! tmp = new_loc_descr (DW_OP_dup, 0, 0); ! add_loc_descr (&loc_descr, tmp); ! /* Extract the vtable address. */ ! tmp = new_loc_descr (DW_OP_deref, 0, 0); ! add_loc_descr (&loc_descr, tmp); ! /* Calculate the address of the offset. */ ! offset = tree_low_cst (BINFO_VPTR_FIELD (decl), 0); ! if (offset >= 0) ! abort (); ! tmp = int_loc_descriptor (-offset); ! add_loc_descr (&loc_descr, tmp); ! tmp = new_loc_descr (DW_OP_minus, 0, 0); ! add_loc_descr (&loc_descr, tmp); ! /* Extract the offset. */ ! tmp = new_loc_descr (DW_OP_deref, 0, 0); ! add_loc_descr (&loc_descr, tmp); ! /* Add it to the object address. */ ! tmp = new_loc_descr (DW_OP_plus, 0, 0); ! add_loc_descr (&loc_descr, tmp); ! } ! else ! offset = tree_low_cst (BINFO_OFFSET (decl), 0); ! } else offset = field_byte_offset (decl); ! if (! loc_descr) ! { ! enum dwarf_location_atom op; ! ! /* The DWARF2 standard says that we should assume that the structure address ! is already on the stack, so we can specify a structure field address ! by using DW_OP_plus_uconst. */ #ifdef MIPS_DEBUGGING_INFO ! /* ??? The SGI dwarf reader does not handle the DW_OP_plus_uconst operator ! correctly. It works only if we leave the offset on the stack. */ ! op = DW_OP_constu; #else ! op = DW_OP_plus_uconst; #endif ! loc_descr = new_loc_descr (op, offset, 0); ! } add_AT_loc (die, DW_AT_data_member_location, loc_descr); } diff -Nrc3pad gcc-3.0.2/gcc/except.c gcc-3.0.3/gcc/except.c *** gcc-3.0.2/gcc/except.c Mon Sep 17 16:12:47 2001 --- gcc-3.0.3/gcc/except.c Tue Dec 11 17:27:08 2001 *************** sjlj_find_directly_reachable_regions (lp *** 1948,1953 **** --- 1948,1954 ---- for (insn = get_insns (); insn ; insn = NEXT_INSN (insn)) { struct eh_region *region; + enum reachable_code rc; tree type_thrown; rtx note; *************** sjlj_find_directly_reachable_regions (lp *** 1969,1979 **** /* Find the first containing region that might handle the exception. That's the landing pad to which we will transfer control. */ for (; region; region = region->outer) ! if (reachable_next_level (region, type_thrown, 0) != RNL_NOT_CAUGHT) ! break; ! ! if (region) { lp_info[region->region_number].directly_reachable = 1; found_one = true; --- 1970,1983 ---- /* Find the first containing region that might handle the exception. That's the landing pad to which we will transfer control. */ + rc = RNL_NOT_CAUGHT; for (; region; region = region->outer) ! { ! rc = reachable_next_level (region, type_thrown, 0); ! if (rc != RNL_NOT_CAUGHT) ! break; ! } ! if (rc == RNL_MAYBE_CAUGHT || rc == RNL_CAUGHT) { lp_info[region->region_number].directly_reachable = 1; found_one = true; *************** sjlj_assign_call_site_values (dispatch_l *** 2020,2027 **** index = 0; for (i = cfun->eh->last_region_number; i > 0; --i) ! if (lp_info[i].directly_reachable ! && lp_info[i].action_index >= 0) lp_info[i].dispatch_index = index++; /* Finally: assign call-site values. If dwarf2 terms, this would be --- 2024,2030 ---- index = 0; for (i = cfun->eh->last_region_number; i > 0; --i) ! if (lp_info[i].directly_reachable) lp_info[i].dispatch_index = index++; /* Finally: assign call-site values. If dwarf2 terms, this would be *************** sjlj_emit_dispatch_table (dispatch_label *** 2302,2309 **** first_reachable = 0; for (i = cfun->eh->last_region_number; i > 0; --i) { ! if (! lp_info[i].directly_reachable ! || lp_info[i].action_index < 0) continue; if (! first_reachable) --- 2305,2311 ---- first_reachable = 0; for (i = cfun->eh->last_region_number; i > 0; --i) { ! if (! lp_info[i].directly_reachable) continue; if (! first_reachable) diff -Nrc3pad gcc-3.0.2/gcc/expr.c gcc-3.0.3/gcc/expr.c *** gcc-3.0.2/gcc/expr.c Fri Sep 21 18:33:19 2001 --- gcc-3.0.3/gcc/expr.c Fri Dec 7 16:36:51 2001 *************** store_constructor (exp, target, align, c *** 4574,4580 **** int need_to_clear; tree domain = TYPE_DOMAIN (type); tree elttype = TREE_TYPE (type); ! int const_bounds_p = (host_integerp (TYPE_MIN_VALUE (domain), 0) && host_integerp (TYPE_MAX_VALUE (domain), 0)); HOST_WIDE_INT minelt; HOST_WIDE_INT maxelt; --- 4574,4582 ---- int need_to_clear; tree domain = TYPE_DOMAIN (type); tree elttype = TREE_TYPE (type); ! int const_bounds_p = (TYPE_MIN_VALUE (domain) ! && TYPE_MAX_VALUE (domain) ! && host_integerp (TYPE_MIN_VALUE (domain), 0) && host_integerp (TYPE_MAX_VALUE (domain), 0)); HOST_WIDE_INT minelt; HOST_WIDE_INT maxelt; diff -Nrc3pad gcc-3.0.2/gcc/f/ChangeLog gcc-3.0.3/gcc/f/ChangeLog *** gcc-3.0.2/gcc/f/ChangeLog Tue Oct 23 10:19:41 2001 --- gcc-3.0.3/gcc/f/ChangeLog Thu Dec 20 11:21:56 2001 *************** *** 1,3 **** --- 1,21 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-11-25 Toon Moene + + PR fortran/3957 + * lang-specs.h: Correct !pipe conditional in tradcpp0 invocation. + + 2001-11-15 Craig Prescott + + * target.h (FFETARGET_32bit_longs): Don't define + for 64-bit hppa. + + 2001-11-14 Joseph S. Myers + + * Make-lang.in: Change all uses of $(manext) to $(man1ext). + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/f/Make-lang.in gcc-3.0.3/gcc/f/Make-lang.in *** gcc-3.0.2/gcc/f/Make-lang.in Wed Jul 4 09:23:08 2001 --- gcc-3.0.3/gcc/f/Make-lang.in Wed Nov 14 14:33:42 2001 *************** f77.install-man: $(srcdir)/f/g77.1 insta *** 327,339 **** esac -if [ -f $(libsubdir)/lang-f77.man -a -f f771$(exeext) ] ; then \ if [ -f g77-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(G77_CROSS_NAME)$(manext); \ ! $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_CROSS_NAME)$(manext); \ ! chmod a-x $(man1dir)/$(G77_CROSS_NAME)$(manext); \ else \ ! rm -f $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ ! $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ ! chmod a-x $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ fi; \ else true; fi rm -f $(libsubdir)/lang-f77.man --- 327,339 ---- esac -if [ -f $(libsubdir)/lang-f77.man -a -f f771$(exeext) ] ; then \ if [ -f g77-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \ else \ ! rm -f $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \ fi; \ else true; fi rm -f $(libsubdir)/lang-f77.man *************** f77.uninstall: installdirs *** 354,361 **** -if [ -f $(libsubdir)/lang-f77.un ]; then \ rm -rf $(bindir)/$(G77_INSTALL_NAME)$(exeext); \ rm -rf $(bindir)/$(G77_CROSS_NAME)$(exeext); \ ! rm -rf $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ ! rm -rf $(man1dir)/$(G77_CROSS_NAME)$(manext); \ rm -rf $(infodir)/g77.info*; \ fi rm -f $(libsubdir)/lang-f77.un --- 354,361 ---- -if [ -f $(libsubdir)/lang-f77.un ]; then \ rm -rf $(bindir)/$(G77_INSTALL_NAME)$(exeext); \ rm -rf $(bindir)/$(G77_CROSS_NAME)$(exeext); \ ! rm -rf $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \ ! rm -rf $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \ rm -rf $(infodir)/g77.info*; \ fi rm -f $(libsubdir)/lang-f77.un diff -Nrc3pad gcc-3.0.2/gcc/f/lang-specs.h gcc-3.0.3/gcc/f/lang-specs.h *** gcc-3.0.2/gcc/f/lang-specs.h Thu Mar 22 11:16:20 2001 --- gcc-3.0.3/gcc/f/lang-specs.h Sun Nov 25 04:12:24 2001 *************** the Free Software Foundation, 59 Temple *** 28,35 **** {".fpp", "@f77-cpp-input", 0}, {".FPP", "@f77-cpp-input", 0}, {"@f77-cpp-input", ! "tradcpp0 -lang-fortran %(cpp_options) %{!M:%{!MM:%{!E:%{!pipe:%g.f |\n\ ! f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}}}}", 0}, {".r", "@ratfor", 0}, {"@ratfor", "%{C:%{!E:%eGNU C does not support -C without using -E}}\ --- 28,35 ---- {".fpp", "@f77-cpp-input", 0}, {".FPP", "@f77-cpp-input", 0}, {"@f77-cpp-input", ! "tradcpp0 -lang-fortran %(cpp_options) %{!M:%{!MM:%{!E:%{!pipe:%g.f} |\n\ ! f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}}}", 0}, {".r", "@ratfor", 0}, {"@ratfor", "%{C:%{!E:%eGNU C does not support -C without using -E}}\ diff -Nrc3pad gcc-3.0.2/gcc/f/target.h gcc-3.0.3/gcc/f/target.h *** gcc-3.0.2/gcc/f/target.h Tue Aug 14 16:08:51 2001 --- gcc-3.0.3/gcc/f/target.h Thu Nov 15 12:56:18 2001 *************** the Free Software Foundation, 59 Temple *** 234,240 **** #define FFETARGET_f2cTYLOGICAL2 13 #define FFETARGET_f2cTYQUAD 14 ! #if !defined(__alpha__) && (!defined (_ARCH_PPC) || !defined (__64BIT__)) && (!defined(__sparc__) || (!defined(__sparcv9) && !defined(__arch64__))) && (!defined(__ia64__) || !defined(__LP64__)) && !defined(__s390x__) #define FFETARGET_32bit_longs #endif --- 234,240 ---- #define FFETARGET_f2cTYLOGICAL2 13 #define FFETARGET_f2cTYQUAD 14 ! #if !defined(__alpha__) && (!defined (_ARCH_PPC) || !defined (__64BIT__)) && (!defined(__sparc__) || (!defined(__sparcv9) && !defined(__arch64__))) && (!defined(__ia64__) || !defined(__LP64__)) && (!defined(__hppa__) || !defined(__LP64__)) && !defined(__s390x__) #define FFETARGET_32bit_longs #endif diff -Nrc3pad gcc-3.0.2/gcc/f/version.c gcc-3.0.3/gcc/f/version.c *** gcc-3.0.2/gcc/f/version.c Tue Oct 23 10:21:29 2001 --- gcc-3.0.3/gcc/f/version.c Thu Dec 20 11:23:26 2001 *************** *** 1 **** ! const char *ffe_version_string = "0.5.26 20011023 (release)"; --- 1 ---- ! const char *ffe_version_string = "0.5.26 20011220 (release)"; diff -Nrc3pad gcc-3.0.2/gcc/final.c gcc-3.0.3/gcc/final.c *** gcc-3.0.2/gcc/final.c Sat Jun 9 12:22:26 2001 --- gcc-3.0.3/gcc/final.c Sun Nov 25 16:48:08 2001 *************** dbr_sequence_length () *** 597,603 **** /* Arrays for insn lengths, and addresses. The latter is referenced by `insn_current_length'. */ ! static short *insn_lengths; #ifdef HAVE_ATTR_length varray_type insn_addresses_; --- 597,603 ---- /* Arrays for insn lengths, and addresses. The latter is referenced by `insn_current_length'. */ ! static int *insn_lengths; #ifdef HAVE_ATTR_length varray_type insn_addresses_; *************** shorten_branches (first) *** 1129,1135 **** #ifdef HAVE_ATTR_length /* Allocate the rest of the arrays. */ ! insn_lengths = (short *) xmalloc (max_uid * sizeof (short)); insn_lengths_max_uid = max_uid; /* Syntax errors can lead to labels being outside of the main insn stream. Initialize insn_addresses, so that we get reproducible results. */ --- 1129,1135 ---- #ifdef HAVE_ATTR_length /* Allocate the rest of the arrays. */ ! insn_lengths = (int *) xmalloc (max_uid * sizeof (*insn_lengths)); insn_lengths_max_uid = max_uid; /* Syntax errors can lead to labels being outside of the main insn stream. Initialize insn_addresses, so that we get reproducible results. */ diff -Nrc3pad gcc-3.0.2/gcc/fixinc/fixincl.c gcc-3.0.3/gcc/fixinc/fixincl.c *** gcc-3.0.2/gcc/fixinc/fixincl.c Fri Jul 20 21:19:53 2001 --- gcc-3.0.3/gcc/fixinc/fixincl.c Tue Dec 4 20:26:33 2001 *************** initialize ( argc, argv ) *** 225,231 **** #else "fixincl ERROR: %s environment variable not defined\n" "each of these must be defined:\n" ! # define _ENV_(v,m,n,t) "\t" n " - " t "\n" ENV_TABLE # undef _ENV_ #endif --- 225,231 ---- #else "fixincl ERROR: %s environment variable not defined\n" "each of these must be defined:\n" ! # define _ENV_(vv,mm,nn,tt) "\t" nn " - " tt "\n" ENV_TABLE # undef _ENV_ #endif diff -Nrc3pad gcc-3.0.2/gcc/fixinc/fixincl.x gcc-3.0.3/gcc/fixinc/fixincl.x *** gcc-3.0.2/gcc/fixinc/fixincl.x Wed Sep 12 19:38:30 2001 --- gcc-3.0.3/gcc/fixinc/fixincl.x Thu Dec 20 11:55:55 2001 *************** *** 5,11 **** * files which are fixed to work correctly with ANSI C and placed in a * directory that GNU C will search. * ! * This file contains 145 fixup descriptions. * * See README for more information. * --- 5,11 ---- * files which are fixed to work correctly with ANSI C and placed in a * directory that GNU C will search. * ! * This file contains 144 fixup descriptions. * * See README for more information. * *************** static const char* apzAaa_StandardsPatch *** 222,260 **** /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Aaa_Time fix - */ - tSCC zAaa_TimeName[] = - "AAA_time"; - - /* - * File name selection pattern - */ - tSCC zAaa_TimeList[] = - "|sys/time.h|"; - /* - * Machine/OS name selection pattern - */ - #define apzAaa_TimeMachs (const char**)NULL - - /* - * content selection pattern - do fix if pattern found - */ - tSCC zAaa_TimeSelect0[] = - "11.0 and later representation of ki time"; - - #define AAA_TIME_TEST_CT 1 - static tTestDesc aAaa_TimeTests[] = { - { TT_EGREP, zAaa_TimeSelect0, (regex_t*)NULL }, }; - - /* - * Fix Command Arguments for Aaa_Time - */ - static const char* apzAaa_TimePatch[] = { - (char*)NULL }; - - /* * * * * * * * * * * * * * * * * * * * * * * * * * - * * Description of Aab_Dgux_Int_Varargs fix */ tSCC zAab_Dgux_Int_VarargsName[] = --- 222,227 ---- *************** tSCC zHpux11_Size_TName[] = *** 2081,2094 **** * Machine/OS name selection pattern */ tSCC* apzHpux11_Size_TMachs[] = { ! "*-hp-hpux*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ tSCC zHpux11_Size_TSelect0[] = ! "^#define __size_t size_t"; #define HPUX11_SIZE_T_TEST_CT 1 static tTestDesc aHpux11_Size_TTests[] = { --- 2048,2061 ---- * Machine/OS name selection pattern */ tSCC* apzHpux11_Size_TMachs[] = { ! "*-hp-hpux11*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ tSCC zHpux11_Size_TSelect0[] = ! "__size_t"; #define HPUX11_SIZE_T_TEST_CT 1 static tTestDesc aHpux11_Size_TTests[] = { *************** static tTestDesc aHpux11_Size_TTests[] = *** 2100,2106 **** static const char* apzHpux11_Size_TPatch[] = { "format", "_hpux_size_t", - "__size_t", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * --- 2067,2072 ---- *************** tSCC zHpux11_VsnprintfList[] = *** 2159,2165 **** * content selection pattern - do fix if pattern found */ tSCC zHpux11_VsnprintfSelect0[] = ! "extern int vsnprintf\\(char \\*, __size_t, const char \\*, __va__list\\);"; #define HPUX11_VSNPRINTF_TEST_CT 1 static tTestDesc aHpux11_VsnprintfTests[] = { --- 2125,2131 ---- * content selection pattern - do fix if pattern found */ tSCC zHpux11_VsnprintfSelect0[] = ! "(extern int vsnprintf\\(char \\*, _[hpux]*_size_t, const char \\*,) __va__list\\);"; #define HPUX11_VSNPRINTF_TEST_CT 1 static tTestDesc aHpux11_VsnprintfTests[] = { *************** static tTestDesc aHpux11_VsnprintfTests[ *** 2170,2176 **** */ static const char* apzHpux11_VsnprintfPatch[] = { "format", ! "extern int vsnprintf(char *, __size_t, const char *, __va_list);", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * --- 2136,2142 ---- */ static const char* apzHpux11_VsnprintfPatch[] = { "format", ! "%1 __va_list);", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * *************** static const char* apzStdio_Va_ListPatch *** 3954,3959 **** --- 3920,3926 ---- "-e", "s@ va_list @ __gnuc_va_list @\n\ s@ va_list)@ __gnuc_va_list)@\n\ s@ _VA_LIST_));@ __gnuc_va_list));@\n\ + s@ __VA_LIST__));@ __gnuc_va_list));@\n\ s@ va_list@ __not_va_list__@\n\ s@\\*va_list@*__not_va_list__@\n\ s@ __va_list)@ __gnuc_va_list)@\n\ *************** tSCC zStrict_Ansi_NotName[] = *** 3984,3990 **** * content selection pattern - do fix if pattern found */ tSCC zStrict_Ansi_NotSelect0[] = ! "^([ \t]*#[ \t]*if.*)(!__STDC__|__STDC__[ \t]*==[ \t]*0|__STDC__[ \t]*!=[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)(.*)"; /* * perform the C function call test --- 3951,3957 ---- * content selection pattern - do fix if pattern found */ tSCC zStrict_Ansi_NotSelect0[] = ! "^([ \t]*#[ \t]*if.*)(!__STDC__|__STDC__[ \t]*==[ \t]*0|__STDC__[ \t]*!=[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)"; /* * perform the C function call test *************** static tTestDesc aStrict_Ansi_NotTests[] *** 4001,4007 **** */ static const char* apzStrict_Ansi_NotPatch[] = { "format", ! "%1 !defined(__STRICT_ANSI__)%3", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * --- 3968,3974 ---- */ static const char* apzStrict_Ansi_NotPatch[] = { "format", ! "%1 !defined(__STRICT_ANSI__)", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * *************** tSCC zStrict_Ansi_Not_CtdName[] = *** 4015,4021 **** * File name selection pattern */ tSCC zStrict_Ansi_Not_CtdList[] = ! "|math.h|limits.h|stdio.h|signal.h|stdlib.h|time.h|"; /* * Machine/OS name selection pattern */ --- 3982,3988 ---- * File name selection pattern */ tSCC zStrict_Ansi_Not_CtdList[] = ! "|math.h|limits.h|stdio.h|signal.h|stdlib.h|sys/signal.h|time.h|"; /* * Machine/OS name selection pattern */ *************** tSCC zStrict_Ansi_Not_CtdList[] = *** 4025,4031 **** * content selection pattern - do fix if pattern found */ tSCC zStrict_Ansi_Not_CtdSelect0[] = ! "^([ \t]*[|&][|&][ \t(]*)(__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)(.*)"; /* * perform the C function call test --- 3992,3998 ---- * content selection pattern - do fix if pattern found */ tSCC zStrict_Ansi_Not_CtdSelect0[] = ! "^([ \t]*(\\(|&&|\\|\\|)([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*[ \t(]*)(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)"; /* * perform the C function call test *************** static tTestDesc aStrict_Ansi_Not_CtdTes *** 4042,4048 **** */ static const char* apzStrict_Ansi_Not_CtdPatch[] = { "format", ! "%1 !defined(__STRICT_ANSI__)%3", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * --- 4009,4015 ---- */ static const char* apzStrict_Ansi_Not_CtdPatch[] = { "format", ! "%1 !defined(__STRICT_ANSI__)", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * *************** tSCC zStrict_Ansi_OnlyName[] = *** 4065,4071 **** * content selection pattern - do fix if pattern found */ tSCC zStrict_Ansi_OnlySelect0[] = ! "^([ \t]*#[ \t]*if.*)(__STDC__[ \t]*!=[ \t]*0|__STDC__[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)(.*)"; /* * perform the C function call test --- 4032,4038 ---- * content selection pattern - do fix if pattern found */ tSCC zStrict_Ansi_OnlySelect0[] = ! "^([ \t]*#[ \t]*if.*)(__STDC__[ \t]*!=[ \t]*0|__STDC__[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)"; /* * perform the C function call test *************** static tTestDesc aStrict_Ansi_OnlyTests[ *** 4082,4088 **** */ static const char* apzStrict_Ansi_OnlyPatch[] = { "format", ! "%1 defined(__STRICT_ANSI__)%3", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * --- 4049,4055 ---- */ static const char* apzStrict_Ansi_OnlyPatch[] = { "format", ! "%1 defined(__STRICT_ANSI__)", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * *************** static const char* apzX11_SprintfPatch[] *** 5651,5659 **** * * List of all fixes */ ! #define REGEX_COUNT 152 #define MACH_LIST_SIZE_LIMIT 279 ! #define FIX_COUNT 145 /* * Enumerate the fixes --- 5618,5626 ---- * * List of all fixes */ ! #define REGEX_COUNT 151 #define MACH_LIST_SIZE_LIMIT 279 ! #define FIX_COUNT 144 /* * Enumerate the fixes *************** typedef enum { *** 5665,5671 **** AAA_KI_DEFS_FIXIDX, AAA_KI_IFACE_FIXIDX, AAA_STANDARDS_FIXIDX, - AAA_TIME_FIXIDX, AAB_DGUX_INT_VARARGS_FIXIDX, AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX, AAB_FD_ZERO_GNU_TYPES_H_FIXIDX, --- 5632,5637 ---- *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 5836,5846 **** apzAaa_StandardsMachs, AAA_STANDARDS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, aAaa_StandardsTests, apzAaa_StandardsPatch, 0 }, - - { zAaa_TimeName, zAaa_TimeList, - apzAaa_TimeMachs, - AAA_TIME_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, - aAaa_TimeTests, apzAaa_TimePatch, 0 }, { zAab_Dgux_Int_VarargsName, zAab_Dgux_Int_VarargsList, apzAab_Dgux_Int_VarargsMachs, --- 5802,5807 ---- diff -Nrc3pad gcc-3.0.2/gcc/fixinc/inclhack.def gcc-3.0.3/gcc/fixinc/inclhack.def *** gcc-3.0.2/gcc/fixinc/inclhack.def Wed Sep 12 19:38:12 2001 --- gcc-3.0.3/gcc/fixinc/inclhack.def Wed Dec 12 18:20:27 2001 *************** fix = { *** 93,109 **** replace; /* empty replacement -> no fixing the file */ }; - - /* - * Purge some HP-UX 11 files that are only broken after they are "fixed". - */ - fix = { - hackname = AAA_time; - files = sys/time.h; - select = '11.0 and later representation of ki time'; - replace; /* empty replacement -> no fixing the file */ - }; - /* And now, the real fixes, replacement text fixes first: */ /* --- 93,98 ---- *************** fix = { *** 1222,1233 **** */ fix = { hackname = hpux11_size_t; ! mach = "*-hp-hpux*"; ! select = "^#define __size_t size_t"; c_fix = format; c_fix_arg = "_hpux_size_t"; - c_fix_arg = "__size_t"; test_text = "#define __size_t size_t\n" --- 1211,1221 ---- */ fix = { hackname = hpux11_size_t; ! mach = "*-hp-hpux11*"; ! select = "__size_t"; c_fix = format; c_fix_arg = "_hpux_size_t"; test_text = "#define __size_t size_t\n" *************** fix = { *** 1269,1282 **** fix = { hackname = hpux11_vsnprintf; files = stdio.h; ! select = 'extern int vsnprintf\(char \*, __size_t, const char \*,' ! ' __va__list\);'; ! c_fix = format; ! c_fix_arg = "extern int vsnprintf(char *, __size_t, const char *," ! " __va_list);"; ! test_text = 'extern int vsnprintf(char *, __size_t, const char *,' ' __va__list);'; }; --- 1257,1268 ---- fix = { hackname = hpux11_vsnprintf; files = stdio.h; ! select = '(extern int vsnprintf\(char \*, _[hpux]*_size_t, ' ! 'const char \*,) __va__list\);'; c_fix = format; ! c_fix_arg = "%1 __va_list);"; ! test_text = 'extern int vsnprintf(char *, _hpux_size_t, const char *,' ' __va__list);'; }; *************** fix = { *** 2223,2229 **** /* * Use __gnuc_va_list in arg types in place of va_list. ! * On 386BSD use __gnuc_va_list instead of _VA_LIST_. We're hoping the * trailing parentheses and semicolon save all other systems from this. * Define __not_va_list__ (something harmless and unused) * instead of va_list. --- 2209,2216 ---- /* * Use __gnuc_va_list in arg types in place of va_list. ! * On 386BSD use __gnuc_va_list instead of _VA_LIST_. On Tru64 UNIX V5.1A ! * use __gnuc_va_list instead of __VA_LIST__. We're hoping the * trailing parentheses and semicolon save all other systems from this. * Define __not_va_list__ (something harmless and unused) * instead of va_list. *************** fix = { *** 2232,2237 **** --- 2219,2225 ---- sed = "s@ va_list @ __gnuc_va_list @\n" "s@ va_list)@ __gnuc_va_list)@\n" "s@ _VA_LIST_));@ __gnuc_va_list));@\n" + "s@ __VA_LIST__));@ __gnuc_va_list));@\n" "s@ va_list@ __not_va_list__@\n" "s@\\*va_list@*__not_va_list__@\n" "s@ __va_list)@ __gnuc_va_list)@\n" *************** fix = { *** 2255,2266 **** "(!__STDC__" "|__STDC__[ \t]*==[ \t]*0" "|__STDC__[ \t]*!=[ \t]*1" ! "|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0" ! ")(.*)"; c_test = stdc_0_in_system_headers; c_fix = format; ! c_fix_arg = "%1 !defined(__STRICT_ANSI__)%3"; test_text = "#if !__STDC__ \n" "#if __STDC__ == 0\n" --- 2243,2253 ---- "(!__STDC__" "|__STDC__[ \t]*==[ \t]*0" "|__STDC__[ \t]*!=[ \t]*1" ! "|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)"; c_test = stdc_0_in_system_headers; c_fix = format; ! c_fix_arg = "%1 !defined(__STRICT_ANSI__)"; test_text = "#if !__STDC__ \n" "#if __STDC__ == 0\n" *************** fix = { *** 2276,2294 **** */ fix = { hackname = strict_ansi_not_ctd; ! files = math.h, limits.h, stdio.h, signal.h, stdlib.h, time.h; ! select = "^([ \t]*[|&][|&][ \t(]*)" ! "(__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0" ! ")(.*)"; c_test = stdc_0_in_system_headers; c_fix = format; ! c_fix_arg = "%1 !defined(__STRICT_ANSI__)%3"; ! test_text = "#if 1\\\n" ! "|| __STDC__ - 0 == 0 /* not std C */\nint foo;\n#endif"; }; /* * "__STDC__!=0" or "__STDC__==1" or "__STDC__-0==1" * is "defined( __STRICT_ANSI__ )" --- 2263,2296 ---- */ fix = { hackname = strict_ansi_not_ctd; ! files = math.h, limits.h, stdio.h, signal.h, ! stdlib.h, sys/signal.h, time.h; ! /* ! * Starting at the beginning of a line, skip white space and ! * a leading "(" or "&&" or "||". One of those must be found. ! * Then, zero, one or more copies of a "defined(_FOO_BAR_) &&" ! * expression. If these are nested, then they must accumulate ! * because we won't match any closing parentheses. Finally, ! * after skipping over all that, we must then match our suspect ! * phrase: "__STDC__-0==0" with or without white space. ! */ ! select = "^([ \t]*" '(\(|&&|\|\|)' ! "([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*" ! "[ \t(]*)" ! "(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)"; c_test = stdc_0_in_system_headers; c_fix = format; ! c_fix_arg = "%1 !defined(__STRICT_ANSI__)"; ! test_text = "#if 1 && \\\\\n" ! "&& defined(mumbling) |& (__STDC__ - 0 == 0) \\\\\n" ! "( __STDC__ == 0 && !defined(_XOPEN_SOURCE) \\\\\n" ! "|| __STDC__ - 0 == 0 ) /* not std C */\n" ! "int foo;\n#endif"; }; + /* * "__STDC__!=0" or "__STDC__==1" or "__STDC__-0==1" * is "defined( __STRICT_ANSI__ )" *************** fix = { *** 2299,2310 **** "(__STDC__[ \t]*!=[ \t]*0" "|__STDC__[ \t]*==[ \t]*1" "|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1" ! "|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0" ! ")(.*)"; c_test = stdc_0_in_system_headers; c_fix = format; ! c_fix_arg = "%1 defined(__STRICT_ANSI__)%3"; test_text = "#if __STDC__ == 1 /* is std C\n */\nint foo;\n#endif"; }; --- 2301,2311 ---- "(__STDC__[ \t]*!=[ \t]*0" "|__STDC__[ \t]*==[ \t]*1" "|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1" ! "|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)"; c_test = stdc_0_in_system_headers; c_fix = format; ! c_fix_arg = "%1 defined(__STRICT_ANSI__)"; test_text = "#if __STDC__ == 1 /* is std C\n */\nint foo;\n#endif"; }; diff -Nrc3pad gcc-3.0.2/gcc/fixinc/mkfixinc.sh gcc-3.0.3/gcc/fixinc/mkfixinc.sh *** gcc-3.0.2/gcc/fixinc/mkfixinc.sh Wed Feb 21 12:08:17 2001 --- gcc-3.0.3/gcc/fixinc/mkfixinc.sh Wed Dec 12 18:20:27 2001 *************** echo constructing ${target} for $machine *** 14,20 **** fixincludes="${machine}" # Choose one or two-process fix methodology. Systems that cannot handle ! # bi-directional pipes must use the twoprocess method. # case $build in i?86-*-msdosdjgpp* | \ --- 14,20 ---- fixincludes="${machine}" # Choose one or two-process fix methodology. Systems that cannot handle ! # bi-directional pipes must use the two process method. # case $build in i?86-*-msdosdjgpp* | \ *************** esac *** 35,89 **** # Check for special fix rules for particular targets case $machine in ! *-*-sysv4* ) ! fixincludes=fixinc.svr4 ! ;; ! i?86-*-interix* | \ ! alpha-*-interix*) ! fixincludes=fixinc.interix ! ;; ! i?86-*-openbsd*) ! fixincludes=fixinc.wrap ! ;; ! alpha*-*-winnt* | \ ! i?86-*-winnt3*) ! fixincludes=fixinc.winnt ! ;; ! i?86-sequent-ptx* | i?86-sequent-sysv[34]*) ! fixincludes=fixinc.ptx ! ;; ! alpha*-dec-vms* | \ ! arm-semi-aout | armel-semi-aout | \ ! arm-semi-aof | armel-semi-aof | \ ! c*-convex-* | \ ! hppa1.1-*-osf* | \ ! hppa1.0-*-osf* | \ ! hppa1.1-*-bsd* | \ ! hppa1.0-*-bsd* | \ ! hppa*-*-lites* | \ ! i?86-moss-msdos* | i?86-*-moss* | \ ! i?86-*-osf1* | \ ! i?86-*-win32 | \ ! i?86-*-pe | i?86-*-cygwin* | \ ! i?86-*-mingw32* | \ ! i?86-*-uwin* | \ ! mips-sgi-irix5cross64 | \ ! powerpc-*-eabiaix* | \ ! powerpc-*-eabisim* | \ ! powerpc-*-eabi* | \ ! powerpc-*-rtems* | \ ! powerpcle-*-eabisim* | \ ! powerpcle-*-eabi* | \ ! powerpcle-*-winnt* | \ ! powerpcle-*-pe | powerpcle-*-cygwin* | \ ! thumb-*-coff* | thumbel-*-coff* ) ! fixincludes= ! ;; esac # IF there is no include fixing, --- 35,100 ---- # Check for special fix rules for particular targets case $machine in ! i?86-*-sysv4.2uw2* ) ! ;; ! *-*-sysv4* ) ! fixincludes=fixinc.svr4 ! ;; ! i?86-*-interix* | \ ! alpha-*-interix*) ! fixincludes=fixinc.interix ! ;; ! i?86-*-openbsd*) ! fixincludes=fixinc.wrap ! ;; ! alpha*-*-winnt* | \ ! i?86-*-winnt3*) ! fixincludes=fixinc.winnt ! ;; ! i?86-sequent-ptx* | i?86-sequent-sysv[34]*) ! fixincludes=fixinc.ptx ! ;; ! ! alpha*-dec-vms* | \ ! arm-semi-aout | \ ! armel-semi-aout | \ ! arm-semi-aof | \ ! armel-semi-aof | \ ! c*-convex-* | \ ! hppa1.1-*-osf* | \ ! hppa1.0-*-osf* | \ ! hppa1.1-*-bsd* | \ ! hppa1.0-*-bsd* | \ ! hppa*-*-lites* | \ ! i?86-moss-msdos* | \ ! i?86-*-moss* | \ ! i?86-*-osf1* | \ ! i?86-*-win32 | \ ! i?86-*-pe | \ ! i?86-*-cygwin* | \ ! i?86-*-mingw32* | \ ! i?86-*-uwin* | \ ! mips-sgi-irix5cross64 | \ ! powerpc-*-eabiaix* | \ ! powerpc-*-eabisim* | \ ! powerpc-*-eabi* | \ ! powerpc-*-rtems* | \ ! powerpcle-*-eabisim* | \ ! powerpcle-*-eabi* | \ ! powerpcle-*-winnt* | \ ! powerpcle-*-pe | \ ! powerpcle-*-cygwin* | \ ! thumb-*-coff* | \ ! thumbel-*-coff* ) ! # Don't do any fixing. ! # ! fixincludes= ! ;; esac # IF there is no include fixing, diff -Nrc3pad gcc-3.0.2/gcc/fixinc/tests/base/math.h gcc-3.0.3/gcc/fixinc/tests/base/math.h *** gcc-3.0.2/gcc/fixinc/tests/base/math.h Thu Jul 19 20:39:03 2001 --- gcc-3.0.3/gcc/fixinc/tests/base/math.h Wed Dec 12 18:20:28 2001 *************** extern int class(); *** 105,111 **** #if defined( STRICT_ANSI_NOT_CTD_CHECK ) ! #if 1|| !defined(__STRICT_ANSI__) /* not std C */ int foo; #endif #endif /* STRICT_ANSI_NOT_CTD_CHECK */ --- 105,114 ---- #if defined( STRICT_ANSI_NOT_CTD_CHECK ) ! #if 1 && \ ! && defined(mumbling) |& ( !defined(__STRICT_ANSI__)) \ ! ( !defined(__STRICT_ANSI__) && !defined(_XOPEN_SOURCE) \ ! || !defined(__STRICT_ANSI__) ) /* not std C */ int foo; #endif #endif /* STRICT_ANSI_NOT_CTD_CHECK */ diff -Nrc3pad gcc-3.0.2/gcc/fixinc/tests/base/stdio.h gcc-3.0.3/gcc/fixinc/tests/base/stdio.h *** gcc-3.0.2/gcc/fixinc/tests/base/stdio.h Thu Jul 19 21:10:46 2001 --- gcc-3.0.3/gcc/fixinc/tests/base/stdio.h Thu Nov 29 21:23:41 2001 *************** extern int getopt(int, char *const[], co *** 20,26 **** #if defined( HPUX11_VSNPRINTF_CHECK ) ! extern int vsnprintf(char *, __size_t, const char *, __gnuc_va_list); #endif /* HPUX11_VSNPRINTF_CHECK */ --- 20,26 ---- #if defined( HPUX11_VSNPRINTF_CHECK ) ! extern int vsnprintf(char *, _hpux_size_t, const char *, __gnuc_va_list); #endif /* HPUX11_VSNPRINTF_CHECK */ *************** extern FILE *popen( const char *, const *** 74,78 **** --- 74,83 ---- extern char *tempnam( const char *, const char *); #endif /* ULTRIX_CONST2_CHECK */ + + + #if defined( UNICOSMK_RESTRICT_CHECK ) + void f (char * __restrict__ x); + #endif /* UNICOSMK_RESTRICT_CHECK */ #endif /* FIXINC_STDIO_STDARG_H_CHECK */ diff -Nrc3pad gcc-3.0.2/gcc/fixinc/tests/base/testing.h gcc-3.0.3/gcc/fixinc/tests/base/testing.h *** gcc-3.0.2/gcc/fixinc/tests/base/testing.h Sat May 26 11:56:14 2001 --- gcc-3.0.3/gcc/fixinc/tests/base/testing.h Thu Nov 29 21:23:41 2001 *************** extern __DJ_wint_t x; *** 36,41 **** --- 36,48 ---- #endif /* DJGPP_WCHAR_H_CHECK */ + #if defined( HPUX11_SIZE_T_CHECK ) + #define _hpux_size_t size_t + extern int getpwuid_r( char *, _hpux_size_t, struct passwd **); + + #endif /* HPUX11_SIZE_T_CHECK */ + + #if defined( IO_QUOTES_DEF_CHECK ) #define BSD43__IOWR(n, x) ((n<<8)+x) #define _IOWN(x,y,t) (_IOC_IN|(((t)&_IOCPARM_MASK)<<16)|(x<<8)|y) diff -Nrc3pad gcc-3.0.2/gcc/flow.c gcc-3.0.3/gcc/flow.c *** gcc-3.0.2/gcc/flow.c Fri Sep 7 16:28:52 2001 --- gcc-3.0.3/gcc/flow.c Tue Oct 30 10:01:10 2001 *************** merge_blocks (e, b, c) *** 2437,2449 **** edge e; basic_block b, c; { ! /* If C has a tail recursion label, do not merge. There is no ! edge recorded from the call_placeholder back to this label, as ! that would make optimize_sibling_and_tail_recursive_calls more ! complex for no gain. */ ! if (GET_CODE (c->head) == CODE_LABEL ! && tail_recursion_label_p (c->head)) ! return 0; /* If B has a fallthru edge to C, no need to move anything. */ if (e->flags & EDGE_FALLTHRU) --- 2437,2458 ---- edge e; basic_block b, c; { ! if (GET_CODE (c->head) == CODE_LABEL) ! { ! rtx x; ! ! /* If C has a tail recursion label, do not merge. There is no ! edge recorded from the call_placeholder back to this label, as ! that would make optimize_sibling_and_tail_recursive_calls more ! complex for no gain. */ ! if (tail_recursion_label_p (c->head)) ! return 0; ! ! /* If C has a nonlocal goto label, do not merge either. */ ! for (x = nonlocal_goto_handler_labels; x; x = XEXP (x, 1)) ! if (XEXP (x, 0) == c->head) ! return 0; ! } /* If B has a fallthru edge to C, no need to move anything. */ if (e->flags & EDGE_FALLTHRU) diff -Nrc3pad gcc-3.0.2/gcc/gcc.c gcc-3.0.3/gcc/gcc.c *** gcc-3.0.2/gcc/gcc.c Tue Oct 2 16:12:34 2001 --- gcc-3.0.3/gcc/gcc.c Tue Dec 4 23:19:34 2001 *************** static char dir_separator_str[] = { DIR_ *** 99,104 **** --- 99,107 ---- #define MIN_FATAL_STATUS 1 + /* Flag set by cppspec.c to 1. */ + int is_cpp_driver; + /* Flag saying to pass the greatest exit code returned by a sub-process to the calling program. */ static int pass_exit_codes; *************** static void clear_failure_queue PARAMS ( *** 243,248 **** --- 246,252 ---- static int check_live_switch PARAMS ((int, int)); static const char *handle_braces PARAMS ((const char *)); static char *save_string PARAMS ((const char *, int)); + static void set_collect_gcc_options PARAMS ((void)); static int do_spec_1 PARAMS ((const char *, int, const char *)); static const char *find_file PARAMS ((const char *)); static int is_directory PARAMS ((const char *, const char *, int)); *************** static void process_command PARAMS ((in *** 266,272 **** static int execute PARAMS ((void)); static void clear_args PARAMS ((void)); static void fatal_error PARAMS ((int)); - static void set_input PARAMS ((const char *)); static void init_gcc_specs PARAMS ((struct obstack *, const char *, const char *)); --- 270,275 ---- *************** process_command (argc, argv) *** 3216,3222 **** n_infiles++; n_switches++; ! add_preprocessor_option ("--help", 6); add_assembler_option ("--help", 6); add_linker_option ("--help", 6); } --- 3219,3227 ---- n_infiles++; n_switches++; ! /* CPP driver cannot obtain switch from cc1_options. */ ! if (is_cpp_driver) ! add_preprocessor_option ("--help", 6); add_assembler_option ("--help", 6); add_linker_option ("--help", 6); } *************** process_command (argc, argv) *** 3229,3235 **** n_infiles++; n_switches++; ! add_preprocessor_option ("--target-help", 13); add_assembler_option ("--target-help", 13); add_linker_option ("--target-help", 13); } --- 3234,3242 ---- n_infiles++; n_switches++; ! /* CPP driver cannot obtain switch from cc1_options. */ ! if (is_cpp_driver) ! add_preprocessor_option ("--target-help", 13); add_assembler_option ("--target-help", 13); add_linker_option ("--target-help", 13); } *************** process_command (argc, argv) *** 3673,3713 **** ; else if (! strcmp (argv[i], "-print-multi-directory")) ; ! else if (strcmp (argv[i], "-ftarget-help") == 0) ! { ! /* Create a dummy input file, so that we can pass --target-help on to ! the various sub-processes. */ ! infiles[n_infiles].language = "c"; ! infiles[n_infiles++].name = "target-dummy"; ! ! /* Preserve the --target-help switch so that it can be caught by ! the cc1 spec string. */ ! switches[n_switches].part1 = "--target-help"; ! switches[n_switches].args = 0; ! switches[n_switches].live_cond = SWITCH_OK; ! switches[n_switches].validated = 0; ! ! n_switches++; ! } ! else if (strcmp (argv[i], "-fhelp") == 0) ! { ! if (verbose_flag) ! { ! /* Create a dummy input file, so that we can pass --help on to ! the various sub-processes. */ ! infiles[n_infiles].language = "c"; ! infiles[n_infiles++].name = "help-dummy"; ! ! /* Preserve the --help switch so that it can be caught by the ! cc1 spec string. */ ! switches[n_switches].part1 = "--help"; ! switches[n_switches].args = 0; ! switches[n_switches].live_cond = SWITCH_OK; ! switches[n_switches].validated = 0; ! ! n_switches++; ! } ! } else if (argv[i][0] == '+' && argv[i][1] == 'e') { /* Compensate for the +e options to the C++ front-end; --- 3680,3689 ---- ; else if (! strcmp (argv[i], "-print-multi-directory")) ; ! else if (! strcmp (argv[i], "-ftarget-help")) ! ; ! else if (! strcmp (argv[i], "-fhelp")) ! ; else if (argv[i][0] == '+' && argv[i][1] == 'e') { /* Compensate for the +e options to the C++ front-end; *************** process_command (argc, argv) *** 3866,3874 **** --- 3842,3938 ---- if (n_infiles == last_language_n_infiles && spec_lang != 0) error ("Warning: `-x %s' after last input file has no effect", spec_lang); + /* Ensure we only invoke each subprocess once. */ + if (target_help_flag || print_help_list) + { + n_infiles = 1; + + /* Create a dummy input file, so that we can pass --target-help on to + the various sub-processes. */ + infiles[0].language = "c"; + infiles[0].name = "help-dummy"; + + if (target_help_flag) + { + switches[n_switches].part1 = "--target-help"; + switches[n_switches].args = 0; + switches[n_switches].live_cond = SWITCH_OK; + switches[n_switches].validated = 0; + + n_switches++; + } + + if (print_help_list) + { + switches[n_switches].part1 = "--help"; + switches[n_switches].args = 0; + switches[n_switches].live_cond = SWITCH_OK; + switches[n_switches].validated = 0; + + n_switches++; + } + } + switches[n_switches].part1 = 0; infiles[n_infiles].name = 0; } + + /* Store switches not filtered out by %{ 0 && !strcmp (argbuf[argbuf_index - 1], "|")) argbuf_index--; + set_collect_gcc_options (); + if (argbuf_index > 0) value = execute (); } *************** do_spec_1 (spec, inswitch, soft_matched_ *** 4012,4017 **** --- 4078,4085 ---- argbuf_index--; } + set_collect_gcc_options (); + if (argbuf_index > 0) { value = execute (); *************** is_directory (path1, path2, linker) *** 5395,5401 **** /* Set up the various global variables to indicate that we're processing the input file named FILENAME. */ ! static void set_input (filename) const char *filename; { --- 5463,5469 ---- /* Set up the various global variables to indicate that we're processing the input file named FILENAME. */ ! void set_input (filename) const char *filename; { *************** main (argc, argv) *** 5567,5618 **** Decode switches that are handled locally. */ process_command (argc, argv); - - { - int first_time; - - /* Build COLLECT_GCC_OPTIONS to have all of the options specified to - the compiler. */ - obstack_grow (&collect_obstack, "COLLECT_GCC_OPTIONS=", - sizeof ("COLLECT_GCC_OPTIONS=") - 1); - - first_time = TRUE; - for (i = 0; (int) i < n_switches; i++) - { - const char *const *args; - const char *p, *q; - if (!first_time) - obstack_grow (&collect_obstack, " ", 1); - - first_time = FALSE; - obstack_grow (&collect_obstack, "'-", 2); - q = switches[i].part1; - while ((p = strchr (q, '\''))) - { - obstack_grow (&collect_obstack, q, p - q); - obstack_grow (&collect_obstack, "'\\''", 4); - q = ++p; - } - obstack_grow (&collect_obstack, q, strlen (q)); - obstack_grow (&collect_obstack, "'", 1); - - for (args = switches[i].args; args && *args; args++) - { - obstack_grow (&collect_obstack, " '", 2); - q = *args; - while ((p = strchr (q, '\''))) - { - obstack_grow (&collect_obstack, q, p - q); - obstack_grow (&collect_obstack, "'\\''", 4); - q = ++p; - } - obstack_grow (&collect_obstack, q, strlen (q)); - obstack_grow (&collect_obstack, "'", 1); - } - } - obstack_grow (&collect_obstack, "\0", 1); - putenv (obstack_finish (&collect_obstack)); - } /* Initialize the vector of specs to just the default. This means one element containing 0s, as a terminator. */ --- 5635,5640 ---- diff -Nrc3pad gcc-3.0.2/gcc/gcc.h gcc-3.0.3/gcc/gcc.h *** gcc-3.0.2/gcc/gcc.h Sun Aug 12 13:22:18 2001 --- gcc-3.0.3/gcc/gcc.h Wed Nov 28 09:30:54 2001 *************** *** 1,5 **** /* Header file for modules that link with gcc.c ! Copyright (C) 1999 Free Software Foundation, Inc. This file is part of GNU CC. --- 1,5 ---- /* Header file for modules that link with gcc.c ! Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. *************** extern void fatal PARAMS ((const char *, *** 33,38 **** --- 33,39 ---- ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; extern void error PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1; extern void pfatal_with_name PARAMS ((const char *)) ATTRIBUTE_NORETURN; + extern void set_input PARAMS ((const char *)); /* Spec files linked with gcc.c must provide definitions for these. */ diff -Nrc3pad gcc-3.0.2/gcc/gccspec.c gcc-3.0.3/gcc/gccspec.c *** gcc-3.0.2/gcc/gccspec.c Wed Aug 2 13:21:25 2000 --- gcc-3.0.3/gcc/gccspec.c Mon Nov 5 11:10:33 2001 *************** *** 1,5 **** /* Specific flags and argument handling of the C front-end. ! Copyright (C) 1999 Free Software Foundation, Inc. This file is part of GNU CC. --- 1,5 ---- /* Specific flags and argument handling of the C front-end. ! Copyright (C) 1999, 2001 Free Software Foundation, Inc. This file is part of GNU CC. *************** lang_specific_driver (in_argc, in_argv, *** 29,35 **** const char *const **in_argv ATTRIBUTE_UNUSED; int *in_added_libraries ATTRIBUTE_UNUSED; { ! return; /* Not used for C. */ } /* Called before linking. Returns 0 on success and -1 on failure. */ --- 29,95 ---- const char *const **in_argv ATTRIBUTE_UNUSED; int *in_added_libraries ATTRIBUTE_UNUSED; { ! #ifdef ENABLE_SHARED_LIBGCC ! int i; ! ! /* The new argument list will be contained in this. */ ! const char **arglist; ! ! /* True if we should add -shared-libgcc to the command-line. */ ! int shared_libgcc = 0; ! ! /* The total number of arguments with the new stuff. */ ! int argc; ! ! /* The argument list. */ ! const char *const *argv; ! ! argc = *in_argc; ! argv = *in_argv; ! ! for (i = 1; i < argc; i++) ! { ! if (argv[i][0] == '-') ! { ! if (strcmp (argv[i], "-static-libgcc") == 0 ! || strcmp (argv[i], "-static") == 0) ! return; ! } ! else ! { ! int len; ! ! /* If the filename ends in .m or .mi, we are compiling ObjC ! and want to pass -shared-libgcc. */ ! len = strlen (argv[i]); ! if ((len > 2 && argv[i][len - 2] == '.' && argv[i][len - 1] == 'm') ! || (len > 3 && argv[i][len - 3] == '.' && argv[i][len - 2] == 'm' ! && argv[i][len - 1] == 'i')) ! shared_libgcc = 1; ! } ! } ! ! if (shared_libgcc) ! { ! /* Make sure to have room for the trailing NULL argument. */ ! arglist = (const char **) xmalloc ((argc+2) * sizeof (char *)); ! ! i = 0; ! do ! { ! arglist[i] = argv[i]; ! i++; ! } ! while (i < argc); ! ! arglist[i++] = "-shared-libgcc"; ! ! arglist[i] = NULL; ! ! *in_argc = i; ! *in_argv = arglist; ! } ! #endif } /* Called before linking. Returns 0 on success and -1 on failure. */ diff -Nrc3pad gcc-3.0.2/gcc/ginclude/ppc-asm.h gcc-3.0.3/gcc/ginclude/ppc-asm.h *** gcc-3.0.2/gcc/ginclude/ppc-asm.h Sat Feb 5 19:14:46 2000 --- gcc-3.0.3/gcc/ginclude/ppc-asm.h Sat Dec 1 05:29:22 2001 *************** *** 105,110 **** --- 105,111 ---- #if defined(_CALL_AIXDESC) #define FUNC_NAME(name) GLUE(.,name) + #define JUMP_TARGET(name) FUNC_NAME(name) #define FUNC_START(name) \ .section DESC_SECTION,"aw"; \ name: \ *************** GLUE(.L,name): \ *** 123,128 **** --- 124,130 ---- #elif defined(__WINNT__) #define FUNC_NAME(name) GLUE(..,name) + #define JUMP_TARGET(name) FUNC_NAME(name) #define FUNC_START(name) \ .pdata; \ .align 2; \ *************** GLUE(FE_MOT_RESVD..,name): *** 141,146 **** --- 143,149 ---- #elif defined(_CALL_NT) #define FUNC_NAME(name) GLUE(..,name) + #define JUMP_TARGET(name) FUNC_NAME(name) #define FUNC_START(name) \ .section DESC_SECTION,"aw"; \ name: \ *************** GLUE(.L,name): \ *** 158,163 **** --- 161,171 ---- #else #define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name) + #if defined __PIC__ || defined __pic__ + #define JUMP_TARGET(name) FUNC_NAME(name@plt) + #else + #define JUMP_TARGET(name) FUNC_NAME(name) + #endif #define FUNC_START(name) \ .type FUNC_NAME(name),@function; \ .globl FUNC_NAME(name); \ diff -Nrc3pad gcc-3.0.2/gcc/gthr-win32.h gcc-3.0.3/gcc/gthr-win32.h *** gcc-3.0.2/gcc/gthr-win32.h Mon Jan 22 13:29:53 2001 --- gcc-3.0.3/gcc/gthr-win32.h Sun Nov 18 16:43:36 2001 *************** int *** 181,187 **** __gthread_objc_thread_exit(void) { /* exit the thread */ ! ExitThread(__gthread_objc_thread_exit_status); /* Failed if we reached here */ return -1; --- 181,187 ---- __gthread_objc_thread_exit(void) { /* exit the thread */ ! ExitThread(__objc_thread_exit_status); /* Failed if we reached here */ return -1; diff -Nrc3pad gcc-3.0.2/gcc/ifcvt.c gcc-3.0.3/gcc/ifcvt.c *** gcc-3.0.2/gcc/ifcvt.c Wed Jun 13 17:39:51 2001 --- gcc-3.0.3/gcc/ifcvt.c Thu Nov 29 15:29:35 2001 *************** noce_try_store_flag_constants (if_info) *** 641,646 **** --- 641,651 ---- itrue = INTVAL (if_info->b); diff = itrue - ifalse; + /* Make sure we can represent the difference between the two values. */ + if ((itrue - ifalse > 0) + != ((ifalse < 0) != (itrue < 0) ? ifalse < 0 : ifalse < itrue)) + return FALSE; + can_reverse = can_reverse_comparison_p (if_info->cond, if_info->jump); reversep = 0; diff -Nrc3pad gcc-3.0.2/gcc/intl/ChangeLog gcc-3.0.3/gcc/intl/ChangeLog *** gcc-3.0.2/gcc/intl/ChangeLog Tue Oct 23 10:19:46 2001 --- gcc-3.0.3/gcc/intl/ChangeLog Thu Dec 20 11:22:00 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/java/ChangeLog gcc-3.0.3/gcc/java/ChangeLog *** gcc-3.0.2/gcc/java/ChangeLog Tue Oct 23 10:19:55 2001 --- gcc-3.0.3/gcc/java/ChangeLog Thu Dec 20 11:22:08 2001 *************** *** 1,3 **** --- 1,22 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-11-30 Bryce McKinlay + + * class.c (add_interface_do): Set BINFO_VPTR_FIELD. + + 2001-11-27 Rainer Orth + + * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks + ASM_FINAL_SPEC. + (lang_specific_pre_link): Use set_input to set input_filename. + Append `main' here. + * jvgenmain.c (usage): Append literal `main' to CLASSNAME. + (main): Fix definition. + Strip `main' from classname. + Fixes PR java/227. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/java/class.c gcc-3.0.3/gcc/java/class.c *** gcc-3.0.2/gcc/java/class.c Fri Sep 21 18:33:25 2001 --- gcc-3.0.3/gcc/java/class.c Fri Nov 30 03:47:22 2001 *************** add_interface_do (basetype_vec, interfac *** 520,525 **** --- 520,526 ---- tree interface_binfo = make_tree_vec (6); BINFO_TYPE (interface_binfo) = interface_class; BINFO_OFFSET (interface_binfo) = integer_zero_node; + BINFO_VPTR_FIELD (interface_binfo) = integer_zero_node; TREE_VIA_VIRTUAL (interface_binfo) = 1; TREE_VIA_PUBLIC (interface_binfo) = 1; TREE_VEC_ELT (basetype_vec, i) = interface_binfo; diff -Nrc3pad gcc-3.0.2/gcc/java/jvgenmain.c gcc-3.0.3/gcc/java/jvgenmain.c *** gcc-3.0.2/gcc/java/jvgenmain.c Sun Aug 12 13:22:20 2001 --- gcc-3.0.3/gcc/java/jvgenmain.c Tue Nov 27 08:24:58 2001 *************** static void usage (const char *) ATTRIBU *** 62,75 **** static void usage (const char *name) { ! fprintf (stderr, "Usage: %s [OPTIONS]... CLASSNAME [OUTFILE]\n", name); exit (1); } int ! main (int argc, const char **argv) { ! const char *classname; FILE *stream; const char *mangled_classname; int i, last_arg; --- 62,75 ---- static void usage (const char *name) { ! fprintf (stderr, "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n", name); exit (1); } int ! main (int argc, char **argv) { ! char *classname, *p; FILE *stream; const char *mangled_classname; int i, last_arg; *************** main (int argc, const char **argv) *** 92,97 **** --- 92,104 ---- last_arg = i; classname = argv[i]; + + /* gcj always appends `main' to classname. We need to strip this here. */ + p = strrchr (classname, 'm'); + if (p == NULL || p == classname || strcmp (p, "main") != 0) + usage (argv[0]); + else + *p = '\0'; gcc_obstack_init (mangle_obstack); mangled_classname = do_mangle_classname (classname); diff -Nrc3pad gcc-3.0.2/gcc/java/jvspec.c gcc-3.0.3/gcc/java/jvspec.c *** gcc-3.0.2/gcc/java/jvspec.c Sun Aug 12 13:22:20 2001 --- gcc-3.0.3/gcc/java/jvspec.c Tue Nov 27 08:24:57 2001 *************** int lang_specific_extra_outfiles = 0; *** 52,59 **** int shared_libgcc = 1; const char jvgenmain_spec[] = ! "jvgenmain %{D*} %i %{!pipe:%umain.i} |\n\ ! cc1 %{!pipe:%Umain.i} %1 \ %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ %{g*} %{O*} \ %{v:-version} %{pg:-p} %{p}\ --- 52,59 ---- int shared_libgcc = 1; const char jvgenmain_spec[] = ! "jvgenmain %{D*} %b %{!pipe:%u.i} |\n\ ! cc1 %{!pipe:%U.i} %1 \ %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ %{g*} %{O*} \ %{v:-version} %{pg:-p} %{p}\ *************** const char jvgenmain_spec[] = *** 67,74 **** %{f*} -fdollars-in-identifiers\ %{aux-info*}\ %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ ! %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%Umain.s}} |\n\ ! %{!S:as %a %Y -o %d%w%umain%O %{!pipe:%Umain.s} %A\n }"; /* Return full path name of spec file if it is in DIR, or NULL if not. */ --- 67,74 ---- %{f*} -fdollars-in-identifiers\ %{aux-info*}\ %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ ! %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\ ! %{!S:as %a %Y -o %d%w%u%O %{!pipe:%g.s} %A\n }"; /* Return full path name of spec file if it is in DIR, or NULL if not. */ *************** lang_specific_pre_link () *** 528,535 **** int err; if (main_class_name == NULL) return 0; ! input_filename = main_class_name; ! input_filename_length = strlen (main_class_name); err = do_spec (jvgenmain_spec); if (err == 0) { --- 528,541 ---- int err; if (main_class_name == NULL) return 0; ! /* Append `main' to make the filename unique and allow ! ! gcj --main=hello -save-temps hello.java ! ! to work. jvgenmain needs to strip this `main' to arrive at the correct ! class name. Append dummy `.c' that can be stripped by set_input so %b ! is correct. */ ! set_input (concat (main_class_name, "main.c", NULL)); err = do_spec (jvgenmain_spec); if (err == 0) { diff -Nrc3pad gcc-3.0.2/gcc/java/parse-scan.c gcc-3.0.3/gcc/java/parse-scan.c *** gcc-3.0.2/gcc/java/parse-scan.c Tue Oct 23 10:57:19 2001 --- gcc-3.0.3/gcc/java/parse-scan.c Thu Dec 20 11:57:00 2001 *************** *** 1,5 **** ! /* A Bison parser, made from /nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ --- 1,5 ---- ! /* A Bison parser, made from /nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" #define JC1_LITE --- 113,119 ---- #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 37 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" #define JC1_LITE *************** void report PARAMS ((void)); *** 189,201 **** #include "lex.h" #include "parse.h" ! #line 113 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ } YYSTYPE; ! #line 119 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" #include "lex.c" #ifndef YYDEBUG --- 189,201 ---- #include "lex.h" #include "parse.h" ! #line 113 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ } YYSTYPE; ! #line 119 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" #include "lex.c" #ifndef YYDEBUG *************** yyreduce: *** 1939,1990 **** switch (yyn) { case 10: ! #line 211 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ; break;} case 11: ! #line 216 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ; break;} case 12: ! #line 221 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ; break;} case 18: ! #line 246 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 19: ! #line 251 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 23: ! #line 269 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ; break;} case 37: ! #line 301 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { package_name = yyvsp[-1].node; ; break;} case 45: ! #line 328 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; --- 1939,1990 ---- switch (yyn) { case 10: ! #line 211 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ; break;} case 11: ! #line 216 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ; break;} case 12: ! #line 221 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ; break;} case 18: ! #line 246 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 19: ! #line 251 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 23: ! #line 269 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ; break;} case 37: ! #line 301 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { package_name = yyvsp[-1].node; ; break;} case 45: ! #line 328 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; *************** case 45: *** 1994,2000 **** ; break;} case 46: ! #line 336 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; --- 1994,2000 ---- ; break;} case 46: ! #line 336 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; *************** case 46: *** 2004,2068 **** ; break;} case 47: ! #line 348 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ; break;} case 49: ! #line 354 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); ; break;} case 55: ! #line 368 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 56: ! #line 370 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 57: ! #line 375 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 58: ! #line 377 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 70: ! #line 403 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 71: ! #line 405 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 76: ! #line 421 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { bracket_count = 0; USE_ABSORBER; ; break;} case 77: ! #line 423 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++bracket_count; ; break;} case 81: ! #line 438 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 83: ! #line 441 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 84: ! #line 443 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ; break;} case 85: ! #line 451 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); --- 2004,2068 ---- ; break;} case 47: ! #line 348 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ; break;} case 49: ! #line 354 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); ; break;} case 55: ! #line 368 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 56: ! #line 370 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 57: ! #line 375 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 58: ! #line 377 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 70: ! #line 403 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 71: ! #line 405 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 76: ! #line 421 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { bracket_count = 0; USE_ABSORBER; ; break;} case 77: ! #line 423 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++bracket_count; ; break;} case 81: ! #line 438 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 83: ! #line 441 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 84: ! #line 443 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ; break;} case 85: ! #line 451 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ; break;} case 90: ! #line 475 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) --- 2078,2090 ---- ; break;} case 89: ! #line 468 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ; break;} case 90: ! #line 475 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) *************** case 90: *** 2101,2107 **** ; break;} case 91: ! #line 490 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { if (bracket_count) { --- 2101,2107 ---- ; break;} case 91: ! #line 490 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { if (bracket_count) { *************** case 91: *** 2117,2327 **** ; break;} case 94: ! #line 511 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 95: ! #line 513 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 99: ! #line 528 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 101: ! #line 539 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 103: ! #line 544 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 104: ! #line 551 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 105: ! #line 553 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 112: ! #line 570 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 113: ! #line 572 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 116: ! #line 584 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 118: ! #line 587 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 120: ! #line 590 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 122: ! #line 593 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 126: ! #line 604 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 127: ! #line 606 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 150: ! #line 665 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 151: ! #line 667 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 175: ! #line 707 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 186: ! #line 735 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 187: ! #line 740 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 188: ! #line 745 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 196: ! #line 765 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 201: ! #line 780 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 205: ! #line 797 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 211: ! #line 815 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 222: ! #line 840 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 225: ! #line 849 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 228: ! #line 859 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 234: ! #line 874 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 235: ! #line 878 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 246: ! #line 900 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 247: ! #line 905 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 248: ! #line 907 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 249: ! #line 909 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 250: ! #line 911 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 258: ! #line 926 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 260: ! #line 929 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 262: ! #line 935 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 276: ! #line 967 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { bracket_count = 1; ; break;} case 277: ! #line 969 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { bracket_count++; ; break;} case 280: ! #line 982 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 281: ! #line 984 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 282: ! #line 985 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 283: ! #line 986 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 284: ! #line 987 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 285: ! #line 988 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 286: ! #line 993 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 289: ! #line 1000 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 336: ! #line 1096 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 338: ! #line 1102 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 340: ! #line 1108 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 344: ! #line 1122 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} } --- 2117,2327 ---- ; break;} case 94: ! #line 511 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 95: ! #line 513 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 99: ! #line 528 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 101: ! #line 539 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 103: ! #line 544 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 104: ! #line 551 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 105: ! #line 553 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 112: ! #line 570 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 113: ! #line 572 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 116: ! #line 584 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 118: ! #line 587 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 120: ! #line 590 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 122: ! #line 593 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 126: ! #line 604 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 127: ! #line 606 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 150: ! #line 665 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 151: ! #line 667 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 175: ! #line 707 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 186: ! #line 735 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 187: ! #line 740 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 188: ! #line 745 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 196: ! #line 765 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 201: ! #line 780 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 205: ! #line 797 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 211: ! #line 815 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 222: ! #line 840 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 225: ! #line 849 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 228: ! #line 859 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 234: ! #line 874 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 235: ! #line 878 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 246: ! #line 900 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 247: ! #line 905 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 248: ! #line 907 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 249: ! #line 909 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 250: ! #line 911 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 258: ! #line 926 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 260: ! #line 929 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 262: ! #line 935 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 276: ! #line 967 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { bracket_count = 1; ; break;} case 277: ! #line 969 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { bracket_count++; ; break;} case 280: ! #line 982 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 281: ! #line 984 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 282: ! #line 985 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 283: ! #line 986 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 284: ! #line 987 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 285: ! #line 988 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 286: ! #line 993 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 289: ! #line 1000 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 336: ! #line 1096 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 338: ! #line 1102 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 340: ! #line 1108 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { ++complexity; ; break;} case 344: ! #line 1122 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} } *************** yyerrhandle: *** 2546,2552 **** } return 1; } ! #line 1140 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse-scan.y" /* Create a new parser context */ --- 2546,2552 ---- } return 1; } ! #line 1140 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse-scan.y" /* Create a new parser context */ diff -Nrc3pad gcc-3.0.2/gcc/java/parse.c gcc-3.0.3/gcc/java/parse.c *** gcc-3.0.2/gcc/java/parse.c Tue Oct 23 10:57:18 2001 --- gcc-3.0.3/gcc/java/parse.c Thu Dec 20 11:57:00 2001 *************** *** 1,5 **** ! /* A Bison parser, made from /nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ --- 1,5 ---- ! /* A Bison parser, made from /nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" #include "config.h" #include "system.h" --- 120,126 ---- #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 48 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" #include "config.h" #include "system.h" *************** static tree src_parse_roots[1] = { NULL_ *** 509,515 **** } while (0) ! #line 437 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" typedef union { tree node; int sub_token; --- 509,515 ---- } while (0) ! #line 437 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" typedef union { tree node; int sub_token; *************** typedef union { *** 519,525 **** } operator; int value; } YYSTYPE; ! #line 447 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" #include "lex.c" #ifndef YYDEBUG --- 519,525 ---- } operator; int value; } YYSTYPE; ! #line 447 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" #include "lex.c" #ifndef YYDEBUG *************** yyreduce: *** 2891,2897 **** switch (yyn) { case 1: ! #line 598 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ --- 2891,2897 ---- switch (yyn) { case 1: ! #line 598 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ *************** case 1: *** 2917,2927 **** ; break;} case 2: ! #line 622 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {; break;} case 19: ! #line 666 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); --- 2917,2927 ---- ; break;} case 2: ! #line 622 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {; break;} case 19: ! #line 666 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); *************** case 19: *** 2931,2937 **** ; break;} case 20: ! #line 674 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; --- 2931,2937 ---- ; break;} case 20: ! #line 674 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; *************** case 20: *** 2941,2982 **** ; break;} case 24: ! #line 695 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 26: ! #line 704 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = NULL;; break;} case 34: ! #line 716 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 35: ! #line 720 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 38: ! #line 732 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ; break;} case 39: ! #line 737 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 40: ! #line 739 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 43: ! #line 749 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; --- 2941,2982 ---- ; break;} case 24: ! #line 695 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 26: ! #line 704 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = NULL;; break;} case 34: ! #line 716 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 35: ! #line 720 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 38: ! #line 732 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ; break;} case 39: ! #line 737 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 40: ! #line 739 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 43: ! #line 749 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; *************** case 43: *** 3004,3018 **** ; break;} case 44: ! #line 775 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 45: ! #line 777 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 46: ! #line 782 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); /* Don't import java.lang.* twice. */ --- 3004,3018 ---- ; break;} case 44: ! #line 775 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 45: ! #line 777 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 46: ! #line 782 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); /* Don't import java.lang.* twice. */ *************** case 46: *** 3026,3061 **** ; break;} case 47: ! #line 794 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 48: ! #line 796 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 49: ! #line 801 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 50: ! #line 803 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 52: ! #line 806 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 53: ! #line 817 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 54: ! #line 821 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) --- 3026,3061 ---- ; break;} case 47: ! #line 794 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 48: ! #line 796 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 49: ! #line 801 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 50: ! #line 803 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 52: ! #line 806 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 53: ! #line 817 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 54: ! #line 821 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) *************** case 54: *** 3069,3151 **** ; break;} case 55: ! #line 837 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 57: ! #line 840 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 59: ! #line 843 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 60: ! #line 845 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 61: ! #line 847 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 62: ! #line 852 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 63: ! #line 856 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 64: ! #line 858 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 65: ! #line 860 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 66: ! #line 862 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 67: ! #line 866 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 68: ! #line 868 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 69: ! #line 870 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 70: ! #line 878 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 71: ! #line 883 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 888 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 73: ! #line 893 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) --- 3069,3151 ---- ; break;} case 55: ! #line 837 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 57: ! #line 840 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 59: ! #line 843 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 60: ! #line 845 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 61: ! #line 847 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 62: ! #line 852 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 63: ! #line 856 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 64: ! #line 858 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 65: ! #line 860 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 66: ! #line 862 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 67: ! #line 866 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 68: ! #line 868 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 69: ! #line 870 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 70: ! #line 878 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 71: ! #line 883 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 888 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 73: ! #line 893 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) *************** case 73: *** 3155,3161 **** ; break;} case 74: ! #line 901 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) --- 3155,3161 ---- ; break;} case 74: ! #line 901 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) *************** case 74: *** 3165,3190 **** ; break;} case 80: ! #line 920 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_INSTANCE_INITIALIZER_STMT (ctxp); SET_CPC_INSTANCE_INITIALIZER_STMT (ctxp, yyvsp[0].node); ; break;} case 83: ! #line 930 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 84: ! #line 932 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 86: ! #line 939 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 87: ! #line 941 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", --- 3165,3190 ---- ; break;} case 80: ! #line 920 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_INSTANCE_INITIALIZER_STMT (ctxp); SET_CPC_INSTANCE_INITIALIZER_STMT (ctxp, yyvsp[0].node); ; break;} case 83: ! #line 930 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 84: ! #line 932 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 86: ! #line 939 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 87: ! #line 941 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", *************** case 87: *** 3194,3212 **** ; break;} case 89: ! #line 954 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 90: ! #line 956 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 91: ! #line 961 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 92: ! #line 963 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; --- 3194,3212 ---- ; break;} case 89: ! #line 954 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 90: ! #line 956 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 91: ! #line 961 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 92: ! #line 963 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; *************** case 92: *** 3215,3221 **** ; break;} case 93: ! #line 970 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); --- 3215,3221 ---- ; break;} case 93: ! #line 970 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); *************** case 93: *** 3223,3229 **** ; break;} case 94: ! #line 976 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); --- 3223,3229 ---- ; break;} case 94: ! #line 976 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); *************** case 94: *** 3231,3245 **** ; break;} case 96: ! #line 986 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 97: ! #line 988 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 98: ! #line 990 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree node = java_lval.node; if (node && (TREE_CODE (node) == INTEGER_CST --- 3231,3245 ---- ; break;} case 96: ! #line 986 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 97: ! #line 988 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 98: ! #line 990 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree node = java_lval.node; if (node && (TREE_CODE (node) == INTEGER_CST *************** case 98: *** 3251,3261 **** ; break;} case 99: ! #line 1000 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: ! #line 1011 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl --- 3251,3261 ---- ; break;} case 99: ! #line 1000 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: ! #line 1011 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl *************** case 102: *** 3266,3333 **** ; break;} case 103: ! #line 1020 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 104: ! #line 1022 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 105: ! #line 1027 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 106: ! #line 1029 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: ! #line 1031 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: ! #line 1033 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: ! #line 1035 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 110: ! #line 1040 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {RECOVER;; break;} case 111: ! #line 1042 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 112: ! #line 1044 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: ! #line 1046 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 114: ! #line 1054 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 115: ! #line 1059 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 116: ! #line 1061 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = --- 3266,3333 ---- ; break;} case 103: ! #line 1020 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 104: ! #line 1022 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 105: ! #line 1027 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 106: ! #line 1029 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: ! #line 1031 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: ! #line 1033 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: ! #line 1035 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 110: ! #line 1040 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {RECOVER;; break;} case 111: ! #line 1042 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 112: ! #line 1044 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: ! #line 1046 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 114: ! #line 1054 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 115: ! #line 1059 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 116: ! #line 1061 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = *************** case 116: *** 3338,3396 **** ; break;} case 117: ! #line 1070 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 118: ! #line 1072 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 119: ! #line 1077 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 120: ! #line 1081 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 121: ! #line 1086 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing formal parameter term"); RECOVER; ; break;} case 122: ! #line 1091 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 123: ! #line 1095 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 1100 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 125: ! #line 1105 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 126: ! #line 1113 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); --- 3338,3396 ---- ; break;} case 117: ! #line 1070 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 118: ! #line 1072 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 119: ! #line 1077 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 120: ! #line 1081 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 121: ! #line 1086 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing formal parameter term"); RECOVER; ; break;} case 122: ! #line 1091 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 123: ! #line 1095 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 1100 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 125: ! #line 1105 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 126: ! #line 1113 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); *************** case 126: *** 3399,3433 **** ; break;} case 127: ! #line 1122 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 128: ! #line 1124 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: ! #line 1126 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: ! #line 1131 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 131: ! #line 1133 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: ! #line 1135 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 134: ! #line 1140 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 135: ! #line 1146 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); --- 3399,3433 ---- ; break;} case 127: ! #line 1122 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 128: ! #line 1124 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: ! #line 1126 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: ! #line 1131 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 131: ! #line 1133 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: ! #line 1135 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 134: ! #line 1140 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 135: ! #line 1146 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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: *** 3435,3441 **** ; break;} case 136: ! #line 1155 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 */ --- 3435,3441 ---- ; break;} case 136: ! #line 1155 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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: *** 3449,3504 **** ; break;} case 137: ! #line 1171 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 138: ! #line 1176 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 139: ! #line 1181 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 140: ! #line 1183 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 141: ! #line 1188 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 142: ! #line 1193 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 143: ! #line 1201 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 144: ! #line 1206 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 145: ! #line 1208 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 146: ! #line 1210 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: ! #line 1220 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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); --- 3449,3504 ---- ; break;} case 137: ! #line 1171 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 138: ! #line 1176 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 139: ! #line 1181 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 140: ! #line 1183 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 141: ! #line 1188 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 142: ! #line 1193 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 143: ! #line 1201 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 144: ! #line 1206 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 145: ! #line 1208 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 146: ! #line 1210 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: ! #line 1220 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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: *** 3506,3512 **** ; break;} case 149: ! #line 1226 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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); --- 3506,3512 ---- ; break;} case 149: ! #line 1226 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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: *** 3514,3528 **** ; break;} case 150: ! #line 1234 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 151: ! #line 1236 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: ! #line 1241 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; --- 3514,3528 ---- ; break;} case 150: ! #line 1234 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 151: ! #line 1236 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: ! #line 1241 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; *************** case 152: *** 3530,3536 **** ; break;} case 153: ! #line 1247 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; --- 3530,3536 ---- ; break;} case 153: ! #line 1247 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; *************** case 153: *** 3538,3646 **** ; break;} case 154: ! #line 1258 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} case 156: ! #line 1261 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} case 158: ! #line 1264 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 160: ! #line 1267 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 162: ! #line 1270 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 163: ! #line 1272 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 164: ! #line 1277 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 165: ! #line 1282 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 1287 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 167: ! #line 1289 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 168: ! #line 1294 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 169: ! #line 1296 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 174: ! #line 1308 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 175: ! #line 1310 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 177: ! #line 1319 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 178: ! #line 1324 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 179: ! #line 1330 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 180: ! #line 1332 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 181: ! #line 1334 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 182: ! #line 1339 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} case 183: ! #line 1344 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} case 184: ! #line 1348 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 185: ! #line 1354 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) --- 3538,3646 ---- ; break;} case 154: ! #line 1258 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} case 156: ! #line 1261 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} case 158: ! #line 1264 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 160: ! #line 1267 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 162: ! #line 1270 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 163: ! #line 1272 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 164: ! #line 1277 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 165: ! #line 1282 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 1287 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 167: ! #line 1289 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 168: ! #line 1294 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 169: ! #line 1296 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 174: ! #line 1308 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 175: ! #line 1310 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 177: ! #line 1319 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 178: ! #line 1324 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 179: ! #line 1330 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 180: ! #line 1332 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 181: ! #line 1334 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 182: ! #line 1339 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} case 183: ! #line 1344 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} case 184: ! #line 1348 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 185: ! #line 1354 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) *************** case 185: *** 3650,3664 **** ; break;} case 186: ! #line 1362 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 187: ! #line 1367 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { enter_block (); ; break;} case 188: ! #line 1372 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ --- 3650,3664 ---- ; break;} case 186: ! #line 1362 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 187: ! #line 1367 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { enter_block (); ; break;} case 188: ! #line 1372 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ *************** case 188: *** 3671,3704 **** ; break;} case 192: ! #line 1392 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 193: ! #line 1394 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ; break;} case 195: ! #line 1406 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 196: ! #line 1408 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 202: ! #line 1418 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 207: ! #line 1427 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 219: ! #line 1446 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (flag_extraneous_semicolon) { --- 3671,3704 ---- ; break;} case 192: ! #line 1392 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 193: ! #line 1394 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ; break;} case 195: ! #line 1406 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 196: ! #line 1408 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 202: ! #line 1418 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 207: ! #line 1427 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 219: ! #line 1446 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (flag_extraneous_semicolon) { *************** case 219: *** 3709,3715 **** ; break;} case 220: ! #line 1458 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); --- 3709,3715 ---- ; break;} case 220: ! #line 1458 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); *************** case 220: *** 3719,3737 **** ; break;} case 221: ! #line 1469 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 222: ! #line 1471 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 223: ! #line 1476 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 224: ! #line 1483 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ --- 3719,3737 ---- ; break;} case 221: ! #line 1469 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 222: ! #line 1471 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 223: ! #line 1476 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 224: ! #line 1483 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ *************** case 224: *** 3742,3844 **** ; break;} case 225: ! #line 1492 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 226: ! #line 1497 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 227: ! #line 1502 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 228: ! #line 1507 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 229: ! #line 1509 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 230: ! #line 1514 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 231: ! #line 1516 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 232: ! #line 1521 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 233: ! #line 1523 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 234: ! #line 1525 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 235: ! #line 1527 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 236: ! #line 1529 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 244: ! #line 1544 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} case 245: ! #line 1549 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 246: ! #line 1551 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 247: ! #line 1553 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 248: ! #line 1558 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 249: ! #line 1563 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 1568 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { enter_block (); ; break;} case 251: ! #line 1572 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statment also have its own --- 3742,3844 ---- ; break;} case 225: ! #line 1492 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 226: ! #line 1497 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 227: ! #line 1502 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 228: ! #line 1507 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 229: ! #line 1509 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 230: ! #line 1514 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 231: ! #line 1516 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 232: ! #line 1521 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 233: ! #line 1523 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 234: ! #line 1525 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 235: ! #line 1527 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 236: ! #line 1529 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 244: ! #line 1544 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} case 245: ! #line 1549 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 246: ! #line 1551 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 247: ! #line 1553 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 248: ! #line 1558 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 249: ! #line 1563 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 1568 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { enter_block (); ; break;} case 251: ! #line 1572 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statment also have its own *************** case 251: *** 3849,3890 **** ; break;} case 252: ! #line 1584 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 253: ! #line 1589 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 254: ! #line 1591 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 255: ! #line 1593 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 256: ! #line 1601 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 257: ! #line 1603 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 258: ! #line 1605 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 259: ! #line 1607 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 265: ! #line 1626 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; --- 3849,3890 ---- ; break;} case 252: ! #line 1584 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 253: ! #line 1589 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 254: ! #line 1591 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 255: ! #line 1593 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 256: ! #line 1601 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 257: ! #line 1603 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 258: ! #line 1605 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 259: ! #line 1607 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 265: ! #line 1626 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; *************** case 265: *** 3892,3898 **** ; break;} case 266: ! #line 1632 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; --- 3892,3898 ---- ; break;} case 266: ! #line 1632 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; *************** case 266: *** 3900,3956 **** ; break;} case 267: ! #line 1638 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 268: ! #line 1640 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 269: ! #line 1642 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 270: ! #line 1647 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 271: ! #line 1655 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 272: ! #line 1657 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 273: ! #line 1659 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 274: ! #line 1661 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 275: ! #line 1666 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 276: ! #line 1671 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 277: ! #line 1680 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 278: ! #line 1685 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); --- 3900,3956 ---- ; break;} case 267: ! #line 1638 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 268: ! #line 1640 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 269: ! #line 1642 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 270: ! #line 1647 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 271: ! #line 1655 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 272: ! #line 1657 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 273: ! #line 1659 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 274: ! #line 1661 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 275: ! #line 1666 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 276: ! #line 1671 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 277: ! #line 1680 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 278: ! #line 1685 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); *************** case 278: *** 3958,3964 **** ; break;} case 279: ! #line 1691 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 */ --- 3958,3964 ---- ; break;} case 279: ! #line 1691 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 279: *** 3967,3989 **** ; break;} case 280: ! #line 1698 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 281: ! #line 1700 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 282: ! #line 1702 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 283: ! #line 1707 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 284: ! #line 1709 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 */ --- 3967,3989 ---- ; break;} case 280: ! #line 1698 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 281: ! #line 1700 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 282: ! #line 1702 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 283: ! #line 1707 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 284: ! #line 1709 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 284: *** 3992,3998 **** ; break;} case 285: ! #line 1719 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ --- 3992,3998 ---- ; break;} case 285: ! #line 1719 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ *************** case 285: *** 4000,4014 **** ; break;} case 286: ! #line 1725 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 287: ! #line 1727 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 288: ! #line 1732 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ --- 4000,4014 ---- ; break;} case 286: ! #line 1725 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 287: ! #line 1727 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 288: ! #line 1732 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ *************** case 288: *** 4021,4031 **** ; break;} case 289: ! #line 1744 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = empty_stmt_node; ; break;} case 290: ! #line 1746 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Init statement recorded within the previously defined block scope */ --- 4021,4031 ---- ; break;} case 289: ! #line 1744 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = empty_stmt_node; ; break;} case 290: ! #line 1746 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Init statement recorded within the previously defined block scope */ *************** case 290: *** 4033,4039 **** ; break;} case 291: ! #line 1752 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ --- 4033,4039 ---- ; break;} case 291: ! #line 1752 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ *************** case 291: *** 4041,4134 **** ; break;} case 292: ! #line 1758 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 293: ! #line 1762 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = empty_stmt_node;; break;} case 294: ! #line 1764 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 295: ! #line 1769 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 296: ! #line 1771 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 297: ! #line 1773 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 298: ! #line 1778 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 299: ! #line 1780 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 300: ! #line 1782 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 301: ! #line 1784 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 302: ! #line 1789 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 303: ! #line 1791 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 304: ! #line 1793 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 305: ! #line 1795 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 306: ! #line 1800 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 307: ! #line 1802 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 308: ! #line 1804 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 309: ! #line 1806 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 310: ! #line 1811 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 311: ! #line 1816 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 312: ! #line 1818 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 313: ! #line 1823 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = --- 4041,4134 ---- ; break;} case 292: ! #line 1758 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 293: ! #line 1762 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = empty_stmt_node;; break;} case 294: ! #line 1764 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 295: ! #line 1769 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 296: ! #line 1771 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 297: ! #line 1773 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 298: ! #line 1778 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 299: ! #line 1780 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 300: ! #line 1782 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 301: ! #line 1784 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 302: ! #line 1789 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 303: ! #line 1791 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 304: ! #line 1793 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 305: ! #line 1795 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 306: ! #line 1800 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 307: ! #line 1802 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 308: ! #line 1804 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 309: ! #line 1806 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 310: ! #line 1811 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 311: ! #line 1816 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 312: ! #line 1818 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 313: ! #line 1823 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = *************** case 313: *** 4136,4158 **** ; break;} case 314: ! #line 1829 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 315: ! #line 1831 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 316: ! #line 1833 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 317: ! #line 1835 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 318: ! #line 1840 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", --- 4136,4158 ---- ; break;} case 314: ! #line 1829 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 315: ! #line 1831 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 316: ! #line 1833 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 317: ! #line 1835 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 318: ! #line 1840 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", *************** case 318: *** 4163,4195 **** ; break;} case 319: ! #line 1852 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 320: ! #line 1854 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 321: ! #line 1856 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 322: ! #line 1861 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 324: ! #line 1867 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 325: ! #line 1875 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); --- 4163,4195 ---- ; break;} case 319: ! #line 1852 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 320: ! #line 1854 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 321: ! #line 1856 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 322: ! #line 1861 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 324: ! #line 1867 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 325: ! #line 1875 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); *************** case 325: *** 4197,4203 **** ; break;} case 326: ! #line 1883 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is --- 4197,4203 ---- ; break;} case 326: ! #line 1883 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is *************** case 326: *** 4215,4302 **** ; break;} case 327: ! #line 1899 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; break;} case 328: ! #line 1901 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} case 329: ! #line 1906 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} case 330: ! #line 1911 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 331: ! #line 1913 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 335: ! #line 1925 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 336: ! #line 1927 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = yyvsp[-1].node;; break;} case 342: ! #line 1937 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 343: ! #line 1942 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 344: ! #line 1944 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 345: ! #line 1946 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 346: ! #line 1948 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 347: ! #line 1953 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 348: ! #line 1955 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 349: ! #line 1957 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 350: ! #line 1959 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ; break;} case 351: ! #line 1967 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 352: ! #line 1969 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 354: ! #line 1975 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, --- 4215,4302 ---- ; break;} case 327: ! #line 1899 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; break;} case 328: ! #line 1901 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} case 329: ! #line 1906 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} case 330: ! #line 1911 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 331: ! #line 1913 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 335: ! #line 1925 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 336: ! #line 1927 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = yyvsp[-1].node;; break;} case 342: ! #line 1937 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 343: ! #line 1942 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 344: ! #line 1944 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 345: ! #line 1946 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 346: ! #line 1948 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 347: ! #line 1953 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 348: ! #line 1955 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 349: ! #line 1957 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 350: ! #line 1959 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ; break;} case 351: ! #line 1967 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 352: ! #line 1969 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 354: ! #line 1975 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, *************** case 354: *** 4304,4310 **** ; break;} case 356: ! #line 1982 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-4].node, ctor, --- 4304,4310 ---- ; break;} case 356: ! #line 1982 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 356: *** 4312,4346 **** ; break;} case 358: ! #line 1989 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 359: ! #line 1991 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 360: ! #line 1993 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 361: ! #line 1995 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 362: ! #line 1997 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 363: ! #line 1999 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 364: ! #line 2009 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ; break;} case 365: ! #line 2011 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); --- 4312,4346 ---- ; break;} case 358: ! #line 1989 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 359: ! #line 1991 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 360: ! #line 1993 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 361: ! #line 1995 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 362: ! #line 1997 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 363: ! #line 1999 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 364: ! #line 2009 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ; break;} case 365: ! #line 2011 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); *************** case 365: *** 4373,4383 **** ; break;} case 366: ! #line 2042 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 367: ! #line 2044 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); --- 4373,4383 ---- ; break;} case 366: ! #line 2042 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 367: ! #line 2044 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); *************** case 367: *** 4392,4440 **** ; break;} case 368: ! #line 2060 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 369: ! #line 2062 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 370: ! #line 2067 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 371: ! #line 2072 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 372: ! #line 2077 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 373: ! #line 2082 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 374: ! #line 2084 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: ! #line 2086 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 376: ! #line 2088 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 377: ! #line 2092 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); --- 4392,4440 ---- ; break;} case 368: ! #line 2060 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 369: ! #line 2062 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 370: ! #line 2067 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 371: ! #line 2072 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 372: ! #line 2077 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 373: ! #line 2082 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 374: ! #line 2084 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: ! #line 2086 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 376: ! #line 2088 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 377: ! #line 2092 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); *************** case 377: *** 4446,4452 **** ; break;} case 378: ! #line 2102 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; --- 4446,4452 ---- ; break;} case 378: ! #line 2102 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; *************** case 378: *** 4457,4479 **** ; break;} case 379: ! #line 2111 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 380: ! #line 2113 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 381: ! #line 2118 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 382: ! #line 2120 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 383: ! #line 2125 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { --- 4457,4479 ---- ; break;} case 379: ! #line 2111 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 380: ! #line 2113 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 381: ! #line 2118 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 382: ! #line 2120 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 383: ! #line 2125 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { *************** case 383: *** 4485,4495 **** ; break;} case 384: ! #line 2135 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 385: ! #line 2137 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); --- 4485,4495 ---- ; break;} case 384: ! #line 2135 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 385: ! #line 2137 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); *************** case 385: *** 4497,4503 **** ; break;} case 386: ! #line 2146 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb --- 4497,4503 ---- ; break;} case 386: ! #line 2146 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb *************** case 386: *** 4525,4543 **** ; break;} case 387: ! #line 2172 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { CURRENT_OSB (ctxp)++; ; break;} case 388: ! #line 2174 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 389: ! #line 2179 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 390: ! #line 2183 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; --- 4525,4543 ---- ; break;} case 387: ! #line 2172 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { CURRENT_OSB (ctxp)++; ; break;} case 388: ! #line 2174 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 389: ! #line 2179 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 390: ! #line 2183 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; *************** case 390: *** 4545,4563 **** ; break;} case 391: ! #line 2189 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 392: ! #line 2194 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 393: ! #line 2196 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 394: ! #line 2198 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 4545,4563 ---- ; break;} case 391: ! #line 2189 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 392: ! #line 2194 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 393: ! #line 2196 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 394: ! #line 2198 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** case 394: *** 4570,4576 **** ; break;} case 395: ! #line 2209 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 4570,4576 ---- ; break;} case 395: ! #line 2209 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** case 395: *** 4583,4703 **** ; break;} case 396: ! #line 2220 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 397: ! #line 2225 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 398: ! #line 2234 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 399: ! #line 2236 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: ! #line 2241 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 401: ! #line 2243 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 402: ! #line 2245 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 403: ! #line 2250 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 404: ! #line 2255 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 405: ! #line 2260 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 410: ! #line 2275 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 411: ! #line 2280 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 414: ! #line 2287 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 415: ! #line 2289 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: ! #line 2292 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: ! #line 2294 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 419: ! #line 2299 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 420: ! #line 2301 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: ! #line 2306 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 422: ! #line 2308 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 424: ! #line 2314 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 425: ! #line 2316 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: ! #line 2319 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 428: ! #line 2321 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 429: ! #line 2326 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); --- 4583,4703 ---- ; break;} case 396: ! #line 2220 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 397: ! #line 2225 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 398: ! #line 2234 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 399: ! #line 2236 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: ! #line 2241 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 401: ! #line 2243 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 402: ! #line 2245 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 403: ! #line 2250 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 404: ! #line 2255 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 405: ! #line 2260 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 410: ! #line 2275 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 411: ! #line 2280 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 414: ! #line 2287 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 415: ! #line 2289 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: ! #line 2292 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: ! #line 2294 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 419: ! #line 2299 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 420: ! #line 2301 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: ! #line 2306 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 422: ! #line 2308 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 424: ! #line 2314 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 425: ! #line 2316 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: ! #line 2319 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 428: ! #line 2321 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 429: ! #line 2326 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); *************** case 429: *** 4707,4721 **** ; break;} case 430: ! #line 2334 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 431: ! #line 2336 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 432: ! #line 2338 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); --- 4707,4721 ---- ; break;} case 430: ! #line 2334 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 431: ! #line 2336 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 432: ! #line 2338 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); *************** case 432: *** 4730,4983 **** ; break;} case 433: ! #line 2351 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 434: ! #line 2353 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} case 435: ! #line 2358 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 436: ! #line 2360 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 437: ! #line 2362 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 439: ! #line 2368 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 440: ! #line 2373 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 441: ! #line 2378 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 2383 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 443: ! #line 2385 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 444: ! #line 2387 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: ! #line 2393 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 447: ! #line 2398 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 448: ! #line 2403 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 449: ! #line 2405 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 451: ! #line 2411 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 452: ! #line 2416 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 453: ! #line 2421 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 2426 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 455: ! #line 2428 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 456: ! #line 2430 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 458: ! #line 2436 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 459: ! #line 2441 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 460: ! #line 2446 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 2451 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 2456 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 463: ! #line 2458 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 464: ! #line 2460 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 465: ! #line 2462 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: ! #line 2464 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 467: ! #line 2466 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 469: ! #line 2472 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 470: ! #line 2477 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 471: ! #line 2482 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 472: ! #line 2484 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: ! #line 2490 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 475: ! #line 2495 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 477: ! #line 2501 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 478: ! #line 2506 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 480: ! #line 2512 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 481: ! #line 2517 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 483: ! #line 2523 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 484: ! #line 2528 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 486: ! #line 2534 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 487: ! #line 2539 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 489: ! #line 2545 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/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 490: ! #line 2550 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); --- 4730,4983 ---- ; break;} case 433: ! #line 2351 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 434: ! #line 2353 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} case 435: ! #line 2358 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 436: ! #line 2360 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 437: ! #line 2362 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 439: ! #line 2368 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 440: ! #line 2373 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 441: ! #line 2378 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 2383 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 443: ! #line 2385 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 444: ! #line 2387 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: ! #line 2393 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 447: ! #line 2398 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 448: ! #line 2403 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 449: ! #line 2405 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 451: ! #line 2411 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 452: ! #line 2416 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 453: ! #line 2421 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 2426 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 455: ! #line 2428 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 456: ! #line 2430 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 458: ! #line 2436 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 459: ! #line 2441 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 460: ! #line 2446 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 2451 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 2456 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 463: ! #line 2458 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 464: ! #line 2460 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 465: ! #line 2462 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: ! #line 2464 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 467: ! #line 2466 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 469: ! #line 2472 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 470: ! #line 2477 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 471: ! #line 2482 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 472: ! #line 2484 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: ! #line 2490 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 475: ! #line 2495 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 477: ! #line 2501 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 478: ! #line 2506 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 480: ! #line 2512 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 481: ! #line 2517 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 483: ! #line 2523 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 484: ! #line 2528 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 486: ! #line 2534 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 487: ! #line 2539 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 489: ! #line 2545 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/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 490: ! #line 2550 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); *************** case 490: *** 4985,5003 **** ; break;} case 491: ! #line 2556 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 492: ! #line 2558 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 495: ! #line 2568 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 496: ! #line 2570 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); --- 4985,5003 ---- ; break;} case 491: ! #line 2556 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 492: ! #line 2558 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 495: ! #line 2568 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 496: ! #line 2570 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); *************** yyerrhandle: *** 5225,5231 **** } return 1; } ! #line 2595 "/nfs/gandalf/u2/mitchell/gcc-3.0.2/gcc-3.0.2/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the --- 5225,5231 ---- } return 1; } ! #line 2595 "/nfs/gandalf/u2/mitchell/gcc-3.0.3/gcc-3.0.3/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the diff -Nrc3pad gcc-3.0.2/gcc/loop.c gcc-3.0.3/gcc/loop.c *** gcc-3.0.2/gcc/loop.c Tue Sep 4 22:54:42 2001 --- gcc-3.0.3/gcc/loop.c Mon Nov 5 11:10:33 2001 *************** scan_loop (loop, flags) *** 772,777 **** --- 772,778 ---- && (REGNO_LAST_UID (regno) == INSN_UID (regs->array[regno].single_usage)) && regs->array[regno].set_in_loop == 1 + && GET_CODE (SET_SRC (set)) != ASM_OPERANDS && ! side_effects_p (SET_SRC (set)) && ! find_reg_note (p, REG_RETVAL, NULL_RTX) && (! SMALL_REGISTER_CLASSES diff -Nrc3pad gcc-3.0.2/gcc/mklibgcc.in gcc-3.0.3/gcc/mklibgcc.in *** gcc-3.0.2/gcc/mklibgcc.in Wed May 16 18:34:29 2001 --- gcc-3.0.3/gcc/mklibgcc.in Sun Nov 18 16:46:43 2001 *************** done *** 399,405 **** echo 'stmp-dirs: force' echo ' for d in '"$dirs"'; do \' ! echo ' if [ -d $$d ]; then true; else mkdir $$d; fi \' echo ' done' echo ' if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi' --- 399,405 ---- echo 'stmp-dirs: force' echo ' for d in '"$dirs"'; do \' ! echo ' if [ -d $$d ]; then true; else mkdir $$d; fi; \' echo ' done' echo ' if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi' diff -Nrc3pad gcc-3.0.2/gcc/objc/objc-parse.c gcc-3.0.3/gcc/objc/objc-parse.c *** gcc-3.0.2/gcc/objc/objc-parse.c Tue Oct 23 10:57:19 2001 --- gcc-3.0.3/gcc/objc/objc-parse.c Thu Dec 20 11:57:00 2001 *************** yylexname () *** 5399,5410 **** && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl); /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! yylval.ttype = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); return STRING; } } --- 5399,5413 ---- && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl), str; /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! str = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); ! if (yylval.ttype != func_id_node) ! C_ARTIFICIAL_STRING_P (str) = 1; ! yylval.ttype = str; return STRING; } } diff -Nrc3pad gcc-3.0.2/gcc/objc/objc-parse.y gcc-3.0.3/gcc/objc/objc-parse.y *** gcc-3.0.2/gcc/objc/objc-parse.y Tue Oct 23 10:57:19 2001 --- gcc-3.0.3/gcc/objc/objc-parse.y Thu Dec 20 11:57:00 2001 *************** yylexname () *** 3156,3167 **** && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl); /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! yylval.ttype = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); return STRING; } } --- 3156,3170 ---- && DECL_INITIAL (decl) != 0 && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) { ! tree stringval = DECL_INITIAL (decl), str; /* Copy the string value so that we won't clobber anything if we put something in the TREE_CHAIN of this one. */ ! str = build_string (TREE_STRING_LENGTH (stringval), ! TREE_STRING_POINTER (stringval)); ! if (yylval.ttype != func_id_node) ! C_ARTIFICIAL_STRING_P (str) = 1; ! yylval.ttype = str; return STRING; } } diff -Nrc3pad gcc-3.0.2/gcc/po/ChangeLog gcc-3.0.3/gcc/po/ChangeLog *** gcc-3.0.2/gcc/po/ChangeLog Tue Oct 23 10:20:00 2001 --- gcc-3.0.3/gcc/po/ChangeLog Thu Dec 20 11:22:15 2001 *************** *** 1,3 **** --- 1,15 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-11-05 Zack Weinberg + + * POTFILES.in: Add config/rs6000/freebsd.h and the s390 directory. + + 2001-11-03 David O'Brien + + * POTFILES.in: Add config/ia64/freebsd.h. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/po/POTFILES.in gcc-3.0.3/gcc/po/POTFILES.in *** gcc-3.0.2/gcc/po/POTFILES.in Tue Jun 12 17:45:34 2001 --- gcc-3.0.3/gcc/po/POTFILES.in Mon Nov 5 12:13:10 2001 *************** config/i960/vx960-coff.h *** 358,363 **** --- 358,364 ---- config/i960/vx960.h config/i960/xm-i960.h config/ia64/elf.h + config/ia64/freebsd.h config/ia64/fde-glibc.c config/ia64/hpux.h config/ia64/ia64-protos.h *************** config/rs6000/eabisim.h *** 640,645 **** --- 641,647 ---- config/rs6000/linux.h config/rs6000/lynx.h config/rs6000/mach.h + config/rs6000/netbsd.h config/rs6000/rs6000-protos.h config/rs6000/rs6000.c config/rs6000/rs6000.h *************** config/sh/sh-protos.h *** 665,670 **** --- 667,679 ---- config/sh/sh.c config/sh/sh.h config/sh/xm-sh.h + config/s390/linux.h + config/s390/linux64.h + config/s390/s390-protos.h + config/s390/s390.c + config/s390/s390.h + config/s390/xm-s390.h + config/s390/xm-s390x.h config/sparc/aout.h config/sparc/bsd.h config/sparc/chorus.h diff -Nrc3pad gcc-3.0.2/gcc/regmove.c gcc-3.0.3/gcc/regmove.c *** gcc-3.0.2/gcc/regmove.c Tue Sep 18 11:23:37 2001 --- gcc-3.0.3/gcc/regmove.c Mon Nov 5 11:10:33 2001 *************** regmove_optimize (f, nregs, regmove_dump *** 1243,1248 **** --- 1243,1251 ---- if (! regclass_compatible_p (src_class, dst_class)) continue; + if (GET_MODE (src) != GET_MODE (dst)) + continue; + if (fixup_match_1 (insn, set, src, src_subreg, dst, pass, op_no, match_no, regmove_dump_file)) diff -Nrc3pad gcc-3.0.2/gcc/reload1.c gcc-3.0.3/gcc/reload1.c *** gcc-3.0.2/gcc/reload1.c Sat Sep 29 14:51:19 2001 --- gcc-3.0.3/gcc/reload1.c Mon Nov 19 14:04:30 2001 *************** elimination_effects (x, mem_mode) *** 2714,2720 **** } else if (reg_renumber[regno] < 0 && reg_equiv_constant && reg_equiv_constant[regno] ! && ! CONSTANT_P (reg_equiv_constant[regno])) elimination_effects (reg_equiv_constant[regno], mem_mode); return; --- 2714,2720 ---- } else if (reg_renumber[regno] < 0 && reg_equiv_constant && reg_equiv_constant[regno] ! && ! function_invariant_p (reg_equiv_constant[regno])) elimination_effects (reg_equiv_constant[regno], mem_mode); return; diff -Nrc3pad gcc-3.0.2/gcc/stmt.c gcc-3.0.3/gcc/stmt.c *** gcc-3.0.2/gcc/stmt.c Wed Jul 25 06:34:58 2001 --- gcc-3.0.3/gcc/stmt.c Thu Dec 13 23:02:11 2001 *************** struct stmt_status *** 396,401 **** --- 396,403 ---- static int using_eh_for_cleanups_p = 0; static int n_occurrences PARAMS ((int, const char *)); + static bool parse_input_constraint PARAMS ((const char **, int, int, int, + int, tree, bool *, bool *)); static void expand_goto_internal PARAMS ((tree, rtx, rtx)); static int expand_fixup PARAMS ((tree, rtx, rtx)); static rtx expand_nl_handler_label PARAMS ((rtx, rtx)); *************** expand_asm (body) *** 1311,1323 **** Returns TRUE if all went well; FALSE if an error occurred. */ bool ! parse_output_constraint (constraint_p, ! operand_num, ! ninputs, ! noutputs, ! allows_mem, ! allows_reg, ! is_inout) const char **constraint_p; int operand_num; int ninputs; --- 1313,1320 ---- Returns TRUE if all went well; FALSE if an error occurred. */ bool ! parse_output_constraint (constraint_p, operand_num, ninputs, noutputs, ! allows_mem, allows_reg, is_inout) const char **constraint_p; int operand_num; int ninputs; *************** parse_output_constraint (constraint_p, *** 1455,1460 **** --- 1452,1579 ---- return true; } + /* Similar, but for input constraints. */ + + static bool + parse_input_constraint (constraint_p, input_num, ninputs, noutputs, ninout, + outputs, allows_mem, allows_reg) + const char **constraint_p; + int input_num; + int ninputs; + int noutputs; + int ninout; + tree outputs; + bool *allows_mem; + bool *allows_reg; + { + const char *constraint = *constraint_p; + const char *orig_constraint = constraint; + size_t c_len = strlen (constraint); + size_t j; + + /* Assume the constraint doesn't allow the use of either + a register or memory. */ + *allows_mem = false; + *allows_reg = false; + + /* Make sure constraint has neither `=', `+', nor '&'. */ + + for (j = 0; j < c_len; j++) + switch (constraint[j]) + { + case '+': case '=': case '&': + if (constraint == orig_constraint) + { + error ("input operand constraint contains `%c'", constraint[j]); + return false; + } + break; + + case '%': + if (constraint == orig_constraint + && input_num + 1 == ninputs - ninout) + { + error ("`%%' constraint used with last operand"); + return false; + } + break; + + case 'V': case 'm': case 'o': + *allows_mem = true; + break; + + case '<': case '>': + case '?': case '!': case '*': case '#': + case 'E': case 'F': case 'G': case 'H': + case 's': case 'i': case 'n': + case 'I': case 'J': case 'K': case 'L': case 'M': + case 'N': case 'O': case 'P': case ',': + break; + + /* Whether or not a numeric constraint allows a register is + decided by the matching constraint, and so there is no need + to do anything special with them. We must handle them in + the default case, so that we don't unnecessarily force + operands to memory. */ + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + if (constraint[j] >= '0' + noutputs) + { + error ("matching constraint references invalid operand number"); + return false; + } + + /* Try and find the real constraint for this dup. */ + if ((j == 0 && c_len == 1) + || (j == 1 && c_len == 2 && constraint[0] == '%')) + { + tree o = outputs; + + for (j = constraint[j] - '0'; j > 0; --j) + o = TREE_CHAIN (o); + + constraint = TREE_STRING_POINTER (TREE_PURPOSE (o)); + *constraint_p = constraint; + c_len = strlen (constraint); + j = 0; + break; + } + + /* Fall through. */ + + case 'p': case 'r': + *allows_reg = true; + break; + + case 'g': case 'X': + *allows_reg = true; + *allows_mem = true; + break; + + default: + if (! ISALPHA (constraint[j])) + { + error ("invalid punctuation `%c' in constraint", constraint[j]); + return false; + } + if (REG_CLASS_FROM_LETTER (constraint[j]) != NO_REGS) + *allows_reg = true; + #ifdef EXTRA_CONSTRAINT + else + { + /* Otherwise we can't assume anything about the nature of + the constraint except that it isn't purely registers. + Treat it like "g" and hope for the best. */ + *allows_reg = true; + *allows_mem = true; + } + #endif + break; + } + + return true; + } + /* Generate RTL for an asm statement with arguments. STRING is the instruction template. OUTPUTS is a list of output arguments (lvalues); INPUTS a list of inputs. *************** expand_asm_operands (string, outputs, in *** 1481,1487 **** rtx body; int ninputs = list_length (inputs); int noutputs = list_length (outputs); ! int ninout = 0; int nclobbers; tree tail; register int i; --- 1600,1606 ---- rtx body; int ninputs = list_length (inputs); int noutputs = list_length (outputs); ! int ninout; int nclobbers; tree tail; register int i; *************** expand_asm_operands (string, outputs, in *** 1569,1574 **** --- 1688,1697 ---- } } + /* First pass over inputs and outputs checks validity and sets + mark_addressable if needed. */ + + ninout = 0; for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++) { tree val = TREE_VALUE (tail); *************** expand_asm_operands (string, outputs, in *** 1582,1605 **** if (type == error_mark_node) return; ! /* Make sure constraint has `=' and does not have `+'. Also, see ! if it allows any register. Be liberal on the latter test, since ! the worst that happens if we get it wrong is we issue an error ! message. */ constraint = TREE_STRING_POINTER (TREE_PURPOSE (tail)); ! output_constraints[i] = constraint; ! /* Try to parse the output constraint. If that fails, there's ! no point in going further. */ ! if (!parse_output_constraint (&output_constraints[i], ! i, ! ninputs, ! noutputs, ! &allows_mem, ! &allows_reg, &is_inout)) ! return; /* If an output operand is not a decl or indirect ref and our constraint allows a register, make a temporary to act as an intermediate. --- 1705,1771 ---- if (type == error_mark_node) return; ! /* Try to parse the output constraint. If that fails, there's ! no point in going further. */ ! constraint = TREE_STRING_POINTER (TREE_PURPOSE (tail)); ! if (!parse_output_constraint (&constraint, i, ninputs, noutputs, ! &allows_mem, &allows_reg, &is_inout)) ! return; ! ! if (! allows_reg ! && (allows_mem ! || is_inout ! || (DECL_P (val) ! && GET_CODE (DECL_RTL (val)) == REG ! && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type)))) ! mark_addressable (val); ! ! if (is_inout) ! ninout++; ! } ! ! ninputs += ninout; ! if (ninputs + noutputs > MAX_RECOG_OPERANDS) ! { ! error ("more than %d operands in `asm'", MAX_RECOG_OPERANDS); ! return; ! } ! ! for (i = 0, tail = inputs; tail; i++, tail = TREE_CHAIN (tail)) ! { ! bool allows_reg, allows_mem; ! const char *constraint; ! ! /* If there's an erroneous arg, emit no insn, because the ASM_INPUT ! would get VOIDmode and that could cause a crash in reload. */ ! if (TREE_TYPE (TREE_VALUE (tail)) == error_mark_node) ! return; constraint = TREE_STRING_POINTER (TREE_PURPOSE (tail)); ! if (! parse_input_constraint (&constraint, i, ninputs, noutputs, ninout, ! outputs, &allows_mem, &allows_reg)) ! return; ! if (! allows_reg && allows_mem) ! mark_addressable (TREE_VALUE (tail)); ! } ! ! /* Second pass evaluates arguments. */ ! ! ninout = 0; ! for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++) ! { ! tree val = TREE_VALUE (tail); ! tree type = TREE_TYPE (val); ! bool is_inout; ! bool allows_reg; ! bool allows_mem; ! ! output_constraints[i] = TREE_STRING_POINTER (TREE_PURPOSE (tail)); ! if (!parse_output_constraint (&output_constraints[i], i, ninputs, ! noutputs, &allows_mem, &allows_reg, &is_inout)) ! abort (); /* If an output operand is not a decl or indirect ref and our constraint allows a register, make a temporary to act as an intermediate. *************** expand_asm_operands (string, outputs, in *** 1618,1629 **** || ! allows_reg || is_inout) { - if (! allows_reg) - mark_addressable (TREE_VALUE (tail)); - output_rtx[i] ! = expand_expr (TREE_VALUE (tail), NULL_RTX, VOIDmode, ! EXPAND_MEMORY_USE_WO); if (! allows_reg && GET_CODE (output_rtx[i]) != MEM) error ("output number %d not directly addressable", i); --- 1784,1791 ---- || ! allows_reg || is_inout) { output_rtx[i] ! = expand_expr (val, NULL_RTX, VOIDmode, EXPAND_MEMORY_USE_WO); if (! allows_reg && GET_CODE (output_rtx[i]) != MEM) error ("output number %d not directly addressable", i); *************** expand_asm_operands (string, outputs, in *** 1646,1663 **** if (is_inout) { ! inout_mode[ninout] = TYPE_MODE (TREE_TYPE (TREE_VALUE (tail))); inout_opnum[ninout++] = i; } } - ninputs += ninout; - if (ninputs + noutputs > MAX_RECOG_OPERANDS) - { - error ("more than %d operands in `asm'", MAX_RECOG_OPERANDS); - return; - } - /* Make vectors for the expression-rtx and constraint strings. */ argvec = rtvec_alloc (ninputs); --- 1808,1818 ---- if (is_inout) { ! inout_mode[ninout] = TYPE_MODE (type); inout_opnum[ninout++] = i; } } /* Make vectors for the expression-rtx and constraint strings. */ argvec = rtvec_alloc (ninputs); *************** expand_asm_operands (string, outputs, in *** 1674,1827 **** /* Eval the inputs and put them into ARGVEC. Put their constraints into ASM_INPUTs and store in CONSTRAINTS. */ ! i = 0; ! for (tail = inputs; tail; tail = TREE_CHAIN (tail)) { ! int j; ! int allows_reg = 0, allows_mem = 0; ! const char *constraint, *orig_constraint; ! int c_len; rtx op; - /* If there's an erroneous arg, emit no insn, - because the ASM_INPUT would get VOIDmode - and that could cause a crash in reload. */ - if (TREE_TYPE (TREE_VALUE (tail)) == error_mark_node) - return; - - /* ??? Can this happen, and does the error message make any sense? */ - if (TREE_PURPOSE (tail) == NULL_TREE) - { - error ("hard register `%s' listed as input operand to `asm'", - TREE_STRING_POINTER (TREE_VALUE (tail)) ); - return; - } - constraint = TREE_STRING_POINTER (TREE_PURPOSE (tail)); ! c_len = strlen (constraint); ! orig_constraint = constraint; ! ! /* Make sure constraint has neither `=', `+', nor '&'. */ ! ! for (j = 0; j < c_len; j++) ! switch (constraint[j]) ! { ! case '+': case '=': case '&': ! if (constraint == orig_constraint) ! { ! error ("input operand constraint contains `%c'", ! constraint[j]); ! return; ! } ! break; ! ! case '%': ! if (constraint == orig_constraint ! && i + 1 == ninputs - ninout) ! { ! error ("`%%' constraint used with last operand"); ! return; ! } ! break; ! ! case 'V': case 'm': case 'o': ! allows_mem = 1; ! break; ! ! case '<': case '>': ! case '?': case '!': case '*': case '#': ! case 'E': case 'F': case 'G': case 'H': ! case 's': case 'i': case 'n': ! case 'I': case 'J': case 'K': case 'L': case 'M': ! case 'N': case 'O': case 'P': case ',': ! break; ! ! /* Whether or not a numeric constraint allows a register is ! decided by the matching constraint, and so there is no need ! to do anything special with them. We must handle them in ! the default case, so that we don't unnecessarily force ! operands to memory. */ ! case '0': case '1': case '2': case '3': case '4': ! case '5': case '6': case '7': case '8': case '9': ! if (constraint[j] >= '0' + noutputs) ! { ! error ! ("matching constraint references invalid operand number"); ! return; ! } ! ! /* Try and find the real constraint for this dup. */ ! if ((j == 0 && c_len == 1) ! || (j == 1 && c_len == 2 && constraint[0] == '%')) ! { ! tree o = outputs; ! ! for (j = constraint[j] - '0'; j > 0; --j) ! o = TREE_CHAIN (o); ! ! constraint = TREE_STRING_POINTER (TREE_PURPOSE (o)); ! c_len = strlen (constraint); ! j = 0; ! break; ! } ! ! /* Fall through. */ ! ! case 'p': case 'r': ! allows_reg = 1; ! break; ! ! case 'g': case 'X': ! allows_reg = 1; ! allows_mem = 1; ! break; ! ! default: ! if (! ISALPHA (constraint[j])) ! { ! error ("invalid punctuation `%c' in constraint", ! constraint[j]); ! return; ! } ! if (REG_CLASS_FROM_LETTER (constraint[j]) != NO_REGS) ! allows_reg = 1; ! #ifdef EXTRA_CONSTRAINT ! else ! { ! /* Otherwise we can't assume anything about the nature of ! the constraint except that it isn't purely registers. ! Treat it like "g" and hope for the best. */ ! allows_reg = 1; ! allows_mem = 1; ! } ! #endif ! break; ! } ! if (! allows_reg && allows_mem) ! mark_addressable (TREE_VALUE (tail)); ! op = expand_expr (TREE_VALUE (tail), NULL_RTX, VOIDmode, 0); /* Never pass a CONCAT to an ASM. */ - generating_concat_p = 0; if (GET_CODE (op) == CONCAT) op = force_reg (GET_MODE (op), op); if (asm_operand_ok (op, constraint) <= 0) { if (allows_reg) ! op = force_reg (TYPE_MODE (TREE_TYPE (TREE_VALUE (tail))), op); else if (!allows_mem) warning ("asm operand %d probably doesn't match constraints", i); else if (CONSTANT_P (op)) ! op = force_const_mem (TYPE_MODE (TREE_TYPE (TREE_VALUE (tail))), ! op); else if (GET_CODE (op) == REG || GET_CODE (op) == SUBREG || GET_CODE (op) == CONCAT) { - tree type = TREE_TYPE (TREE_VALUE (tail)); tree qual_type = build_qualified_type (type, (TYPE_QUALS (type) | TYPE_QUAL_CONST)); --- 1829,1868 ---- /* Eval the inputs and put them into ARGVEC. Put their constraints into ASM_INPUTs and store in CONSTRAINTS. */ ! for (i = 0, tail = inputs; tail; i++, tail = TREE_CHAIN (tail)) { ! bool allows_reg, allows_mem; ! const char *constraint; ! tree val, type; rtx op; constraint = TREE_STRING_POINTER (TREE_PURPOSE (tail)); ! if (! parse_input_constraint (&constraint, i, ninputs, noutputs, ninout, ! outputs, &allows_mem, &allows_reg)) ! abort (); ! generating_concat_p = 0; ! val = TREE_VALUE (tail); ! type = TREE_TYPE (val); ! op = expand_expr (val, NULL_RTX, VOIDmode, 0); /* Never pass a CONCAT to an ASM. */ if (GET_CODE (op) == CONCAT) op = force_reg (GET_MODE (op), op); if (asm_operand_ok (op, constraint) <= 0) { if (allows_reg) ! op = force_reg (TYPE_MODE (type), op); else if (!allows_mem) warning ("asm operand %d probably doesn't match constraints", i); else if (CONSTANT_P (op)) ! op = force_const_mem (TYPE_MODE (type), op); else if (GET_CODE (op) == REG || GET_CODE (op) == SUBREG || GET_CODE (op) == CONCAT) { tree qual_type = build_qualified_type (type, (TYPE_QUALS (type) | TYPE_QUAL_CONST)); *************** expand_asm_operands (string, outputs, in *** 1830,1840 **** emit_move_insn (memloc, op); op = memloc; } - else if (GET_CODE (op) == MEM && MEM_VOLATILE_P (op)) ! /* We won't recognize volatile memory as available a ! memory_operand at this point. Ignore it. */ ! ; else if (queued_subexp_p (op)) ; else --- 1871,1881 ---- emit_move_insn (memloc, op); op = memloc; } else if (GET_CODE (op) == MEM && MEM_VOLATILE_P (op)) ! { ! /* We won't recognize volatile memory as available a ! memory_operand at this point. Ignore it. */ ! } else if (queued_subexp_p (op)) ; else *************** expand_asm_operands (string, outputs, in *** 1843,1855 **** not satisfied. */ warning ("asm operand %d probably doesn't match constraints", i); } generating_concat_p = old_generating_concat_p; ASM_OPERANDS_INPUT (body, i) = op; ASM_OPERANDS_INPUT_CONSTRAINT_EXP (body, i) ! = gen_rtx_ASM_INPUT (TYPE_MODE (TREE_TYPE (TREE_VALUE (tail))), ! orig_constraint); ! i++; } /* Protect all the operands from the queue now that they have all been --- 1884,1896 ---- not satisfied. */ warning ("asm operand %d probably doesn't match constraints", i); } + generating_concat_p = old_generating_concat_p; ASM_OPERANDS_INPUT (body, i) = op; ASM_OPERANDS_INPUT_CONSTRAINT_EXP (body, i) ! = gen_rtx_ASM_INPUT (TYPE_MODE (type), ! TREE_STRING_POINTER (TREE_PURPOSE (tail))); } /* Protect all the operands from the queue now that they have all been diff -Nrc3pad gcc-3.0.2/gcc/stor-layout.c gcc-3.0.3/gcc/stor-layout.c *** gcc-3.0.2/gcc/stor-layout.c Tue Sep 4 22:54:42 2001 --- gcc-3.0.3/gcc/stor-layout.c Sun Dec 9 18:31:08 2001 *************** place_union_field (rli, field) *** 613,618 **** --- 613,622 ---- MIN (desired_align, (unsigned) BIGGEST_FIELD_ALIGNMENT); #endif + #ifdef ADJUST_FIELD_ALIGN + desired_align = ADJUST_FIELD_ALIGN (field, desired_align); + #endif + /* Union must be at least as aligned as any field requires. */ rli->record_align = MAX (rli->record_align, desired_align); diff -Nrc3pad gcc-3.0.2/gcc/testsuite/ChangeLog gcc-3.0.3/gcc/testsuite/ChangeLog *** gcc-3.0.2/gcc/testsuite/ChangeLog Tue Oct 23 10:20:08 2001 --- gcc-3.0.3/gcc/testsuite/ChangeLog Thu Dec 20 11:22:22 2001 *************** *** 1,3 **** --- 1,32 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-11 Neil Booth + + * gcc.dg/concat.c: New test. + + 2001-12-06 Richard Henderson + + * gcc.c-torture/compile/20011205-1.c: New test. + + 2001-11-30 Jakub Jelinek + + * gcc.c-torture/compile/20011109-1.c: New test. + + 2001-11-29 Mark Mitchell + + * g++.old-deja/g++.pt/memtemp100.C: Remove non-standard + constructs. + + 2001-11-24 Neil Booth + + * gcc.dg/cpp/redef2.c: Update. + + 2001-10-30 Jakub Jelinek + + * gcc.c-torture/compile/20011029-1.c: New test. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.dg/ref1.C gcc-3.0.3/gcc/testsuite/g++.dg/ref1.C *** gcc-3.0.2/gcc/testsuite/g++.dg/ref1.C Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/g++.dg/ref1.C Tue Nov 20 00:58:35 2001 *************** *** 0 **** --- 1,47 ---- + // Origin: Peter Schmid + + // { dg-do link } + + template + class Ptr { + protected: + T * ptr; + + public: + + Ptr(void) : ptr(0) { }; + Ptr(T * p) : ptr(p) { }; + + ~Ptr(void) { delete ptr; } + + operator T & () { return *ptr; } + }; + + class base { + public: + base(void) { } + ~base(void) { } + }; + + + class foo : public base { + private: + foo(const foo & rv); + + public: + + foo(void) { } + ~foo(void) { } + }; + + void func2(base & b) { + // ... + } + + int main () { + Ptr f = new foo; + /* This should not result in a copy; the result of the conversion + operator should be bound directly to the reference argument to + `func2'. */ + func2(f); + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.dg/sizeof1.C gcc-3.0.3/gcc/testsuite/g++.dg/sizeof1.C *** gcc-3.0.2/gcc/testsuite/g++.dg/sizeof1.C Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/g++.dg/sizeof1.C Mon Nov 19 20:39:26 2001 *************** *** 0 **** --- 1,15 ---- + // Test use of `sizeof' as a template parameter. + // Origin: smacdonald@seimac.com + + // { dg-do compile } + + template struct A {}; + + template + struct B + { + char * f() const + { + return (A::value); + } + }; diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.law/cvt7.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.law/cvt7.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.law/cvt7.C Mon May 14 12:38:09 2001 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.law/cvt7.C Thu Nov 29 12:16:18 2001 *************** *** 10,17 **** class A { public: ! A(int j) { i = j; } // ERROR - candidate ! A(A& a) { i = a.i; } // ERROR - candidate operator int() { return i; } void assign(int v) { i = v; } --- 10,17 ---- class A { public: ! A(int j) { i = j; } ! A(A& a) { i = a.i; } operator int() { return i; } void assign(int v) { i = v; } *************** B::run() *** 37,46 **** // Replacing above with "switch (int(in))" removes the error. { case 0: ! out = 1; // ERROR - no usable copy ctor break; default: ! out = 0; // ERROR - no usable copy ctor break; } } --- 37,46 ---- // Replacing above with "switch (int(in))" removes the error. { case 0: ! out = 1; break; default: ! out = 0; break; } } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.mike/p5469.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.mike/p5469.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.mike/p5469.C Sat Dec 9 10:34:12 2000 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.mike/p5469.C Thu Nov 29 12:16:18 2001 *************** int count; *** 4,10 **** class A { A(); ! A(const A&); // ERROR - referenced below public: A(int) { ++count; } ~A() { --count; } --- 4,10 ---- class A { A(); ! A(const A&); public: A(int) { ++count; } ~A() { --count; } *************** public: *** 14,20 **** int main() { { A a (1); ! if (a == 2 && a == 1) // ERROR - private copy ctor ; } return count; --- 14,20 ---- int main() { { A a (1); ! if (a == 2 && a == 1) ; } return count; diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C Sat Dec 9 10:34:12 2000 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C Thu Nov 29 13:44:11 2001 *************** int count; *** 4,10 **** class A { A(); ! A(const A&); // ERROR - referenced below public: A(int) { ++count; } ~A() { --count; } --- 4,10 ---- class A { A(); ! A(const A&); public: A(int) { ++count; } ~A() { --count; } *************** public: *** 14,20 **** int main() { { A a (1); ! if (a == 2 || a == 1) // ERROR - private copy ctor ; } return count; --- 14,20 ---- int main() { { A a (1); ! if (a == 2 || a == 1) ; } return count; diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Tue Oct 23 10:20:13 2001 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Thu Dec 20 11:22:27 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.other/copy3.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.other/copy3.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.other/copy3.C Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.other/copy3.C Thu Nov 29 12:16:18 2001 *************** *** 0 **** --- 1,23 ---- + // Build don't run: + // Origin: ericp@mit.edu + + class bar { + }; + + class foo { + foo (const foo &f); + + public: + + foo (bar x) {} + foo () {} + + void test (const foo &f) {} + }; + + int main (void) { + foo f; + bar b; + + f.test (b); + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.other/externC5.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.other/externC5.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.other/externC5.C Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.other/externC5.C Thu Nov 29 19:12:45 2001 *************** *** 0 **** --- 1,19 ---- + // Build don't link: + // Origin: schmid@snake.iap.physik.tu-darmstadt.de + + extern "C" int rand (void) throw (); + + namespace std + { + extern "C" int rand(void) throw(); + template void f(T a) {} + } + + using namespace std; + + int main() + { + f(rand); + f(std::rand); + f(::rand); + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C Thu Nov 29 10:51:19 2001 *************** *** 0 **** --- 1,40 ---- + // Build don't link: + // Origin: philippeb@videotron.ca + // Special g++ Options: + + #include + + using namespace std; + + template struct traits + { + typedef long next; + }; + + + template + struct c1 + { + template + struct c2 + { + c2() + { + cout << __PRETTY_FUNCTION__ << endl; + } + }; + }; + + + template + void foo() + { + cout << __PRETTY_FUNCTION__ << endl; + typename c1::next>::template c2(); + } + + + int main() + { + foo(); + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.warn/virt1.C gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.warn/virt1.C *** gcc-3.0.2/gcc/testsuite/g++.old-deja/g++.warn/virt1.C Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/g++.old-deja/g++.warn/virt1.C Thu Nov 29 13:49:56 2001 *************** *** 0 **** --- 1,10 ---- + // Special g++ Options: -Woverloaded-virtual + // Build don't link: + + struct A { + virtual void f(); // WARNING - hidden + }; + + struct B: public A { + void f(int); // WARNING - by this + }; diff -Nrc3pad gcc-3.0.2/gcc/testsuite/gcc.c-torture/compile/20011029-1.c gcc-3.0.3/gcc/testsuite/gcc.c-torture/compile/20011029-1.c *** gcc-3.0.2/gcc/testsuite/gcc.c-torture/compile/20011029-1.c Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/gcc.c-torture/compile/20011029-1.c Tue Oct 30 10:01:18 2001 *************** *** 0 **** --- 1,9 ---- + void foo (void *) __attribute__ ((noreturn)); + + void + bar (void *x) + { + if (__builtin_setjmp (x)) + return; + foo (x); + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/gcc.c-torture/compile/20011109-1.c gcc-3.0.3/gcc/testsuite/gcc.c-torture/compile/20011109-1.c *** gcc-3.0.2/gcc/testsuite/gcc.c-torture/compile/20011109-1.c Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/gcc.c-torture/compile/20011109-1.c Fri Nov 30 11:44:04 2001 *************** *** 0 **** --- 1,51 ---- + typedef struct { short x[4]; } S; + typedef struct { unsigned int a, b, c; S *d; } T; + + S *(*foo) (T *, int, int, int, int); + unsigned short *(*bar)(const T *); + unsigned short baz(T *,const int); + + T *die (void) + { + typedef struct { unsigned int a, b, e; double f, g; } U; + + char h[8], i[2053], j[2053]; + double k, l, m; + U n; + T *o; + unsigned short p; + int q, r; + long s; + unsigned short *t; + S *u; + unsigned char *v, *w; + unsigned int x; + + o = 0; + for (x = 0; x < n.e; x++) + { + l = 1.0; + if (n.g - n.f <= 1.0) + l = ((1 << o->c) - 1) / (n.g - n.f); + v = w; + for (r = o->b - 1; r >= 0; r--) + { + u = foo (o, 0, r, o->a, 1); + if (!u) + break; + t = bar (o); + for (q = 0; q < (int) o->a; q++) + { + h[0] = *v; + s = *v++; + k = (double) s; + m = l*k; + p = m < 0 ? 0 : m > (1 << o->c) - 1 ? (1 << o->c) - 1 : m + 0.5; + p = baz (o,p); + t[q] = p; + *u++ = o->d[p]; + } + } + } + return o; + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/gcc.c-torture/compile/20011205-1.c gcc-3.0.3/gcc/testsuite/gcc.c-torture/compile/20011205-1.c *** gcc-3.0.2/gcc/testsuite/gcc.c-torture/compile/20011205-1.c Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/gcc.c-torture/compile/20011205-1.c Thu Dec 6 16:21:32 2001 *************** *** 0 **** --- 1,10 ---- + /* Failure to mark_addressable all operands before evaluation means we + don't set up the proper temporaries, which leaves us with an asm that + doesn't match its contraints. */ + + long foo() + { + long x; + asm("" : "=r"(x) : "m"(x)); + return x; + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/gcc.dg/concat.c gcc-3.0.3/gcc/testsuite/gcc.dg/concat.c *** gcc-3.0.2/gcc/testsuite/gcc.dg/concat.c Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/gcc/testsuite/gcc.dg/concat.c Tue Dec 11 14:17:25 2001 *************** *** 0 **** --- 1,16 ---- + /* Copyright (C) 2001 Free Software Foundation, Inc. */ + + /* { dg-do compile } */ + + /* Test we output a warning for concatenation of artifical strings. + + Neil Booth, 10 Dec 2001. */ + + void foo () + { + char str1[] = __FUNCTION__ "."; /* { dg-warning "deprecated" } */ + char str2[] = __PRETTY_FUNCTION__ ".";/* { dg-warning "deprecated" } */ + char str3[] = "." __FUNCTION__; /* { dg-warning "deprecated" } */ + char str4[] = "." __PRETTY_FUNCTION__;/* { dg-warning "deprecated" } */ + char str5[] = "." "."; /* No warning. */ + } diff -Nrc3pad gcc-3.0.2/gcc/testsuite/gcc.dg/cpp/redef2.c gcc-3.0.3/gcc/testsuite/gcc.dg/cpp/redef2.c *** gcc-3.0.2/gcc/testsuite/gcc.dg/cpp/redef2.c Sat Dec 9 04:07:56 2000 --- gcc-3.0.3/gcc/testsuite/gcc.dg/cpp/redef2.c Sat Nov 24 05:44:36 2001 *************** *** 1,7 **** /* Test for redefining macros with significant differences. */ /* { dg-do preprocess } ! { dg-options "-ansi -pedantic -Wall -fno-show-column" } */ #define mac(a, b) (a) + (b) #define mac(a, b) (a) * (b) --- 1,7 ---- /* Test for redefining macros with significant differences. */ /* { dg-do preprocess } ! { dg-options "-ansi -Wall -fno-show-column" } */ #define mac(a, b) (a) + (b) #define mac(a, b) (a) * (b) *************** *** 14,19 **** --- 14,22 ---- #define va(a...) a #define va(...) __VA_ARGS__ + #define foo(x) x + #define foo(x)x /* { dg-bogus "redefined" "redefined foo" } */ + /* { dg-warning "redefined" "redef mac" { target *-*-* } 7 } { dg-warning "redefined" "redef mac" { target *-*-* } 8 } { dg-warning "redefined" "redef mac" { target *-*-* } 9 } *************** *** 25,30 **** { dg-warning "previous" "prev def mac" { target *-*-* } 8 } { dg-warning "previous" "prev def ro" { target *-*-* } 11 } { dg-warning "previous" "prev def va" { target *-*-* } 14 } ! ! { dg-warning "named var" "named variadic" { target *-*-* } 14 } ! { dg-warning "anonymous var" "anon variadic" { target *-*-* } 15 } */ --- 28,31 ---- { dg-warning "previous" "prev def mac" { target *-*-* } 8 } { dg-warning "previous" "prev def ro" { target *-*-* } 11 } { dg-warning "previous" "prev def va" { target *-*-* } 14 } ! */ diff -Nrc3pad gcc-3.0.2/gcc/tlink.c gcc-3.0.3/gcc/tlink.c *** gcc-3.0.2/gcc/tlink.c Fri May 4 07:45:09 2001 --- gcc-3.0.3/gcc/tlink.c Thu Nov 29 18:55:39 2001 *************** scan_linker_output (fname) *** 668,673 **** --- 668,674 ---- mistakenly use GNU ld's "In function `foo':" message. */ if (q && (strstr (oldq, "ndefined") || strstr (oldq, "nresolved") + || strstr (oldq, "nsatisfied") || strstr (oldq, "ultiple"))) { *q = 0; diff -Nrc3pad gcc-3.0.2/gcc/toplev.c gcc-3.0.3/gcc/toplev.c *** gcc-3.0.2/gcc/toplev.c Tue Jun 26 12:27:49 2001 --- gcc-3.0.3/gcc/toplev.c Sun Oct 28 12:11:11 2001 *************** lang_independent_options f_options[] = *** 1080,1086 **** {"fast-math", &flag_fast_math, 1, N_("Improve FP speed by violating ANSI & IEEE rules") }, {"common", &flag_no_common, 0, ! N_("Do not put unitialised globals in the common section") }, {"inhibit-size-directive", &flag_inhibit_size_directive, 1, N_("Do not generate .size directives") }, {"function-sections", &flag_function_sections, 1, --- 1080,1086 ---- {"fast-math", &flag_fast_math, 1, N_("Improve FP speed by violating ANSI & IEEE rules") }, {"common", &flag_no_common, 0, ! N_("Do not put uninitialized globals in the common section") }, {"inhibit-size-directive", &flag_inhibit_size_directive, 1, N_("Do not generate .size directives") }, {"function-sections", &flag_function_sections, 1, *************** lang_independent_options W_options[] = *** 1492,1498 **** {"unreachable-code", &warn_notreached, 1, N_("Warn about code that will never be executed") }, {"uninitialized", &warn_uninitialized, 1, ! N_("Warn about unitialized automatic variables") }, {"inline", &warn_inline, 1, N_("Warn when an inlined function cannot be inlined") }, {"packed", &warn_packed, 1, --- 1492,1498 ---- {"unreachable-code", &warn_notreached, 1, N_("Warn about code that will never be executed") }, {"uninitialized", &warn_uninitialized, 1, ! N_("Warn about uninitialized automatic variables") }, {"inline", &warn_inline, 1, N_("Warn when an inlined function cannot be inlined") }, {"packed", &warn_packed, 1, diff -Nrc3pad gcc-3.0.2/gcc/unroll.c gcc-3.0.3/gcc/unroll.c *** gcc-3.0.2/gcc/unroll.c Thu Oct 11 12:39:52 2001 --- gcc-3.0.3/gcc/unroll.c Sat Dec 1 05:28:57 2001 *************** unroll_loop (loop, insn_count, strength_ *** 900,905 **** --- 900,908 ---- register rtx diff; rtx *labels; int abs_inc, neg_inc; + enum rtx_code cc = loop_info->comparison_code; + int less_p = (cc == LE || cc == LEU || cc == LT || cc == LTU); + int unsigned_p = (cc == LEU || cc == GEU || cc == LTU || cc == GTU); map->reg_map = (rtx *) xmalloc (maxregnum * sizeof (rtx)); *************** unroll_loop (loop, insn_count, strength_ *** 932,942 **** a constant. We must copy the final and initial values here to avoid ! improperly shared rtl. */ ! diff = expand_binop (mode, sub_optab, copy_rtx (final_value), ! copy_rtx (initial_value), NULL_RTX, 0, ! OPTAB_LIB_WIDEN); /* Now calculate (diff % (unroll * abs (increment))) by using an and instruction. */ --- 935,959 ---- a constant. We must copy the final and initial values here to avoid ! improperly shared rtl. ! We have to deal with for (i = 0; --i < 6;) type loops. ! For such loops the real final value is the first time the ! loop variable overflows, so the diff we calculate is the ! distance from the overflow value. This is 0 or ~0 for ! unsigned loops depending on the direction, or INT_MAX, ! INT_MAX+1 for signed loops. We really do not need the ! exact value, since we are only interested in the diff ! modulo the increment, and the increment is a power of 2, ! so we can pretend that the overflow value is 0/~0. */ ! ! if (cc == NE || less_p != neg_inc) ! diff = expand_binop (mode, sub_optab, copy_rtx (final_value), ! copy_rtx (initial_value), NULL_RTX, 0, ! OPTAB_LIB_WIDEN); ! else ! diff = expand_unop (mode, neg_inc ? one_cmpl_optab : neg_optab, ! copy_rtx (initial_value), NULL_RTX, 0); /* Now calculate (diff % (unroll * abs (increment))) by using an and instruction. */ *************** unroll_loop (loop, insn_count, strength_ *** 957,967 **** case. This check does not apply if the loop has a NE comparison at the end. */ ! if (loop_info->comparison_code != NE) { ! emit_cmp_and_jump_insns (initial_value, final_value, ! neg_inc ? LE : GE, ! NULL_RTX, mode, 0, 0, labels[1]); JUMP_LABEL (get_last_insn ()) = labels[1]; LABEL_NUSES (labels[1])++; } --- 974,988 ---- case. This check does not apply if the loop has a NE comparison at the end. */ ! if (cc != NE) { ! rtx incremented_initval; ! incremented_initval = expand_binop (mode, add_optab, ! initial_value, increment, ! NULL_RTX,0, OPTAB_LIB_WIDEN); ! emit_cmp_and_jump_insns (incremented_initval, final_value, ! less_p ? GE : LE, NULL_RTX, ! mode, unsigned_p, 0, labels[1]); JUMP_LABEL (get_last_insn ()) = labels[1]; LABEL_NUSES (labels[1])++; } *************** loop_iterations (loop) *** 3506,3523 **** do { ! if (GET_CODE (temp) == JUMP_INSN ! /* Previous unrolling may have generated new insns not covered ! by the uid_luid array. */ ! && INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop ! /* Check if we jump back into the loop body. */ ! && INSN_LUID (JUMP_LABEL (temp)) > INSN_LUID (loop->top) ! && INSN_LUID (JUMP_LABEL (temp)) < INSN_LUID (loop->cont)) { ! if (loop_dump_stream) ! fprintf (loop_dump_stream, ! "Loop iterations: Loop has multiple back edges.\n"); ! return 0; } } while ((temp = PREV_INSN (temp)) != loop->cont); --- 3527,3557 ---- do { ! if (GET_CODE (temp) == JUMP_INSN) { ! /* There are some kinds of jumps we can't deal with easily. */ ! if (JUMP_LABEL (temp) == 0) ! { ! if (loop_dump_stream) ! fprintf ! (loop_dump_stream, ! "Loop iterations: Jump insn has null JUMP_LABEL.\n"); ! return 0; ! } ! ! if (/* Previous unrolling may have generated new insns not ! covered by the uid_luid array. */ ! INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop ! /* Check if we jump back into the loop body. */ ! && INSN_LUID (JUMP_LABEL (temp)) > INSN_LUID (loop->top) ! && INSN_LUID (JUMP_LABEL (temp)) < INSN_LUID (loop->cont)) ! { ! if (loop_dump_stream) ! fprintf ! (loop_dump_stream, ! "Loop iterations: Loop has multiple back edges.\n"); ! return 0; ! } } } while ((temp = PREV_INSN (temp)) != loop->cont); diff -Nrc3pad gcc-3.0.2/gcc/version.c gcc-3.0.3/gcc/version.c *** gcc-3.0.2/gcc/version.c Tue Oct 23 10:21:24 2001 --- gcc-3.0.3/gcc/version.c Thu Dec 20 11:23:21 2001 *************** *** 1,4 **** #include "gansidecl.h" #include "version.h" ! const char *const version_string = "3.0.2"; --- 1,4 ---- #include "gansidecl.h" #include "version.h" ! const char *const version_string = "3.0.3"; diff -Nrc3pad gcc-3.0.2/include/ChangeLog gcc-3.0.3/include/ChangeLog *** gcc-3.0.2/include/ChangeLog Tue Oct 23 10:20:18 2001 --- gcc-3.0.3/include/ChangeLog Thu Dec 20 11:22:31 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libf2c/ChangeLog gcc-3.0.3/libf2c/ChangeLog *** gcc-3.0.2/libf2c/ChangeLog Tue Oct 23 10:20:23 2001 --- gcc-3.0.3/libf2c/ChangeLog Thu Dec 20 11:22:35 2001 *************** *** 1,3 **** --- 1,21 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-03 Toon Moene + + PR fortran/4885 + * endfile.c (t_runc): After ftruncate, seek to end-of-file. + + 2001-11-25 Toon Moene + + * libF77/Makefile.in: Fix non-portable use of `$<' in z_log.c's rule. + + 2001-11-25 Toon Moene + + PR libf2c/4930 + * libF77/Makefile.in: Compile z_log.c with -ffloat-store. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libf2c/libF77/Makefile.in gcc-3.0.3/libf2c/libF77/Makefile.in *** gcc-3.0.2/libf2c/libF77/Makefile.in Fri Mar 5 16:02:52 1999 --- gcc-3.0.3/libf2c/libF77/Makefile.in Sun Nov 25 08:17:56 2001 *************** z_cos.o: z_cos.c *** 144,149 **** --- 144,150 ---- z_div.o: z_div.c z_exp.o: z_exp.c z_log.o: z_log.c + $(CC) -c -DSkip_f2c_Undefs $(ALL_CFLAGS) -ffloat-store $(srcdir)/z_log.c z_sin.o: z_sin.c z_sqrt.o: z_sqrt.c r_abs.o: r_abs.c diff -Nrc3pad gcc-3.0.2/libf2c/libF77/Version.c gcc-3.0.3/libf2c/libF77/Version.c *** gcc-3.0.2/libf2c/libF77/Version.c Tue Oct 23 10:21:33 2001 --- gcc-3.0.3/libf2c/libF77/Version.c Thu Dec 20 11:23:29 2001 *************** static char junk[] = "\n@(#)LIBF77 VERSI *** 3,9 **** /* */ ! char __G77_LIBF77_VERSION__[] = "0.5.26 20011023 (release)"; /* 2.00 11 June 1980. File version.c added to library. --- 3,9 ---- /* */ ! char __G77_LIBF77_VERSION__[] = "0.5.26 20011220 (release)"; /* 2.00 11 June 1980. File version.c added to library. diff -Nrc3pad gcc-3.0.2/libf2c/libI77/Version.c gcc-3.0.3/libf2c/libI77/Version.c *** gcc-3.0.2/libf2c/libI77/Version.c Tue Oct 23 10:21:38 2001 --- gcc-3.0.3/libf2c/libI77/Version.c Thu Dec 20 11:23:34 2001 *************** static char junk[] = "\n@(#) LIBI77 VERS *** 3,9 **** /* */ ! char __G77_LIBI77_VERSION__[] = "0.5.26 20011023 (release)"; /* 2.01 $ format added --- 3,9 ---- /* */ ! char __G77_LIBI77_VERSION__[] = "0.5.26 20011220 (release)"; /* 2.01 $ format added diff -Nrc3pad gcc-3.0.2/libf2c/libI77/endfile.c gcc-3.0.3/libf2c/libI77/endfile.c *** gcc-3.0.2/libf2c/libI77/endfile.c Wed May 16 03:28:31 2001 --- gcc-3.0.3/libf2c/libI77/endfile.c Mon Dec 3 15:50:11 2001 *************** done: *** 132,137 **** --- 132,138 ---- #else /* !defined(HAVE_FTRUNCATE) */ fflush(b->ufd); rc = ftruncate(fileno(b->ufd), (off_t)loc); + fseek(bf,loc,SEEK_SET); #endif /* !defined(HAVE_FTRUNCATE) */ if (rc) err(a->aerr,111,"endfile"); diff -Nrc3pad gcc-3.0.2/libf2c/libU77/Version.c gcc-3.0.3/libf2c/libU77/Version.c *** gcc-3.0.2/libf2c/libU77/Version.c Tue Oct 23 10:21:44 2001 --- gcc-3.0.3/libf2c/libU77/Version.c Thu Dec 20 11:23:39 2001 *************** *** 1,6 **** static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; ! char __G77_LIBU77_VERSION__[] = "0.5.26 20011023 (release)"; #include --- 1,6 ---- static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; ! char __G77_LIBU77_VERSION__[] = "0.5.26 20011220 (release)"; #include diff -Nrc3pad gcc-3.0.2/libffi/ChangeLog gcc-3.0.3/libffi/ChangeLog *** gcc-3.0.2/libffi/ChangeLog Tue Oct 23 10:20:30 2001 --- gcc-3.0.3/libffi/ChangeLog Thu Dec 20 11:22:39 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libiberty/ChangeLog gcc-3.0.3/libiberty/ChangeLog *** gcc-3.0.2/libiberty/ChangeLog Tue Oct 23 10:20:36 2001 --- gcc-3.0.3/libiberty/ChangeLog Thu Dec 20 11:22:43 2001 *************** *** 1,3 **** --- 1,20 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-12 Craig Rodrigues + + PR other/2719 + * cplus-dem.c (consume_count): Treat negative count as an error. + * testsuite/demangle-expected: Added testcase. + + 2001-12-06 DJ Delorie + Daniel Jacobowitz + + * Makefile.in (stamp-h): Depend on Makefile for proper + serialization. + (*-subdir): Depend on config.h for proper serialization. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libiberty/Makefile.in gcc-3.0.3/libiberty/Makefile.in *** gcc-3.0.2/libiberty/Makefile.in Sat Mar 24 13:53:39 2001 --- gcc-3.0.3/libiberty/Makefile.in Thu Dec 6 19:39:16 2001 *************** force: *** 238,255 **** Makefile: $(srcdir)/Makefile.in config.status CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status config.h: stamp-h ; @true ! stamp-h: config.in config.status CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status config.status: $(srcdir)/configure $(srcdir)/config.table $(SHELL) ./config.status --recheck all-subdir check-subdir installcheck-subdir info-subdir \ install-info-subdir clean-info-subdir dvi-subdir install-subdir \ etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \ ! maintainer-clean-subdir: @subdirs='$(SUBDIRS)'; \ target=`echo $@ | sed -e 's/-subdir//'`; \ for dir in $$subdirs ; do \ --- 238,260 ---- Makefile: $(srcdir)/Makefile.in config.status CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status + # Depending on Makefile makes sure that config.status has been re-run + # if needed. This prevents problems with parallel builds. config.h: stamp-h ; @true ! stamp-h: config.in config.status Makefile CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status config.status: $(srcdir)/configure $(srcdir)/config.table $(SHELL) ./config.status --recheck + # Depending on config.h makes sure that config.status has been re-run + # if needed. This prevents problems with parallel builds, in case + # subdirectories need to run config.status also. all-subdir check-subdir installcheck-subdir info-subdir \ install-info-subdir clean-info-subdir dvi-subdir install-subdir \ etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \ ! maintainer-clean-subdir: config.h @subdirs='$(SUBDIRS)'; \ target=`echo $@ | sed -e 's/-subdir//'`; \ for dir in $$subdirs ; do \ diff -Nrc3pad gcc-3.0.2/libiberty/cplus-dem.c gcc-3.0.3/libiberty/cplus-dem.c *** gcc-3.0.2/libiberty/cplus-dem.c Sun Mar 4 17:19:38 2001 --- gcc-3.0.3/libiberty/cplus-dem.c Wed Dec 12 19:22:04 2001 *************** consume_count (type) *** 568,573 **** --- 568,576 ---- (*type)++; } + if (count < 0) + count = -1; + return (count); } diff -Nrc3pad gcc-3.0.2/libiberty/testsuite/demangle-expected gcc-3.0.3/libiberty/testsuite/demangle-expected *** gcc-3.0.2/libiberty/testsuite/demangle-expected Thu Feb 1 16:27:39 2001 --- gcc-3.0.3/libiberty/testsuite/demangle-expected Wed Dec 12 19:22:05 2001 *************** JArray.t(JArray[]) *** 2586,2588 **** --- 2586,2592 ---- --format=java _ZN4Prim1iEibcdfwPN4java4lang6StringEsx Prim.i(int, boolean, byte, double, float, char, java.lang.String, short, long) + # + --format=hp + _Utf58_0_1__1_2147483647__2147483648 + _Utf58_0_1__1_2147483647__2147483648 diff -Nrc3pad gcc-3.0.2/libjava/ChangeLog gcc-3.0.3/libjava/ChangeLog *** gcc-3.0.2/libjava/ChangeLog Tue Oct 23 10:20:46 2001 --- gcc-3.0.3/libjava/ChangeLog Thu Dec 20 11:22:51 2001 *************** *** 1,3 **** --- 1,16 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-11-23 Rainer Orth + + * configure: Regenerate. + Fixes PR bootstrap/4116. + + 2001-09-17 Andreas Jaeger + + * jni.cc (array_from_valist): Use promoted types for va_arg. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libjava/configure gcc-3.0.3/libjava/configure *** gcc-3.0.2/libjava/configure Tue Oct 23 10:56:01 2001 --- gcc-3.0.3/libjava/configure Thu Dec 20 11:55:55 2001 *************** EOF *** 5527,5545 **** if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "(^|[^a-zA-Z_0-9])ssize_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then rm -rf conftest* ! eval "ac_cv_type_ssize_t=yes" else rm -rf conftest* ! eval "ac_cv_type_ssize_t=no" fi rm -f conftest* fi ! if eval "test \"`echo '$ac_cv_type_'ssize_t`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! else ! echo "$ac_t""no" 1>&6 ! cat >> confdefs.h <&5 | egrep "(^|[^a-zA-Z_0-9])ssize_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then rm -rf conftest* ! ac_cv_type_ssize_t=yes else rm -rf conftest* ! ac_cv_type_ssize_t=no fi rm -f conftest* fi ! echo "$ac_t""$ac_cv_type_ssize_t" 1>&6 ! if test $ac_cv_type_ssize_t = no; then ! cat >> confdefs.h <<\EOF #define ssize_t int EOF *************** fi *** 5547,5555 **** echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6 ! echo "configure:5551: checking for in_addr_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS --- 5545,5553 ---- echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6 ! echo "configure:5549: checking for in_addr_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS *************** int main() { *** 5563,5569 **** in_addr_t foo; ; return 0; } EOF ! if { (eval echo configure:5567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_IN_ADDR_T 1 --- 5561,5567 ---- in_addr_t foo; ; return 0; } EOF ! if { (eval echo configure:5565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_IN_ADDR_T 1 *************** fi *** 5579,5594 **** rm -f conftest* echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6 ! echo "configure:5583: checking whether struct ip_mreq is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct ip_mreq mreq; ; return 0; } EOF ! if { (eval echo configure:5592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_STRUCT_IP_MREQ 1 --- 5577,5592 ---- rm -f conftest* echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6 ! echo "configure:5581: checking whether struct ip_mreq is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct ip_mreq mreq; ; return 0; } EOF ! if { (eval echo configure:5590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_STRUCT_IP_MREQ 1 *************** fi *** 5604,5619 **** rm -f conftest* echo $ac_n "checking whether struct ipv6_mreq is in netinet/in.h""... $ac_c" 1>&6 ! echo "configure:5608: checking whether struct ipv6_mreq is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct ipv6_mreq mreq6; ; return 0; } EOF ! if { (eval echo configure:5617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_STRUCT_IPV6_MREQ 1 --- 5602,5617 ---- rm -f conftest* echo $ac_n "checking whether struct ipv6_mreq is in netinet/in.h""... $ac_c" 1>&6 ! echo "configure:5606: checking whether struct ipv6_mreq is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct ipv6_mreq mreq6; ; return 0; } EOF ! if { (eval echo configure:5615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_STRUCT_IPV6_MREQ 1 *************** fi *** 5629,5644 **** rm -f conftest* echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6 ! echo "configure:5633: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct sockaddr_in6 addr6; ; return 0; } EOF ! if { (eval echo configure:5642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_INET6 1 --- 5627,5642 ---- rm -f conftest* echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6 ! echo "configure:5631: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct sockaddr_in6 addr6; ; return 0; } EOF ! if { (eval echo configure:5640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_INET6 1 *************** fi *** 5654,5662 **** rm -f conftest* echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6 ! echo "configure:5658: checking for socklen_t in sys/socket.h" >&5 cat > conftest.$ac_ext < --- 5652,5660 ---- rm -f conftest* echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6 ! echo "configure:5656: checking for socklen_t in sys/socket.h" >&5 cat > conftest.$ac_ext < *************** int main() { *** 5665,5671 **** socklen_t x = 5; ; return 0; } EOF ! if { (eval echo configure:5669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SOCKLEN_T 1 --- 5663,5669 ---- socklen_t x = 5; ; return 0; } EOF ! if { (eval echo configure:5667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SOCKLEN_T 1 *************** fi *** 5681,5696 **** rm -f conftest* echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6 ! echo "configure:5685: checking for tm_gmtoff in struct tm" >&5 cat > conftest.$ac_ext < int main() { struct tm tim; tim.tm_gmtoff = 0; ; return 0; } EOF ! if { (eval echo configure:5694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define STRUCT_TM_HAS_GMTOFF 1 --- 5679,5694 ---- rm -f conftest* echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6 ! echo "configure:5683: checking for tm_gmtoff in struct tm" >&5 cat > conftest.$ac_ext < int main() { struct tm tim; tim.tm_gmtoff = 0; ; return 0; } EOF ! if { (eval echo configure:5692: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define STRUCT_TM_HAS_GMTOFF 1 *************** else *** 5703,5718 **** rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6 ! echo "configure:5707: checking for global timezone variable" >&5 cat > conftest.$ac_ext < int main() { long z2 = timezone; ; return 0; } EOF ! if { (eval echo configure:5716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_TIMEZONE 1 --- 5701,5716 ---- rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6 ! echo "configure:5705: checking for global timezone variable" >&5 cat > conftest.$ac_ext < int main() { long z2 = timezone; ; return 0; } EOF ! if { (eval echo configure:5714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_TIMEZONE 1 *************** rm -f conftest* *** 5732,5750 **** # 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:5736: 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:5748: \"$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 --- 5730,5748 ---- # 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:5734: 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:5746: \"$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 *** 5765,5776 **** fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 ! echo "configure:5769: 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:5767: 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 --- 5796,5802 ---- char *p = (char *) alloca(1); ; return 0; } EOF ! if { (eval echo configure:5800: \"$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 *** 5830,5841 **** echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ! echo "configure:5834: 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:5832: 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 *** 5860,5871 **** 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:5864: checking for $ac_func" >&5 if 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:5862: checking for $ac_func" >&5 if 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 --- 5886,5892 ---- ; return 0; } EOF ! if { (eval echo configure:5890: \"$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 *** 5915,5921 **** fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:5919: 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 --- 5913,5919 ---- fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:5917: 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 *** 5923,5929 **** 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 --- 5940,5946 ---- exit (find_stack_direction() < 0); } EOF ! if { (eval echo configure:5944: \"$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 *************** do *** 5969,5975 **** # 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:5973: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5967,5973 ---- # 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:5971: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6044,6050 **** # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 ! echo "configure:6048: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then --- 6042,6048 ---- # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 ! echo "configure:6046: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then *************** if test "$ac_x_includes" = NO; then *** 6106,6117 **** # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6115: \"$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* --- 6104,6115 ---- # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6113: \"$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 test "$ac_x_libraries" = NO; then *** 6180,6193 **** ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. --- 6178,6191 ---- ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. *************** else *** 6293,6309 **** case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 ! echo "configure:6297: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else --- 6291,6307 ---- case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 ! echo "configure:6295: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else *************** rm -f conftest* *** 6319,6332 **** else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else --- 6317,6330 ---- else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else *************** rm -f conftest* *** 6358,6364 **** # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 ! echo "configure:6362: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6356,6362 ---- # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 ! echo "configure:6360: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | 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 *** 6366,6372 **** ac_save_LIBS="$LIBS" LIBS="-ldnet $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 --- 6375,6381 ---- dnet_ntoa() ; return 0; } EOF ! if { (eval echo configure:6379: \"$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 *** 6399,6405 **** if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 ! echo "configure:6403: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6397,6403 ---- if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 ! echo "configure:6401: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | 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 *** 6407,6413 **** ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $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 --- 6416,6422 ---- dnet_ntoa() ; return 0; } EOF ! if { (eval echo configure:6420: \"$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 *** 6447,6458 **** # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 ! echo "configure:6451: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6449: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+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_gethostbyname=yes" else --- 6473,6479 ---- ; return 0; } EOF ! if { (eval echo configure:6477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else *************** fi *** 6496,6502 **** if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 ! echo "configure:6500: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6494,6500 ---- if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 ! echo "configure:6498: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | 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 *** 6504,6510 **** ac_save_LIBS="$LIBS" LIBS="-lnsl $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 --- 6513,6519 ---- gethostbyname() ; return 0; } EOF ! if { (eval echo configure:6517: \"$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 *** 6545,6556 **** # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 ! echo "configure:6549: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6547: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+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_connect=yes" else --- 6571,6577 ---- ; return 0; } EOF ! if { (eval echo configure:6575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else *************** fi *** 6594,6600 **** if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 ! echo "configure:6598: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6592,6598 ---- if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 ! echo "configure:6596: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | 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 *** 6602,6608 **** ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $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 --- 6611,6617 ---- connect() ; return 0; } EOF ! if { (eval echo configure:6615: \"$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 *** 6637,6648 **** # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 ! echo "configure:6641: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6639: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+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_remove=yes" else --- 6663,6669 ---- ; return 0; } EOF ! if { (eval echo configure:6667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else *************** fi *** 6686,6692 **** if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 ! echo "configure:6690: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6684,6690 ---- if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 ! echo "configure:6688: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | 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 *** 6694,6700 **** ac_save_LIBS="$LIBS" LIBS="-lposix $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 --- 6703,6709 ---- remove() ; return 0; } EOF ! if { (eval echo configure:6707: \"$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 *** 6729,6740 **** # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 ! echo "configure:6733: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6731: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+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_shmat=yes" else --- 6755,6761 ---- ; return 0; } EOF ! if { (eval echo configure:6759: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else *************** fi *** 6778,6784 **** if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 ! echo "configure:6782: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6776,6782 ---- if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 ! echo "configure:6780: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | 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 *** 6786,6792 **** ac_save_LIBS="$LIBS" LIBS="-lipc $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 --- 6795,6801 ---- shmat() ; return 0; } EOF ! if { (eval echo configure:6799: \"$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,6836 **** # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 ! echo "configure:6834: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6828,6834 ---- # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 ! echo "configure:6832: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | 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 *** 6838,6844 **** ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $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 --- 6847,6853 ---- IceConnectionNumber() ; return 0; } EOF ! if { (eval echo configure:6851: \"$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 *************** if test "$no_recursion" != yes; then *** 7507,7518 **** *) if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; else ! { echo "configure: error: can not create `/vol/local/bin/pwd`/$ac_config_dir" 1>&2; exit 1; } fi ;; esac ! ac_popdir=`/vol/local/bin/pwd` cd $ac_config_dir # A "../" for each directory in /$ac_config_dir. --- 7505,7516 ---- *) if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; else ! { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } fi ;; esac ! ac_popdir=`pwd` cd $ac_config_dir # A "../" for each directory in /$ac_config_dir. diff -Nrc3pad gcc-3.0.2/libjava/jni.cc gcc-3.0.3/libjava/jni.cc *** gcc-3.0.2/libjava/jni.cc Fri Sep 28 23:07:29 2001 --- gcc-3.0.3/libjava/jni.cc Mon Nov 5 11:10:34 2001 *************** jvmpiEnableEvent (jint event_type, void *** 115,133 **** case JVMPI_EVENT_OBJECT_ALLOC: _Jv_JVMPI_Notify_OBJECT_ALLOC = _Jv_JVMPI_Interface.NotifyEvent; break; ! case JVMPI_EVENT_THREAD_START: _Jv_JVMPI_Notify_THREAD_START = _Jv_JVMPI_Interface.NotifyEvent; break; ! case JVMPI_EVENT_THREAD_END: _Jv_JVMPI_Notify_THREAD_END = _Jv_JVMPI_Interface.NotifyEvent; break; ! default: return JVMPI_NOT_AVAILABLE; } ! return JVMPI_SUCCESS; } --- 115,133 ---- case JVMPI_EVENT_OBJECT_ALLOC: _Jv_JVMPI_Notify_OBJECT_ALLOC = _Jv_JVMPI_Interface.NotifyEvent; break; ! case JVMPI_EVENT_THREAD_START: _Jv_JVMPI_Notify_THREAD_START = _Jv_JVMPI_Interface.NotifyEvent; break; ! case JVMPI_EVENT_THREAD_END: _Jv_JVMPI_Notify_THREAD_END = _Jv_JVMPI_Interface.NotifyEvent; break; ! default: return JVMPI_NOT_AVAILABLE; } ! return JVMPI_SUCCESS; } *************** jvmpiDisableEvent (jint event_type, void *** 139,149 **** case JVMPI_EVENT_OBJECT_ALLOC: _Jv_JVMPI_Notify_OBJECT_ALLOC = NULL; break; ! default: return JVMPI_NOT_AVAILABLE; } ! return JVMPI_SUCCESS; } #endif --- 139,149 ---- case JVMPI_EVENT_OBJECT_ALLOC: _Jv_JVMPI_Notify_OBJECT_ALLOC = NULL; break; ! default: return JVMPI_NOT_AVAILABLE; } ! return JVMPI_SUCCESS; } #endif *************** _Jv_JNI_PopLocalFrame (JNIEnv *env, jobj *** 320,326 **** bool done = false; while (rf != NULL && ! done) ! { for (int i = 0; i < rf->size; ++i) if (rf->vec[i] != NULL) unmark_for_gc (rf->vec[i]); --- 320,326 ---- bool done = false; while (rf != NULL && ! done) ! { for (int i = 0; i < rf->size; ++i) if (rf->vec[i] != NULL) unmark_for_gc (rf->vec[i]); *************** _Jv_JNI_GetVersion (JNIEnv *) *** 399,405 **** } static jclass ! _Jv_JNI_DefineClass (JNIEnv *env, jobject loader, const jbyte *buf, jsize bufLen) { try --- 399,405 ---- } static jclass ! _Jv_JNI_DefineClass (JNIEnv *env, jobject loader, const jbyte *buf, jsize bufLen) { try *************** array_from_valist (jvalue *values, JArra *** 658,666 **** for (int i = 0; i < arg_types->length; ++i) { if (arg_elts[i] == JvPrimClass (byte)) ! values[i].b = va_arg (vargs, jbyte); else if (arg_elts[i] == JvPrimClass (short)) ! values[i].s = va_arg (vargs, jshort); else if (arg_elts[i] == JvPrimClass (int)) values[i].i = va_arg (vargs, jint); else if (arg_elts[i] == JvPrimClass (long)) --- 658,666 ---- for (int i = 0; i < arg_types->length; ++i) { if (arg_elts[i] == JvPrimClass (byte)) ! values[i].b = (jbyte) va_arg (vargs, int); else if (arg_elts[i] == JvPrimClass (short)) ! values[i].s = (jshort) va_arg (vargs, int); else if (arg_elts[i] == JvPrimClass (int)) values[i].i = va_arg (vargs, jint); else if (arg_elts[i] == JvPrimClass (long)) *************** array_from_valist (jvalue *values, JArra *** 670,678 **** else if (arg_elts[i] == JvPrimClass (double)) values[i].d = va_arg (vargs, jdouble); else if (arg_elts[i] == JvPrimClass (boolean)) ! values[i].z = va_arg (vargs, jboolean); else if (arg_elts[i] == JvPrimClass (char)) ! values[i].c = va_arg (vargs, jchar); else { // An object. --- 670,678 ---- else if (arg_elts[i] == JvPrimClass (double)) values[i].d = va_arg (vargs, jdouble); else if (arg_elts[i] == JvPrimClass (boolean)) ! values[i].z = (jboolean) va_arg (vargs, int); else if (arg_elts[i] == JvPrimClass (char)) ! values[i].c = (jchar) va_arg (vargs, int); else { // An object. *************** _Jv_JNI_NewObjectA (JNIEnv *env, jclass *** 1046,1052 **** template static T ! _Jv_JNI_GetField (JNIEnv *env, jobject obj, jfieldID field) { JvAssert (obj); T *ptr = (T *) ((char *) obj + field->getOffset ()); --- 1046,1052 ---- template static T ! _Jv_JNI_GetField (JNIEnv *env, jobject obj, jfieldID field) { JvAssert (obj); T *ptr = (T *) ((char *) obj + field->getOffset ()); *************** _Jv_JNI_GetPrimitiveArrayRegion (JNIEnv *** 1395,1401 **** template static void ! _Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray *array, jsize start, jsize len, T *buf) { // The cast to unsigned lets us save a comparison. --- 1395,1401 ---- template static void ! _Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray *array, jsize start, jsize len, T *buf) { // The cast to unsigned lets us save a comparison. diff -Nrc3pad gcc-3.0.2/libjava/libltdl/ChangeLog gcc-3.0.3/libjava/libltdl/ChangeLog *** gcc-3.0.2/libjava/libltdl/ChangeLog Tue Oct 23 10:20:53 2001 --- gcc-3.0.3/libjava/libltdl/ChangeLog Thu Dec 20 11:22:56 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libjava/testsuite/ChangeLog gcc-3.0.3/libjava/testsuite/ChangeLog *** gcc-3.0.2/libjava/testsuite/ChangeLog Tue Oct 23 10:20:57 2001 --- gcc-3.0.3/libjava/testsuite/ChangeLog Thu Dec 20 11:23:00 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libobjc/ChangeLog gcc-3.0.3/libobjc/ChangeLog *** gcc-3.0.2/libobjc/ChangeLog Tue Oct 23 10:21:02 2001 --- gcc-3.0.3/libobjc/ChangeLog Thu Dec 20 11:23:03 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/ChangeLog gcc-3.0.3/libstdc++-v3/ChangeLog *** gcc-3.0.2/libstdc++-v3/ChangeLog Tue Oct 23 10:21:07 2001 --- gcc-3.0.3/libstdc++-v3/ChangeLog Thu Dec 20 11:23:07 2001 *************** *** 1,3 **** --- 1,86 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + + 2001-12-13 Phil Edwards + + Bulk documentation merge (copy) from trunk. + * docs/html/Makefile, docs/html/documentation.html, + docs/html/explanations.html, docs/html/17_intro/BUGS, + docs/html/17_intro/C++STYLE, docs/html/17_intro/CHECKLIST, + docs/html/17_intro/DESIGN, docs/html/17_intro/TODO, + docs/html/17_intro/howto.html, docs/html/17_intro/license.html, + docs/html/17_intro/porting-howto.html, + docs/html/17_intro/porting-howto.xml, docs/html/17_intro/porting.html, + docs/html/17_intro/porting.texi, docs/html/18_support/howto.html, + docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html, + docs/html/21_strings/howto.html, docs/html/23_containers/howto.html, + docs/html/26_numerics/howto.html, docs/html/27_io/howto.html, + docs/html/ext/howto.html, docs/html/ext/lwg-active.html, + docs/html/ext/lwg-defects.html, docs/html/ext/sgiexts.html, + docs/html/faq/index.html, docs/html/faq/index.txt: Merge from trunk. + + 2001-12-10 Philip Martin + + PR libstdc++/3720 + * include/bits/locale_facets.h + (_M_extract_buffer_length): Add this constant. + * include/bits/locale_facet.tcc + (do_get): Use _M_extract_buffer_length. + * src/locale.cc + (_M_extract): Set failbit if buffer gets filled while + extracting characters. + * testsuite/27_io/istream_extractor_arith.cc + (tes12_aux, test12, test13): Add, ported from trunk. + + 2001-12-09 Edward E. Meyer + + PR libstdc++/4622 (copy from trunk 2001-10-31) + * include/bits/std_complex.h (complex::operator/=): Correct sign. + + 2001-11-21 Paolo Carlini + + PR libstdc++/4548 + * include/bits/basic_string.tcc (basic_string::reserve): Never shrink + below the current size. + * testsuite/21_strings/capacity.cc (test02): Add test. + + 2001-11-16 Paolo Carlini + + * include/bits/stl_deque.h (deque::erase()): Fix memory leak. + + 2001-11-09 Phil Edwards + + * acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Run the test in + LANG_CPLUSPLUS mode. + * aclocal.m4: Regenerate. + * configure: Regenerate. + + 2001-11-02 Phil Edwards + + * acconfig.h: Update comments. + * acinclude.m4 (GLIBCPP_ENABLE_C99): Move strtoll, strtoull tests... + (GLIBCPP_ENABLE_LONG_LONG): ...to here. Don't check enable_c99. + * aclocal.m4: Regenerate. + * config.h.in: Regenerate. + * configure: Regenerate. + + * include/bits/boost_concept_check.h: Unconditionally compile uses + of 'long long' which require only compiler support, not C lib support. + * include/bits/cpp_type_traits.h: Likewise. + * include/bits/std_limits.h: Likewise. + * include/bits/type_traits.h: Likewise. + * src/limits.cc: Likewise. + * include/c_shadow/stdlib.h: Compile conditionally on _GLIBCPP_USE_C99 + instead of _GLIBCPP_USE_LONG_LONG. + * include/c_shadow/bits/std_cstdlib.h: Likewise. + + 2001-11-01 Gabriel Dos Reis + + * include/bits/std_complex.h (_Norm_helper): New class template. + (norm): Tweak. + (std): Tweak. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/acconfig.h gcc-3.0.3/libstdc++-v3/acconfig.h *** gcc-3.0.2/libstdc++-v3/acconfig.h Tue Aug 28 14:18:19 2001 --- gcc-3.0.3/libstdc++-v3/acconfig.h Fri Nov 2 14:39:01 2001 *************** *** 1,15 **** // acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*- ! // Define if GCC supports weak symbols #undef _GLIBCPP_SUPPORTS_WEAK ! // Define if gthr-default.h exists (meaning that threading support is enabled) #undef HAVE_GTHR_DEFAULT ! // Include support for 'long long' and 'unsigned long long'. #undef _GLIBCPP_USE_LONG_LONG ! // Define if code specialized for wchar_t should be used. #undef _GLIBCPP_USE_C99 // Include support for 'long double'. --- 1,15 ---- // acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*- ! // Define if GCC supports weak symbols. #undef _GLIBCPP_SUPPORTS_WEAK ! // Define if gthr-default.h exists (meaning that threading support is enabled). #undef HAVE_GTHR_DEFAULT ! // Include I/O support for 'long long' and 'unsigned long long'. #undef _GLIBCPP_USE_LONG_LONG ! // Define if C99 features such as lldiv_t, llabs, lldiv should be exposed. #undef _GLIBCPP_USE_C99 // Include support for 'long double'. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/acinclude.m4 gcc-3.0.3/libstdc++-v3/acinclude.m4 *** gcc-3.0.2/libstdc++-v3/acinclude.m4 Tue Aug 28 14:18:19 2001 --- gcc-3.0.3/libstdc++-v3/acinclude.m4 Fri Nov 9 13:35:14 2001 *************** AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl *** 1312,1321 **** [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no]) - AC_TRY_COMPILE([#include ], - [char* tmp; strtoll("gnu", &tmp, 10);],, [ac_c99_stdlib=no]) - AC_TRY_COMPILE([#include ], - [char* tmp; strtoull("gnu", &tmp, 10);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [llabs(10);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [lldiv(10,1);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [atoll("10");],, [ac_c99_stdlib=no]) --- 1312,1317 ---- *************** AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl *** 1356,1362 **** dnl dnl Check for template specializations for the 'long long' type extension. ! dnl NB: Must check for C99 support before calling _GLIBCPP_ENABLE_LONG_LONG dnl dnl GLIBCPP_ENABLE_LONG_LONG dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG --- 1352,1359 ---- dnl dnl Check for template specializations for the 'long long' type extension. ! dnl The result determines only whether 'long long' I/O is enabled; things ! dnl like numeric_limits<> specializations are always available. dnl dnl GLIBCPP_ENABLE_LONG_LONG dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG *************** AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl *** 1381,1399 **** esac], enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl ! # iostreams require strtoll, strtoull to compile. If the ! # GLIBCPP_ENABLE_C99 tests found these, and if C99 support is enabled, ! # go ahead and allow long long to be used. ! if test x"$enable_c99" = x"no"; then ! enable_long_long=no; ! fi # Option parsed, now set things appropriately - AC_MSG_CHECKING([for enabled long long support]) if test x"$enable_long_long" = xyes; then AC_DEFINE(_GLIBCPP_USE_LONG_LONG) fi AC_MSG_RESULT($enable_long_long) ]) --- 1378,1400 ---- esac], enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl ! AC_LANG_SAVE ! AC_LANG_CPLUSPLUS ! ! AC_MSG_CHECKING([for enabled long long I/O support]) ! # iostreams require strtoll, strtoull to compile ! AC_TRY_COMPILE([#include ], ! [char* tmp; strtoll("gnu", &tmp, 10);],,[enable_long_long=no]) ! AC_TRY_COMPILE([#include ], ! [char* tmp; strtoull("gnu", &tmp, 10);],,[enable_long_long=no]) # Option parsed, now set things appropriately if test x"$enable_long_long" = xyes; then AC_DEFINE(_GLIBCPP_USE_LONG_LONG) fi AC_MSG_RESULT($enable_long_long) + + AC_LANG_RESTORE ]) diff -Nrc3pad gcc-3.0.2/libstdc++-v3/aclocal.m4 gcc-3.0.3/libstdc++-v3/aclocal.m4 *** gcc-3.0.2/libstdc++-v3/aclocal.m4 Tue Aug 28 14:18:20 2001 --- gcc-3.0.3/libstdc++-v3/aclocal.m4 Fri Nov 9 13:35:15 2001 *************** AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl *** 1324,1333 **** [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no]) - AC_TRY_COMPILE([#include ], - [char* tmp; strtoll("gnu", &tmp, 10);],, [ac_c99_stdlib=no]) - AC_TRY_COMPILE([#include ], - [char* tmp; strtoull("gnu", &tmp, 10);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [llabs(10);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [lldiv(10,1);],, [ac_c99_stdlib=no]) AC_TRY_COMPILE([#include ], [atoll("10");],, [ac_c99_stdlib=no]) --- 1324,1329 ---- *************** AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl *** 1368,1374 **** dnl dnl Check for template specializations for the 'long long' type extension. ! dnl NB: Must check for C99 support before calling _GLIBCPP_ENABLE_LONG_LONG dnl dnl GLIBCPP_ENABLE_LONG_LONG dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG --- 1364,1371 ---- dnl dnl Check for template specializations for the 'long long' type extension. ! dnl The result determines only whether 'long long' I/O is enabled; things ! dnl like numeric_limits<> specializations are always available. dnl dnl GLIBCPP_ENABLE_LONG_LONG dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG *************** AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl *** 1393,1411 **** esac], enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl ! # iostreams require strtoll, strtoull to compile. If the ! # GLIBCPP_ENABLE_C99 tests found these, and if C99 support is enabled, ! # go ahead and allow long long to be used. ! if test x"$enable_c99" = x"no"; then ! enable_long_long=no; ! fi # Option parsed, now set things appropriately - AC_MSG_CHECKING([for enabled long long support]) if test x"$enable_long_long" = xyes; then AC_DEFINE(_GLIBCPP_USE_LONG_LONG) fi AC_MSG_RESULT($enable_long_long) ]) --- 1390,1412 ---- esac], enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl ! AC_LANG_SAVE ! AC_LANG_CPLUSPLUS ! ! AC_MSG_CHECKING([for enabled long long I/O support]) ! # iostreams require strtoll, strtoull to compile ! AC_TRY_COMPILE([#include ], ! [char* tmp; strtoll("gnu", &tmp, 10);],,[enable_long_long=no]) ! AC_TRY_COMPILE([#include ], ! [char* tmp; strtoull("gnu", &tmp, 10);],,[enable_long_long=no]) # Option parsed, now set things appropriately if test x"$enable_long_long" = xyes; then AC_DEFINE(_GLIBCPP_USE_LONG_LONG) fi AC_MSG_RESULT($enable_long_long) + + AC_LANG_RESTORE ]) diff -Nrc3pad gcc-3.0.2/libstdc++-v3/config.h.in gcc-3.0.3/libstdc++-v3/config.h.in *** gcc-3.0.2/libstdc++-v3/config.h.in Tue Aug 28 14:18:20 2001 --- gcc-3.0.3/libstdc++-v3/config.h.in Fri Nov 2 14:39:01 2001 *************** *** 3,18 **** /* Define if you have a working `mmap' system call. */ #undef HAVE_MMAP ! // Define if GCC supports weak symbols #undef _GLIBCPP_SUPPORTS_WEAK ! // Define if gthr-default.h exists (meaning that threading support is enabled) #undef HAVE_GTHR_DEFAULT ! // Include support for 'long long' and 'unsigned long long'. #undef _GLIBCPP_USE_LONG_LONG ! // Define if code specialized for wchar_t should be used. #undef _GLIBCPP_USE_C99 // Include support for shadow headers, ie --enable-cshadow-headers. --- 3,18 ---- /* Define if you have a working `mmap' system call. */ #undef HAVE_MMAP ! // Define if GCC supports weak symbols. #undef _GLIBCPP_SUPPORTS_WEAK ! // Define if gthr-default.h exists (meaning that threading support is enabled). #undef HAVE_GTHR_DEFAULT ! // Include I/O support for 'long long' and 'unsigned long long'. #undef _GLIBCPP_USE_LONG_LONG ! // Define if C99 features such as lldiv_t, llabs, lldiv should be exposed. #undef _GLIBCPP_USE_C99 // Include support for shadow headers, ie --enable-cshadow-headers. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/configure gcc-3.0.3/libstdc++-v3/configure *** gcc-3.0.2/libstdc++-v3/configure Mon Sep 10 13:10:25 2001 --- gcc-3.0.3/libstdc++-v3/configure Fri Nov 9 13:35:15 2001 *************** program_suffix=NONE *** 77,82 **** --- 77,83 ---- program_transform_name=s,x,x, silent= site= + sitefile= srcdir= target=NONE verbose= *************** Configuration: *** 191,196 **** --- 192,198 ---- --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 *** 361,366 **** --- 363,373 ---- -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 *** 526,537 **** 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 --- 533,548 ---- 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 *************** else { echo "configure: error: can not r *** 644,650 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:648: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 655,661 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:659: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 665,671 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:669: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 676,682 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:680: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 683,689 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:687: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 694,700 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:698: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** target_alias=${target_alias-$target} *** 711,717 **** # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.50+, can also # be 'cp -p' if linking isn't available. echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:715: 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 --- 722,728 ---- # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.50+, can also # be 'cp -p' if linking isn't available. echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:726: 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 *** 760,766 **** # 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:764: 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 --- 771,777 ---- # 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:775: 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 *** 813,819 **** test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ! echo "configure:817: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile --- 824,830 ---- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ! echo "configure:828: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile *************** test "$program_suffix" != NONE && *** 870,876 **** 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:874: 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 --- 881,887 ---- 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:885: 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 *** 903,914 **** fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ! echo "configure:907: 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:918: 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 --- 930,936 ---- return __CYGWIN__; ; return 0; } EOF ! if { (eval echo configure:934: \"$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 *** 936,954 **** CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:940: 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 --- 947,965 ---- CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:951: 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 *************** EOF *** 1000,1006 **** missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 ! echo "configure:1004: 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. --- 1011,1017 ---- missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 ! echo "configure:1015: 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. *************** else *** 1013,1019 **** fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ! echo "configure:1017: 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. --- 1024,1030 ---- fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ! echo "configure:1028: 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. *************** else *** 1026,1032 **** fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 ! echo "configure:1030: 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. --- 1037,1043 ---- fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 ! echo "configure:1041: 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. *************** else *** 1039,1045 **** fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ! echo "configure:1043: 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. --- 1050,1056 ---- fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ! echo "configure:1054: 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. *************** else *** 1052,1058 **** fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ! echo "configure:1056: 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. --- 1063,1069 ---- fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ! echo "configure:1067: 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. *************** fi *** 1087,1093 **** # 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:1091: 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 --- 1098,1104 ---- # 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:1102: 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 *** 1117,1123 **** # 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:1121: 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 "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: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 *************** fi *** 1166,1172 **** fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1170: 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 --- 1177,1183 ---- fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1181: 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 *** 1175,1181 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1179: \"$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 --- 1186,1192 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1190: \"$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 *** 1190,1196 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1194: 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 --- 1201,1207 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1205: 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 *** 1235,1241 **** # 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:1239: 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 --- 1246,1252 ---- # 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:1250: 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 *************** CXX=$glibcpp_CXX *** 1270,1276 **** 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:1274: 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 --- 1281,1287 ---- 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:1285: 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 *** 1279,1285 **** yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1283: \"$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 --- 1290,1296 ---- yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1294: \"$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 *************** if test $ac_cv_prog_gxx = yes; then *** 1294,1300 **** ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1298: 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 --- 1305,1311 ---- ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1309: 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 *************** fi *** 1325,1331 **** # 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:1329: 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 --- 1336,1342 ---- # 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:1340: 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 *** 1357,1363 **** # 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:1361: 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 --- 1368,1374 ---- # 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:1372: 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 *** 1389,1395 **** # 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:1393: 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 --- 1400,1406 ---- # 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:1404: 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 *** 1421,1427 **** # 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:1425: 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 --- 1432,1438 ---- # 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:1436: 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 *** 1465,1471 **** # 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:1469: 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 --- 1476,1482 ---- # 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:1480: 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= *** 1519,1525 **** echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1523: 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" --- 1530,1536 ---- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1534: 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 *** 1557,1563 **** echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1561: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1568,1574 ---- echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1572: 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 *** 1567,1576 **** rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1571: \"$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 --- 1578,1587 ---- rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1582: \"$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 *************** ac_prog=ld *** 1687,1693 **** 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:1691: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1698,1704 ---- 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:1702: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1691: checking for ld us *** 1717,1726 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1721: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1724: 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 --- 1728,1737 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1732: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1735: 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 *** 1755,1761 **** 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:1759: 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 --- 1766,1772 ---- 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:1770: 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 *** 1772,1778 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1776: 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 --- 1783,1789 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1787: 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 *** 1784,1790 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1788: 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 --- 1795,1801 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1799: 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" *** 1822,1828 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1826: 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 --- 1833,1839 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1837: 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 *** 1986,1998 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:1990: 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:1996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 1997,2009 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2001: 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:2007: \"$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 *** 2016,2022 **** 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:2020: 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 --- 2027,2033 ---- 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:2031: 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 *** 2078,2084 **** 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:2082: 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 --- 2089,2095 ---- 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:2093: 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 *** 2149,2155 **** # 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:2153: 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 --- 2160,2166 ---- # 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:2164: 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 *** 2181,2187 **** # 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:2185: 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 --- 2192,2198 ---- # 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:2196: 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 *** 2216,2222 **** # 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:2220: 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 --- 2227,2233 ---- # 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:2231: 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 *** 2248,2254 **** # 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:2252: 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 --- 2259,2265 ---- # 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:2263: 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 *** 2315,2322 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2319 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2326,2333 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2330 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2331: \"$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 *** 2337,2343 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2341: 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 --- 2348,2354 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2352: 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 *** 2350,2363 **** 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 --- 2361,2374 ---- 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 *** 2387,2393 **** esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2391: 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 --- 2398,2404 ---- esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2402: 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 *** 2400,2411 **** 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:2409: \"$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 : --- 2411,2422 ---- 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:2420: \"$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 *** 2540,2546 **** echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2544: 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 --- 2551,2557 ---- echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2555: 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 *************** echo "$ac_t""$_cv_gnu_make_command" 1>&6 *** 2572,2578 **** if test ! -f stamp-sanity-compiler; then echo $ac_n "checking for g++ that will successfully compile libstdc++-v3""... $ac_c" 1>&6 ! echo "configure:2576: checking for g++ that will successfully compile libstdc++-v3" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 2583,2589 ---- if test ! -f stamp-sanity-compiler; then echo $ac_n "checking for g++ that will successfully compile libstdc++-v3""... $ac_c" 1>&6 ! echo "configure:2587: checking for g++ that will successfully compile libstdc++-v3" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 2582,2588 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gpp_satisfactory=yes else --- 2604,2610 ---- ; return 0; } EOF ! if { (eval echo configure:2608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gpp_satisfactory=yes else *************** esac *** 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= --- 2650,2656 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2654: 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 *** 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 : --- 2665,2677 ---- # 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:2675: \"$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 *** 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 : --- 2682,2694 ---- 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:2692: \"$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 *** 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 : --- 2699,2711 ---- 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:2709: \"$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 *** 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" --- 2731,2737 ---- echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2735: 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 *** 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* --- 2755,2771 ---- # 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:2759: 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:2769: \"$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 *** 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 < --- 2795,2803 ---- case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2799: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < *************** fi *** 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" --- 2911,2917 ---- echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:2915: 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" *************** cross_compiling=$ac_cv_prog_cxx_cross *** 2971,2986 **** # 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:2975: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:2984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 2982,2997 ---- # 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:2986: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:2995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 2990,3003 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3001,3014 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3007,3020 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3018,3031 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3024,3037 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3035,3048 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3041,3054 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3052,3065 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3058,3071 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3069,3082 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3075,3088 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3086,3099 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3097: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3092,3105 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3103: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3103,3116 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3109,3122 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3120,3133 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3131: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3126,3139 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3137,3150 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3143,3156 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3154: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3154,3167 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3160,3173 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3171,3184 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3181,3196 **** # 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:3185: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; 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 --- 3192,3207 ---- # 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:3196: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3200,3206 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3211,3217 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3211,3217 **** ; return 0; } EOF ! if { (eval echo configure:3215: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3222,3228 ---- ; return 0; } EOF ! if { (eval echo configure:3226: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3221,3227 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3232,3238 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3232,3238 **** ; return 0; } EOF ! if { (eval echo configure:3236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3243,3249 ---- ; return 0; } EOF ! if { (eval echo configure:3247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3242,3248 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3253,3259 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3253,3259 **** ; return 0; } EOF ! if { (eval echo configure:3257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3264,3270 ---- ; return 0; } EOF ! if { (eval echo configure:3268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3263,3269 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3274,3280 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3274,3280 **** ; return 0; } EOF ! if { (eval echo configure:3278: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3285,3291 ---- ; return 0; } EOF ! if { (eval echo configure:3289: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3288,3307 **** # 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:3292: 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:3305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else --- 3299,3318 ---- # 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:3303: 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:3316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else *************** fi *** 3317,3332 **** echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3321: 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:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3328,3343 ---- echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3332: 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:3341: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3336,3383 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; 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 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! ac_c99_stdlib=no ! fi ! rm -f conftest* ! cat > conftest.$ac_ext < ! int main() { ! char* tmp; strtoll("gnu", &tmp, 10); ! ; return 0; } ! EOF ! if { (eval echo configure:3364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ! : ! else ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! ac_c99_stdlib=no ! fi ! rm -f conftest* ! cat > conftest.$ac_ext < ! int main() { ! char* tmp; strtoull("gnu", &tmp, 10); ! ; return 0; } ! EOF ! if { (eval echo configure:3381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3347,3360 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3387,3400 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3398: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3364,3377 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3404,3417 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3381,3394 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3421,3434 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3398,3411 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3438,3451 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3415,3428 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3463,3478 **** # 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:3467: 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:3476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3440,3455 ---- # 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:3444: 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:3453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3482,3495 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3493: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3459,3472 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; 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 *************** else *** 3499,3512 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3476,3489 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3518,3524 **** echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3522: 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" \ || test x"$ac_c99_wchar" = x"no"; then --- 3495,3501 ---- echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3499: 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" \ || test x"$ac_c99_wchar" = x"no"; then *************** else *** 3555,3570 **** enable_long_long=yes fi ! # iostreams require strtoll, strtoull to compile. If the ! # GLIBCPP_ENABLE_C99 tests found these, and if C99 support is enabled, ! # go ahead and allow long long to be used. ! if test x"$enable_c99" = x"no"; then ! enable_long_long=no; ! fi # Option parsed, now set things appropriately - echo $ac_n "checking for enabled long long support""... $ac_c" 1>&6 - echo "configure:3568: checking for enabled long long support" >&5 if test x"$enable_long_long" = xyes; then cat >> confdefs.h <<\EOF #define _GLIBCPP_USE_LONG_LONG 1 --- 3532,3585 ---- enable_long_long=yes fi ! ! ac_ext=C ! # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ! ac_cpp='$CXXCPP $CPPFLAGS' ! ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ! ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ! cross_compiling=$ac_cv_prog_cxx_cross ! ! ! echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3546: 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:3556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ! : ! else ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! enable_long_long=no ! fi ! rm -f conftest* ! cat > conftest.$ac_ext < ! int main() { ! char* tmp; strtoull("gnu", &tmp, 10); ! ; return 0; } ! EOF ! if { (eval echo configure:3573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ! : ! else ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! enable_long_long=no ! fi ! rm -f conftest* # Option parsed, now set things appropriately if test x"$enable_long_long" = xyes; then cat >> confdefs.h <<\EOF #define _GLIBCPP_USE_LONG_LONG 1 *************** EOF *** 3573,3580 **** fi echo "$ac_t""$enable_long_long" 1>&6 echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3578: 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" --- 3588,3603 ---- fi echo "$ac_t""$enable_long_long" 1>&6 + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. + ac_cpp='$CPP $CPPFLAGS' + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' + ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3601: 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 *** 3631,3637 **** echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3635: 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 --- 3654,3660 ---- echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3658: 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" *** 3684,3690 **** echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3688: 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. --- 3707,3713 ---- echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3711: 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}" *** 3699,3705 **** : else cat > conftest.$ac_ext << EOF ! #line 3703 "configure" struct S { ~S(); }; void bar(); void foo() --- 3722,3728 ---- : else cat > conftest.$ac_ext << EOF ! #line 3726 "configure" struct S { ~S(); }; void bar(); void foo() *************** void foo() *** 3710,3716 **** EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS=-S ! if { (eval echo configure:3714: \"$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 --- 3733,3739 ---- EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS=-S ! if { (eval echo configure:3737: \"$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 *************** if test -n "$with_cross_host" || test x" *** 3769,3785 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3773: 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:3783: \"$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* --- 3792,3808 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3796: 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:3806: \"$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 *** 3835,3846 **** # 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:3839: 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:3862: 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 --- 3874,3880 ---- } EOF ! if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** EOF *** 4129,4135 **** fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4133: 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 --- 4152,4158 ---- fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4156: 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 *** 4137,4150 **** 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 --- 4160,4173 ---- 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 *** 4174,4185 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4178: checking for $ac_func" >&5 if 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:4201: checking for $ac_func" >&5 if 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 --- 4225,4231 ---- ; return 0; } EOF ! if { (eval echo configure:4229: \"$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 *** 4235,4246 **** for ac_func in signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4239: checking for $ac_func" >&5 if 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:4262: checking for $ac_func" >&5 if 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 --- 4286,4292 ---- ; return 0; } EOF ! if { (eval echo configure:4290: \"$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 *** 4296,4311 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4300: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 4319,4334 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4323: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 4327,4343 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4331: 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:4341: \"$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* --- 4350,4366 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4354: 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:4364: \"$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 *** 4366,4382 **** ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 ! echo "configure:4370: checking for wctype.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:4380: \"$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* --- 4389,4405 ---- ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 ! echo "configure:4393: checking for wctype.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:4403: \"$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 *** 4403,4418 **** && test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4407: 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:4416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 4426,4441 ---- && test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4430: 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:4439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 4425,4433 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4429: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 4448,4456 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4452: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 4436,4442 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 4459,4465 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 4452,4463 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4456: checking for $ac_func" >&5 if 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:4479: checking for $ac_func" >&5 if 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 --- 4503,4509 ---- ; return 0; } EOF ! if { (eval echo configure:4507: \"$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 *** 4515,4526 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4519: checking for $ac_func" >&5 if 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:4542: checking for $ac_func" >&5 if 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 --- 4566,4572 ---- ; return 0; } EOF ! if { (eval echo configure:4570: \"$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 *** 4571,4577 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4575: 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 --- 4594,4600 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4598: 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 *************** echo "configure:4575: checking for ISO C *** 4582,4598 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4586: 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:4596: \"$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* --- 4605,4621 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4609: 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:4619: \"$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 *** 4616,4632 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4620: 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:4630: \"$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* --- 4639,4655 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4643: 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:4653: \"$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 *** 4650,4656 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4654: 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 --- 4673,4679 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4677: 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 *** 4658,4664 **** 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 --- 4692,4698 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:4696: \"$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 *** 4695,4706 **** 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:4699: checking for $ac_func" >&5 if 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:4722: checking for $ac_func" >&5 if 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 --- 4746,4752 ---- ; return 0; } EOF ! if { (eval echo configure:4750: \"$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 *** 4753,4759 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4757: 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 --- 4776,4782 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4780: 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 *************** echo "configure:4757: checking for XPG2 *** 4763,4769 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4767: 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 --- 4786,4792 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4790: 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 *************** else *** 4837,4853 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4841: 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:4851: \"$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* --- 4860,4876 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4864: 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:4874: \"$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 *** 4898,4907 **** # Check for -ffunction-sections -fdata-sections echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6 ! echo "configure:4902: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&6 ! echo "configure:4925: 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 --- 4932,4938 ---- ; return 0; } EOF ! if { (eval echo configure:4936: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else *************** cross_compiling=$ac_cv_prog_cc_cross *** 4966,4977 **** # 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:4970: 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:4993: 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 --- 5005,5011 ---- } EOF ! if { (eval echo configure:5009: \"$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 *** 5017,5023 **** echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:5021: 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 --- 5040,5046 ---- echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:5044: 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 *** 5032,5045 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:5043: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else --- 5055,5068 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:5066: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else *************** fi *** 5063,5083 **** 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:5067: 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:5081: \"$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 --- 5086,5106 ---- 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:5090: 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:5104: \"$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 *** 5103,5109 **** echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:5107: 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 --- 5126,5132 ---- echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:5130: 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 *** 5118,5131 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:5129: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else --- 5141,5154 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:5152: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else *************** fi *** 5149,5169 **** 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:5153: 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:5167: \"$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 --- 5172,5192 ---- 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:5176: 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:5190: \"$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 *** 5189,5195 **** echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:5193: 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 --- 5212,5218 ---- echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:5216: 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 *** 5204,5217 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:5215: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else --- 5227,5240 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:5238: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else *************** fi *** 5235,5255 **** 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:5239: 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:5253: \"$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 --- 5258,5278 ---- 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:5262: 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:5276: \"$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 *** 5275,5281 **** echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:5279: 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 --- 5298,5304 ---- echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:5302: 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 *** 5290,5303 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:5301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else --- 5313,5326 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:5324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else *************** fi *** 5321,5341 **** 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:5325: 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:5339: \"$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 --- 5344,5364 ---- 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:5348: 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:5362: \"$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 *** 5361,5367 **** echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:5365: 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 --- 5384,5390 ---- echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:5388: 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 *** 5376,5389 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:5387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else --- 5399,5412 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:5410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else *************** fi *** 5407,5427 **** 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:5411: 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:5425: \"$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 --- 5430,5450 ---- 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:5434: 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:5448: \"$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 *** 5448,5454 **** echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:5452: 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 --- 5471,5477 ---- echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:5475: 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 *** 5463,5476 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:5474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else --- 5486,5499 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:5497: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else *************** fi *** 5494,5514 **** 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:5498: 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:5512: \"$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 --- 5517,5537 ---- 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:5521: 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:5535: \"$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 *** 5534,5540 **** echo $ac_n "checking for __builtin_fsqrt declaration""... $ac_c" 1>&6 ! echo "configure:5538: checking for __builtin_fsqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_fsqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5557,5563 ---- echo $ac_n "checking for __builtin_fsqrt declaration""... $ac_c" 1>&6 ! echo "configure:5561: checking for __builtin_fsqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_fsqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 5549,5562 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fsqrt(0); ; return 0; } EOF ! if { (eval echo configure:5560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fsqrt_use=yes else --- 5572,5585 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fsqrt(0); ; return 0; } EOF ! if { (eval echo configure:5583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fsqrt_use=yes else *************** fi *** 5580,5600 **** echo "$ac_t""$glibcpp_cv_func___builtin_fsqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_fsqrt_use = x"yes"; then echo $ac_n "checking for __builtin_fsqrt linkage""... $ac_c" 1>&6 ! echo "configure:5584: checking for __builtin_fsqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_fsqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fsqrt(0); ; return 0; } EOF ! if { (eval echo configure:5598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fsqrt_link=yes else --- 5603,5623 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fsqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_fsqrt_use = x"yes"; then echo $ac_n "checking for __builtin_fsqrt linkage""... $ac_c" 1>&6 ! echo "configure:5607: checking for __builtin_fsqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_fsqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fsqrt(0); ; return 0; } EOF ! if { (eval echo configure:5621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fsqrt_link=yes else *************** EOF *** 5620,5626 **** echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:5624: 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 --- 5643,5649 ---- echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:5647: 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 *** 5635,5648 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:5646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else --- 5658,5671 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:5669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else *************** fi *** 5666,5686 **** 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:5670: 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:5684: \"$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 --- 5689,5709 ---- 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:5693: 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:5707: \"$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 *** 5707,5713 **** echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:5711: 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 --- 5730,5736 ---- echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:5734: 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 *** 5722,5735 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:5733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else --- 5745,5758 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:5756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else *************** fi *** 5753,5773 **** 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:5757: 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:5771: \"$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 --- 5776,5796 ---- 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:5780: 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:5794: \"$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 *** 5793,5799 **** echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:5797: 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 --- 5816,5822 ---- echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:5820: 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 *** 5808,5821 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:5819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else --- 5831,5844 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:5842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else *************** fi *** 5839,5859 **** 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:5843: 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:5857: \"$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 --- 5862,5882 ---- 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:5866: 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:5880: \"$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 *** 5879,5885 **** echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:5883: 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 --- 5902,5908 ---- echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:5906: 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 *** 5894,5907 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:5905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else --- 5917,5930 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:5928: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else *************** fi *** 5925,5945 **** 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:5929: 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:5943: \"$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 --- 5948,5968 ---- 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:5952: 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:5966: \"$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 *** 5966,5972 **** echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:5970: 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 --- 5989,5995 ---- echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:5993: 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 *** 5981,5994 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:5992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else --- 6004,6017 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:6015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else *************** fi *** 6012,6032 **** 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:6016: 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:6030: \"$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 --- 6035,6055 ---- 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:6039: 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:6053: \"$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 *** 6052,6058 **** echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:6056: 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 --- 6075,6081 ---- echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:6079: 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 *** 6067,6080 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:6078: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else --- 6090,6103 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:6101: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else *************** fi *** 6098,6118 **** 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:6102: 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:6116: \"$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 --- 6121,6141 ---- 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:6125: 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:6139: \"$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 *** 6138,6144 **** echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:6142: 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 --- 6161,6167 ---- echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:6165: 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 *** 6153,6166 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:6164: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else --- 6176,6189 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:6187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else *************** fi *** 6184,6204 **** 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:6188: 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:6202: \"$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 --- 6207,6227 ---- 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:6211: 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:6225: \"$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 *** 6289,6295 **** CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:6293: 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 --- 6312,6318 ---- CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:6316: 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 *** 6297,6303 **** 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 --- 6331,6337 ---- sin() ; return 0; } EOF ! if { (eval echo configure:6335: \"$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 *** 6334,6340 **** echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:6338: 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 --- 6357,6363 ---- echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:6361: 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 *** 6349,6355 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 6372,6378 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 6360,6366 **** isinf(0); ; return 0; } EOF ! if { (eval echo configure:6364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else --- 6383,6389 ---- isinf(0); ; return 0; } EOF ! if { (eval echo configure:6387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else *************** fi *** 6387,6398 **** for ac_func in isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6391: checking for $ac_func" >&5 if 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:6414: checking for $ac_func" >&5 if 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 --- 6438,6444 ---- ; return 0; } EOF ! if { (eval echo configure:6442: \"$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 *** 6442,6448 **** else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:6446: 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 --- 6465,6471 ---- else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:6469: 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 *** 6457,6463 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 6480,6486 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 6468,6474 **** _isinf(0); ; return 0; } EOF ! if { (eval echo configure:6472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else --- 6491,6497 ---- _isinf(0); ; return 0; } EOF ! if { (eval echo configure:6495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else *************** fi *** 6495,6506 **** for ac_func in _isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6499: checking for $ac_func" >&5 if 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:6522: checking for $ac_func" >&5 if 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 --- 6546,6552 ---- ; return 0; } EOF ! if { (eval echo configure:6550: \"$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 *** 6553,6559 **** echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:6557: 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 --- 6576,6582 ---- echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:6580: 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 *** 6568,6574 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 6591,6597 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 6579,6585 **** isnan(0); ; return 0; } EOF ! if { (eval echo configure:6583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else --- 6602,6608 ---- isnan(0); ; return 0; } EOF ! if { (eval echo configure:6606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else *************** fi *** 6606,6617 **** for ac_func in isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6610: checking for $ac_func" >&5 if 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:6633: checking for $ac_func" >&5 if 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 --- 6657,6663 ---- ; return 0; } EOF ! if { (eval echo configure:6661: \"$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 *** 6661,6667 **** else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:6665: 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 --- 6684,6690 ---- else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:6688: 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 *** 6676,6682 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 6699,6705 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 6687,6693 **** _isnan(0); ; return 0; } EOF ! if { (eval echo configure:6691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else --- 6710,6716 ---- _isnan(0); ; return 0; } EOF ! if { (eval echo configure:6714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else *************** fi *** 6714,6725 **** for ac_func in _isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6718: checking for $ac_func" >&5 if 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:6741: checking for $ac_func" >&5 if 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 --- 6765,6771 ---- ; return 0; } EOF ! if { (eval echo configure:6769: \"$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 *** 6772,6778 **** echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:6776: 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 --- 6795,6801 ---- echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:6799: 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 *** 6787,6793 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 6810,6816 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 6798,6804 **** finite(0); ; return 0; } EOF ! if { (eval echo configure:6802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else --- 6821,6827 ---- finite(0); ; return 0; } EOF ! if { (eval echo configure:6825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else *************** fi *** 6825,6836 **** for ac_func in finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6829: checking for $ac_func" >&5 if 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:6852: checking for $ac_func" >&5 if 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 --- 6876,6882 ---- ; return 0; } EOF ! if { (eval echo configure:6880: \"$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 *** 6880,6886 **** else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:6884: 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 --- 6903,6909 ---- else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:6907: 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 *** 6895,6901 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 6918,6924 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 6906,6912 **** _finite(0); ; return 0; } EOF ! if { (eval echo configure:6910: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else --- 6929,6935 ---- _finite(0); ; return 0; } EOF ! if { (eval echo configure:6933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else *************** fi *** 6933,6944 **** for ac_func in _finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6937: checking for $ac_func" >&5 if 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:6960: checking for $ac_func" >&5 if 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 --- 6984,6990 ---- ; return 0; } EOF ! if { (eval echo configure:6988: \"$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 *** 6991,6997 **** echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:6995: 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 --- 7014,7020 ---- echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:7018: 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 *** 7006,7019 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:7017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else --- 7029,7042 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:7040: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else *************** fi *** 7040,7051 **** for ac_func in copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7044: checking for $ac_func" >&5 if 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:7067: checking for $ac_func" >&5 if 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 --- 7091,7097 ---- ; return 0; } EOF ! if { (eval echo configure:7095: \"$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 *** 7095,7101 **** else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:7099: 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 --- 7118,7124 ---- else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:7122: 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 *** 7110,7123 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:7121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else --- 7133,7146 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:7144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else *************** fi *** 7144,7155 **** for ac_func in _copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7148: checking for $ac_func" >&5 if 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:7171: checking for $ac_func" >&5 if 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 --- 7195,7201 ---- ; return 0; } EOF ! if { (eval echo configure:7199: \"$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 *** 7202,7208 **** echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:7206: 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 --- 7225,7231 ---- echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:7229: 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 *** 7217,7230 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:7228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else --- 7240,7253 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:7251: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else *************** fi *** 7251,7262 **** for ac_func in sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7255: checking for $ac_func" >&5 if 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:7278: checking for $ac_func" >&5 if 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 --- 7302,7308 ---- ; return 0; } EOF ! if { (eval echo configure:7306: \"$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 *** 7306,7312 **** else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:7310: 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 --- 7329,7335 ---- else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:7333: 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 *** 7321,7334 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:7332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else --- 7344,7357 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:7355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else *************** fi *** 7355,7366 **** for ac_func in _sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7359: checking for $ac_func" >&5 if 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:7382: checking for $ac_func" >&5 if 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 --- 7406,7412 ---- ; return 0; } EOF ! if { (eval echo configure:7410: \"$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 *** 7413,7419 **** echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:7417: 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 --- 7436,7442 ---- echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:7440: 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 *** 7428,7434 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 7451,7457 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 7439,7445 **** fpclass(0); ; return 0; } EOF ! if { (eval echo configure:7443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else --- 7462,7468 ---- fpclass(0); ; return 0; } EOF ! if { (eval echo configure:7466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else *************** fi *** 7466,7477 **** for ac_func in fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7470: checking for $ac_func" >&5 if 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:7493: checking for $ac_func" >&5 if 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 --- 7517,7523 ---- ; return 0; } EOF ! if { (eval echo configure:7521: \"$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 *** 7521,7527 **** else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:7525: 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 --- 7544,7550 ---- else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:7548: 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 *** 7536,7542 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 7559,7565 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 7547,7553 **** _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:7551: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else --- 7570,7576 ---- _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:7574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else *************** fi *** 7574,7585 **** for ac_func in _fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7578: checking for $ac_func" >&5 if 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:7601: checking for $ac_func" >&5 if 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 --- 7625,7631 ---- ; return 0; } EOF ! if { (eval echo configure:7629: \"$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 *** 7632,7638 **** echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:7636: 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 --- 7655,7661 ---- echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:7659: 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 *** 7647,7653 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 7670,7676 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 7658,7664 **** qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:7662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else --- 7681,7687 ---- qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:7685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else *************** fi *** 7685,7696 **** for ac_func in qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7689: checking for $ac_func" >&5 if 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:7712: checking for $ac_func" >&5 if 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 --- 7736,7742 ---- ; return 0; } EOF ! if { (eval echo configure:7740: \"$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 *** 7740,7746 **** else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:7744: 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 --- 7763,7769 ---- else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:7767: 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 *** 7755,7761 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 7778,7784 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 7766,7772 **** _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:7770: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else --- 7789,7795 ---- _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:7793: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else *************** fi *** 7793,7804 **** for ac_func in _qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7797: checking for $ac_func" >&5 if 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:7820: checking for $ac_func" >&5 if 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 --- 7844,7850 ---- ; return 0; } EOF ! if { (eval echo configure:7848: \"$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 *** 7851,7857 **** echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:7855: 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 --- 7874,7880 ---- echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:7878: 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 *** 7866,7879 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:7877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else --- 7889,7902 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:7900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else *************** fi *** 7900,7911 **** for ac_func in hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7904: checking for $ac_func" >&5 if 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:7927: checking for $ac_func" >&5 if 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 --- 7951,7957 ---- ; return 0; } EOF ! if { (eval echo configure:7955: \"$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 *** 7955,7961 **** else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:7959: 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 --- 7978,7984 ---- else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:7982: 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 *** 7970,7983 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:7981: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else --- 7993,8006 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:8004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else *************** fi *** 8004,8015 **** for ac_func in _hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8008: checking for $ac_func" >&5 if 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:8031: checking for $ac_func" >&5 if 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 --- 8055,8061 ---- ; return 0; } EOF ! if { (eval echo configure:8059: \"$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 *** 8062,8068 **** echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:8066: 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 --- 8085,8091 ---- echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:8089: 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 *** 8076,8082 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 8099,8105 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 8085,8091 **** coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:8089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else --- 8108,8114 ---- coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:8112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else *************** fi *** 8111,8122 **** coshf sinhf tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8115: checking for $ac_func" >&5 if 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:8138: checking for $ac_func" >&5 if 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 --- 8162,8168 ---- ; return 0; } EOF ! if { (eval echo configure:8166: \"$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 *** 8167,8173 **** echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:8171: 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 --- 8190,8196 ---- echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:8194: 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 *** 8181,8194 **** 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:8192: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else --- 8204,8217 ---- 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:8215: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else *************** fi *** 8212,8223 **** for ac_func in ceilf floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8216: checking for $ac_func" >&5 if 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:8239: checking for $ac_func" >&5 if 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 --- 8263,8269 ---- ; return 0; } EOF ! if { (eval echo configure:8267: \"$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 *** 8269,8275 **** echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:8273: 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 --- 8292,8298 ---- echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:8296: 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 *** 8284,8290 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 8307,8313 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 8295,8301 **** isnanf(0); ; return 0; } EOF ! if { (eval echo configure:8299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else --- 8318,8324 ---- isnanf(0); ; return 0; } EOF ! if { (eval echo configure:8322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else *************** fi *** 8322,8333 **** for ac_func in isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8326: checking for $ac_func" >&5 if 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:8349: checking for $ac_func" >&5 if 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 --- 8373,8379 ---- ; return 0; } EOF ! if { (eval echo configure:8377: \"$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 *** 8377,8383 **** else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:8381: 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 --- 8400,8406 ---- else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:8404: 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 *** 8392,8398 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 8415,8421 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 8403,8409 **** _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:8407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else --- 8426,8432 ---- _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:8430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else *************** fi *** 8430,8441 **** for ac_func in _isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8434: checking for $ac_func" >&5 if 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:8457: checking for $ac_func" >&5 if 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 --- 8481,8487 ---- ; return 0; } EOF ! if { (eval echo configure:8485: \"$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 *** 8488,8494 **** echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:8492: 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 --- 8511,8517 ---- echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:8515: 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 *** 8503,8509 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 8526,8532 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 8514,8520 **** isinff(0); ; return 0; } EOF ! if { (eval echo configure:8518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else --- 8537,8543 ---- isinff(0); ; return 0; } EOF ! if { (eval echo configure:8541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else *************** fi *** 8541,8552 **** for ac_func in isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8545: checking for $ac_func" >&5 if 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:8568: checking for $ac_func" >&5 if 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 --- 8592,8598 ---- ; return 0; } EOF ! if { (eval echo configure:8596: \"$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 *** 8596,8602 **** else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:8600: 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 --- 8619,8625 ---- else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:8623: 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 *** 8611,8617 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 8634,8640 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 8622,8628 **** _isinff(0); ; return 0; } EOF ! if { (eval echo configure:8626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else --- 8645,8651 ---- _isinff(0); ; return 0; } EOF ! if { (eval echo configure:8649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else *************** fi *** 8649,8660 **** for ac_func in _isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8653: checking for $ac_func" >&5 if 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:8676: checking for $ac_func" >&5 if 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 --- 8700,8706 ---- ; return 0; } EOF ! if { (eval echo configure:8704: \"$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 *** 8707,8713 **** echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:8711: 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 --- 8730,8736 ---- echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:8734: 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 *** 8722,8735 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:8733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else --- 8745,8758 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:8756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else *************** fi *** 8756,8767 **** for ac_func in atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8760: checking for $ac_func" >&5 if 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:8783: checking for $ac_func" >&5 if 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 --- 8807,8813 ---- ; return 0; } EOF ! if { (eval echo configure:8811: \"$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 *** 8811,8817 **** else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:8815: 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 --- 8834,8840 ---- else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:8838: 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 *** 8826,8839 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:8837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else --- 8849,8862 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:8860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else *************** fi *** 8860,8871 **** for ac_func in _atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8864: checking for $ac_func" >&5 if 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:8887: checking for $ac_func" >&5 if 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 --- 8911,8917 ---- ; return 0; } EOF ! if { (eval echo configure:8915: \"$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 *** 8918,8924 **** echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:8922: 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 --- 8941,8947 ---- echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:8945: 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 *** 8933,8939 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 8956,8962 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 8944,8950 **** fabsf(0); ; return 0; } EOF ! if { (eval echo configure:8948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else --- 8967,8973 ---- fabsf(0); ; return 0; } EOF ! if { (eval echo configure:8971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else *************** fi *** 8971,8982 **** for ac_func in fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8975: checking for $ac_func" >&5 if 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:8998: checking for $ac_func" >&5 if 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 --- 9022,9028 ---- ; return 0; } EOF ! if { (eval echo configure:9026: \"$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 *** 9026,9032 **** else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9030: 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 --- 9049,9055 ---- else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9053: 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 *** 9041,9047 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 9064,9070 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9052,9058 **** _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else --- 9075,9081 ---- _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else *************** fi *** 9079,9090 **** for ac_func in _fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9083: checking for $ac_func" >&5 if 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:9106: checking for $ac_func" >&5 if 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 --- 9130,9136 ---- ; return 0; } EOF ! if { (eval echo configure:9134: \"$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 *** 9137,9143 **** echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:9141: 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 --- 9160,9166 ---- echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:9164: 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 *** 9152,9165 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else --- 9175,9188 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else *************** fi *** 9186,9197 **** for ac_func in fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9190: checking for $ac_func" >&5 if 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:9213: checking for $ac_func" >&5 if 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 --- 9237,9243 ---- ; return 0; } EOF ! if { (eval echo configure:9241: \"$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 *** 9241,9247 **** else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:9245: 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 --- 9264,9270 ---- else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:9268: 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 *** 9256,9269 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9267: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else --- 9279,9292 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else *************** fi *** 9290,9301 **** for ac_func in _fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9294: checking for $ac_func" >&5 if 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:9317: checking for $ac_func" >&5 if 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 --- 9341,9347 ---- ; return 0; } EOF ! if { (eval echo configure:9345: \"$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 *** 9348,9354 **** echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:9352: 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 --- 9371,9377 ---- echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:9375: 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 *** 9363,9376 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else --- 9386,9399 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else *************** fi *** 9397,9408 **** for ac_func in frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9401: checking for $ac_func" >&5 if 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:9424: checking for $ac_func" >&5 if 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 --- 9448,9454 ---- ; return 0; } EOF ! if { (eval echo configure:9452: \"$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 *** 9452,9458 **** else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:9456: 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 --- 9475,9481 ---- else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:9479: 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 *** 9467,9480 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else --- 9490,9503 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9501: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else *************** fi *** 9501,9512 **** for ac_func in _frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9505: checking for $ac_func" >&5 if 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:9528: checking for $ac_func" >&5 if 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 --- 9552,9558 ---- ; return 0; } EOF ! if { (eval echo configure:9556: \"$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 *** 9559,9565 **** echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:9563: 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 --- 9582,9588 ---- echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:9586: 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 *** 9574,9587 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else --- 9597,9610 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else *************** fi *** 9608,9619 **** for ac_func in hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9612: checking for $ac_func" >&5 if 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:9635: checking for $ac_func" >&5 if 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 --- 9659,9665 ---- ; return 0; } EOF ! if { (eval echo configure:9663: \"$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 *** 9663,9669 **** else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:9667: 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 --- 9686,9692 ---- else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:9690: 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 *** 9678,9691 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else --- 9701,9714 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else *************** fi *** 9712,9723 **** for ac_func in _hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9716: checking for $ac_func" >&5 if 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:9739: checking for $ac_func" >&5 if 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 --- 9763,9769 ---- ; return 0; } EOF ! if { (eval echo configure:9767: \"$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 *** 9770,9776 **** echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:9774: 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 --- 9793,9799 ---- echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:9797: 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 *** 9785,9798 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else --- 9808,9821 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else *************** fi *** 9819,9830 **** for ac_func in ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9823: checking for $ac_func" >&5 if 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:9846: checking for $ac_func" >&5 if 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 --- 9870,9876 ---- ; return 0; } EOF ! if { (eval echo configure:9874: \"$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 *** 9874,9880 **** else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:9878: 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 --- 9897,9903 ---- else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:9901: 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 *** 9889,9902 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else --- 9912,9925 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:9923: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else *************** fi *** 9923,9934 **** for ac_func in _ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9927: checking for $ac_func" >&5 if 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:9950: checking for $ac_func" >&5 if 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 --- 9974,9980 ---- ; return 0; } EOF ! if { (eval echo configure:9978: \"$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 *** 9981,9987 **** echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:9985: 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 --- 10004,10010 ---- echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:10008: 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 *** 9996,10002 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10019,10025 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10007,10013 **** logf(0); ; return 0; } EOF ! if { (eval echo configure:10011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else --- 10030,10036 ---- logf(0); ; return 0; } EOF ! if { (eval echo configure:10034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else *************** fi *** 10034,10045 **** for ac_func in logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10038: checking for $ac_func" >&5 if 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:10061: checking for $ac_func" >&5 if 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 --- 10085,10091 ---- ; return 0; } EOF ! if { (eval echo configure:10089: \"$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 *** 10089,10095 **** else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:10093: 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 --- 10112,10118 ---- else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:10116: 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 *** 10104,10110 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10127,10133 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10115,10121 **** _logf(0); ; return 0; } EOF ! if { (eval echo configure:10119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else --- 10138,10144 ---- _logf(0); ; return 0; } EOF ! if { (eval echo configure:10142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else *************** fi *** 10142,10153 **** for ac_func in _logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10146: checking for $ac_func" >&5 if 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:10169: checking for $ac_func" >&5 if 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 --- 10193,10199 ---- ; return 0; } EOF ! if { (eval echo configure:10197: \"$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 *** 10200,10206 **** echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:10204: 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 --- 10223,10229 ---- echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:10227: 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 *** 10215,10221 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10238,10244 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10226,10232 **** log10f(0); ; return 0; } EOF ! if { (eval echo configure:10230: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else --- 10249,10255 ---- log10f(0); ; return 0; } EOF ! if { (eval echo configure:10253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else *************** fi *** 10253,10264 **** for ac_func in log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10257: checking for $ac_func" >&5 if 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:10280: checking for $ac_func" >&5 if 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 --- 10304,10310 ---- ; return 0; } EOF ! if { (eval echo configure:10308: \"$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 *** 10308,10314 **** else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:10312: 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 --- 10331,10337 ---- else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:10335: 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 *** 10323,10329 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10346,10352 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10334,10340 **** _log10f(0); ; return 0; } EOF ! if { (eval echo configure:10338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else --- 10357,10363 ---- _log10f(0); ; return 0; } EOF ! if { (eval echo configure:10361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else *************** fi *** 10361,10372 **** for ac_func in _log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10365: checking for $ac_func" >&5 if 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:10388: checking for $ac_func" >&5 if 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 --- 10412,10418 ---- ; return 0; } EOF ! if { (eval echo configure:10416: \"$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 *** 10419,10425 **** echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:10423: 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 --- 10442,10448 ---- echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:10446: 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 *** 10434,10447 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:10445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else --- 10457,10470 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:10468: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else *************** fi *** 10468,10479 **** for ac_func in modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10472: checking for $ac_func" >&5 if 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:10495: checking for $ac_func" >&5 if 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 --- 10519,10525 ---- ; return 0; } EOF ! if { (eval echo configure:10523: \"$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 *** 10523,10529 **** else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:10527: 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 --- 10546,10552 ---- else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:10550: 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 *** 10538,10551 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:10549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else --- 10561,10574 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:10572: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else *************** fi *** 10572,10583 **** for ac_func in _modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10576: checking for $ac_func" >&5 if 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:10599: checking for $ac_func" >&5 if 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 --- 10623,10629 ---- ; return 0; } EOF ! if { (eval echo configure:10627: \"$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 *** 10630,10636 **** echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:10634: 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 --- 10653,10659 ---- echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:10657: 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 *** 10645,10658 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:10656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else --- 10668,10681 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:10679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else *************** fi *** 10679,10690 **** for ac_func in powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10683: checking for $ac_func" >&5 if 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:10706: checking for $ac_func" >&5 if 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 --- 10730,10736 ---- ; return 0; } EOF ! if { (eval echo configure:10734: \"$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 *** 10734,10740 **** else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:10738: 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 --- 10757,10763 ---- else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:10761: 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 *** 10749,10762 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:10760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else --- 10772,10785 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:10783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else *************** fi *** 10783,10794 **** for ac_func in _powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10787: checking for $ac_func" >&5 if 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:10810: checking for $ac_func" >&5 if 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 --- 10834,10840 ---- ; return 0; } EOF ! if { (eval echo configure:10838: \"$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 *** 10841,10847 **** echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:10845: 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 --- 10864,10870 ---- echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:10868: 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 *** 10856,10862 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10879,10885 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10867,10873 **** sqrtf(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_sqrtf_use=yes else --- 10890,10896 ---- sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:10894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else *************** fi *** 10894,10905 **** for ac_func in sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:10921: checking for $ac_func" >&5 if 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 --- 10945,10951 ---- ; return 0; } EOF ! if { (eval echo configure:10949: \"$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 *** 10949,10955 **** else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:10953: 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 --- 10972,10978 ---- else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:10976: 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 *** 10964,10970 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10987,10993 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10975,10981 **** _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:10979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else --- 10998,11004 ---- _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:11002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else *************** fi *** 11002,11013 **** for ac_func in _sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11006: checking for $ac_func" >&5 if 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:11029: checking for $ac_func" >&5 if 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 --- 11053,11059 ---- ; return 0; } EOF ! if { (eval echo configure:11057: \"$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 *** 11060,11066 **** echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:11064: 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 --- 11083,11089 ---- echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:11087: 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 *** 11075,11088 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else --- 11098,11111 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else *************** fi *** 11109,11120 **** for ac_func in sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11113: checking for $ac_func" >&5 if 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:11136: checking for $ac_func" >&5 if 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 --- 11160,11166 ---- ; return 0; } EOF ! if { (eval echo configure:11164: \"$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 **** else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:11168: 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 --- 11187,11193 ---- else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:11191: 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 *** 11179,11192 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 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__sincosf_use=yes else --- 11202,11215 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else *************** fi *** 11213,11224 **** for ac_func in _sincosf 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:11240: checking for $ac_func" >&5 if 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 --- 11264,11270 ---- ; return 0; } EOF ! if { (eval echo configure:11268: \"$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 *** 11271,11277 **** echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:11275: 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 --- 11294,11300 ---- echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:11298: 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 *** 11286,11292 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11309,11315 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11297,11303 **** finitef(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_finitef_use=yes else --- 11320,11326 ---- finitef(0); ; return 0; } EOF ! if { (eval echo configure:11324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else *************** fi *** 11324,11335 **** for ac_func in finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:11351: checking for $ac_func" >&5 if 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 --- 11375,11381 ---- ; return 0; } EOF ! if { (eval echo configure:11379: \"$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 *** 11379,11385 **** else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:11383: 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 --- 11402,11408 ---- else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:11406: 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 *** 11394,11400 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11417,11423 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11405,11411 **** _finitef(0); ; return 0; } EOF ! if { (eval echo configure:11409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else --- 11428,11434 ---- _finitef(0); ; return 0; } EOF ! if { (eval echo configure:11432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else *************** fi *** 11432,11443 **** for ac_func in _finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11436: checking for $ac_func" >&5 if 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:11459: checking for $ac_func" >&5 if 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 --- 11483,11489 ---- ; return 0; } EOF ! if { (eval echo configure:11487: \"$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 *** 11490,11496 **** echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:11494: 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 --- 11513,11519 ---- echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:11517: 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 *** 11504,11510 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 11527,11533 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 11513,11519 **** coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:11517: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else --- 11536,11542 ---- coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:11540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else *************** fi *** 11539,11550 **** coshl sinhl tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11543: checking for $ac_func" >&5 if 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:11566: checking for $ac_func" >&5 if 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 --- 11590,11596 ---- ; return 0; } EOF ! if { (eval echo configure:11594: \"$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 *** 11595,11601 **** echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:11599: 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 --- 11618,11624 ---- echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:11622: 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 *** 11609,11622 **** 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:11620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else --- 11632,11645 ---- 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:11643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else *************** fi *** 11640,11651 **** for ac_func in ceill floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11644: checking for $ac_func" >&5 if 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:11667: checking for $ac_func" >&5 if 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 --- 11691,11697 ---- ; return 0; } EOF ! if { (eval echo configure:11695: \"$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 *** 11697,11703 **** echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:11701: 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 --- 11720,11726 ---- echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:11724: 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 *** 11712,11718 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11735,11741 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11723,11729 **** isnanl(0); ; return 0; } EOF ! if { (eval echo configure:11727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else --- 11746,11752 ---- isnanl(0); ; return 0; } EOF ! if { (eval echo configure:11750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else *************** fi *** 11750,11761 **** for ac_func in isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11754: checking for $ac_func" >&5 if 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:11777: checking for $ac_func" >&5 if 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 --- 11801,11807 ---- ; return 0; } EOF ! if { (eval echo configure:11805: \"$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 *** 11805,11811 **** else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:11809: 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 --- 11828,11834 ---- else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:11832: 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 *** 11820,11826 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11843,11849 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11831,11837 **** _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:11835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else --- 11854,11860 ---- _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:11858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else *************** fi *** 11858,11869 **** for ac_func in _isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11862: checking for $ac_func" >&5 if 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:11885: checking for $ac_func" >&5 if 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 --- 11909,11915 ---- ; return 0; } EOF ! if { (eval echo configure:11913: \"$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 *** 11916,11922 **** echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:11920: 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 --- 11939,11945 ---- echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:11943: 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 *** 11931,11937 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11954,11960 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11942,11948 **** isinfl(0); ; return 0; } EOF ! if { (eval echo configure:11946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else --- 11965,11971 ---- isinfl(0); ; return 0; } EOF ! if { (eval echo configure:11969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else *************** fi *** 11969,11980 **** for ac_func in isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11973: checking for $ac_func" >&5 if 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:11996: checking for $ac_func" >&5 if 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 --- 12020,12026 ---- ; return 0; } EOF ! if { (eval echo configure:12024: \"$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 *** 12024,12030 **** else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:12028: 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 --- 12047,12053 ---- else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:12051: 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 *** 12039,12045 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12062,12068 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12050,12056 **** _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:12054: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else --- 12073,12079 ---- _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:12077: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else *************** fi *** 12077,12088 **** for ac_func in _isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12081: checking for $ac_func" >&5 if 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:12104: checking for $ac_func" >&5 if 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 --- 12128,12134 ---- ; return 0; } EOF ! if { (eval echo configure:12132: \"$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 *** 12135,12141 **** echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:12139: 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 --- 12158,12164 ---- echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:12162: 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 *** 12150,12163 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(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_copysignl_use=yes else --- 12173,12186 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:12184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else *************** fi *** 12184,12195 **** for ac_func in copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:12211: checking for $ac_func" >&5 if 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 --- 12235,12241 ---- ; return 0; } EOF ! if { (eval echo configure:12239: \"$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 **** else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:12243: 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 --- 12262,12268 ---- else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:12266: 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 *** 12254,12267 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(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__copysignl_use=yes else --- 12277,12290 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:12288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else *************** fi *** 12288,12299 **** for ac_func in _copysignl 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:12315: checking for $ac_func" >&5 if 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 --- 12339,12345 ---- ; return 0; } EOF ! if { (eval echo configure:12343: \"$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 *** 12346,12352 **** echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:12350: 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 --- 12369,12375 ---- echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:12373: 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 *** 12361,12374 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:12372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else --- 12384,12397 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:12395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else *************** fi *** 12395,12406 **** for ac_func in atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12399: checking for $ac_func" >&5 if 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:12422: checking for $ac_func" >&5 if 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 --- 12446,12452 ---- ; return 0; } EOF ! if { (eval echo configure:12450: \"$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 **** else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:12454: 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 --- 12473,12479 ---- else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:12477: 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 *** 12465,12478 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:12476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else --- 12488,12501 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:12499: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else *************** fi *** 12499,12510 **** for ac_func in _atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12503: checking for $ac_func" >&5 if 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:12526: checking for $ac_func" >&5 if 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 --- 12550,12556 ---- ; return 0; } EOF ! if { (eval echo configure:12554: \"$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 *** 12557,12563 **** echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:12561: 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 --- 12580,12586 ---- echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:12584: 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 *** 12572,12578 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12595,12601 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12583,12589 **** expl(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_expl_use=yes else --- 12606,12612 ---- expl(0); ; return 0; } EOF ! if { (eval echo configure:12610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else *************** fi *** 12610,12621 **** for ac_func in expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:12637: checking for $ac_func" >&5 if 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 --- 12661,12667 ---- ; return 0; } EOF ! if { (eval echo configure:12665: \"$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 *** 12665,12671 **** else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:12669: 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 --- 12688,12694 ---- else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:12692: 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 *** 12680,12686 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12703,12709 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12691,12697 **** _expl(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__expl_use=yes else --- 12714,12720 ---- _expl(0); ; return 0; } EOF ! if { (eval echo configure:12718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else *************** fi *** 12718,12729 **** for ac_func in _expl 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:12745: checking for $ac_func" >&5 if 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 --- 12769,12775 ---- ; return 0; } EOF ! if { (eval echo configure:12773: \"$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 *** 12776,12782 **** echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:12780: 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 --- 12799,12805 ---- echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:12803: 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 *** 12791,12797 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12814,12820 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12802,12808 **** fabsl(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_fabsl_use=yes else --- 12825,12831 ---- fabsl(0); ; return 0; } EOF ! if { (eval echo configure:12829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else *************** fi *** 12829,12840 **** for ac_func in fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:12856: checking for $ac_func" >&5 if 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 --- 12880,12886 ---- ; return 0; } EOF ! if { (eval echo configure:12884: \"$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 *** 12884,12890 **** else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:12888: 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 --- 12907,12913 ---- else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:12911: 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 *** 12899,12905 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12922,12928 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12910,12916 **** _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:12914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else --- 12933,12939 ---- _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:12937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else *************** fi *** 12937,12948 **** for ac_func in _fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12941: checking for $ac_func" >&5 if 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:12964: checking for $ac_func" >&5 if 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 --- 12988,12994 ---- ; return 0; } EOF ! if { (eval echo configure:12992: \"$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 *** 12995,13001 **** echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:12999: 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 --- 13018,13024 ---- echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:13022: 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 *** 13010,13023 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else --- 13033,13046 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else *************** fi *** 13044,13055 **** for ac_func in fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13048: checking for $ac_func" >&5 if 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:13071: checking for $ac_func" >&5 if 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 --- 13095,13101 ---- ; return 0; } EOF ! if { (eval echo configure:13099: \"$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 *** 13099,13105 **** else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:13103: 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 --- 13122,13128 ---- else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:13126: 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 *** 13114,13127 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else --- 13137,13150 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else *************** fi *** 13148,13159 **** for ac_func in _fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13152: checking for $ac_func" >&5 if 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:13175: checking for $ac_func" >&5 if 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 --- 13199,13205 ---- ; return 0; } EOF ! if { (eval echo configure:13203: \"$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 *** 13206,13212 **** echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:13210: 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 --- 13229,13235 ---- echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:13233: 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 *** 13221,13234 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else --- 13244,13257 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else *************** fi *** 13255,13266 **** for ac_func in frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13259: checking for $ac_func" >&5 if 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:13282: checking for $ac_func" >&5 if 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 --- 13306,13312 ---- ; return 0; } EOF ! if { (eval echo configure:13310: \"$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 *** 13310,13316 **** else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:13314: 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 --- 13333,13339 ---- else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:13337: 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 *** 13325,13338 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else --- 13348,13361 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else *************** fi *** 13359,13370 **** for ac_func in _frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13363: checking for $ac_func" >&5 if 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:13386: checking for $ac_func" >&5 if 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 --- 13410,13416 ---- ; return 0; } EOF ! if { (eval echo configure:13414: \"$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 *** 13417,13423 **** echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:13421: 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 --- 13440,13446 ---- echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:13444: 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 *** 13432,13445 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else --- 13455,13468 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else *************** fi *** 13466,13477 **** for ac_func in hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13470: checking for $ac_func" >&5 if 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:13493: checking for $ac_func" >&5 if 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 --- 13517,13523 ---- ; return 0; } EOF ! if { (eval echo configure:13521: \"$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 *** 13521,13527 **** else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:13525: 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 --- 13544,13550 ---- else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:13548: 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 *** 13536,13549 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else --- 13559,13572 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else *************** fi *** 13570,13581 **** for ac_func in _hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13574: checking for $ac_func" >&5 if 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:13597: checking for $ac_func" >&5 if 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 --- 13621,13627 ---- ; return 0; } EOF ! if { (eval echo configure:13625: \"$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 *** 13628,13634 **** echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:13632: 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 --- 13651,13657 ---- echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:13655: 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 *** 13643,13656 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else --- 13666,13679 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else *************** fi *** 13677,13688 **** for ac_func in ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13681: checking for $ac_func" >&5 if 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:13704: checking for $ac_func" >&5 if 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 --- 13728,13734 ---- ; return 0; } EOF ! if { (eval echo configure:13732: \"$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 **** else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:13736: 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 --- 13755,13761 ---- else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:13759: 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 *** 13747,13760 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13758: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else --- 13770,13783 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:13781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else *************** fi *** 13781,13792 **** for ac_func in _ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13785: checking for $ac_func" >&5 if 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:13808: checking for $ac_func" >&5 if 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 --- 13832,13838 ---- ; return 0; } EOF ! if { (eval echo configure:13836: \"$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 *** 13839,13845 **** echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:13843: 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 --- 13862,13868 ---- echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:13866: 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 *** 13854,13860 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13877,13883 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13865,13871 **** logl(0); ; return 0; } EOF ! if { (eval echo configure:13869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else --- 13888,13894 ---- logl(0); ; return 0; } EOF ! if { (eval echo configure:13892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else *************** fi *** 13892,13903 **** for ac_func in logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13896: checking for $ac_func" >&5 if 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:13919: checking for $ac_func" >&5 if 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 --- 13943,13949 ---- ; return 0; } EOF ! if { (eval echo configure:13947: \"$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 *** 13947,13953 **** else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:13951: 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 --- 13970,13976 ---- else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:13974: 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 *** 13962,13968 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13985,13991 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13973,13979 **** _logl(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__logl_use=yes else --- 13996,14002 ---- _logl(0); ; return 0; } EOF ! if { (eval echo configure:14000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else *************** fi *** 14000,14011 **** for ac_func in _logl 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:14027: checking for $ac_func" >&5 if 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 --- 14051,14057 ---- ; return 0; } EOF ! if { (eval echo configure:14055: \"$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 *** 14058,14064 **** echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:14062: 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 --- 14081,14087 ---- echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:14085: 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 *** 14073,14079 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14096,14102 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14084,14090 **** log10l(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_log10l_use=yes else --- 14107,14113 ---- log10l(0); ; return 0; } EOF ! if { (eval echo configure:14111: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else *************** fi *** 14111,14122 **** for ac_func in log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:14138: checking for $ac_func" >&5 if 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 --- 14162,14168 ---- ; return 0; } EOF ! if { (eval echo configure:14166: \"$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 *** 14166,14172 **** else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:14170: 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 --- 14189,14195 ---- else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:14193: 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 *** 14181,14187 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14204,14210 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14192,14198 **** _log10l(0); ; return 0; } EOF ! if { (eval echo configure:14196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else --- 14215,14221 ---- _log10l(0); ; return 0; } EOF ! if { (eval echo configure:14219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else *************** fi *** 14219,14230 **** for ac_func in _log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14223: checking for $ac_func" >&5 if 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:14246: checking for $ac_func" >&5 if 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 --- 14270,14276 ---- ; return 0; } EOF ! if { (eval echo configure:14274: \"$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 *** 14277,14283 **** echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:14281: 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 --- 14300,14306 ---- echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:14304: 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 *** 14292,14305 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else --- 14315,14328 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14326: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else *************** fi *** 14326,14337 **** for ac_func in modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14330: checking for $ac_func" >&5 if 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:14353: checking for $ac_func" >&5 if 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 --- 14377,14383 ---- ; return 0; } EOF ! if { (eval echo configure:14381: \"$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 *** 14381,14387 **** else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:14385: 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 --- 14404,14410 ---- else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:14408: 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 *** 14396,14409 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else --- 14419,14432 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else *************** fi *** 14430,14441 **** for ac_func in _modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14434: checking for $ac_func" >&5 if 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:14457: checking for $ac_func" >&5 if 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 --- 14481,14487 ---- ; return 0; } EOF ! if { (eval echo configure:14485: \"$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 *** 14488,14494 **** echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:14492: 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 --- 14511,14517 ---- echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:14515: 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 *** 14503,14516 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else --- 14526,14539 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else *************** fi *** 14537,14548 **** for ac_func in powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14541: checking for $ac_func" >&5 if 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:14564: checking for $ac_func" >&5 if 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 --- 14588,14594 ---- ; return 0; } EOF ! if { (eval echo configure:14592: \"$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 **** else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:14596: 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 --- 14615,14621 ---- else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:14619: 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 *** 14607,14620 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(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__powl_use=yes else --- 14630,14643 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:14641: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else *************** fi *** 14641,14652 **** for ac_func in _powl 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:14668: checking for $ac_func" >&5 if 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 --- 14692,14698 ---- ; return 0; } EOF ! if { (eval echo configure:14696: \"$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 *** 14699,14705 **** echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:14703: 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 --- 14722,14728 ---- echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:14726: 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 *** 14714,14720 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14737,14743 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14725,14731 **** sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:14729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else --- 14748,14754 ---- sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:14752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else *************** fi *** 14752,14763 **** for ac_func in sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14756: checking for $ac_func" >&5 if 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:14779: checking for $ac_func" >&5 if 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 --- 14803,14809 ---- ; return 0; } EOF ! if { (eval echo configure:14807: \"$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 *** 14807,14813 **** else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:14811: 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 --- 14830,14836 ---- else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:14834: 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 *** 14822,14828 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14845,14851 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14833,14839 **** _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:14837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else --- 14856,14862 ---- _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:14860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else *************** fi *** 14860,14871 **** for ac_func in _sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14864: checking for $ac_func" >&5 if 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:14887: checking for $ac_func" >&5 if 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 --- 14911,14917 ---- ; return 0; } EOF ! if { (eval echo configure:14915: \"$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 *** 14918,14924 **** echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:14922: 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 --- 14941,14947 ---- echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:14945: 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 *** 14933,14946 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:14944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else --- 14956,14969 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:14967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else *************** fi *** 14967,14978 **** for ac_func in sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14971: checking for $ac_func" >&5 if 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:14994: checking for $ac_func" >&5 if 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 --- 15018,15024 ---- ; return 0; } EOF ! if { (eval echo configure:15022: \"$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 **** else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:15026: 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 --- 15045,15051 ---- else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:15049: 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 *** 15037,15050 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else --- 15060,15073 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else *************** fi *** 15071,15082 **** for ac_func in _sincosl 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:15098: checking for $ac_func" >&5 if 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 --- 15122,15128 ---- ; return 0; } EOF ! if { (eval echo configure:15126: \"$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 *** 15129,15135 **** echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:15133: 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 --- 15152,15158 ---- echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:15156: 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 *** 15144,15150 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15167,15173 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15155,15161 **** finitel(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_finitel_use=yes else --- 15178,15184 ---- finitel(0); ; return 0; } EOF ! if { (eval echo configure:15182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else *************** fi *** 15182,15193 **** for ac_func in finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&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 <&6 ! echo "configure:15209: checking for $ac_func" >&5 if 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 --- 15233,15239 ---- ; return 0; } EOF ! if { (eval echo configure:15237: \"$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 *** 15237,15243 **** else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:15241: 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 --- 15260,15266 ---- else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:15264: 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 *** 15252,15258 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15275,15281 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15263,15269 **** _finitel(0); ; return 0; } EOF ! if { (eval echo configure:15267: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else --- 15286,15292 ---- _finitel(0); ; return 0; } EOF ! if { (eval echo configure:15290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else *************** fi *** 15290,15301 **** for ac_func in _finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15294: checking for $ac_func" >&5 if 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:15317: checking for $ac_func" >&5 if 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 --- 15341,15347 ---- ; return 0; } EOF ! if { (eval echo configure:15345: \"$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 *** 15349,15355 **** echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:15353: 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 --- 15372,15378 ---- echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:15376: 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 *** 15363,15369 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 15386,15392 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 15372,15378 **** _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else --- 15395,15401 ---- _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else *************** fi *** 15398,15409 **** _coshf _sinhf _tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15402: checking for $ac_func" >&5 if 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:15425: checking for $ac_func" >&5 if 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 --- 15449,15455 ---- ; return 0; } EOF ! if { (eval echo configure:15453: \"$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 *** 15454,15460 **** echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:15458: 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 --- 15477,15483 ---- echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:15481: 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 *** 15468,15481 **** 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:15479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else --- 15491,15504 ---- 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:15502: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else *************** fi *** 15499,15510 **** for ac_func in _ceilf _floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15503: checking for $ac_func" >&5 if 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:15526: checking for $ac_func" >&5 if 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 --- 15550,15556 ---- ; return 0; } EOF ! if { (eval echo configure:15554: \"$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 **** echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:15560: 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 --- 15579,15585 ---- echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:15583: 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 *** 15570,15576 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 15593,15599 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 15579,15585 **** _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else --- 15602,15608 ---- _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else *************** fi *** 15605,15616 **** _coshl _sinhl _tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15609: checking for $ac_func" >&5 if 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:15632: checking for $ac_func" >&5 if 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 --- 15656,15662 ---- ; return 0; } EOF ! if { (eval echo configure:15660: \"$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 *** 15661,15667 **** echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:15665: 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 --- 15684,15690 ---- echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:15688: 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 *** 15675,15688 **** 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:15686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else --- 15698,15711 ---- 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:15709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else *************** fi *** 15706,15717 **** for ac_func in _ceill _floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15710: checking for $ac_func" >&5 if 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:15733: checking for $ac_func" >&5 if 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 --- 15757,15763 ---- ; return 0; } EOF ! if { (eval echo configure:15761: \"$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 *** 15766,15772 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:15770: 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 --- 15789,15795 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:15793: 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 *** 15774,15787 **** 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 --- 15797,15810 ---- 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 *** 15811,15822 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15815: checking for $ac_func" >&5 if 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:15838: checking for $ac_func" >&5 if 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 --- 15862,15868 ---- ; return 0; } EOF ! if { (eval echo configure:15866: \"$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 *** 15872,15883 **** for ac_func in signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15876: checking for $ac_func" >&5 if 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:15899: checking for $ac_func" >&5 if 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 --- 15923,15929 ---- ; return 0; } EOF ! if { (eval echo configure:15927: \"$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 *** 15933,15948 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:15937: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:15946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 15956,15971 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:15960: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:15969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 15964,15980 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:15968: 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:15978: \"$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* --- 15987,16003 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:15991: 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:16001: \"$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 *** 16003,16019 **** ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 ! echo "configure:16007: checking for wctype.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:16017: \"$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* --- 16026,16042 ---- ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 ! echo "configure:16030: checking for wctype.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:16040: \"$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 *** 16040,16055 **** && test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:16044: 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:16053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 16063,16078 ---- && test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:16067: 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:16076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 16062,16070 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:16066: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 16085,16093 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:16089: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 16073,16079 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:16077: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 16096,16102 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:16100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 16089,16100 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16093: checking for $ac_func" >&5 if 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:16116: checking for $ac_func" >&5 if 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 --- 16140,16146 ---- ; return 0; } EOF ! if { (eval echo configure:16144: \"$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 *** 16152,16163 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16156: checking for $ac_func" >&5 if 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:16179: checking for $ac_func" >&5 if 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 --- 16203,16209 ---- ; return 0; } EOF ! if { (eval echo configure:16207: \"$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 *** 16208,16214 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:16212: 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 --- 16231,16237 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:16235: 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 *************** echo "configure:16212: checking for ISO *** 16219,16235 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:16223: 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:16233: \"$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* --- 16242,16258 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:16246: 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:16256: \"$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 *** 16253,16269 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:16257: 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:16267: \"$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* --- 16276,16292 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:16280: 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:16290: \"$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 *** 16287,16293 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:16291: 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 --- 16310,16316 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:16314: 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 *** 16295,16301 **** 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 --- 16329,16335 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:16333: \"$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 *** 16332,16343 **** 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:16336: checking for $ac_func" >&5 if 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:16359: checking for $ac_func" >&5 if 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 --- 16383,16389 ---- ; return 0; } EOF ! if { (eval echo configure:16387: \"$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 *** 16390,16396 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:16394: 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 --- 16413,16419 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:16417: 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 *************** echo "configure:16394: checking for XPG2 *** 16400,16406 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:16404: 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 --- 16423,16429 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:16427: 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 *** 16422,16428 **** echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:16426: 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 --- 16445,16451 ---- echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:16449: 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 *** 16437,16450 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:16448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else --- 16460,16473 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:16471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else *************** fi *** 16470,16481 **** for ac_func in strtold do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16474: checking for $ac_func" >&5 if 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:16497: checking for $ac_func" >&5 if 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 --- 16521,16527 ---- ; return 0; } EOF ! if { (eval echo configure:16525: \"$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,16538 **** for ac_func in drand48 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16531: checking for $ac_func" >&5 if 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:16554: checking for $ac_func" >&5 if 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 --- 16578,16584 ---- ; return 0; } EOF ! if { (eval echo configure:16582: \"$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 *** 16584,16590 **** cat > conftest.$ac_ext < --- 16607,16613 ---- cat > conftest.$ac_ext < *************** int main() { *** 16593,16599 **** sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:16597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 --- 16616,16622 ---- sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:16620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 *************** rm -f conftest* *** 16609,16625 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:16613: 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:16623: \"$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* --- 16632,16648 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:16636: 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:16646: \"$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 *** 16648,16659 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16652: checking for $ac_func" >&5 if 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:16675: checking for $ac_func" >&5 if 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 --- 16699,16705 ---- ; return 0; } EOF ! if { (eval echo configure:16703: \"$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 *** 16701,16707 **** done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:16705: 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 --- 16724,16730 ---- done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:16728: 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 *** 16709,16715 **** 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 --- 16872,16878 ---- } EOF ! if { (eval echo configure:16876: \"$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 *** 16882,16898 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:16886: 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:16896: \"$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* --- 16905,16921 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:16909: 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:16919: \"$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 *** 16925,16931 **** # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include --- 16948,16954 ---- # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include *************** int main() { *** 16934,16940 **** int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:16938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 16957,16963 ---- int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:16961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 16951,16957 **** cat > conftest.$ac_ext < #include --- 16974,16980 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 16960,16966 **** int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:16964: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 16983,16989 ---- int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:16987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 16977,16983 **** cat > conftest.$ac_ext < #include --- 17000,17006 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 16986,16992 **** int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:16990: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 17009,17015 ---- int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:17013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 17003,17009 **** cat > conftest.$ac_ext < #include --- 17026,17032 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 17012,17018 **** int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:17016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 17035,17041 ---- int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:17039: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 17034,17040 **** else cat > conftest.$ac_ext < #include --- 17057,17063 ---- else cat > conftest.$ac_ext < #include *************** int main() { *** 17043,17049 **** struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:17047: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else --- 17066,17072 ---- struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:17070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else *************** fi *** 17059,17065 **** fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:17063: 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 --- 17082,17088 ---- fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:17086: 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 *************** rm -f confcache *** 17143,17159 **** ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:17147: 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:17157: \"$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* --- 17166,17182 ---- ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:17170: 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:17180: \"$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 *** 17171,17189 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:17175: 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:17187: \"$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 --- 17194,17212 ---- echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:17198: 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:17210: \"$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 *************** esac *** 17236,17248 **** glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 ! echo "configure:17240: 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:17246: 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" --- 17259,17271 ---- glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 ! echo "configure:17263: 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:17269: 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 *** 17266,17272 **** # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:17270: 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" --- 17289,17295 ---- # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:17293: 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" *************** if test x"$glibcpp_toolexecdir" = x"no"; *** 17312,17318 **** fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:17316: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 --- 17335,17341 ---- fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:17339: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/BUGS gcc-3.0.3/libstdc++-v3/docs/html/17_intro/BUGS *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/BUGS Sat Dec 9 20:03:08 2000 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/BUGS Thu Dec 13 15:28:18 2001 *************** *** 5,11 **** - _GLIBCPP_HAS_BUILTIN_SINF: We should still hold out for a cleaner solution the is currenly the case in bits/std_cmath.h. ! - there may be one set of remaining string bugs, dependant on final clarification of the string::find technicalities when finding in an empty string or using an empty string for an argument. At the very least, v-3 has interpreted the standard in a way that is in opposition --- 5,11 ---- - _GLIBCPP_HAS_BUILTIN_SINF: We should still hold out for a cleaner solution the is currenly the case in bits/std_cmath.h. ! - there may be one set of remaining string bugs, dependent on final clarification of the string::find technicalities when finding in an empty string or using an empty string for an argument. At the very least, v-3 has interpreted the standard in a way that is in opposition diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/C++STYLE gcc-3.0.3/libstdc++-v3/docs/html/17_intro/C++STYLE *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/C++STYLE Fri Aug 24 13:51:32 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/C++STYLE Thu Dec 13 15:28:18 2001 *************** Notable areas of divergence from what ma *** 122,128 **** // } ! 09. Member functions declarations and defintions Keywords such as extern, static, export, explicit, inline, etc go on the line above the function name. Thus --- 122,128 ---- // } ! 09. Member functions declarations and definitions Keywords such as extern, static, export, explicit, inline, etc go on the line above the function name. Thus diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/CHECKLIST gcc-3.0.3/libstdc++-v3/docs/html/17_intro/CHECKLIST *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/CHECKLIST Sat Dec 9 20:03:08 2000 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/CHECKLIST Thu Dec 13 15:28:19 2001 *************** T X* get() const throw(); *** 958,964 **** T X* release() throw(); T void reset(X* p =0) throw(); ! // _lib.auto.ptr.conv_ converions: X auto_ptr(auto_ptr_ref) throw(); X template operator auto_ptr_ref() throw(); X template operator auto_ptr() throw(); --- 958,964 ---- T X* release() throw(); T void reset(X* p =0) throw(); ! // _lib.auto.ptr.conv_ conversions: X auto_ptr(auto_ptr_ref) throw(); X template operator auto_ptr_ref() throw(); X template operator auto_ptr() throw(); diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/DESIGN gcc-3.0.3/libstdc++-v3/docs/html/17_intro/DESIGN *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/DESIGN Sat Dec 9 20:03:09 2000 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/DESIGN Thu Dec 13 15:28:19 2001 *************** cases it may actually be excessive. *** 253,259 **** To implement a library which does not use exceptions directly is not difficult given minor compiler support (to "turn off" exceptions ! and ignore exception contructs), and results in no great library maintenance difficulties. To be precise, given "-fno-exceptions", the compiler should treat "try" blocks as ordinary blocks, and "catch" blocks as dead code to ignore or eliminate. Compiler --- 253,259 ---- To implement a library which does not use exceptions directly is not difficult given minor compiler support (to "turn off" exceptions ! and ignore exception constructs), and results in no great library maintenance difficulties. To be precise, given "-fno-exceptions", the compiler should treat "try" blocks as ordinary blocks, and "catch" blocks as dead code to ignore or eliminate. Compiler diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/TODO gcc-3.0.3/libstdc++-v3/docs/html/17_intro/TODO *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/TODO Sat Dec 9 20:03:09 2000 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/TODO Thu Dec 13 15:28:19 2001 *************** sources, with macro-guards. *** 152,159 **** - write filebuf for wide characters - - replace stl/bits/stl_config - - add feature-test macros for non-standard extensions - move major extensions into separate namespace (e.g. stl::) --- 152,157 ---- *************** sources, with macro-guards. *** 165,172 **** - specialize functions that use_facet<> calls on failure for the required facets, and construct them lazily so unused facets need not be constructed when the locale is. - - - get mknumeric_limits coope with 'exotic' OSes. - : provide missing names. --- 163,168 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/howto.html gcc-3.0.3/libstdc++-v3/docs/html/17_intro/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/howto.html Fri Oct 19 13:07:35 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/howto.html Thu Dec 13 15:28:19 2001 *************** *** 25,31 ****

          Contents

          --- 25,31 ----

          Contents

          *************** *** 50,112 ****


          !

          Thread-safety

          !

          This is a thorny issue that gets brought up on the libstdc++-v3 ! and gcc mailing lists on a regular basis (probably by a cron job). ! This entry will mention a very little bit about the general MT ! issues with libstdc++. The latest status and quick notes will be ! in FAQ 5.6. Some discussion about thread-safe containers will be ! in section 6.8 (the HOWTOs on containers). This section only applies ! when gcc and libstdc++-v3 were configured with --enable-threads.

          !

          The libstdc++ code (all of it, not just the containers) has been ! designed so that thread-safety will be easily possible. The first ! (!) problem is finding a fast method of implementation ! portable to all platforms. A minor problem that pops up every so ! often is different interpretations of what "thread-safe" ! means for a library (not a general program). We currently use the ! same ! definition that SGI uses for their STL subset. ! Please see the many cautions given in ! HOWTOs on containers.

          !

          Here is another attempt at explaining the dangers of using the ! STL with threading support without understanding some important ! details. The STL implementation is currently configured to use ! the high-speed caching memory allocator. If you absolutely ! think you must change this on a global basis for your platform ! to support multi-threading, then please consult all commentary ! in include/bits/c++config and the HOWTOs on containers. Be ! fully aware that you may change the external or internal ABI of ! libstdc++-v3 when you provide -D__USE_MALLOC on the command line ! or make a change to that configuration file.

          !

          If you don't like caches of objects being retained inside the STL, then ! you might be tempted to define __USE_MALLOC either on the command ! line or by rebuilding c++config.h. Please note, once you define ! __USE_MALLOC, only the malloc allocator is visible to application code ! (i.e. the typically higher-speed allocator is not even available ! in this configuration). There is a better way: It is possible ! to force the malloc-based allocator on a per-case-basis for some ! application code even when the above macro symbol is not defined. ! The library team generally believes that this is a better way to tune ! an application for high-speed using this implementation of the STL. ! Here is one possible example displaying the forcing of the malloc-based ! allocator over the typically higher-speed default allocator: !

          !       std::list <my_type, std::malloc_alloc>  my_malloc_based_list;

          !

          A recent journal article has described "atomic integer ! operations," which would allow us to, well, perform updates ! on integers atomically, and without requiring an explicit mutex ! lock. This appears promising, but the major difficulty is that ! these operations "may not be available on all systems, and ! if they are, may have different interfaces." [quoting from ! mailing list messages]

          Here is a small link farm to threads (no pun) in the mail archives that discuss the threading problem. Each link is to the first ! relevent message in the thread; from there you can use "Thread Next" to move down the thread. This farm is in latest-to-oldest order.

            --- 50,130 ----


            !

            The Standard C++ library and multithreading

            !

            This section discusses issues surrounding the proper compilation ! of multithreaded applications which use the Standard C++ ! library. This information is gcc-specific since the C++ ! standard does not address matters of multithreaded applications. ! Unless explicitly prefaced, all information in this section is ! current as of the gcc 3.0 release and all later point releases.

            !

            Earlier gcc releases had a somewhat different approach to ! threading configuration and proper compilation. Before gcc 3.0, ! configuration of the threading model was dictated by compiler ! command-line options and macros (both of which were somewhat ! thread-implementation and port-specific). There were no ! guarantees related to being able to link code compiled with one ! set of options and macro setting with another set. For gcc 3.0, ! configuration of the threading model used with libraries and ! user-code is performed when gcc is configured and built using ! the --enable-threads and --disable-threads options. The ABI is ! stable for symbol name-mangling and limited functional ! compatibility exists between code compiled under different ! threading models.

            !

            All normal disclaimers aside, multithreaded C++ application are ! only supported when libstdc++ and all user code was built with ! compilers which report (via gcc/g++ -v ) the same thread ! model and that model is not single. As long as your ! final application is actually single-threaded, then it should be ! safe to mix user code built with a thread model of ! single with a libstdc++ and other C++ libraries built ! with another thread model useful on the platform. Other mixes ! may or may not work but are not considered supported. (Thus, if ! you distribute a shared C++ library in binary form only, it may ! be best to compile it with a gcc configured with ! --enable-threads for maximal interchangeability and usefulness ! with a user population that may have built gcc with either ! --enable-threads or --disable-threads.)

            !

            When you link a multithreaded application, you will probably ! need to add a library or flag to g++. This is a very ! non-standardized area of GCC across ports. Some ports support a ! special flag (the spelling isn't even standardized yet) to add ! all required macros to a compilation (if any such flags are ! required then you must provide the flag for all compilations not ! just linking) and link-library additions and/or replacements at ! link time. The documentation is weak. Here is a quick summary ! to display how ad hoc this is: On Solaris, both -pthreads and ! -threads (with subtly different meanings) are honored. On OSF, ! -pthread and -threads (with subtly different meanings) are ! honored. On Linux/i386, -pthread is honored. On FreeBSD, ! -pthread is honored. Some other ports use other switches. ! AFAIK, none of this is properly documented anywhere other than ! in ``gcc -dumpspecs'' (look at lib and cpp entries).

            !

            See FAQ (general overview), 23 (containers), and 27 (I/O) for more information. !

            !

            The libstdc++-v3 library (unlike libstdc++-v2, all of it, not ! just the STL) has been designed so that multithreaded ! applications using it may be written. The first problem is ! finding a fast method of implementation portable to all ! platforms. Due to historical reasons, some of the library is ! written against per-CPU-architecture spinlocks and other parts ! against the gthr.h abstraction layer which is provided by gcc. ! A minor problem that pops up every so often is different ! interpretations of what "thread-safe" means for a ! library (not a general program). We currently use the same ! definition that SGI uses for their STL subset. However, the ! exception for read-only containers only applies to the STL ! components.

            Here is a small link farm to threads (no pun) in the mail archives that discuss the threading problem. Each link is to the first ! relevant message in the thread; from there you can use "Thread Next" to move down the thread. This farm is in latest-to-oldest order.

              *************** *** 117,130 **** This message inspired a recent updating of issues with threading and the SGI STL library. It also contains some example POSIX-multithreaded STL code. -
            • - Here is an early analysis of why __USE_MALLOC should be disabled - for the 3.0 release of libstdc++.
            (A large selection of links to older messages has been removed; many of the messages from 1999 were lost in a disk crash, and the few people with access to the backup tapes have been too swamped with work ! to restore them. Many of the points have been superceded anyhow.)

            This section will be updated as new and interesting issues come to light. --- 135,145 ---- This message inspired a recent updating of issues with threading and the SGI STL library. It also contains some example POSIX-multithreaded STL code.

          (A large selection of links to older messages has been removed; many of the messages from 1999 were lost in a disk crash, and the few people with access to the backup tapes have been too swamped with work ! to restore them. Many of the points have been superseded anyhow.)

          This section will be updated as new and interesting issues come to light. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/license.html gcc-3.0.3/libstdc++-v3/docs/html/17_intro/license.html *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/license.html Fri Oct 19 13:07:35 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/license.html Thu Dec 13 15:28:19 2001 *************** *** 13,21 ****

          Licenses for the Library

          -

          As long as this sentence is in place, this page isn't - official. It is still experimental if you are reading this.

          -

          There are two licenses affecting GNU libstdc++-v3: one for the code, and one for the documentation. Here we will describe both of them, and try to answer some of the widespread questions. If you have more questions, --- 13,18 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting-howto.html gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting-howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting-howto.html Wed Jul 11 17:04:16 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting-howto.html Thu Dec 13 15:28:19 2001 *************** *** 13,20 ****

          Legal Notice

          ! This document can be distributed under the FDL ! (www.gnu.org)

          Tue Jun 5 20:07:49 2001

          --- 13,20 ----

          Legal Notice

          ! This document can be distributed under the FDL ! (www.gnu.org)

          Tue Jun 5 20:07:49 2001

          *************** *** 32,39 **** fnatter First released version using docbook-xml ! + second upload to libstdc++-page. ! Revision 0.9 Wed Sep 6 02:59:32 2000 --- 32,39 ---- fnatter First released version using docbook-xml ! + second upload to libstdc++-page. ! Revision 0.9 Wed Sep 6 02:59:32 2000 *************** *** 46,82 **** fnatter added information about why file-descriptors are not in the ! standard Revision 0.9.2 Tue Jun 5 20:07:49 2001 fnatter ! a fix, added hint on increased portability of C-shadow-headers, ! added autoconf-test HAVE_CONTAINER_AT ! Revision 0.9.3 Fri Jun 29 16:15:56 2001 fnatter ! changed signature of nonstandard filebuf-constructor and ! update the section on filebuf::attach to point to ../ext/howto.html, ! added link to ../21/strings/howto.html ! in sec-stringstream, changed <link>-tags to have content ! (so that these links work), ! replace "user-space" by "global namespace" ! add note about gcc 3.0 and shadow-headers ! add section about ostream::form and istream::scan ! sec-vector-at: remove hint to modify headers ! fix spelling error in sec-stringstream !

          ! Abstract

          Some notes on porting applications from libstdc++-2.90 (or earlier --- 46,91 ---- fnatter added information about why file-descriptors are not in the ! standard Revision 0.9.2 Tue Jun 5 20:07:49 2001 fnatter ! a fix, added hint on increased portability of C-shadow-headers, ! added autoconf-test HAVE_CONTAINER_AT ! Revision 0.9.3 Fri Jun 29 16:15:56 2001 fnatter ! changed signature of nonstandard filebuf-constructor and ! update the section on filebuf::attach to point to ../ext/howto.html, ! added link to ../21/strings/howto.html ! in sec-stringstream, changed <link>-tags to have content ! (so that these links work), ! replace "user-space" by "global namespace" ! add note about gcc 3.0 and shadow-headers ! add section about ostream::form and istream::scan ! sec-vector-at: remove hint to modify headers ! fix spelling error in sec-stringstream ! ! ! Revision 0.9.4 ! Mon Nov 5 17:01:04 2001 ! fnatter ! ! ! rewrite section 1.1.3 because of gnu.gcc.help-post by ! Juergen Heinzl !

          ! Abstract

          Some notes on porting applications from libstdc++-2.90 (or earlier *************** *** 162,180 **** things:

          • ! wrap your code in namespace std { ... } => This is not an option because only symbols from the standard c++-library are defined in namespace std::.

          • ! put a kind of using-declaration in your source (either using namespace std; or i.e. using std::string;) => works well for source-files, but cannot be used in header-files.

          • ! use a fully qualified name for each libstdc++-symbol (i.e. std::string, std::cout) => can always be used

          • --- 171,189 ---- things:
            • ! wrap your code in namespace std { ... } => This is not an option because only symbols from the standard c++-library are defined in namespace std::.

            • ! put a kind of using-declaration in your source (either using namespace std; or i.e. using std::string;) => works well for source-files, but cannot be used in header-files.

            • ! use a fully qualified name for each libstdc++-symbol (i.e. std::string, std::cout) => can always be used

            • *************** *** 257,268 ****

              If some compilers complain about using std::string;, and if the "hack" for gtk-- mentioned above ! does not work, then it might be a good idea to define a macro ! NS_STD, which is defined to either "" or "std" ! based on an autoconf-test. Then you should be able to use ! NS_STD::string, which will evaluate to ! ::string ("string in the global namespace") on ! systems that do not put string in std::. (This is untested)

            --- 266,297 ----

            If some compilers complain about using std::string;, and if the "hack" for gtk-- mentioned above ! does not work, then I see two solutions: ! !

              !
            • ! ! Define std:: as a macro if the compiler ! doesn't know about std::. !

              ! 		#ifdef OLD_COMPILER
              ! 		#define std
              ! 		#endif
              ! 	      
              ! (thanks to Juergen Heinzl who posted this solution on ! gnu.gcc.help) !

            • !
            • ! ! Define a macro NS_STD, which is defined to ! either "" or "std" ! based on an autoconf-test. Then you should be able to use ! NS_STD::string, which will evaluate to ! ::string ("string in the global namespace") on ! systems that do not put string in std::. (This is untested) !

            • !
            !

            *************** *** 276,282 ****

            ! Table 1. Namespace std:: in Open-Source programs

            --- 305,311 ----

            ! Table 1. Namespace std:: in Open-Source programs

            *************** *** 310,316 ****

            ! Table 2. Notations for categories

            --- 339,345 ----

            ! Table 2. Notations for categories

            *************** *** 377,397 ****

            When using libstdc++-v3, you can use !

            !

              	  #include <fstream>
              	

            ! basic_filebuf<...>::basic_filebuf<...> ! ! (file, mode, size);
            __c_file_type* file;
            ios_base::open_mode mode;
            int size;

            but the the signature of this constructor has changed often, and it might change again. For the current state of this, check ! the howto for extensions. !

            For a portable solution (among systems which use filedescriptors), you need to implement a subclass of --- 406,426 ----

            When using libstdc++-v3, you can use !

            !

              	  #include <fstream>
              	

            ! basic_filebuf<...>::basic_filebuf<...> ! ! (file, mode, size);
            __c_file_type* file;
            ios_base::open_mode mode;
            int size;

            but the the signature of this constructor has changed often, and it might change again. For the current state of this, check ! the howto for extensions. !

            For a portable solution (among systems which use filedescriptors), you need to implement a subclass of *************** *** 410,417 **** source-code.

            ! The old C++-headers (iostream.h etc.) are available, but gcc generates ! a warning that you are using deprecated headers.

            --- 439,446 ---- source-code.

            ! The old C++-headers (iostream.h etc.) are available, but gcc generates ! a warning that you are using deprecated headers.

            *************** *** 441,447 **** For more information on this, and for information on how the GNU C++ implementation might reuse ("shadow") the C library-functions, have a look at ! www.cantrip.org.

            --- 470,476 ---- For more information on this, and for information on how the GNU C++ implementation might reuse ("shadow") the C library-functions, have a look at ! www.cantrip.org.

            *************** *** 455,462 **** In earlier versions of the standard, <fstream.h>, <ostream.h> ! and <istream.h> ! used to define cout, cin and so on. Because of the templatized iostreams in libstdc++-v3, you need to include <iostream> --- 484,491 ---- In earlier versions of the standard, <fstream.h>, <ostream.h> ! and <istream.h> ! used to define cout, cin and so on. Because of the templatized iostreams in libstdc++-v3, you need to include <iostream> *************** *** 473,490 **** fixes for existing uses of iterators.
            • ! you cannot do ostream::operator<<(iterator) to print the address of the iterator => use operator<< &*iterator instead ?

            • ! you cannot clear an iterator's reference (iterator = 0) => use iterator = iterator_type(); ?

            • ! if (iterator) won't work any more => use if (iterator != iterator_type()) ?

            --- 502,519 ---- fixes for existing uses of iterators.
            • ! you cannot do ostream::operator<<(iterator) to print the address of the iterator => use operator<< &*iterator instead ?

            • ! you cannot clear an iterator's reference (iterator = 0) => use iterator = iterator_type(); ?

            • ! if (iterator) won't work any more => use if (iterator != iterator_type()) ?

            *************** *** 501,507 **** <ctype.h> -functionality as macros (isspace, isalpha etc.). Libstdc++-v3 "shadows" these macros as described in the section about ! c-headers.

            Older implementations of libstdc++ (g++-2 for egcs 1.x and g++-3 --- 530,536 ---- <ctype.h> -functionality as macros (isspace, isalpha etc.). Libstdc++-v3 "shadows" these macros as described in the section about ! c-headers.

            Older implementations of libstdc++ (g++-2 for egcs 1.x and g++-3 *************** *** 552,559 **** --enable-cshadow-headers is currently broken. As a result, shadow headers are not being searched.... ' ! This is now outdated, but gcc 3.0 still does not have fully ! compliant "shadow headers".

            --- 581,588 ---- --enable-cshadow-headers is currently broken. As a result, shadow headers are not being searched.... ' ! This is now outdated, but gcc 3.0 still does not have fully ! compliant "shadow headers".

            *************** *** 646,655 **** 11. GNU Extensions ostream::form and istream::scan

            ! These are not supported any more - use ! ! stringstreams instead. !

            --- 675,684 ---- 11. GNU Extensions ostream::form and istream::scan

            ! These are not supported any more - use ! ! stringstreams instead. !

            *************** *** 669,688 ****
            • ! strstream is considered to be deprecated

            • ! strstream is limited to char

            • ! with ostringstream you don't have to take care of terminating the string or freeing its memory

            • ! istringstream can be re-filled (clear(); str(input);)

            --- 698,717 ----
            • ! strstream is considered to be deprecated

            • ! strstream is limited to char

            • ! with ostringstream you don't have to take care of terminating the string or freeing its memory

            • ! istringstream can be re-filled (clear(); str(input);)

            *************** *** 739,756 **** void fromString(const string& input, X& any) { #ifdef HAVE_SSTREAM ! std::istringstream iss(input); #else ! std::istrstream iss(input.c_str()); #endif ! X temp; ! iss >> temp; ! if (iss.fail()) ! throw runtime_error(..) ! any = temp; } ! Another example of using stringstreams is in this howto.

            I have read the Josuttis book on Standard C++, so some information --- 768,785 ---- void fromString(const string& input, X& any) { #ifdef HAVE_SSTREAM ! std::istringstream iss(input); #else ! std::istrstream iss(input.c_str()); #endif ! X temp; ! iss >> temp; ! if (iss.fail()) ! throw runtime_error(..) ! any = temp; } ! Another example of using stringstreams is in this howto.

            I have read the Josuttis book on Standard C++, so some information diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting-howto.xml gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting-howto.xml *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting-howto.xml Wed Jul 11 17:04:16 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting-howto.xml Thu Dec 13 15:28:20 2001 *************** *** 22,27 **** --- 22,28 ----

            *************** o make this work: Legal Notice ! This document can be distributed under the FDL ! (www.gnu.org) --- 37,108 ---- ! 0.5 ! Thu Jun 1 13:06:50 2000 ! fnatter ! First docbook-version. ! 0.8 ! Sun Jul 30 20:28:40 2000 ! fnatter ! First released version using docbook-xml ! + second upload to libstdc++-page. ! ! 0.9 ! Wed Sep 6 02:59:32 2000 ! fnatter ! 5 new sections. ! 0.9.1 ! Sat Sep 23 14:20:15 2000 ! fnatter ! added information about why file-descriptors are not in the ! standard ! 0.9.2 ! Tue Jun 5 20:07:49 2001 ! fnatter ! ! a fix, added hint on increased portability of C-shadow-headers, ! added autoconf-test HAVE_CONTAINER_AT ! ! 0.9.3 ! Fri Jun 29 16:15:56 2001 ! fnatter ! ! changed signature of nonstandard filebuf-constructor and ! update the section on filebuf::attach to point to ../ext/howto.html, ! added link to ../21/strings/howto.html ! in sec-stringstream, changed <link>-tags to have content ! (so that these links work), ! replace "user-space" by "global namespace" ! add note about gcc 3.0 and shadow-headers ! add section about ostream::form and istream::scan ! sec-vector-at: remove hint to modify headers ! fix spelling error in sec-stringstream ! ! ! ! 0.9.4 ! Mon Nov 5 17:01:04 2001 ! fnatter ! ! rewrite section 1.1.3 because of gnu.gcc.help-post by ! Juergen Heinzl ! Legal Notice ! This document can be distributed under the FDL ! (www.gnu.org) *************** o make this work: NS_STD, which is defined to either "" or "std" ! based on an autoconf-test. Then you should be able to use ! NS_STD::string, which will evaluate to ! ::string ("string in the global namespace") on ! systems that do not put string in std::. (This is untested) --- 226,256 ---- If some compilers complain about using std::string;, and if the "hack" for gtk-- mentioned above ! does not work, then I see two solutions: ! ! ! ! Define std:: as a macro if the compiler ! doesn't know about std::. ! ! #ifdef OLD_COMPILER ! #define std ! #endif ! ! (thanks to Juergen Heinzl who posted this solution on ! gnu.gcc.help) ! ! ! ! Define a macro NS_STD, which is defined to ! either "" or "std" ! based on an autoconf-test. Then you should be able to use ! NS_STD::string, which will evaluate to ! ::string ("string in the global namespace") on ! systems that do not put string in std::. (This is untested) ! ! ! *************** o make this work: section on the gtkmm-hack). --- 317,323 ---- As you can see, this currently lacks an example of a project which uses libstdc++-symbols in headers in a back-portable way (except for Gtk--: see the section on the gtkmm-hack). *************** o make this work: the howto for extensions. ! ! For a portable solution (among systems which use filedescriptors), you need to implement a subclass of std::streambuf (or --- 359,377 ---- ! basic_filebuf<...>::basic_filebuf<...> ! ! ! __c_file_type* file ios_base::open_mode mode int size but the the signature of this constructor has changed often, and it might change again. For the current state of this, check ! the howto for extensions. ! ! For a portable solution (among systems which use filedescriptors), you need to implement a subclass of std::streambuf (or *************** o make this work: --- 388,395 ---- source-code. ! The old C++-headers (iostream.h etc.) are available, but gcc generates ! a warning that you are using deprecated headers.
            *************** o make this work: <math.h>, you should use <cmath>. In some cases this has the advantage that the C++-header is more standardized than the C-header (i.e. <ctime> (almost) corresponds to either <time.h> or <sys/time.h>). The standard specifies that if you include the C-style header (<math.h> in --- 401,413 ---- omitting the extension (.h). For example, instead of using <math.h>, you should use <cmath>. In some cases this has the advantage that the C++-header is more standardized than the C-header (i.e. <ctime> (almost) corresponds to either <time.h> or <sys/time.h>). The standard specifies that if you include the C-style header (<math.h> in *************** o make this work: <cmath>), the symbols will only be defined in namespace std:: (and macros will be converted to inline-functions). --- 415,421 ---- namespace and in namespace std:: (but libstdc++ does not yet have fully compliant headers) On the other hand, if you include only the new header (i.e. <cmath>), the symbols will only be defined in namespace std:: (and macros will be converted to inline-functions). *************** o make this work: ! www.cantrip.org.
            --- 423,430 ---- For more information on this, and for information on how the GNU C++ implementation might reuse ("shadow") the C library-functions, have a look at ! www.cantrip.org. *************** o make this work: <fstream.h>, <ostream.h> ! and <istream.h> ! used to define cout, cin and so on. Because of the templatized iostreams in libstdc++-v3, you need to include <iostream> --- 437,444 ---- In earlier versions of the standard, <fstream.h>, <ostream.h> ! and <istream.h> ! used to define cout, cin and so on. Because of the templatized iostreams in libstdc++-v3, you need to include <iostream> *************** o make this work: <ctype.h> -functionality as macros (isspace, isalpha etc.). Libstdc++-v3 "shadows" these macros as described in the section about ! c-headers. Older implementations of libstdc++ (g++-2 for egcs 1.x and g++-3 --- 481,488 ---- <ctype.h> -functionality as macros (isspace, isalpha etc.). Libstdc++-v3 "shadows" these macros as described in the section about ! c-headers. Older implementations of libstdc++ (g++-2 for egcs 1.x and g++-3 *************** o make this work: <ctype.h> to define functions instead of macros: // This keeps isalnum, et al from being propagated as macros. --- 507,513 ---- Another solution which would fix g++ is to tell the user to modify a header-file so that g++-2 (egcs 1.x) and g++-3 (gcc 2.95.x) define a macro which tells <ctype.h> to define functions instead of macros: // This keeps isalnum, et al from being propagated as macros. *************** o make this work: <ctype.h>. This will result in ambiguities between the definitions in the global namespace (<ctype.h>) and the definitions in namespace std:: --- 521,527 ---- Another problem arises if you put a using namespace std; declaration at the top, and include <ctype.h>. This will result in ambiguities between the definitions in the global namespace (<ctype.h>) and the definitions in namespace std:: *************** o make this work: --- 535,542 ---- --enable-cshadow-headers is currently broken. As a result, shadow headers are not being searched.... ! This is now outdated, but gcc 3.0 still does not have fully ! compliant "shadow headers". *************** o make this work: ! GNU Extensions ostream::form and istream::scan ! ! These are not supported any more - use ! ! stringstreams instead. !
            --- 622,633 ----
            ! GNU Extensions ostream::form and istream::scan ! ! These are not supported any more - use ! ! stringstreams instead. !
            *************** o make this work: <sstream>), but for compatibility with older implementations you still have to use i/ostrstream (<strstream>): #ifdef HAVE_SSTREAM #include <sstream> --- 635,644 ---- Libstdc++-v3 provides the new i/ostringstream-classes, (<sstream>), but for compatibility with older implementations you still have to use i/ostrstream (<strstream>): #ifdef HAVE_SSTREAM #include <sstream> *************** o make this work: this howto. I have read the Josuttis book on Standard C++, so some information --- 718,736 ---- void fromString(const string& input, X& any) { #ifdef HAVE_SSTREAM ! std::istringstream iss(input); #else ! std::istrstream iss(input.c_str()); #endif ! X temp; ! iss >> temp; ! if (iss.fail()) ! throw runtime_error(..) ! any = temp; } ! Another example of using stringstreams is in this howto. I have read the Josuttis book on Standard C++, so some information diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting.html gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting.html *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting.html Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting.html Thu Dec 13 15:28:20 2001 *************** *** 0 **** --- 1,841 ---- + + + 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 + particular standard, but should generally conform to the requirements + imposed by the ANSI/ISO standard. + +

            In addition, you should try to verify that the C++ compiler generally + works. It is difficult to test the C++ compiler without a working + library, but you should at least try some minimal test cases. + +

            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 + way to organize the OS configuration directory. For example, + config/os/solaris/solaris-2.6 and + config/os/solaris/solaris-2.7 are used as configuration + directories for these two versions of Solaris. On the other hand, both + Solaris 2.7 and Solaris 2.8 use the config/os/solaris/solaris-2.7 + directory. The important information is that there needs to be a + directory under config/os to store the files for your operating + system. + +

            You'll have to change the configure.target file to ensure that + your new directory is activated. Look for the switch statement that + sets os_include_dir, and add a pattern to handle your operating + system. The switch statement switches on only the OS portion of the + standard target triplet; e.g., the solaris2.8 in + 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
            + 
            + +

            You don't have to provide these definitions if your system library + already defines these types - but the only library known to provide + these types is the GNU C Library, so you will almost certainly have to + provide these macros. Note that this file does not have to include a + header file that defines off_t, or the other types; you simply + have to provide the macros. + +

            In addition, several libstdc++-v3 source files unconditionally define + the macro _POSIX_SOURCE. On many systems, defining this macro + causes large portions of the C library header files to be eliminated + at preprocessing time. Therefore, you may have to #undef this + macro, or define other macros (like _LARGEFILE_SOURCE or + __EXTENSIONS__). You won't know what macros to define or + undefine at this point; you'll have to try compiling the library and + seeing what goes wrong. If you see errors about calling functions + that have not been declared, look in your C library headers to see if + the functions are declared there, and then figure out what macros you + need to define. You will need to add them to the + CPLUSPLUS_CPP_SPEC macro in the GCC configuration file for your + 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;
            + 
            +   enum
            +   {
            +     space = _ISspace,
            +     print = _ISprint,
            +     cntrl = _IScntrl,
            +     upper = _ISupper,
            +     lower = _ISlower,
            +     alpha = _ISalpha,
            +     digit = _ISdigit,
            +     punct = _ISpunct,
            +     xdigit = _ISxdigit,
            +     alnum = _ISalnum,
            +     graph = _ISgraph
            +   };
            + };
            + 
            + +

            The mask type is the type of the elements in the table. If your + C library uses a table to map lower-case numbers to upper-case numbers, + and vice versa, you should define __to_type to be the type of the + elements in that table. If you don't mind taking a minor performance + penalty, or if your library doesn't implement toupper and + tolower in this way, you can pick any pointer-to-integer type, + but you must still define the type. + +

            The enumeration should give definitions for all the values in the above + 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),
            +     _M_tolower(NULL),
            +     _M_ctable(NULL),
            +     _M_table(!__table
            +              ? (const mask*) (__libc_attr._ctype_tbl->_class + 1)
            +              : __table)
            +   { }
            + 
            + +

            There are two parts of this that you might choose to alter. The first, + and most important, is the line involving __libc_attr. That is + IRIX system-dependent code that gets the base of the table mapping + character codes to attributes. You need to substitute code that obtains + the address of this table on your system. If you want to use your + operating system's tables to map upper-case letters to lower-case, and + vice versa, you should initialize _M_toupper and + _M_tolower with those tables, in similar fashion. + +

            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); }
            + 
            + char
            + ctype<char>::do_tolower(char __c) const
            + { return _tolower(__c); }
            + 
            + +

            Your C library provides equivalents to IRIX's _toupper and + _tolower. If you initialized _M_toupper and + _M_tolower above, then you could use those tables instead. + +

            Finally, you have to provide two utility functions that convert strings + of characters. The versions provided here will always work - but you + 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)
            +     {
            +       *__low = do_toupper(*__low);
            +       ++__low;
            +     }
            +   return __high;
            + }
            + 
            + const char*
            + ctype<char>::do_tolower(char* __low, const char* __high) const
            + {
            +   while (__low < __high)
            +     {
            +       *__low = do_tolower(*__low);
            +       ++__low;
            +     }
            +   return __high;
            + }
            + 
            + +

            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. + +

            In detail, the functions provided test characters for particular + properties; they are analogous to the functions like isalpha and + islower provided by the C library. + +

            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; }
            + 
            + +

            The _M_table is the table passed in above, in the constructor. + This is the table that contains the bitmasks for each character. The + implementation here should work on all systems. + +

            The next function is: + +

            const char*
            + ctype<char>::
            + is(const char* __low, const char* __high, mask* __vec) const throw()
            + {
            +   while (__low < __high)
            +     *__vec++ = (_M_table)[(unsigned char)(*__low++)];
            +   return __high;
            + }
            + 
            + +

            This function is similar; it copies the masks for all the characters + from __low up until __high into the vector given by + __vec. + +

            The last two functions again are entirely generic: + +

            const char*
            + ctype<char>::
            + scan_is(mask __m, const char* __low, const char* __high) const throw()
            + {
            +   while (__low < __high && !this->is(__m, *__low))
            +     ++__low;
            +   return __low;
            + }
            + 
            + const char*
            + ctype<char>::
            + scan_not(mask __m, const char* __low, const char* __high) const throw()
            + {
            +   while (__low < __high && this->is(__m, *__low))
            +     ++__low;
            +   return __low;
            + }
            + 
            + +


            + 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 + action, the library will use stub versions of these functions that are + not thread-safe. They will work fine, unless your applications are + multi-threaded. + +

            If you want to provide custom, safe, versions of these functions, there + 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. + If you're using the OS approach, use the same type used by your system's + primitives. Otherwise, use the type for which your CPU provides atomic + primitives. + +

            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_word __result = *__mem;
            +   *__mem += __val;
            +   return __result;
            + }
            + 
            + static inline void
            + __attribute__ ((__unused__))
            + __atomic_add (_Atomic_word* __mem, int __val)
            + {
            +   *__mem += __val;
            + }
            + 
            + +


            + 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. + You can define each of these values individually, but it is usually + easiest just to indicate how many bits are used in each of the data + 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 + document, but there are a few, particular bits that are necessary for + porting. + +

            Some parts of the libstdc++-v3 library are compiled with the libtool + --tags CXX option (the C++ definitions for libtool). Therefore, + ltcf-cxx.sh in the top-level directory needs to have the correct + logic to compile and archive objects equivalent to the C version of libtool, + ltcf-c.sh. Some libtool targets have definitions for C but not + for C++, or C++ definitions which have not been kept up to date. + +

            The C++ run-time library contains initialization code that needs to be + run as the library is loaded. Often, that requires linking in special + 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 + that sets archive_cmds. Here, adjust the setting for your + operating system. + +


            + 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
            + of this license document, but changing it is not allowed.
            + 
            + +
              +

            1. PREAMBLE + +

              The purpose of this License is to make a manual, textbook, or other + written document free in the sense of freedom: to assure everyone + the effective freedom to copy and redistribute it, with or without + modifying it, either commercially or noncommercially. Secondarily, + this License preserves for the author and publisher a way to get + credit for their work, while not being considered responsible for + modifications made by others. + +

              This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. It + complements the GNU General Public License, which is a copyleft + license designed for free software. + +

              We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. + +

            2. APPLICABILITY AND DEFINITIONS + +

              This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be distributed + under the terms of this License. The "Document", below, refers to any + such manual or work. Any member of the public is a licensee, and is + addressed as "you". + +

              A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + +

              A "Secondary Section" is a named appendix or a front-matter section of + the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall subject + (or to related matters) and contains nothing that could fall directly + within that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. + +

              The "Invariant Sections" are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. + +

              The "Cover Texts" are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. + +

              A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, whose contents can be viewed and edited directly and + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy that is + not "Transparent" is called "Opaque". + +

              Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available + DTD, and standard-conforming simple HTML designed + for human modification. Opaque formats include PostScript, + PDF, proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which + the DTD and/or processing tools are not generally available, + and the machine-generated HTML produced by some word + processors for output purposes only. + +

              The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, "Title Page" means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. + +

            3. VERBATIM COPYING + +

              You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. + +

              You may also lend copies, under the same conditions stated above, and + you may publicly display copies. + +

            4. COPYING IN QUANTITY + +

              If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. + +

              If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. + +

              If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a publicly-accessible computer-network location containing a complete + Transparent copy of the Document, free of added material, which the + general network-using public has access to download anonymously at no + charge using public-standard network protocols. If you use the latter + option, you must take reasonably prudent steps, when you begin + distribution of Opaque copies in quantity, to ensure that this + Transparent copy will remain thus accessible at the stated location + until at least one year after the last time you distribute an Opaque + copy (directly or through your agents or retailers) of that edition to + the public. + +

              It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. + +

            5. MODIFICATIONS + +

              You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: + +

                +

              1. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. + +
              2. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). + +
              3. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + +
              4. Preserve all the copyright notices of the Document. + +
              5. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + +
              6. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. + +
              7. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. + +
              8. Include an unaltered copy of this License. + +
              9. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. + +
              10. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. + +
              11. In any section entitled "Acknowledgments" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgments + and/or dedications given therein. + +
              12. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. + +
              13. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. + +
              14. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. +
              + +

              If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. + +

              You may add a section entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. + +

              You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. + +

              The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. + +

            6. COMBINING DOCUMENTS + +

              You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice. + +

              The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. + +

              In the combination, you must combine any sections entitled "History" + in the various original documents, forming one section entitled + "History"; likewise combine any sections entitled "Acknowledgments", + and any sections entitled "Dedications". You must delete all sections + entitled "Endorsements." + +

            7. COLLECTIONS OF DOCUMENTS + +

              You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. + +

              You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. + +

            8. AGGREGATION WITH INDEPENDENT WORKS + +

              A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, does not as a whole count as a Modified Version + of the Document, provided no compilation copyright is claimed for the + compilation. Such a compilation is called an "aggregate", and this + License does not apply to the other self-contained works thus compiled + with the Document, on account of their being thus compiled, if they + are not themselves derivative works of the Document. + +

              If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one quarter + of the entire aggregate, the Document's Cover Texts may be placed on + covers that surround only the Document within the aggregate. + Otherwise they must appear on covers around the whole aggregate. + +

            9. TRANSLATION + +

              Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License provided that you also include the + original English version of this License. In case of a disagreement + between the translation and the original English version of this + License, the original English version will prevail. + +

            10. TERMINATION + +

              You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. + +

            11. FUTURE REVISIONS OF THIS LICENSE + +

              The Free Software Foundation may publish new, revised versions + of the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + http://www.gnu.org/copyleft/. + +

              Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License "or any later version" applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + 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;
            +   with the Invariant Sections being list their titles, with the
            +   Front-Cover Texts being list, and with the Back-Cover Texts being list.
            +   A copy of the license is included in the section entitled ``GNU
            +   Free Documentation License''.
            + 
            + +

            If you have no Invariant Sections, write "with no Invariant Sections" + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write "no Front-Cover Texts" instead of + "Front-Cover Texts being list"; likewise for Back-Cover Texts. + +

            If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. + + +

            Table of Contents

            + + + + diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting.texi gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting.texi *** gcc-3.0.2/libstdc++-v3/docs/html/17_intro/porting.texi Wed Dec 31 16:00:00 1969 --- gcc-3.0.3/libstdc++-v3/docs/html/17_intro/porting.texi Thu Dec 13 15:28:20 2001 *************** *** 0 **** --- 1,510 ---- + \input texinfo + + @c --------------------------------------------------------------------- + @c Prologue + @c --------------------------------------------------------------------- + + @setfilename porting.info + @settitle Porting libstdc++-v3 + @setchapternewpage odd + + @ifinfo + 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 --------------------------------------------------------------------- + @c Titlepage + @c --------------------------------------------------------------------- + + @titlepage + @title Porting libstdc++-v3 + @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 + any later version published by the Free Software Foundation; with the + Invariant Sections being ``GNU General Public License'', the Front-Cover + texts being (a) (see below), and with the Back-Cover Texts being (b) + (see below). A copy of the license is included in the section entitled + ``GNU Free Documentation License''. + + (a) The FSF's Front-Cover Text is: + + A GNU Manual + + (b) The FSF's Back-Cover Text is: + + You have freedom to copy and modify this GNU Manual, like GNU + software. Copies published by the Free Software Foundation raise + funds for GNU development. + @end titlepage + + @c --------------------------------------------------------------------- + @c Top + @c --------------------------------------------------------------------- + + @node Top + @top 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 + particular standard, but should generally conform to the requirements + imposed by the ANSI/ISO standard. + + In addition, you should try to verify that the C++ compiler generally + works. It is difficult to test the C++ compiler without a working + library, but you should at least try some minimal test cases. + + Here are the primary steps required to port the library: + + @menu + * Operating system:: Configuring for your operating system. + * Character types:: Implementing character classification. + * Thread safety:: Implementing atomic operations. + * Numeric limits:: Implementing numeric limits. + * Libtool:: Using libtool. + * GNU Free Documentation License:: How you can copy and share this manual. + @end menu + + @c --------------------------------------------------------------------- + @c Operating system + @c --------------------------------------------------------------------- + + @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 + way to organize the OS configuration directory. For example, + @file{config/os/solaris/solaris-2.6} and + @file{config/os/solaris/solaris-2.7} are used as configuration + directories for these two versions of Solaris. On the other hand, both + Solaris 2.7 and Solaris 2.8 use the @file{config/os/solaris/solaris-2.7} + directory. The important information is that there needs to be a + directory under @file{config/os} to store the files for your operating + system. + + You'll have to change the @file{configure.target} file to ensure that + your new directory is activated. Look for the switch statement that + sets @code{os_include_dir}, and add a pattern to handle your operating + system. The switch statement switches on only the OS portion of the + standard target triplet; e.g., the @code{solaris2.8} in + @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 + like: + + @example + #define __off_t off_t + #define __off64_t off64_t + #define __ssize_t ssize_t + @end example + + @noindent + You don't have to provide these definitions if your system library + already defines these types -- but the only library known to provide + these types is the GNU C Library, so you will almost certainly have to + provide these macros. Note that this file does not have to include a + header file that defines @code{off_t}, or the other types; you simply + have to provide the macros. + + In addition, several libstdc++-v3 source files unconditionally define + the macro @code{_POSIX_SOURCE}. On many systems, defining this macro + causes large portions of the C library header files to be eliminated + at preprocessing time. Therefore, you may have to @code{#undef} this + macro, or define other macros (like @code{_LARGEFILE_SOURCE} or + @code{__EXTENSIONS__}). You won't know what macros to define or + undefine at this point; you'll have to try compiling the library and + seeing what goes wrong. If you see errors about calling functions + that have not been declared, look in your C library headers to see if + the functions are declared there, and then figure out what macros you + need to define. You will need to add them to the + @code{CPLUSPLUS_CPP_SPEC} macro in the GCC configuration file for your + 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: + + @example + #ifndef _GLIBCPP_OS_DEFINES + #define _GLIBCPP_OS_DEFINES + ... + #endif + @end example + + We recommend copying an existing @file{bits/os_defines.h} to use as a + starting point. + + @c --------------------------------------------------------------------- + @c Character types + @c --------------------------------------------------------------------- + + @node Character types + @chapter Character types + + 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 + from the IRIX configuration: + + @example + struct ctype_base + @{ + typedef unsigned int mask; + typedef int* __to_type; + + enum + @{ + space = _ISspace, + print = _ISprint, + cntrl = _IScntrl, + upper = _ISupper, + lower = _ISlower, + alpha = _ISalpha, + digit = _ISdigit, + punct = _ISpunct, + xdigit = _ISxdigit, + alnum = _ISalnum, + graph = _ISgraph + @}; + @}; + @end example + + @noindent + The @code{mask} type is the type of the elements in the table. If your + C library uses a table to map lower-case numbers to upper-case numbers, + and vice versa, you should define @code{__to_type} to be the type of the + elements in that table. If you don't mind taking a minor performance + penalty, or if your library doesn't implement @code{toupper} and + @code{tolower} in this way, you can pick any pointer-to-integer type, + but you must still define the type. + + The enumeration should give definitions for all the values in the above + 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} + constructor. Here is the IRIX example: + + @example + ctype::ctype(const mask* __table = 0, bool __del = false, + size_t __refs = 0) + : _Ctype_nois(__refs), _M_del(__table != 0 && __del), + _M_toupper(NULL), + _M_tolower(NULL), + _M_ctable(NULL), + _M_table(!__table + ? (const mask*) (__libc_attr._ctype_tbl->_class + 1) + : __table) + @{ @} + @end example + + @noindent + There are two parts of this that you might choose to alter. The first, + and most important, is the line involving @code{__libc_attr}. That is + IRIX system-dependent code that gets the base of the table mapping + character codes to attributes. You need to substitute code that obtains + the address of this table on your system. If you want to use your + operating system's tables to map upper-case letters to lower-case, and + vice versa, you should initialize @code{_M_toupper} and + @code{_M_tolower} with those tables, in similar fashion. + + Now, you have to write two functions to convert from upper-case to + lower-case, and vice versa. Here are the IRIX versions: + + @example + char + ctype::do_toupper(char __c) const + @{ return _toupper(__c); @} + + char + ctype::do_tolower(char __c) const + @{ return _tolower(__c); @} + @end example + + @noindent + Your C library provides equivalents to IRIX's @code{_toupper} and + @code{_tolower}. If you initialized @code{_M_toupper} and + @code{_M_tolower} above, then you could use those tables instead. + + Finally, you have to provide two utility functions that convert strings + of characters. The versions provided here will always work -- but you + could use specialized routines for greater performance if you have + machinery to do that on your system: + + @example + const char* + ctype::do_toupper(char* __low, const char* __high) const + @{ + while (__low < __high) + @{ + *__low = do_toupper(*__low); + ++__low; + @} + return __high; + @} + + const char* + ctype::do_tolower(char* __low, const char* __high) const + @{ + while (__low < __high) + @{ + *__low = do_tolower(*__low); + ++__low; + @} + return __high; + @} + @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. + + In detail, the functions provided test characters for particular + properties; they are analogous to the functions like @code{isalpha} and + @code{islower} provided by the C library. + + The first function is implemented like this on IRIX: + + @example + bool + ctype:: + is(mask __m, char __c) const throw() + @{ return (_M_table)[(unsigned char)(__c)] & __m; @} + @end example + + @noindent + The @code{_M_table} is the table passed in above, in the constructor. + This is the table that contains the bitmasks for each character. The + implementation here should work on all systems. + + The next function is: + + @example + const char* + ctype:: + is(const char* __low, const char* __high, mask* __vec) const throw() + @{ + while (__low < __high) + *__vec++ = (_M_table)[(unsigned char)(*__low++)]; + return __high; + @} + @end example + + @noindent + This function is similar; it copies the masks for all the characters + from @code{__low} up until @code{__high} into the vector given by + @code{__vec}. + + The last two functions again are entirely generic: + + @example + const char* + ctype:: + scan_is(mask __m, const char* __low, const char* __high) const throw() + @{ + while (__low < __high && !this->is(__m, *__low)) + ++__low; + return __low; + @} + + const char* + ctype:: + scan_not(mask __m, const char* __low, const char* __high) const throw() + @{ + while (__low < __high && this->is(__m, *__low)) + ++__low; + return __low; + @} + @end example + + @c --------------------------------------------------------------------- + @c Thread safety + @c --------------------------------------------------------------------- + + @node Thread safety + @chapter Thread safety + + The C++ library string functionality requires a couple of atomic + operations to provide thread-safety. If you don't take any special + action, the library will use stub versions of these functions that are + not thread-safe. They will work fine, unless your applications are + multi-threaded. + + If you want to provide custom, safe, versions of these functions, there + 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. + + The type is @code{_Atomic_word}. Here is the version used on IRIX: + + @example + typedef long _Atomic_word; + @end example + + @noindent + This type must be a signed integral type supporting atomic operations. + If you're using the OS approach, use the same type used by your system's + primitives. Otherwise, use the type for which your CPU provides atomic + primitives. + + Then, you must provide two functions. The bodies of these functions + must be equivalent to those provided here, but using atomic operations: + + @example + static inline _Atomic_word + __attribute__ ((__unused__)) + __exchange_and_add (_Atomic_word* __mem, int __val) + @{ + _Atomic_word __result = *__mem; + *__mem += __val; + return __result; + @} + + static inline void + __attribute__ ((__unused__)) + __atomic_add (_Atomic_word* __mem, int __val) + @{ + *__mem += __val; + @} + @end example + + @c --------------------------------------------------------------------- + @c Numeric limits + @c --------------------------------------------------------------------- + + @node Numeric limits + @chapter Numeric limits + + The C++ library requires information about the fundamental data types, + such as the minimum and maximum representable values of each type. + You can define each of these values individually, but it is usually + easiest just to indicate how many bits are used in each of the data + 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 + @c --------------------------------------------------------------------- + + @node Libtool + @chapter Libtool + + The C++ library is compiled, archived and linked with libtool. + Explaining the full workings of libtool is beyond the scope of this + document, but there are a few, particular bits that are necessary for + porting. + + Some parts of the libstdc++-v3 library are compiled with the libtool + @code{--tags CXX} option (the C++ definitions for libtool). Therefore, + @file{ltcf-cxx.sh} in the top-level directory needs to have the correct + logic to compile and archive objects equivalent to the C version of libtool, + @file{ltcf-c.sh}. Some libtool targets have definitions for C but not + for C++, or C++ definitions which have not been kept up to date. + + The C++ run-time library contains initialization code that needs to be + run as the library is loaded. Often, that requires linking in special + 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 + that sets @code{archive_cmds}. Here, adjust the setting for your + operating system. + + @c --------------------------------------------------------------------- + @c GFDL + @c --------------------------------------------------------------------- + + @include fdl.texi + + @c --------------------------------------------------------------------- + @c Epilogue + @c --------------------------------------------------------------------- + + @contents + @bye diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/18_support/howto.html gcc-3.0.3/libstdc++-v3/docs/html/18_support/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/18_support/howto.html Fri Oct 19 13:07:36 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/18_support/howto.html Thu Dec 13 15:28:22 2001 *************** *** 182,188 **** atexit(f2); then at a call of exit(), f2 will be called, then obj2 will be destroyed, then f1 will be called, and finally obj1 ! will be destroyed. If f1 or f2 allow an exception to propogate out of them, Bad Things happen.

            --- 182,188 ---- atexit(f2); then at a call of exit(), f2 will be called, then obj2 will be destroyed, then f1 will be called, and finally obj1 ! will be destroyed. If f1 or f2 allow an exception to propagate out of them, Bad Things happen.

            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/19_diagnostics/howto.html gcc-3.0.3/libstdc++-v3/docs/html/19_diagnostics/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/19_diagnostics/howto.html Fri Oct 19 13:07:36 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/19_diagnostics/howto.html Thu Dec 13 15:28:24 2001 *************** *** 26,31 **** --- 26,32 ----
          • Adding data to exceptions
          • Exception class hierarchy diagram
          • Concept checkers -- new and improved! +
          • Verbose terminate
            *************** *** 36,42 ****

            The standard exception classes carry with them a single string as data (usually describing what went wrong or where the 'throw' took place). It's good to remember that you can add your own data to ! these exceptions when extending the heirarchy:

                 struct My_Exception : public std::runtime_error
            --- 37,43 ----
                 

            The standard exception classes carry with them a single string as data (usually describing what went wrong or where the 'throw' took place). It's good to remember that you can add your own data to ! these exceptions when extending the hierarchy:

                 struct My_Exception : public std::runtime_error
            ***************
            *** 101,107 ****
            --- 102,166 ----
                 

            Right now they are off by default. More will be added once GCC 3.0 is released and we have time to revisit this topic.

            +

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

            + +
            +

            Verbose terminate

            +

            If you are having difficulty with uncaught exceptions and want a + little bit of help debugging the causes of the core dumps, you can + make use of a GNU extension in GCC 3.1 and later: +

            +    #include <exception>
              
            +    int main()
            +    {
            +        std::set_terminate (__gnu_cxx::verbose_terminate_handler);
            +        ...
            +        throw anything;
            +    }
            +

            +

            The verbose_terminate_handler function obtains the name + of the current exception, attempts to demangle it, and prints it to + stderr. If the exception is derived from std::exception + then the output from what() will be included. +

            +

            Any replacement termination function is required to kill the program + without returning; this one calls abort. +

            +

            For example: +

            +    #include <exception>
            +    #include <stdexcept>
            + 
            +    struct BLARGH : std::runtime_error
            +    {
            +        BLARGH (const string& whatarg)
            +            : std::runtime_error(whatarg) { }
            +    };
            + 
            +    int main (int argc)
            +    {
            +        std::set_terminate (__gnu_cxx::verbose_terminate_handler);
            +        if (argc > 5)
            +            throw BLARGH("argc is greater than 5!");
            +        else
            +            throw argc;
            +    }
            +

            +

            In GCC 3.1 and later, this gives +

            +    % ./a.out
            +    terminate called after throwing a `int'
            +    Aborted
            +    % ./a.out f f f f f f f f f f f
            +    terminate called after throwing a `BLARGH'
            +    what(): argc is greater than 5!
            +    Aborted
            +    %
            + The 'Aborted' line comes from the call to abort(), of course. +

            Return to top of page or to the FAQ.

            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/20_util/howto.html gcc-3.0.3/libstdc++-v3/docs/html/20_util/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/20_util/howto.html Fri Oct 19 13:07:36 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/20_util/howto.html Thu Dec 13 15:28:25 2001 *************** *** 91,97 ****

            auto_ptr inside container classes

            All of the containers described in the standard library require their contained types ! to have, among other things, a copy contructor like this:

                  struct My_Type
                  {
            --- 91,97 ----
              

            auto_ptr inside container classes

            All of the containers described in the standard library require their contained types ! to have, among other things, a copy constructor like this:

                  struct My_Type
                  {
            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/21_strings/howto.html gcc-3.0.3/libstdc++-v3/docs/html/21_strings/howto.html
            *** gcc-3.0.2/libstdc++-v3/docs/html/21_strings/howto.html	Fri Oct 19 13:07:37 2001
            --- gcc-3.0.3/libstdc++-v3/docs/html/21_strings/howto.html	Thu Dec 13 15:28:27 2001
            ***************
            *** 37,43 ****
                    CString.  Often programmers realize that a standard portable
                    answer is better than a proprietary nonportable one, but in porting
                    their application from a Win32 platform, they discover that they
            !       are relying on special functons offered by the CString class.
                 

            Things are not as bad as they seem. In this --- 37,43 ---- CString. Often programmers realize that a standard portable answer is better than a proprietary nonportable one, but in porting their application from a Win32 platform, they discover that they ! are relying on special functions offered by the CString class.

            Things are not as bad as they seem. In this *************** *** 58,64 **** stringstream classes. These are the bridge between the iostream hierarchy and the string class, and they operate with regular streams seamlessly because they inherit from the iostream ! heirarchy. An quick example:

                 #include <iostream>
                 #include <string>
            --- 58,64 ----
                    stringstream classes.  These are the bridge between the iostream
                    hierarchy and the string class, and they operate with regular
                    streams seamlessly because they inherit from the iostream
            !       hierarchy.  An quick example:
                    
                 #include <iostream>
                 #include <string>
            ***************
            *** 315,321 ****
                 str.erase(notwhite+1); 
            Obviously, the calls to find could be inserted directly into the calls to erase, in case your compiler does not ! optimize named temporaries out of existance.

            Return to top of page or to the FAQ. --- 315,321 ---- str.erase(notwhite+1);

            Obviously, the calls to find could be inserted directly into the calls to erase, in case your compiler does not ! optimize named temporaries out of existence.

            Return to top of page or to the FAQ. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/23_containers/howto.html gcc-3.0.3/libstdc++-v3/docs/html/23_containers/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/23_containers/howto.html Fri Oct 19 13:07:38 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/23_containers/howto.html Thu Dec 13 15:28:29 2001 *************** *** 165,171 **** bitset for the required number of bits, inside some wrapper functions with unchanging signatures. Have your program then call the ! compiler on that file using Position Independant Code, then open the newly-created object file and load those wrapper functions. You'll have an instantiation of bitset<N> for the exact N --- 165,171 ---- bitset for the required number of bits, inside some wrapper functions with unchanging signatures. Have your program then call the ! compiler on that file using Position Independent Code, then open the newly-created object file and load those wrapper functions. You'll have an instantiation of bitset<N> for the exact N *************** *** 242,247 **** --- 242,289 ---- mechanism. Trying to provide a catch-all general template solution would probably be more trouble than it's worth.

            +

            The STL implementation is currently configured to use the + high-speed caching memory allocator. If you absolutely think + you must change this on a global basis for your platform to better + support multi-threading, then please consult all commentary in + include/bits/stl_alloc.h and the allocators link below. +

            +

            (Explicit warning since so many people get confused while + attempting this:) +

            +

            Adding -D__USE_MALLOC on the command + line is almost certainly a bad idea. Memory efficiency is + almost guaranteed to suffer as a result; this is + why + we disabled it for 3.0 in the first place. +

            +

            Related to threading or otherwise, the current recommendation is + that users not add any macro defines on the command line to remove or + otherwise disable features of libstdc++-v3. There is + no condition under which it will help you without causing other + issues to perhaps raise up (possible linkage/ABI problems). In + particular, __USE_MALLOC should only be added to a libstdc++-v3 + configuration file, include/bits/c++config (where such user + action is cautioned against), and the entire library should be + rebuilt. If you do not, then you might be violating the + one-definition rule of C/C++ and you might cause yourself untold + problems. +

            +
            + If you find any platform where gcc reports a + threading model other than single, and where libstdc++-v3 builds + a buggy container allocator when used with threads unless you + define __USE_MALLOC, we want to hear about it ASAP. In the + past, correctness was the main reason people were led to believe + that they should define __USE_MALLOC when using threads. +

            +

            There is a better way (not standardized yet): It is possible to + force the malloc-based allocator on a per-case-basis for some + application code. The library team generally believes that this + is a better way to tune an application for high-speed using this + implementation of the STL. There is + more information on allocators here. +

            Return to top of page or to the FAQ.

            *************** *** 290,296 **** be the entry in the container pointed to by hint, that is, h = *hint. Then the item being inserted should have a key less than that of h, and greater than that of the ! item preceeding h. The new item will be inserted between h and h's predecessor.

            --- 332,338 ---- be the entry in the container pointed to by hint, that is, h = *hint. Then the item being inserted should have a key less than that of h, and greater than that of the ! item preceding h. The new item will be inserted between h and h's predecessor.

            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/26_numerics/howto.html gcc-3.0.3/libstdc++-v3/docs/html/26_numerics/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/26_numerics/howto.html Fri Oct 19 13:07:39 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/26_numerics/howto.html Thu Dec 13 15:28:30 2001 *************** *** 133,139 ****

            The C99 features depend on the --enable-c99 configure flag. This flag is already on by default, but it can be disabled by the user. Also, the configuration machinery will disable it if the ! neccessary support for C99 (e.g., header files) cannot be found.

            As of GCC 3.0, C99 support includes classification functions such as isnormal, isgreater, --- 133,139 ----

            The C99 features depend on the --enable-c99 configure flag. This flag is already on by default, but it can be disabled by the user. Also, the configuration machinery will disable it if the ! necessary support for C99 (e.g., header files) cannot be found.

            As of GCC 3.0, C99 support includes classification functions such as isnormal, isgreater, diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/27_io/howto.html gcc-3.0.3/libstdc++-v3/docs/html/27_io/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/27_io/howto.html Fri Oct 19 13:07:40 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/27_io/howto.html Thu Dec 13 15:28:32 2001 *************** *** 113,119 **** when the output stream is, in fact, a terminal and not a file or some other device -- and that may not even be true since C++ says nothing about files nor terminals. All of that is ! system-dependant. (The "newline-buffer-flushing only occuring on terminals" thing is mostly true on Unix systems, though.)

            Some people also believe that sending endl down an --- 113,119 ---- when the output stream is, in fact, a terminal and not a file or some other device -- and that may not even be true since C++ says nothing about files nor terminals. All of that is ! system-dependent. (The "newline-buffer-flushing only occurring on terminals" thing is mostly true on Unix systems, though.)

            Some people also believe that sending endl down an *************** *** 167,173 **** arguments are the same as those for the Standard C I/O Library function (a buffer area followed by its size).

            !

            A great deal of this is implementation-dependant. For example, streambuf does not specify any actions for its own setbuf()-ish functions; the classes derived from streambuf each define behavior that "makes --- 167,173 ---- arguments are the same as those for the Standard C I/O Library function (a buffer area followed by its size).

            !

            A great deal of this is implementation-dependent. For example, streambuf does not specify any actions for its own setbuf()-ish functions; the classes derived from streambuf each define behavior that "makes *************** *** 183,189 ****

            A last reminder: there are usually more buffers involved than just those at the language/library level. Kernel buffers, disk buffers, and the like will also have an effect. Inspecting and ! changing those are system-dependant.

            Return to top of page or to the FAQ. --- 183,189 ----

            A last reminder: there are usually more buffers involved than just those at the language/library level. Kernel buffers, disk buffers, and the like will also have an effect. Inspecting and ! changing those are system-dependent.

            Return to top of page or to the FAQ. *************** *** 445,451 ****

            You must do this before performing any I/O via the C++ stream objects. ! Once you call this, the C++ streams will operate independantly of the (unused) C streams. For GCC 3.0, this means that cout and company will become fully buffered on their own.

            --- 445,451 ----

            You must do this before performing any I/O via the C++ stream objects. ! Once you call this, the C++ streams will operate independently of the (unused) C streams. For GCC 3.0, this means that cout and company will become fully buffered on their own.

            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/Makefile gcc-3.0.3/libstdc++-v3/docs/html/Makefile *** gcc-3.0.2/libstdc++-v3/docs/html/Makefile Sat Dec 9 20:03:08 2000 --- gcc-3.0.3/libstdc++-v3/docs/html/Makefile Thu Dec 13 15:28:17 2001 *************** *** 1,5 **** faq/index.txt: faq/index.html ! lynx -dump faq/index.html | sed "s%file://localhost`pwd`%..%" > $@ --- 1,13 ---- + MAKEINFO=makeinfo + INC=../../../gcc/doc/include + + all: faq/index.txt 17_intro/porting.html + 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.0.2/libstdc++-v3/docs/html/documentation.html gcc-3.0.3/libstdc++-v3/docs/html/documentation.html *** gcc-3.0.2/libstdc++-v3/docs/html/documentation.html Fri Oct 19 13:07:34 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/documentation.html Thu Dec 13 15:28:17 2001 *************** *** 60,66 **** - GPL v2 license terms
          • DESIGN - overview of the implementation plan !
          • headER_POLICY - header naming and sub-include structure
          • PROBLEMS
            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/ext/howto.html gcc-3.0.3/libstdc++-v3/docs/html/ext/howto.html *** gcc-3.0.2/libstdc++-v3/docs/html/ext/howto.html Fri Oct 19 13:07:40 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/ext/howto.html Thu Dec 13 15:28:34 2001 *************** *** 143,150 ****

            Allocators

            !

            This will be blank for a while. It will describe all of the different ! memory allocators, most inherited from SGI's code. Input is solicited.

            Return to top of page or to the FAQ. --- 143,353 ----


            Allocators

            !

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

            !

            The Rules

            !

            The C++ standard only gives a few directives in this area: !

              !
            • When you add elements to a container, and the container must allocate ! more memory to hold them, the container makes the request via its ! Allocator template parameter. This includes adding ! char's to the string class, which acts as a regular STL container ! in this respect. !
            • The default Allocator of every container-of-T is ! std::allocator<T>. !
            • The interface of the allocator<T> class is ! extremely simple. It has about 20 public declarations (nested ! typedefs, member functions, etc), but the two which concern us most ! are: !
              !       T*    allocate   (size_type n, const void* hint = 0);
              !       void  deallocate (T* p, size_type n);
              ! (This is a simplicifcation; the real signatures use nested typedefs.) ! The "n" arguments in both those functions is a ! count of the number of T's to allocate space for, ! not their total size. !
            • "The storage is obtained by calling ! ::operator new(size_t), but it is unspecified when or ! how often this function is called. The use of hint ! is unspecified, but intended as an aid to locality if an ! implementation so desires." [20.4.1.1]/6 !
            !

            !

            Problems and Possibilities

            !

            The easiest way of fulfilling the requirements is to call operator new ! each time a container needs memory, and to call operator delete each ! time the container releases memory. BUT ! this ! method is horribly slow. !

            !

            Or we can keep old memory around, and reuse it in a pool to save time. ! The old libstdc++-v2 used a memory pool, and so do we. As of 3.0, ! it's ! on by default. The pool is shared among all the containers in the ! program: when your program's std::vector<int> gets cut in half ! and frees a bunch of its storage, that memory can be reused by the ! private std::list<WonkyWidget> brought in from a KDE library ! that you linked against. And we don't have to call operator's new and ! delete to pass the memory on, ether, which is a speed bonus. ! BUT... !

            !

            What about threads? No problem: in a threadsafe environment, the ! memory pool is manipulated atomically, so you can grow a container in ! one thread and shrink it in another, etc. BUT what ! if threads in libstdc++-v3 aren't set up properly? ! That's been answered already. !

            !

            BUT what if you want to use your own allocator? What ! if you plan on using a runtime-loadable version of malloc() which uses ! shared telepathic anonymous mmap'd sections serializable over a ! network, so that memory requests should go through malloc? ! And what if you need to debug it? !

            !

            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.1 somehow. !

            !

            These classes are always available: !

              !
            • __new_alloc simply wraps ::operator new ! and ::operator delete. !
            • __malloc_alloc_template<int inst> simply wraps ! malloc and free. There is also a hook ! for an out-of-memory handler (for new/delete this is taken care of ! elsewhere). The inst parameter is described below. ! This class was called malloc_alloc in earlier versions. !
            • allocator<T> has already been described; it is ! The Standard Allocator for instances of T. It uses the internal ! __alloc typedef (see below) to satisy its requests. !
            • __simple_alloc<T,A> is a wrapper around another ! allocator, A, which itself is an allocator for instances of T. ! This is primarily used in an internal "allocator traits" ! class which helps encapsulate the different styles of allocators. !
            • __debug_alloc<A> is also a wrapper around an ! arbitrary allocator A. It passes on slightly increased size ! requests to A, and uses the extra memory to store size information. ! When a pointer is passed to deallocate(), the stored ! size is checked, and assert() is used to guarantee they match. !
            • __allocator<T,A> is an adaptor. Many of these ! allocator classes have a consistent yet non-standard interface. ! Such classes can be changed to a conforming interface with this ! wrapper: __allocator<T, __alloc> is thus the ! same as allocator<T>. !
            !

            !

            An internal typedef, __mem_interface , is defined to be ! __new_alloc by default. !

            !

            Normally, ! __default_alloc_template<bool thr, int inst> ! is also available. This is the high-speed pool, called the default ! node allocator. The reusable memory is shared among identical ! instantiations of ! this type. It calls through __mem_interface to obtain ! new memory when its lists run out. If a client container requests a ! block larger than a certain threshold size, then the pool is bypassed, ! and the allocate/deallocate request is passed to ! __mem_interface directly. !

            !

            Its inst parameter is described below. The ! thr boolean determines whether the pool should be ! manipulated atomically or not. Two typedefs are provided: ! __alloc is defined as this node allocator with thr=true, ! and therefore is threadsafe, while __single_client_alloc ! defines thr=false, and is slightly faster but unsafe for multiple ! threads. !

            !

            (Note that the GCC thread abstraction layer allows us to provide safe ! zero-overhead stubs for the threading routines, if threads were ! disabled at configuration time. In this situation, ! __alloc should not be noticably slower than ! __single_client_alloc.) !

            !

            [Another threadsafe allocator where each thread keeps its own free ! list, so that no locking is needed, might be described here.] !

            !

            A cannon to swat a fly: __USE_MALLOC

            !

            If you've already read this ! advice and decided to define this macro, then the situation changes ! thusly: !

              !
            1. __mem_interface, and !
            2. __alloc, and !
            3. __single_client_alloc are all typedef'd to ! __malloc_alloc_template. !
            4. __default_alloc_template is no longer available. ! At all. Anywhere. !
            !

            !

            Writing your own allocators

            !

            Depending on your application (a specific program, a generic library, ! etc), allocator classes tend to be one of two styles: "SGI" ! or "standard". See the comments in stl_alloc.h for more ! information on this crucial difference. !

            !

            At the bottom of that header is a helper type, ! _Alloc_traits, and various specializations of it. This ! allows the container classes to make possible compile-time ! optimizations based on features of the allocator. You should provide ! a specialization of this type for your allocator (doing so takes only ! two or three statements). !

            !

            Using non-default allocators

            !

            You can specify different memory management schemes on a per-container ! basis, by overriding the default Allocator template ! parameter. For example, an easy ! (but nonportable) ! method of specifying that only malloc/free should be used instead of ! the default node allocator is: !

            !     std::list <my_type, std::__malloc_alloc_template<0> >  my_malloc_based_list;
            ! Likewise, a debugging form of whichever allocator is currently in use: !
            !     std::deque <my_type, std::__debug_alloc<std::__alloc> >  debug_deque;
            !

            !

            inst

            !

            The __malloc_alloc_template and ! __default_alloc_template classes take an integer parameter, ! called inst here. This number is completely unused. !

            !

            The point of the number is to allow multiple instantiations of the ! classes without changing the semantics at all. All three of !

            !     typedef  __default_alloc_template<true,0>    normal;
            !     typedef  __default_alloc_template<true,1>    private;
            !     typedef  __default_alloc_template<true,42>   also_private;
            ! behave exactly the same way. However, the memory pool for each type ! (and remember that different instantiations result in different types) ! remains separate. !

            !

            The library uses 0 in all its instantiations. If you ! wish to keep separate free lists for a particular purpose, use a ! different number. !

            !

            3.0.x

            !

            For 3.0.x, many of the names were incorrectly not prefixed ! with underscores. So symbols such as "std::single_client_alloc" ! are present. Be very careful to not depend on these names any more ! than you would depend on implementation-only names. !

            !

            Certain macros like _NOTHREADS and __STL_THREADS ! 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. *************** *** 173,181 ****

            Here are the issues which have resulted in code changes to the library. The links are to the specific defect reports from a partial ! copy of the ! Issues List. You can read the full version online at the ISO C++ ! Committee homepage, linked to on the GCC "Readings" page. If you spend a lot of time reading the issues, we recommend downloading the ZIP file and reading them locally.

            --- 376,386 ----

            Here are the issues which have resulted in code changes to the library. The links are to the specific defect reports from a partial ! copy of the Issues List. You can read the full version online ! at the ISO C++ ! Committee homepage, linked to on the ! GCC "Readings" ! page. If you spend a lot of time reading the issues, we recommend downloading the ZIP file and reading them locally.

            *************** *** 194,201 **** until an issue has reached DR status.

            - -
            5: string::compare specification questionable
            This should be two overloaded functions rather than a single function. --- 399,404 ---- *************** *** 204,209 **** --- 407,416 ---- Bad bool parsing
            Apparently extracting Boolean values was messed up... +
            22: + Member open vs flags +
            Re-opening a file stream does not clear the state flags. +
            25: String operator<< uses width() value wrong
            Padding issues. *************** *** 247,252 **** --- 454,467 ---- replace the function with a const one; we have instead provided an overloaded version with identical contents. +
            117: + basic_ostream uses nonexistent num_put member functions +
            num_put::put() was overloaded on the wrong types. + +
            118: + basic_istream uses nonexistent num_get member functions +
            Same as 117, but for num_get::get(). +
            129: Need error indication from seekp() and seekg()
            These functions set failbit on error now. *************** *** 294,299 **** --- 509,523 ---- std::pair::pair() effects overly restrictive
            The default ctor would build its members from copies of temporaries; now it simply uses their respective default ctors. + +
            266: + bad_exception::~bad_exception() missing Effects clause +
            The bad_* classes no longer have destructors (they + are trivial), since no description of them was ever given. + +
            275: + Wrong type in num_get::get() overloads +
            Similar to 118.

            1.1 What is libstdc++-v3?

            !

            The GNU Standard C++ Library v3, or libstdc++-2.9x, is an ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot --- 99,105 ----

            1.0 General Information

            1.1 What is libstdc++-v3?

            !

            The GNU Standard C++ Library v3 is an ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot *************** http://gcc.gnu.org/onlinedocs/libstdc++/ *** 106,115 **** far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over anonymous CVS, and can even be browsed over the Web (see below). !

            A more formal description of the V3 goals can be found in the official design document. !


            1.2 Why should I use libstdc++?

            --- 109,123 ---- far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over anonymous CVS, and can even be browsed over the Web (see below). !

            !

            The older libstdc++-v2 project is no longer maintained; the code ! has been completely replaced and rewritten. ! If you are using V2, then you need to ! report bugs to your system vendor, not to the V3 list. !

            A more formal description of the V3 goals can be found in the official design document. !


            1.2 Why should I use libstdc++?

            *************** http://gcc.gnu.org/onlinedocs/libstdc++/ *** 134,140 **** (such as string, vector<>, iostreams, and algorithms) will be freely available and fully compliant. Programmers will no longer need to "roll their own" ! nor be worried about platform-specific incompatabilities.


            --- 142,148 ---- (such as string, vector<>, iostreams, and algorithms) will be freely available and fully compliant. Programmers will no longer need to "roll their own" ! nor be worried about platform-specific incompatibilities.


            *************** which is no longer available, thanks dej *** 321,326 **** --- 329,384 ----


            +

            2.4 This library is HUGE! And what's libsupc++?

            +

            Usually the size of libraries on disk isn't noticeable. When a + link editor (or simply "linker") pulls things from a + static archive library, only the necessary object files are copied + into your executable, not the entire library. Unfortunately, even + if you only need a single function or variable from an object file, + the entire object file is extracted. (There's nothing unique to C++ + or libstdc++-v3 about this; it's just common behavior, given here + for background reasons.) +

            +

            Some of the object files which make up libstdc++.a are rather large. + If you create a statically-linked executable with + -static, those large object files are suddenly part + of your executable. Historically the best way around this was to + only place a very few functions (often only a single one) in each + source/object file; then extracting a single function is the same + as extracting a single .o file. For libstdc++-v3 this is only + possible to a certain extent; the object files in question contain + template classes and template functions, pre-instantiated, and + splitting those up causes severe maintenance headaches. +

            +

            It's not a bug, and it's not really a problem. Nevertheless, some + people don't like it, so here are two pseudo-solutions: +

            +

            If the only functions from libstdc++.a which you need are language + support functions (those listed in + clause 18 of the standard, + e.g., new and delete), then try linking + against libsupc++.a (usually specifying + -lsupc++ when calling g++ for the final link step will + do it). This library contains only those support routines, one per + object file. But if you are using anything from the rest of the + library, such as IOStreams or vectors, then you'll still need + pieces from libstdc++.a. +

            +

            The second method is one we hope to incorporate into the library + build process. Some platforms can place each function and variable + into its own section in a .o file. The GNU linker can then perform + garbage collection on unused sections; this reduces the situation + to only copying needed functions into the executable, as before, + but all happens automatically. +

            +

            Unfortunately the garbage collection in GNU ld is buggy; sections + (corresponding to functions and variables) which are used + are mistakenly removed, leading to horrible crashes when your + executable starts up. For the time being, this feature is not used + when building the library. +

            + +

            3.0 Platform-Specific Issues

            3.1 Can libstdc++-v3 be used with <my favorite compiler>?

            *************** which is no longer available, thanks dej *** 337,343 ****

            Since the goal of ISO Standardization is for all C++ implementations to be able to share code, the final libstdc++ ! should, in theory, be useable under any ISO-compliant compiler. It will still be targeted and optimized for GCC/g++, however.

            --- 395,401 ----

            Since the goal of ISO Standardization is for all C++ implementations to be able to share code, the final libstdc++ ! should, in theory, be usable under any ISO-compliant compiler. It will still be targeted and optimized for GCC/g++, however.

            *************** which is no longer available, thanks dej *** 364,369 **** --- 422,439 ----


            +

            3.4 I can't use 'long long' on Solaris

            +

            By default we try to support the C99 long long type. + This requires that certain functions from your C library be present. +

            +

            Up through release 3.0.2 the tests performed were too general, and + this feature was disabled when it did not need to be. The most + commonly reported platform affected was Solaris. +

            +

            This has been fixed for 3.0.3 and onwards. +

            + +

            4.0 Known Bugs and Non-Bugs

            Note that this section can get rapdily outdated -- such is the nature of an open-source project. For the latest information, join *************** which is no longer available, thanks dej *** 380,389 **** 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. ! Work has already gone into the source tree to make this less painful ! for the next release.

            !

            Please do not report this as a bug. We know about it. Reporting this -- or any other problem that's already been fixed -- hinders the development of GCC, because we have to take time to respond to your report. Thank you. --- 450,458 ---- 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 development of GCC, because we have to take time to respond to your report. Thank you. *************** New: *** 518,525 **** do anyhow; see the last paragraph of the page describing the GCC bug database).

            !

            If the headers are in ${prefix}/include/g++-3, then ! you are using the old libstdc++-v2 library, which is nonstandard and unmaintained. Do not report problems with -v2 to the -v3 mailing list.

            --- 587,596 ---- do anyhow; see the last paragraph of the page describing 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, ! then you are using the old libstdc++-v2 library, which is nonstandard and unmaintained. Do not report problems with -v2 to the -v3 mailing list.

            *************** http://clisp.cons.org/~haible/gccinclude *** 719,727 ****

            All library objects are safe to use in a multithreaded program as long as each thread carefully locks out access by any other thread ! while it uses any object visible to another thread. This requirement ! includes both read and write access to objects; do not assume that ! two threads may read a shared standard container at the same time.

            See chapters 17 (library introduction), 23 --- 790,800 ----

            All library objects are safe to use in a multithreaded program as long as each thread carefully locks out access by any other thread ! while it uses any object visible to another thread. In general, ! this requirement includes both read and write access to objects; ! unless otherwise documented as safe, do not assume that two ! threads may access a shared standard library object at the ! same time.

            See chapters 17 (library introduction), 23 *************** http://clisp.cons.org/~haible/gccinclude *** 745,750 **** --- 818,870 ----

            Who is your country's member body? Visit the ISO homepage and find out! +

            + +
            +

            5.8 What's an ABI and why is it so messy?

            +

            "ABI" stands for "Application Binary Interface." + Conventionally, it refers to a great mass of details about how + arguments are arranged on the call stack and/or in registers, and + how various types are arranged and padded in structs. A single CPU + design may suffer multiple ABIs designed by different development + tool vendors who made different choices, or even by the same vendor + for different target applications or compiler versions. In ideal + circumstances the CPU designer presents one ABI and all the OSes and + compilers use it. In practice every ABI omits details that compiler + implementers (consciously or accidentally) must choose for themselves. +

            +

            That ABI definition suffices for compilers to generate code so a + program can interact safely with an OS and its lowest-level libraries. + Users usually want an ABI to encompass more detail, allowing libraries + built with different compilers (or different releases of the same + compiler!) to be linked together. For C++, this includes many more + details than for C, and CPU designers (for good reasons elaborated + below) have not stepped up to publish C++ ABIs. The details include + virtual function implementation, struct inheritance layout, name + mangling, and exception handling. Such an ABI has been defined for + GNU C++, and is immediately useful for embedded work relying only on + a "free-standing implementation" that doesn't include (much + of) the standard library. It is a good basis for the work to come. +

            +

            A useful C++ ABI must also incorporate many details of the standard + library implementation. For a C ABI, the layouts of a few structs + (such as FILE, stat, jmpbuf, and the like) and a few macros suffice. + For C++, the details include the complete set of names of functions + and types used, the offsets of class members and virtual functions, + and the actual definitions of all inlines. C++ exposes many more + library details to the caller than C does. It makes defining + a complete ABI a much bigger undertaking, and requires not just + documenting library implementation details, but carefully designing + those details so that future bug fixes and optimizations don't + force breaking the ABI. +

            +

            There are ways to help isolate library implementation details from the + ABI, but they trade off against speed. Library details used in + inner loops (e.g., getchar) must be exposed and frozen for all + time, but many others may reasonably be kept hidden from user code, + so they may later be changed. Deciding which, and implementing + the decisions, must happen before you can reasonably document a + candidate C++ ABI that encompasses the standard library.

            diff -Nrc3pad gcc-3.0.2/libstdc++-v3/docs/html/faq/index.txt gcc-3.0.3/libstdc++-v3/docs/html/faq/index.txt *** gcc-3.0.2/libstdc++-v3/docs/html/faq/index.txt Fri Oct 19 13:07:42 2001 --- gcc-3.0.3/libstdc++-v3/docs/html/faq/index.txt Thu Dec 13 15:28:40 2001 *************** *** 1,7 **** libstdc++ Frequently Asked Questions ! The latest version of this document is always available at [1]http://gcc.gnu.org/onlinedocs/libstdc++/faq/. To the [2]libstdc++-v3 homepage. --- 1,7 ---- libstdc++ Frequently Asked Questions ! The latest version of this document is always available at [1]http://gcc.gnu.org/onlinedocs/libstdc++/faq/. To the [2]libstdc++-v3 homepage. *************** *** 24,168 **** 2. [15][removed] 3. [16]What is this CVS thing that you keep mentioning? 4. [17]How do I know if it works? ! 3. [18]Platform-Specific Issues ! 1. [19]Can libstdc++-v3 be used with ? ! 2. [20][removed] ! 3. [21]Building under DEC OSF kills the assembler ! 4. [22]Known Bugs and Non-Bugs ! 1. [23]What works already? ! 2. [24]Bugs in gcc/g++ (not libstdc++-v3) ! 3. [25]Bugs in the C++ language/lib specification ! 4. [26]Things in libstdc++ that look like bugs ! o [27]reopening a stream fails ! o [28]-Weffc++ complains too much ! o [29]"ambiguous overloads" after including an old-style header ! o [30]The g++-3 headers are not ours ! o [31]compilation errors from streambuf.h ! o [32]errors about *Cconcept and constraints in the STL... ! 5. [33]Aw, that's easy to fix! ! 5. [34]Miscellaneous ! 1. [35]string::iterator is not char*; vector::iterator is not T* ! 2. [36]What's next after libstdc++-v3? ! 3. [37]What about the STL from SGI? ! 4. [38]Extensions and Backward Compatibility ! 5. [39][removed] ! 6. [40]Is libstdc++-v3 thread-safe? ! 7. [41]How do I get a copy of the ISO C++ Standard? _________________________________________________________________ 1.0 General Information 1.1 What is libstdc++-v3? ! The GNU Standard C++ Library v3, or libstdc++-2.9x, is an ongoing ! project to implement the ISO 14882 Standard C++ library 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 [42]the eleventh 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 anonymous ! CVS, and can even be browsed over the Web (see below). A more formal description of the V3 goals can be found in the official ! [43]design document. _________________________________________________________________ 1.2 Why should I use libstdc++? The completion of the ISO C++ standardization gave the C++ community a ! powerful set of reuseable tools in the form of the C++ Standard ! Library. However, all existing C++ implementations are (as the Draft ! Standard used to say) "incomplet and incorrekt," and many suffer from limitations of the compilers that use them. ! The GNU C/C++/FORTRAN/ compiler (gcc, g++, etc) is widely considered to be one of the leading compilers in the world. Its ! development has recently been taken over by the [44]GCC team. All of ! the rapid development and near-legendary [45]portability that are the hallmarks of an open-source project are being applied to libstdc++. ! That means that all of the Standard classes and functions (such as ! string, vector<>, iostreams, and algorithms) will be freely available ! and fully compliant. Programmers will no longer need to "roll their ! own" nor be worried about platform-specific incompatabilities. _________________________________________________________________ 1.3 Who's in charge of it? The libstdc++ project is contributed to by several developers all over ! the world, in the same way as GCC or Linux. Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, and Ulrich Drepper are the lead maintainers of the CVS archive. ! Development and discussion is held on the libstdc++ mailing list. ! Subscribing to the list, or searching the list archives, is open to ! everyone. You can read instructions for doing so on the [46]homepage. If you have questions, ideas, code, or are just curious, sign up! _________________________________________________________________ 1.4 How do I get libstdc++? ! The eleventh (and latest) snapshot of libstdc++-v3 is [47]available via ftp. The filename is libstdc++-2.92.tar.gz. ! The [48]homepage has instructions for retrieving the latest CVS sources, and for browsing the CVS sources over the web. ! The subset commonly known as the Standard Template Library (chapters ! 23 through 25, mostly) is adapted from the final release of the SGI STL. _________________________________________________________________ 1.5 When is libstdc++ going to be finished? ! Nathan Myers gave the best of all possible answers, responding to a Usenet article asking this question: Sooner, if you help. _________________________________________________________________ 1.6 How do I contribute to the effort? ! Here is [49]a page devoted to this topic. Subscribing to the mailing ! list (see above, or the homepage) is a very good idea if you have ! something to contribute, or if you have spare time and want to help. Contributions don't have to be in the form of source code; anybody who ! is willing to help write documentation, for example, or has found a bug in code that we all thought was working, is more than welcome! _________________________________________________________________ 1.7 What happened to libg++? I need that! ! The most recent libg++ README states that libg++ is no longer being ! actively maintained. It should not be used for new projects, and is only being kicked along to support older code. ! The libg++ was designed and created when there was no Standard to ! provide guidance. Classes like linked lists are now provided for by ! list and do not need to be created by genclass. (For that matter, ! templates exist now and are well-supported, whereas genclass (mostly) predates them.) ! There are other classes in libg++ that are not specified in the ISO Standard (e.g., statistical analysis). While there are a lot of really ! useful things that are used by a lot of people (e.g., statistics :-), ! the Standards Committee couldn't include everything, and so a lot of those "obvious" classes didn't get included. ! Since libstdc++ is an implementation of the Standard Library, we have ! no plans at this time to include non-Standard utilities in the ! implementation, however handy they are. (The extensions provided in ! the SGI STL aren't maintained by us and don't get a lot of our ! attention, because they don't require a lot of our time.) It is ! entirely plausable that the "useful stuff" from libg++ might be ! extracted into an updated utilities library, but nobody has stated such a project yet. ! (The [50]Boost site houses free C++ libraries that do varying things, ! and happened to be started by members of the Standards Committee. Certain "useful stuff" classes will probably migrate there.) ! For the bold and/or desperate, the [51]GCC FAQ describes where to find the last libg++ source. _________________________________________________________________ --- 24,175 ---- 2. [15][removed] 3. [16]What is this CVS thing that you keep mentioning? 4. [17]How do I know if it works? ! 5. [18]This library is HUGE! And what's libsupc++? ! 3. [19]Platform-Specific Issues ! 1. [20]Can libstdc++-v3 be used with ? ! 2. [21][removed] ! 3. [22]Building under DEC OSF kills the assembler ! 4. [23]I can't use 'long long' on Solaris ! 4. [24]Known Bugs and Non-Bugs ! 1. [25]What works already? ! 2. [26]Bugs in gcc/g++ (not libstdc++-v3) ! 3. [27]Bugs in the C++ language/lib specification ! 4. [28]Things in libstdc++ that look like bugs ! o [29]reopening a stream fails ! o [30]-Weffc++ complains too much ! o [31]"ambiguous overloads" after including an old-style header ! o [32]The g++-3 headers are not ours ! o [33]compilation errors from streambuf.h ! o [34]errors about *Cconcept and constraints in the STL... ! 5. [35]Aw, that's easy to fix! ! 5. [36]Miscellaneous ! 1. [37]string::iterator is not char*; vector::iterator is not T* ! 2. [38]What's next after libstdc++-v3? ! 3. [39]What about the STL from SGI? ! 4. [40]Extensions and Backward Compatibility ! 5. [41][removed] ! 6. [42]Is libstdc++-v3 thread-safe? ! 7. [43]How do I get a copy of the ISO C++ Standard? ! 8. [44]What's an ABI and why is it so messy? _________________________________________________________________ 1.0 General Information 1.1 What is libstdc++-v3? ! The GNU Standard C++ Library v3 is an ongoing project to implement the ! ISO 14882 Standard C++ library 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 [45]the eleventh ! 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 anonymous CVS, and can even be browsed over ! the Web (see below). ! ! The older libstdc++-v2 project is no longer maintained; the code has ! been completely replaced and rewritten. [46]If you are using V2, then ! you need to report bugs to your system vendor, not to the V3 list. A more formal description of the V3 goals can be found in the official ! [47]design document. _________________________________________________________________ 1.2 Why should I use libstdc++? The completion of the ISO C++ standardization gave the C++ community a ! powerful set of reuseable tools in the form of the C++ Standard ! Library. However, all existing C++ implementations are (as the Draft ! Standard used to say) "incomplet and incorrekt," and many suffer from limitations of the compilers that use them. ! The GNU C/C++/FORTRAN/ compiler (gcc, g++, etc) is widely considered to be one of the leading compilers in the world. Its ! development has recently been taken over by the [48]GCC team. All of ! the rapid development and near-legendary [49]portability that are the hallmarks of an open-source project are being applied to libstdc++. ! That means that all of the Standard classes and functions (such as ! string, vector<>, iostreams, and algorithms) will be freely available ! and fully compliant. Programmers will no longer need to "roll their ! own" nor be worried about platform-specific incompatibilities. _________________________________________________________________ 1.3 Who's in charge of it? The libstdc++ project is contributed to by several developers all over ! the world, in the same way as GCC or Linux. Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, and Ulrich Drepper are the lead maintainers of the CVS archive. ! Development and discussion is held on the libstdc++ mailing list. ! Subscribing to the list, or searching the list archives, is open to ! everyone. You can read instructions for doing so on the [50]homepage. If you have questions, ideas, code, or are just curious, sign up! _________________________________________________________________ 1.4 How do I get libstdc++? ! The eleventh (and latest) snapshot of libstdc++-v3 is [51]available via ftp. The filename is libstdc++-2.92.tar.gz. ! The [52]homepage has instructions for retrieving the latest CVS sources, and for browsing the CVS sources over the web. ! The subset commonly known as the Standard Template Library (chapters ! 23 through 25, mostly) is adapted from the final release of the SGI STL. _________________________________________________________________ 1.5 When is libstdc++ going to be finished? ! Nathan Myers gave the best of all possible answers, responding to a Usenet article asking this question: Sooner, if you help. _________________________________________________________________ 1.6 How do I contribute to the effort? ! Here is [53]a page devoted to this topic. Subscribing to the mailing ! list (see above, or the homepage) is a very good idea if you have ! something to contribute, or if you have spare time and want to help. Contributions don't have to be in the form of source code; anybody who ! is willing to help write documentation, for example, or has found a bug in code that we all thought was working, is more than welcome! _________________________________________________________________ 1.7 What happened to libg++? I need that! ! The most recent libg++ README states that libg++ is no longer being ! actively maintained. It should not be used for new projects, and is only being kicked along to support older code. ! The libg++ was designed and created when there was no Standard to ! provide guidance. Classes like linked lists are now provided for by ! list and do not need to be created by genclass. (For that matter, ! templates exist now and are well-supported, whereas genclass (mostly) predates them.) ! There are other classes in libg++ that are not specified in the ISO Standard (e.g., statistical analysis). While there are a lot of really ! useful things that are used by a lot of people (e.g., statistics :-), ! the Standards Committee couldn't include everything, and so a lot of those "obvious" classes didn't get included. ! Since libstdc++ is an implementation of the Standard Library, we have ! no plans at this time to include non-Standard utilities in the ! implementation, however handy they are. (The extensions provided in ! the SGI STL aren't maintained by us and don't get a lot of our ! attention, because they don't require a lot of our time.) It is ! entirely plausable that the "useful stuff" from libg++ might be ! extracted into an updated utilities library, but nobody has stated such a project yet. ! (The [54]Boost site houses free C++ libraries that do varying things, ! and happened to be started by members of the Standards Committee. Certain "useful stuff" classes will probably migrate there.) ! For the bold and/or desperate, the [55]GCC FAQ describes where to find the last libg++ source. _________________________________________________________________ *************** *** 170,234 **** If you have read the README and RELEASE-NOTES files, and your question remains unanswered, then just ask the mailing list. At present, you do ! not need to be subscribed to the list to send a message to it. More ! information is available on the homepage (including how to browse the ! list archives); to send to the list, use [52]libstdc++@gcc.gnu.org. ! If you have a question that you think should be included here, or if ! you have a question about a question/answer here, contact [53]Phil ! Edwards or [54]Gabriel Dos Reis. _________________________________________________________________ 1.9 What are the license terms for libstdc++-v3? ! See [55]our license description for these and related questions. _________________________________________________________________ 2.0 Installation 2.1 How do I install libstdc++-v3? ! Complete instructions are not given here (this is a FAQ, not an installation document), but the tools required are few: ! * A 3.x release of GCC. Note that building GCC is much easier and more automated than building the GCC 2.[78] series was. If you are ! using GCC 2.95, you can still build earlier snapshots of libstdc++. * GNU Make is recommended, but should not be required. * The GNU Autotools are needed if you are messing with the configury or makefiles. ! The file [56]documentation.html provides a good overview of the steps ! necessary to build, install, and use the library. Instructions for ! configuring the library with new flags such as --enable-threads are ! there also, as well as patches and instructions for working with GCC 2.95. ! The top-level install.html and [57]RELEASE-NOTES files contain the ! exact build and installation instructions. You may wish to browse ! those files over CVSweb ahead of time to get a feel for what's ! required. RELEASE-NOTES is located in the ".../docs/17_intro/" directory of the distribution. _________________________________________________________________ 2.2 [removed] ! This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks). _________________________________________________________________ 2.3 What is this CVS thing that you keep mentioning? ! The Concurrent Versions System is one of several revision control packages. It was selected for GNU projects because it's free (speech), ! free (beer), and very high quality. The [58]CVS entry in the GNU ! software catalogue has a better description as well as a [59]link to the makers of CVS. The "anonymous client checkout" feature of CVS is similar to anonymous FTP in that it allows anyone to retrieve the latest libstdc++ sources. ! After the first of April, American users will have a "/pharmacy" command-line option... _________________________________________________________________ --- 177,241 ---- If you have read the README and RELEASE-NOTES files, and your question remains unanswered, then just ask the mailing list. At present, you do ! not need to be subscribed to the list to send a message to it. More ! information is available on the homepage (including how to browse the ! list archives); to send to the list, use [56]libstdc++@gcc.gnu.org. ! If you have a question that you think should be included here, or if ! you have a question about a question/answer here, contact [57]Phil ! Edwards or [58]Gabriel Dos Reis. _________________________________________________________________ 1.9 What are the license terms for libstdc++-v3? ! See [59]our license description for these and related questions. _________________________________________________________________ 2.0 Installation 2.1 How do I install libstdc++-v3? ! Complete instructions are not given here (this is a FAQ, not an installation document), but the tools required are few: ! * A 3.x release of GCC. Note that building GCC is much easier and more automated than building the GCC 2.[78] series was. If you are ! using GCC 2.95, you can still build earlier snapshots of libstdc++. * GNU Make is recommended, but should not be required. * The GNU Autotools are needed if you are messing with the configury or makefiles. ! The file [60]documentation.html provides a good overview of the steps ! necessary to build, install, and use the library. Instructions for ! configuring the library with new flags such as --enable-threads are ! there also, as well as patches and instructions for working with GCC 2.95. ! The top-level install.html and [61]RELEASE-NOTES files contain the ! exact build and installation instructions. You may wish to browse ! those files over CVSweb ahead of time to get a feel for what's ! required. RELEASE-NOTES is located in the ".../docs/17_intro/" directory of the distribution. _________________________________________________________________ 2.2 [removed] ! This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks). _________________________________________________________________ 2.3 What is this CVS thing that you keep mentioning? ! The Concurrent Versions System is one of several revision control packages. It was selected for GNU projects because it's free (speech), ! free (beer), and very high quality. The [62]CVS entry in the GNU ! software catalogue has a better description as well as a [63]link to the makers of CVS. The "anonymous client checkout" feature of CVS is similar to anonymous FTP in that it allows anyone to retrieve the latest libstdc++ sources. ! After the first of April, American users will have a "/pharmacy" command-line option... _________________________________________________________________ *************** *** 237,312 **** libstdc++-v3 comes with its own testsuite. You do not need to actually install the library ("make install") to run the testsuite. ! To run the testsuite on the library after building it, use "make ! check" while in your build directory. To run the testsuite on the ! library after building and installing it, use "make check-install" instead. If you find bugs in the testsuite programs themselves, or if you think ! of a new test program that should be added to the suite, please write up your idea and send it to the list! _________________________________________________________________ 3.0 Platform-Specific Issues 3.1 Can libstdc++-v3 be used with ? Probably not. Yet. ! Because GCC advances so rapidly, development and testing of libstdc++ ! is being done almost entirely under that compiler. If you are curious ! about whether other, lesser compilers (*grin*) support libstdc++, you ! are more than welcome to try. Configuring and building the library ! (see above) will still require certain tools, however. Also keep in mind that building libstdc++ does not imply that your compiler will be able to use all of the features found in the C++ Standard Library. ! Since the goal of ISO Standardization is for all C++ implementations ! to be able to share code, the final libstdc++ should, in theory, be ! useable under any ISO-compliant compiler. It will still be targeted ! and optimized for GCC/g++, however. _________________________________________________________________ 3.2 [removed] ! This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks). _________________________________________________________________ 3.3 Building DEC OSF kills the assembler ! The atomicity.h header for the Alpha processor currently uses ! pseudo-operators which the DEC assembler doesn't understand (in ! particular, .subsection and .previous). The simple solution is to ! install GNU as and arrange for the GCC build to use it (or merge the sources and build it during the bootstrap). ! Anyone who [60]knows the DEC assembler well enough to provide the ! equivalent of these two pseudos would win praise and accolades from many. _________________________________________________________________ 4.0 Known Bugs and Non-Bugs ! Note that this section can get rapdily outdated -- such is the nature ! of an open-source project. For the latest information, join the ! mailing list or look through recent archives. The RELEASE- NOTES and BUGS files are generally kept up-to-date. ! 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 [61]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. Work ! has already gone into the source tree to make this less painful for ! the next release. ! Please do not report this as a bug. We know about it. Reporting this ! -- or any other problem that's already been fixed -- hinders the ! development of GCC, because we have to take time to respond to your report. Thank you. 4.1 What works already? --- 244,378 ---- libstdc++-v3 comes with its own testsuite. You do not need to actually install the library ("make install") to run the testsuite. ! To run the testsuite on the library after building it, use "make ! check" while in your build directory. To run the testsuite on the ! library after building and installing it, use "make check-install" instead. If you find bugs in the testsuite programs themselves, or if you think ! of a new test program that should be added to the suite, please write up your idea and send it to the list! _________________________________________________________________ + 2.4 This library is HUGE! And what's libsupc++? + + Usually the size of libraries on disk isn't noticeable. When a link + editor (or simply "linker") pulls things from a static archive + library, only the necessary object files are copied into your + executable, not the entire library. Unfortunately, even if you only + need a single function or variable from an object file, the entire + object file is extracted. (There's nothing unique to C++ or + libstdc++-v3 about this; it's just common behavior, given here for + background reasons.) + + Some of the object files which make up libstdc++.a are rather large. + If you create a statically-linked executable with -static, those large + object files are suddenly part of your executable. Historically the + best way around this was to only place a very few functions (often + only a single one) in each source/object file; then extracting a + single function is the same as extracting a single .o file. For + libstdc++-v3 this is only possible to a certain extent; the object + files in question contain template classes and template functions, + pre-instantiated, and splitting those up causes severe maintenance + headaches. + + It's not a bug, and it's not really a problem. Nevertheless, some + people don't like it, so here are two pseudo-solutions: + + If the only functions from libstdc++.a which you need are language + support functions (those listed in [64]clause 18 of the standard, + e.g., new and delete), then try linking against libsupc++.a (usually + specifying -lsupc++ when calling g++ for the final link step will do + it). This library contains only those support routines, one per object + file. But if you are using anything from the rest of the library, such + as IOStreams or vectors, then you'll still need pieces from + libstdc++.a. + + The second method is one we hope to incorporate into the library build + process. Some platforms can place each function and variable into its + own section in a .o file. The GNU linker can then perform garbage + collection on unused sections; this reduces the situation to only + copying needed functions into the executable, as before, but all + happens automatically. + + Unfortunately the garbage collection in GNU ld is buggy; sections + (corresponding to functions and variables) which are used are + mistakenly removed, leading to horrible crashes when your executable + starts up. For the time being, this feature is not used when building + the library. + _________________________________________________________________ + 3.0 Platform-Specific Issues 3.1 Can libstdc++-v3 be used with ? Probably not. Yet. ! Because GCC advances so rapidly, development and testing of libstdc++ ! is being done almost entirely under that compiler. If you are curious ! about whether other, lesser compilers (*grin*) support libstdc++, you ! are more than welcome to try. Configuring and building the library ! (see above) will still require certain tools, however. Also keep in mind that building libstdc++ does not imply that your compiler will be able to use all of the features found in the C++ Standard Library. ! Since the goal of ISO Standardization is for all C++ implementations ! to be able to share code, the final libstdc++ should, in theory, be ! usable under any ISO-compliant compiler. It will still be targeted and ! optimized for GCC/g++, however. _________________________________________________________________ 3.2 [removed] ! This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks). _________________________________________________________________ 3.3 Building DEC OSF kills the assembler ! The atomicity.h header for the Alpha processor currently uses ! pseudo-operators which the DEC assembler doesn't understand (in ! particular, .subsection and .previous). The simple solution is to ! install GNU as and arrange for the GCC build to use it (or merge the sources and build it during the bootstrap). ! Anyone who [65]knows the DEC assembler well enough to provide the ! equivalent of these two pseudos would win praise and accolades from many. _________________________________________________________________ + 3.4 I can't use 'long long' on Solaris + + By default we try to support the C99 long long type. This requires + that certain functions from your C library be present. + + Up through release 3.0.2 the tests performed were too general, and + this feature was disabled when it did not need to be. The most + commonly reported platform affected was Solaris. + + This has been fixed for 3.0.3 and onwards. + _________________________________________________________________ + 4.0 Known Bugs and Non-Bugs ! Note that this section can get rapdily outdated -- such is the nature ! of an open-source project. For the latest information, join the ! mailing list or look through recent archives. The RELEASE- NOTES and BUGS files are generally kept up-to-date. ! 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 [66]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 ! development of GCC, because we have to take time to respond to your report. Thank you. 4.1 What works already? *************** New: *** 340,347 **** 4.2 Bugs in gcc/g++ (not libstdc++-v3) ! This is by no means meant to be complete nor exhaustive, but mentions ! some problems that users may encounter when building or using libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. * As of 2.91, these bugs have all been fixed. We look forward to new --- 406,413 ---- 4.2 Bugs in gcc/g++ (not libstdc++-v3) ! This is by no means meant to be complete nor exhaustive, but mentions ! some problems that users may encounter when building or using libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. * As of 2.91, these bugs have all been fixed. We look forward to new *************** New: *** 350,383 **** 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [62]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 [63]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 [64]here. ! Some of these have resulted in [65]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that look like bugs ! There are things which are not bugs in the compiler (4.2) nor the ! language specification (4.3), but aren't really bugs in libstdc++, either. Really! Please do not report these as bugs. ! -Weffc++ The biggest of these is the quadzillions of warnings about ! the library headers emitted when -Weffc++ is used. Making libstdc++ ! "-Weffc++-clean" is not a goal of the project, for a few reasons. ! Mainly, that option tries to enforce object-oriented programming, ! while the Standard Library isn't necessarily trying to be OO. There are multiple solutions under discussion. ! reopening a stream fails Did I just say that -Weffc++ was our biggest ! false-bug report? I lied. (It used to be.) Today it seems to be reports that after executing a sequence like #include ... --- 416,449 ---- 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [67]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 [68]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 [69]here. ! Some of these have resulted in [70]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that look like bugs ! There are things which are not bugs in the compiler (4.2) nor the ! language specification (4.3), but aren't really bugs in libstdc++, either. Really! Please do not report these as bugs. ! -Weffc++ The biggest of these is the quadzillions of warnings about ! the library headers emitted when -Weffc++ is used. Making libstdc++ ! "-Weffc++-clean" is not a goal of the project, for a few reasons. ! Mainly, that option tries to enforce object-oriented programming, ! while the Standard Library isn't necessarily trying to be OO. There are multiple solutions under discussion. ! reopening a stream fails Did I just say that -Weffc++ was our biggest ! false-bug report? I lied. (It used to be.) Today it seems to be reports that after executing a sequence like #include ... *************** New: *** 388,427 **** fs.close(); fs.open("a_new_file"); ! all operations on the re-opened fs will fail, or at least act very ! strangely. Yes, they often will, especially if fs reached the EOF 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 [66]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. ! rel_ops Another is the rel_ops namespace and the template comparison ! operator functions contained therein. If they become visible in the ! 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 [67]sums things up here. The g++-3 headers are not ours ! 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 [68]the GCC bug database). ! If the headers are in ${prefix}/include/g++-3, then you are using the ! old libstdc++-v2 library, which is nonstandard and unmaintained. Do ! not report problems with -v2 to the -v3 mailing list. ! 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 [69]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 glibc FAQ, specifically 2.34: 2.34. When compiling C++ programs, I get a compilation error in streambuf.h. --- 454,495 ---- fs.close(); fs.open("a_new_file"); ! all operations on the re-opened fs will fail, or at least act very ! strangely. Yes, they often will, especially if fs reached the EOF 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 [71]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. ! rel_ops Another is the rel_ops namespace and the template comparison ! operator functions contained therein. If they become visible in the ! 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 [72]sums things up here. The g++-3 headers are not ours ! 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 [73]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, ! then you are using the old libstdc++-v2 library, which is nonstandard ! and unmaintained. Do not report problems with -v2 to the -v3 mailing ! list. ! 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 [74]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 glibc FAQ, specifically 2.34: 2.34. When compiling C++ programs, I get a compilation error in streambuf.h. *************** type has changed in glibc 2.2. The patc *** 431,466 **** http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [70]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. concept checks If you see compilation errors containing messages about ! fooConcept and a constraints member function, then most likely you ! have violated one of the requirements for types used during ! instantiation of template containers and functions. For example, ! EqualityComparableConcept appears if your types must be comparable ! with == and you have not provided this capability (a typo, or wrong visibility, or you just plain forgot, etc). ! More information, including how to optionally enable/disable the ! checks, is available [71]here. _________________________________________________________________ 4.5 Aw, that's easy to fix! ! 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 ! [72]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++ [73]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 [74]testsuite -- but only if such a test exists. _________________________________________________________________ --- 499,534 ---- http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [75]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. concept checks If you see compilation errors containing messages about ! fooConcept and a constraints member function, then most likely you ! have violated one of the requirements for types used during ! instantiation of template containers and functions. For example, ! EqualityComparableConcept appears if your types must be comparable ! with == and you have not provided this capability (a typo, or wrong visibility, or you just plain forgot, etc). ! More information, including how to optionally enable/disable the ! checks, is available [76]here. _________________________________________________________________ 4.5 Aw, that's easy to fix! ! 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 ! [77]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++ [78]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 [79]testsuite -- but only if such a test exists. _________________________________________________________________ *************** http://clisp.cons.org/~haible/gccinclude *** 468,528 **** 5.1 string::iterator is not char*; vector::iterator is not T* ! If you have code that depends on container iterators being implemented as pointer-to-T, your code is broken. ! While there are arguments for iterators to be implemented in that ! manner, A) they aren't very good ones in the long term, and B) they were never guaranteed by the Standard anyway. The type-safety achieved ! by making iterators a real class rather than a typedef for T* outweighs nearly all opposing arguments. Code which does assume that a vector iterator i is a pointer can often ! be fixed by changing i in certain expressions to &*i . Future ! revisions of the Standard are expected to bless this usage for vector<> (but not for basic_string<>). _________________________________________________________________ 5.2 What's next after libstdc++-v3? ! Hopefully, not much. The goal of libstdc++-v3 is to produce a ! fully-compliant, fully-portable Standard Library. After that, we're mostly done: there won't be any more compliance work to do. However: ! 1. The ISO Committee will meet periodically to review Defect Reports ! in the C++ Standard. Undoubtedly some of these will result in ! changes to the Standard, which will be reflected in patches to ! 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 [75]the extensions page. ! 2. Performance tuning. Lots of performance tuning. This too is ! already underway for post-3.0 releases, starting with memory ! expansion in container classes and buffer usage in synchronized stream objects. ! 3. An ABI for libstdc++ will eventually be developed, so that multiple binary-incompatible copies of the library can be replaced with a single backwards-compatible library, like libgcc_s.so is. ! 4. The current libstdc++ contains extensions to the Library which must be explicitly requested by client code (for example, the hash tables from SGI). Other extensions may be added to libstdc++-v3 if ! they seem to be "standard" enough. (For example, the "long long" ! type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [76]This question about the next libstdc++ prompted some brief but ! interesting [77]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [78]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. In particular, string is not from SGI and makes no use of their "rope" ! class (which is included as an optional extension), nor is valarray and some others. Classes like vector<> are, however. The FAQ for SGI's STL (one jump off of their main page) is recommended --- 536,596 ---- 5.1 string::iterator is not char*; vector::iterator is not T* ! If you have code that depends on container iterators being implemented as pointer-to-T, your code is broken. ! While there are arguments for iterators to be implemented in that ! manner, A) they aren't very good ones in the long term, and B) they were never guaranteed by the Standard anyway. The type-safety achieved ! by making iterators a real class rather than a typedef for T* outweighs nearly all opposing arguments. Code which does assume that a vector iterator i is a pointer can often ! be fixed by changing i in certain expressions to &*i . Future ! revisions of the Standard are expected to bless this usage for vector<> (but not for basic_string<>). _________________________________________________________________ 5.2 What's next after libstdc++-v3? ! Hopefully, not much. The goal of libstdc++-v3 is to produce a ! fully-compliant, fully-portable Standard Library. After that, we're mostly done: there won't be any more compliance work to do. However: ! 1. The ISO Committee will meet periodically to review Defect Reports ! in the C++ Standard. Undoubtedly some of these will result in ! changes to the Standard, which will be reflected in patches to ! 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 [80]the extensions page. ! 2. Performance tuning. Lots of performance tuning. This too is ! already underway for post-3.0 releases, starting with memory ! expansion in container classes and buffer usage in synchronized stream objects. ! 3. An ABI for libstdc++ will eventually be developed, so that multiple binary-incompatible copies of the library can be replaced with a single backwards-compatible library, like libgcc_s.so is. ! 4. The current libstdc++ contains extensions to the Library which must be explicitly requested by client code (for example, the hash tables from SGI). Other extensions may be added to libstdc++-v3 if ! they seem to be "standard" enough. (For example, the "long long" ! type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [81]This question about the next libstdc++ prompted some brief but ! interesting [82]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [83]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. In particular, string is not from SGI and makes no use of their "rope" ! class (which is included as an optional extension), nor is valarray and some others. Classes like vector<> are, however. The FAQ for SGI's STL (one jump off of their main page) is recommended *************** http://clisp.cons.org/~haible/gccinclude *** 531,561 **** 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 [79]their own page. _________________________________________________________________ 5.5 [removed] ! This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks). _________________________________________________________________ 5.6 Is libstdc++-v3 thread-safe? ! When the system's libc is itself thread-safe, a non-generic ! implementation of atomicity.h exists for the architecture, and gcc ! itself reports a thread model other than single; libstdc++-v3 strives ! to be thread-safe. The user-code must guard against concurrent method ! calls which may access any particular library object's state. Typically, the application programmer may infer what object locks must ! be held based on the objects referenced in a method call. Without ! getting into great detail, here is an example which requires user-level locks: library_class_a shared_object_a; --- 599,629 ---- 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 [84]their own page. _________________________________________________________________ 5.5 [removed] ! This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks). _________________________________________________________________ 5.6 Is libstdc++-v3 thread-safe? ! When the system's libc is itself thread-safe, a non-generic ! implementation of atomicity.h exists for the architecture, and gcc ! itself reports a thread model other than single; libstdc++-v3 strives ! to be thread-safe. The user-code must guard against concurrent method ! calls which may access any particular library object's state. Typically, the application programmer may infer what object locks must ! be held based on the objects referenced in a method call. Without ! getting into great detail, here is an example which requires user-level locks: library_class_a shared_object_a; *************** a *** 569,576 **** // Multiple copies of thread_main() are started in independent threads. ! Under the assumption that object_a and object_b are never exposed to ! another thread, here is an example that should not require any user-level locks: thread_main () { library_class_a object_a; --- 637,644 ---- // Multiple copies of thread_main() are started in independent threads. ! Under the assumption that object_a and object_b are never exposed to ! another thread, here is an example that should not require any user-level locks: thread_main () { library_class_a object_a; *************** a *** 581,612 **** All library objects are safe to use in a multithreaded program as long as each thread carefully locks out access by any other thread while it ! uses any object visible to another thread. This requirement includes ! both read and write access to objects; do not assume that two threads ! may read a shared standard container at the same time. ! See chapters [80]17 (library introduction), [81]23 (containers), and ! [82]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? ! Copies of the full ISO 14882 standard are available on line via the ! ISO mirror site for committee members. Non-members, or those who have ! not paid for the privilege of sitting on the committee and sustained ! 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 [83]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [84]buy the standard on-line. ! Who is your country's member body? Visit the [85]ISO homepage and find out! _________________________________________________________________ ! See [86]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [87]the libstdc++ mailing list. References --- 649,728 ---- All library objects are safe to use in a multithreaded program as long as each thread carefully locks out access by any other thread while it ! uses any object visible to another thread. In general, this ! requirement includes both read and write access to objects; unless ! otherwise documented as safe, do not assume that two threads may ! access a shared standard library object at the same time. ! See chapters [85]17 (library introduction), [86]23 (containers), and ! [87]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? ! Copies of the full ISO 14882 standard are available on line via the ! ISO mirror site for committee members. Non-members, or those who have ! not paid for the privilege of sitting on the committee and sustained ! 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 [88]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [89]buy the standard on-line. ! Who is your country's member body? Visit the [90]ISO homepage and find out! _________________________________________________________________ ! 5.8 What's an ABI and why is it so messy? ! ! "ABI" stands for "Application Binary Interface." Conventionally, it ! refers to a great mass of details about how arguments are arranged on ! the call stack and/or in registers, and how various types are arranged ! and padded in structs. A single CPU design may suffer multiple ABIs ! designed by different development tool vendors who made different ! choices, or even by the same vendor for different target applications ! or compiler versions. In ideal circumstances the CPU designer presents ! one ABI and all the OSes and compilers use it. In practice every ABI ! omits details that compiler implementers (consciously or accidentally) ! must choose for themselves. ! ! That ABI definition suffices for compilers to generate code so a ! program can interact safely with an OS and its lowest-level libraries. ! Users usually want an ABI to encompass more detail, allowing libraries ! built with different compilers (or different releases of the same ! compiler!) to be linked together. For C++, this includes many more ! details than for C, and CPU designers (for good reasons elaborated ! below) have not stepped up to publish C++ ABIs. The details include ! virtual function implementation, struct inheritance layout, name ! mangling, and exception handling. Such an ABI has been defined for GNU ! C++, and is immediately useful for embedded work relying only on a ! "free-standing implementation" that doesn't include (much of) the ! standard library. It is a good basis for the work to come. ! ! A useful C++ ABI must also incorporate many details of the standard ! library implementation. For a C ABI, the layouts of a few structs ! (such as FILE, stat, jmpbuf, and the like) and a few macros suffice. ! For C++, the details include the complete set of names of functions ! and types used, the offsets of class members and virtual functions, ! and the actual definitions of all inlines. C++ exposes many more ! library details to the caller than C does. It makes defining a ! complete ABI a much bigger undertaking, and requires not just ! documenting library implementation details, but carefully designing ! those details so that future bug fixes and optimizations don't force ! breaking the ABI. ! ! There are ways to help isolate library implementation details from the ! ABI, but they trade off against speed. Library details used in inner ! loops (e.g., getchar) must be exposed and frozen for all time, but ! many others may reasonably be kept hidden from user code, so they may ! later be changed. Deciding which, and implementing the decisions, must ! happen before you can reasonably document a candidate C++ ABI that ! encompasses the standard library. ! _________________________________________________________________ ! ! See [91]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [92]the libstdc++ mailing list. References *************** References *** 627,699 **** 15. ../faq/index.html#2_2 16. ../faq/index.html#2_3 17. ../faq/index.html#2_4 ! 18. ../faq/index.html#3_0 ! 19. ../faq/index.html#3_1 ! 20. ../faq/index.html#3_2 ! 21. ../faq/index.html#3_3 ! 22. ../faq/index.html#4_0 ! 23. ../faq/index.html#4_1 ! 24. ../faq/index.html#4_2 ! 25. ../faq/index.html#4_3 ! 26. ../faq/index.html#4_4 ! 27. ../faq/index.html#4_4_iostreamclear ! 28. ../faq/index.html#4_4_Weff ! 29. ../faq/index.html#4_4_rel_ops ! 30. ../faq/index.html#4_4_interface ! 31. ../faq/index.html#4_4_glibc ! 32. ../faq/index.html#4_4_checks ! 33. ../faq/index.html#4_5 ! 34. ../faq/index.html#5_0 ! 35. ../faq/index.html#5_1 ! 36. ../faq/index.html#5_2 ! 37. ../faq/index.html#5_3 ! 38. ../faq/index.html#5_4 ! 39. ../faq/index.html#5_5 ! 40. ../faq/index.html#5_6 ! 41. ../faq/index.html#5_7 ! 42. http://gcc.gnu.org/libstdc++/download.html ! 43. ../17_intro/DESIGN ! 44. http://gcc.gnu.org/ ! 45. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 46. http://gcc.gnu.org/libstdc++/ ! 47. http://gcc.gnu.org/libstdc++/download.html ! 48. http://gcc.gnu.org/libstdc++/ ! 49. ../17_intro/contribute.html ! 50. http://www.boost.org/ ! 51. http://gcc.gnu.org/fom_serv/cache/33.html ! 52. mailto:libstdc++@gcc.gnu.org ! 53. mailto:pme@gcc.gnu.org ! 54. mailto:gdr@gcc.gnu.org ! 55. ../17_intro/license.html ! 56. ../documentation.html ! 57. ../17_intro/RELEASE-NOTES ! 58. http://www.gnu.org/software/cvs/cvs.html ! 59. http://www.cvshome.org/ ! 60. http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html ! 61. http://gcc.gnu.org/install/configure.html ! 62. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 63. http://www.cantrip.org/draft-bugs.txt ! 64. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 65. ../faq/index.html#5_2 ! 66. ../ext/howto.html#5 ! 67. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 68. http://gcc.gnu.org/gnatswrite.html ! 69. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 70. ../faq/index.html#4_4_interface ! 71. ../19_diagnostics/howto.html#3 ! 72. http://gcc.gnu.org/contribute.html ! 73. ../17_intro/contribute.html ! 74. ../faq/index.html#2_4 ! 75. ../ext/howto.html#5 ! 76. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 77. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 78. http://www.sgi.com/Technology/STL/ ! 79. ../ext/howto.html ! 80. ../17_intro/howto.html#3 ! 81. ../23_containers/howto.html#3 ! 82. ../27_io/howto.html#9 ! 83. http://www.ansi.org/ ! 84. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 85. http://www.iso.ch/ ! 86. ../17_intro/license.html ! 87. mailto:libstdc++@gcc.gnu.org --- 743,820 ---- 15. ../faq/index.html#2_2 16. ../faq/index.html#2_3 17. ../faq/index.html#2_4 ! 18. ../faq/index.html#2_5 ! 19. ../faq/index.html#3_0 ! 20. ../faq/index.html#3_1 ! 21. ../faq/index.html#3_2 ! 22. ../faq/index.html#3_3 ! 23. ../faq/index.html#3_4 ! 24. ../faq/index.html#4_0 ! 25. ../faq/index.html#4_1 ! 26. ../faq/index.html#4_2 ! 27. ../faq/index.html#4_3 ! 28. ../faq/index.html#4_4 ! 29. ../faq/index.html#4_4_iostreamclear ! 30. ../faq/index.html#4_4_Weff ! 31. ../faq/index.html#4_4_rel_ops ! 32. ../faq/index.html#4_4_interface ! 33. ../faq/index.html#4_4_glibc ! 34. ../faq/index.html#4_4_checks ! 35. ../faq/index.html#4_5 ! 36. ../faq/index.html#5_0 ! 37. ../faq/index.html#5_1 ! 38. ../faq/index.html#5_2 ! 39. ../faq/index.html#5_3 ! 40. ../faq/index.html#5_4 ! 41. ../faq/index.html#5_5 ! 42. ../faq/index.html#5_6 ! 43. ../faq/index.html#5_7 ! 44. ../faq/index.html#5_8 ! 45. http://gcc.gnu.org/libstdc++/download.html ! 46. ../faq/index.html#4_4_interface ! 47. ../17_intro/DESIGN ! 48. http://gcc.gnu.org/ ! 49. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 50. http://gcc.gnu.org/libstdc++/ ! 51. http://gcc.gnu.org/libstdc++/download.html ! 52. http://gcc.gnu.org/libstdc++/ ! 53. ../17_intro/contribute.html ! 54. http://www.boost.org/ ! 55. http://gcc.gnu.org/fom_serv/cache/33.html ! 56. mailto:libstdc++@gcc.gnu.org ! 57. mailto:pme@gcc.gnu.org ! 58. mailto:gdr@gcc.gnu.org ! 59. ../17_intro/license.html ! 60. ../documentation.html ! 61. ../17_intro/RELEASE-NOTES ! 62. http://www.gnu.org/software/cvs/cvs.html ! 63. http://www.cvshome.org/ ! 64. ../18_support/howto.html ! 65. http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html ! 66. http://gcc.gnu.org/install/configure.html ! 67. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 68. http://www.cantrip.org/draft-bugs.txt ! 69. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 70. ../faq/index.html#5_2 ! 71. ../ext/howto.html#5 ! 72. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 73. http://gcc.gnu.org/gnatswrite.html ! 74. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 75. ../faq/index.html#4_4_interface ! 76. ../19_diagnostics/howto.html#3 ! 77. http://gcc.gnu.org/contribute.html ! 78. ../17_intro/contribute.html ! 79. ../faq/index.html#2_4 ! 80. ../ext/howto.html#5 ! 81. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 82. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 83. http://www.sgi.com/Technology/STL/ ! 84. ../ext/howto.html ! 85. ../17_intro/howto.html#3 ! 86. ../23_containers/howto.html#3 ! 87. ../27_io/howto.html#9 ! 88. http://www.ansi.org/ ! 89. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 90. http://www.iso.ch/ ! 91. ../17_intro/license.html ! 92. mailto:libstdc++@gcc.gnu.org diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/basic_string.tcc gcc-3.0.3/libstdc++-v3/include/bits/basic_string.tcc *** gcc-3.0.2/libstdc++-v3/include/bits/basic_string.tcc Thu Jul 19 17:14:09 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/basic_string.tcc Wed Nov 21 14:05:28 2001 *************** namespace std *** 315,320 **** --- 315,323 ---- { if (__res > this->max_size()) __throw_length_error("basic_string::reserve"); + // Make sure we don't shrink below the current size + if (__res < this->size()) + __res = this->size(); allocator_type __a = get_allocator(); _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); _M_rep()->_M_dispose(__a); diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/boost_concept_check.h gcc-3.0.3/libstdc++-v3/include/bits/boost_concept_check.h *** gcc-3.0.2/libstdc++-v3/include/bits/boost_concept_check.h Mon May 14 12:49:03 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/boost_concept_check.h Fri Nov 2 14:40:24 2001 *************** struct _Aux_require_same<_Tp,_Tp> { type *** 87,97 **** template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; - #ifdef _GLIBCPP_USE_LONG_LONG template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; - #endif template struct _SignedIntegerConcept { --- 87,95 ---- *************** struct _Aux_require_same<_Tp,_Tp> { type *** 102,110 **** template <> struct _SignedIntegerConcept { void __constraints() {} }; template <> struct _SignedIntegerConcept { void __constraints() {} }; template <> struct _SignedIntegerConcept { void __constraints() {} }; - #ifdef _GLIBCPP_USE_LONG_LONG template <> struct _SignedIntegerConcept { void __constraints(){}}; - #endif template struct _UnsignedIntegerConcept { --- 100,106 ---- *************** struct _Aux_require_same<_Tp,_Tp> { type *** 118,127 **** { void __constraints() {} }; template <> struct _UnsignedIntegerConcept { void __constraints() {} }; - #ifdef _GLIBCPP_USE_LONG_LONG template <> struct _UnsignedIntegerConcept { void __constraints() {} }; - #endif //=========================================================================== // Basic Concepts --- 114,121 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/c++config gcc-3.0.3/libstdc++-v3/include/bits/c++config *** gcc-3.0.2/libstdc++-v3/include/bits/c++config Tue Oct 23 00:17:00 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/c++config Thu Dec 20 00:16:43 2001 *************** *** 36,42 **** #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20011023 // This is necessary until GCC supports separate template // compilation. --- 36,42 ---- #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20011220 // This is necessary until GCC supports separate template // compilation. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/cpp_type_traits.h gcc-3.0.3/libstdc++-v3/include/bits/cpp_type_traits.h *** gcc-3.0.2/libstdc++-v3/include/bits/cpp_type_traits.h Mon Feb 19 10:57:40 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/cpp_type_traits.h Fri Nov 2 14:40:24 2001 *************** namespace std *** 195,201 **** }; }; - # ifdef _GLIBCPP_USE_LONG_LONG template<> struct __is_integer { --- 195,200 ---- *************** namespace std *** 213,219 **** _M_type = 1 }; }; - # endif // // Floating point types --- 212,217 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/locale_facets.h gcc-3.0.3/libstdc++-v3/include/bits/locale_facets.h *** gcc-3.0.2/libstdc++-v3/include/bits/locale_facets.h Mon Jun 4 12:30:55 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/locale_facets.h Tue Dec 11 00:01:22 2001 *************** namespace std *** 561,566 **** --- 561,569 ---- _M_get_digits(iter_type __in, iter_type __end) const; }; + // This is the size of the buffer passed to _M_extract + const int _M_extract_buffer_length = 32; + template class num_get : public locale::facet { diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/locale_facets.tcc gcc-3.0.3/libstdc++-v3/include/bits/locale_facets.tcc *** gcc-3.0.2/libstdc++-v3/include/bits/locale_facets.tcc Sun Jun 10 16:41:55 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/locale_facets.tcc Tue Dec 11 00:01:23 2001 *************** namespace std *** 282,288 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32] = {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 282,288 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length] = {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 347,353 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 347,353 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 374,380 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32] = {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 374,380 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length] = {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 402,408 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 402,408 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 429,435 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 429,435 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 456,462 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 456,462 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 483,489 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 483,489 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 510,516 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32] = {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 510,516 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length] = {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 537,543 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 537,543 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); *************** namespace std *** 564,570 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 256 for // floating-point types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); --- 564,570 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 256 for // floating-point types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); *************** namespace std *** 594,600 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 256 for // floating-point types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); --- 594,600 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 256 for // floating-point types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); *************** namespace std *** 621,627 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 256 for // floating-point types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); --- 621,627 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 256 for // floating-point types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); *************** namespace std *** 645,651 **** ios_base::iostate& __err, long double& __v) const { // Stage 1: extract ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); --- 645,651 ---- ios_base::iostate& __err, long double& __v) const { // Stage 1: extract ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, true); *************** namespace std *** 691,697 **** // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[32]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); --- 691,697 ---- // Stage 1: extract and determine the conversion specifier. // Assuming leading zeros eliminated, thus the size of 32 for // integral types. ! char __xtrc[_M_extract_buffer_length]= {'\0'}; int __base; _M_extract(__beg, __end, __io, __err, __xtrc, __base, false); diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/std_complex.h gcc-3.0.3/libstdc++-v3/include/bits/std_complex.h *** gcc-3.0.2/libstdc++-v3/include/bits/std_complex.h Fri Aug 10 08:32:43 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/std_complex.h Sun Dec 9 18:54:54 2001 *************** *** 40,45 **** --- 40,46 ---- #pragma GCC system_header #include + #include #include #include *************** namespace std *** 237,243 **** { const _Tp __r = _M_real * __z.real() + _M_imag * __z.imag(); const _Tp __n = norm(__z); ! _M_imag = (_M_real * __z.imag() - _M_imag * __z.real()) / __n; _M_real = __r / __n; return *this; } --- 238,244 ---- { const _Tp __r = _M_real * __z.real() + _M_imag * __z.imag(); const _Tp __n = norm(__z); ! _M_imag = (_M_imag * __z.real() - _M_real * __z.imag()) / __n; _M_real = __r / __n; return *this; } *************** namespace std *** 404,410 **** { _Tp __x = __z.real(); _Tp __y = __z.imag(); ! const _Tp __s = abs(__x) + abs(__y); if (__s == _Tp()) // well ... return __s; __x /= __s; --- 405,411 ---- { _Tp __x = __z.real(); _Tp __y = __z.imag(); ! const _Tp __s = max(abs(__x), abs(__y)); if (__s == _Tp()) // well ... return __s; __x /= __s; *************** namespace std *** 417,428 **** arg(const complex<_Tp>& __z) { return atan2(__z.imag(), __z.real()); } template inline _Tp norm(const complex<_Tp>& __z) { ! _Tp __res = abs(__z); ! return __res * __res; } template --- 418,456 ---- arg(const complex<_Tp>& __z) { return atan2(__z.imag(), __z.real()); } + // 26.2.7/5: norm(__z) returns the squared magintude of __z. + // As defined, norm() is -not- a norm is the common mathematical + // sens used in numerics. The helper class _Norm_helper<> tries to + // distinguish between builtin floating point and the rest, so as + // to deliver an answer as close as possible to the real value. + template + struct _Norm_helper + { + template + static inline _Tp _S_do_it(const complex<_Tp>& __z) + { + const _Tp __x = __z.real(); + const _Tp __y = __z.imag(); + return __x * __x + __y * __y; + } + }; + + template<> + struct _Norm_helper + { + template + static inline _Tp _S_do_it(const complex<_Tp>& __z) + { + _Tp __res = abs(__z); + return __res * __res; + } + }; + template inline _Tp norm(const complex<_Tp>& __z) { ! return _Norm_helper<__is_floating<_Tp>::_M_type>::_S_do_it(__z); } template diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/std_limits.h gcc-3.0.3/libstdc++-v3/include/bits/std_limits.h *** gcc-3.0.2/libstdc++-v3/include/bits/std_limits.h Wed Sep 12 00:48:02 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/std_limits.h Fri Nov 2 14:40:24 2001 *************** *** 97,107 **** #ifndef __glibcpp_wchar_t_is_signed #define __glibcpp_wchar_t_is_signed __glibcpp_plain_char_is_signed #endif - #ifdef _GLIBCPP_USE_LONG_LONG #ifndef __glibcpp_long_long_bits #define __glibcpp_long_long_bits 64 #endif - #endif #ifndef __glibcpp_float_bits #define __glibcpp_float_bits 32 #endif --- 97,105 ---- *************** *** 127,137 **** #ifndef __glibcpp_wchar_t_traps #define __glibcpp_wchar_t_traps true #endif - #ifdef _GLIBCPP_USE_LONG_LONG #ifndef __glibcpp_long_long_traps #define __glibcpp_long_long_traps true #endif - #endif // You should not need to define any macros below this point, unless // you have a machine with non-standard bit-widths. --- 125,133 ---- *************** *** 427,434 **** // You must define these macros in the configuration file. #endif - #ifdef _GLIBCPP_USE_LONG_LONG - // long long #define __glibcpp_signed_long_long_traps true --- 423,428 ---- *************** *** 475,482 **** // You must define these macros in the configuration file. #endif - #endif - // wchar_t #define __glibcpp_wchar_t_traps true --- 469,474 ---- *************** namespace std *** 1639,1646 **** #undef __glibcpp_unsigned_long_digits10 #undef __glibcpp_unsigned_long_traps - #ifdef _GLIBCPP_USE_LONG_LONG - template<> struct numeric_limits { --- 1631,1636 ---- *************** namespace std *** 1751,1759 **** #undef __glibcpp_unsigned_long_long_digits #undef __glibcpp_unsigned_long_long_digits10 #undef __glibcpp_unsigned_long_long_traps - - #endif // _GLIBCPP_USE_LONG_LONG - template<> struct numeric_limits --- 1741,1746 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/stl_deque.h gcc-3.0.3/libstdc++-v3/include/bits/stl_deque.h *** gcc-3.0.2/libstdc++-v3/include/bits/stl_deque.h Wed Jun 27 10:12:28 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/stl_deque.h Fri Nov 16 13:01:23 2001 *************** deque<_Tp,_Alloc>::erase(iterator __firs *** 848,854 **** copy_backward(_M_start, __first, __last); iterator __new_start = _M_start + __n; destroy(_M_start, __new_start); ! _M_destroy_nodes(__new_start._M_node, _M_start._M_node); _M_start = __new_start; } else { --- 848,854 ---- copy_backward(_M_start, __first, __last); iterator __new_start = _M_start + __n; destroy(_M_start, __new_start); ! _M_destroy_nodes(_M_start._M_node, __new_start._M_node); _M_start = __new_start; } else { diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/bits/type_traits.h gcc-3.0.3/libstdc++-v3/include/bits/type_traits.h *** gcc-3.0.2/libstdc++-v3/include/bits/type_traits.h Wed Jun 27 10:12:28 2001 --- gcc-3.0.3/libstdc++-v3/include/bits/type_traits.h Fri Nov 2 14:40:24 2001 *************** template<> struct __type_traits struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; --- 205,210 ---- *************** template<> struct __type_traits struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; --- 221,226 ---- *************** template<> struct _Is_integer struct _Is_integer { typedef __true_type _Integral; }; --- 306,311 ---- *************** template<> struct _Is_integer *** 319,326 **** template<> struct _Is_integer { typedef __true_type _Integral; }; - - #endif /* _GLIBCPP_USE_LONG_LONG */ template struct _Is_normal_iterator { typedef __false_type _Normal; --- 313,318 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/c_shadow/bits/std_cstdlib.h gcc-3.0.3/libstdc++-v3/include/c_shadow/bits/std_cstdlib.h *** gcc-3.0.2/libstdc++-v3/include/c_shadow/bits/std_cstdlib.h Fri Feb 9 06:12:51 2001 --- gcc-3.0.3/libstdc++-v3/include/c_shadow/bits/std_cstdlib.h Fri Nov 2 14:40:27 2001 *************** namespace _C_legacy { *** 87,93 **** # undef div # undef labs # undef ldiv ! #ifdef _GLIBCPP_USE_LONG_LONG # undef llabs # undef lldiv #endif --- 87,93 ---- # undef div # undef labs # undef ldiv ! #ifdef _GLIBCPP_USE_C99 # undef llabs # undef lldiv #endif *************** namespace std { *** 101,107 **** struct div_t : _C_legacy::_CPP_div_t_capture { }; struct ldiv_t : _C_legacy::_CPP_ldiv_t_capture { }; ! #ifdef _GLIBCPP_USE_LONG_LONG # ifdef _GLIBCPP_HAVE_LLDIV_T struct lldiv_t : _C_legacy::_CPP_lldiv_t_capture { }; # else --- 101,107 ---- struct div_t : _C_legacy::_CPP_div_t_capture { }; struct ldiv_t : _C_legacy::_CPP_ldiv_t_capture { }; ! #ifdef _GLIBCPP_USE_C99 # ifdef _GLIBCPP_HAVE_LLDIV_T struct lldiv_t : _C_legacy::_CPP_lldiv_t_capture { }; # else *************** namespace std { *** 173,179 **** div(long __n, long __d) { ldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } ! #ifdef _GLIBCPP_USE_LONG_LONG inline long long llabs(long long __x) { return __x >= 0 ? __x : -__x; } --- 173,179 ---- div(long __n, long __d) { ldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } ! #ifdef _GLIBCPP_USE_C99 inline long long llabs(long long __x) { return __x >= 0 ? __x : -__x; } diff -Nrc3pad gcc-3.0.2/libstdc++-v3/include/c_shadow/stdlib.h gcc-3.0.3/libstdc++-v3/include/c_shadow/stdlib.h *** gcc-3.0.2/libstdc++-v3/include/c_shadow/stdlib.h Thu Dec 21 14:46:25 2000 --- gcc-3.0.3/libstdc++-v3/include/c_shadow/stdlib.h Fri Nov 2 14:40:26 2001 *************** *** 47,53 **** // some names and types with the std:: C++ version. using std::div_t; using std::ldiv_t; ! #ifdef _GLIBCPP_USE_LONG_LONG using std::lldiv_t; #endif --- 47,53 ---- // some names and types with the std:: C++ version. using std::div_t; using std::ldiv_t; ! #ifdef _GLIBCPP_USE_C99 using std::lldiv_t; #endif diff -Nrc3pad gcc-3.0.2/libstdc++-v3/libio/ChangeLog gcc-3.0.3/libstdc++-v3/libio/ChangeLog *** gcc-3.0.2/libstdc++-v3/libio/ChangeLog Tue Oct 23 10:21:13 2001 --- gcc-3.0.3/libstdc++-v3/libio/ChangeLog Thu Dec 20 11:23:13 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. diff -Nrc3pad gcc-3.0.2/libstdc++-v3/src/limits.cc gcc-3.0.3/libstdc++-v3/src/limits.cc *** gcc-3.0.2/libstdc++-v3/src/limits.cc Sat Aug 11 11:12:18 2001 --- gcc-3.0.3/libstdc++-v3/src/limits.cc Fri Nov 2 14:40:28 2001 *************** namespace std *** 304,311 **** const bool numeric_limits::tinyness_before; const float_round_style numeric_limits::round_style; ! // XXX: Extensions ! #ifdef _GLIBCPP_USE_LONG_LONG const bool numeric_limits::is_specialized; const int numeric_limits::digits; const int numeric_limits::digits10; --- 304,310 ---- const bool numeric_limits::tinyness_before; const float_round_style numeric_limits::round_style; ! // NOTA BENE: long long is an extension const bool numeric_limits::is_specialized; const int numeric_limits::digits; const int numeric_limits::digits10; *************** namespace std *** 351,357 **** const bool numeric_limits::traps; const bool numeric_limits::tinyness_before; const float_round_style numeric_limits::round_style; - #endif // _GLIBCPP_USE_LONG_LONG // float const bool numeric_limits::is_specialized; --- 350,355 ---- diff -Nrc3pad gcc-3.0.2/libstdc++-v3/src/locale.cc gcc-3.0.3/libstdc++-v3/src/locale.cc *** gcc-3.0.2/libstdc++-v3/src/locale.cc Thu Jul 19 17:14:10 2001 --- gcc-3.0.3/libstdc++-v3/src/locale.cc Tue Dec 11 00:01:24 2001 *************** namespace std *** 646,651 **** --- 646,657 ---- } #endif + // This interface passes a fixed size buffer. The function cannot handle + // input longer than the buffer and sets failbit in that case. This is + // not strictly compliant since the input may be valid, but we are stuck + // with this ABI on the 3.0 branch. Since leading zeros are discarded all + // valid integer input should be OK, only floating point input can exceed + // the buffer. template<> void num_get >:: *************** namespace std *** 785,790 **** --- 791,804 ---- { // Try first for acceptable digit; record it if found. __xtrc[__pos++] = __c; + if (__pos == _M_extract_buffer_length) + { + // XXX This is non-compliant, but our fixed-size + // buffer is full. + __xtrc[_M_extract_buffer_length-1] = '\0'; + __err |= ios_base::failbit; + return; + } ++__sep_pos; __testunits = true; ++__beg; *************** namespace std *** 865,870 **** --- 879,892 ---- if (__c == __fmt->_M_decimal_point) { __xtrc[__pos++] = '.'; + if (__pos == _M_extract_buffer_length) + { + // XXX This is non-compliant, but our fixed-size + // buffer is full. + __xtrc[_M_extract_buffer_length-1] = '\0'; + __err |= ios_base::failbit; + return; + } ++__beg; __c = *__beg; *************** namespace std *** 879,884 **** --- 901,914 ---- && __p < &__lits[__cache_type::_S_udigits + __base])) { __xtrc[__pos++] = __c; + if (__pos == _M_extract_buffer_length) + { + // XXX This is non-compliant, but our fixed-size + // buffer is full. + __xtrc[_M_extract_buffer_length-1] = '\0'; + __err |= ios_base::failbit; + return; + } ++__beg; __c = *__beg; __testdec = true; *************** namespace std *** 903,908 **** --- 933,946 ---- || (__c == __lits[__cache_type::_S_Ee])) { __xtrc[__pos++] = __c; + if (__pos == _M_extract_buffer_length) + { + // XXX This is non-compliant, but our fixed-size + // buffer is full. + __xtrc[_M_extract_buffer_length-1] = '\0'; + __err |= ios_base::failbit; + return; + } ++__beg; __c = *__beg; *************** namespace std *** 913,918 **** --- 951,964 ---- || (__c == __lits[__cache_type::_S_plus])) { __xtrc[__pos++] = __c; + if (__pos == _M_extract_buffer_length) + { + // XXX This is non-compliant, but our fixed-size + // buffer is full. + __xtrc[_M_extract_buffer_length-1] = '\0'; + __err |= ios_base::failbit; + return; + } ++__beg; __c = *__beg; // whitespace may follow a sign *************** namespace std *** 939,944 **** --- 985,998 ---- && __p < &__lits[__cache_type::_S_udigits + __base])) { __xtrc[__pos++] = __c; + if (__pos == _M_extract_buffer_length) + { + // XXX This is non-compliant, but our fixed-size + // buffer is full. + __xtrc[_M_extract_buffer_length-1] = '\0'; + __err |= ios_base::failbit; + return; + } ++__beg; __c = *__beg; } diff -Nrc3pad gcc-3.0.2/libstdc++-v3/testsuite/21_strings/capacity.cc gcc-3.0.3/libstdc++-v3/testsuite/21_strings/capacity.cc *** gcc-3.0.2/libstdc++-v3/testsuite/21_strings/capacity.cc Tue Aug 28 14:19:08 2001 --- gcc-3.0.3/libstdc++-v3/testsuite/21_strings/capacity.cc Wed Nov 21 14:05:30 2001 *************** bool test01() *** 169,177 **** --- 169,198 ---- return test; } + // libstdc++/4548 + // http://gcc.gnu.org/ml/libstdc++/2001-11/msg00150.html + bool test02() + { + bool test = true; + + std::string str01 = "twelve chars"; + // str01 becomes shared + std::string str02 = str01; + str01.reserve(1); + VERIFY( str01.capacity() == 12 ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + + return test; + } + + int main() { test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.0.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc gcc-3.0.3/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc *** gcc-3.0.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Tue Aug 28 14:19:09 2001 --- gcc-3.0.3/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Tue Dec 11 00:01:26 2001 *************** bool test11() *** 513,518 **** --- 513,596 ---- return test; } + // libstdc++/3720 + // excess input should not cause a core dump + template + bool test12_aux(bool integer_type) + { + bool test = true; + + int digits_overflow; + if (integer_type) + // This many digits will overflow integer types in base 10. + digits_overflow = std::numeric_limits::digits10 + 1; + else + // This might do it, unsure. + digits_overflow = std::numeric_limits::max_exponent10 + 1; + + std::string st; + std::string part = "1234567890123456789012345678901234567890"; + for (int i = 0; i < digits_overflow / part.size() + 1; ++i) + st += part; + std::stringbuf sb(st); + std::istream is(&sb); + T t; + is >> t; + VERIFY(is.fail()); + return test; + } + + bool test12() + { + bool test = true; + VERIFY(test12_aux(true)); + VERIFY(test12_aux(true)); + VERIFY(test12_aux(true)); + VERIFY(test12_aux(false)); + VERIFY(test12_aux(false)); + VERIFY(test12_aux(false)); + return test; + } + + // libstdc++/3720 part two + void test13() + { + using namespace std; + bool test = true; + const char* l1 = "12345678901234567890123456789012345678901234567890123456"; + const char* l2 = "1.2345678901234567890123456789012345678901234567890123456" + " " + "1246.9"; + + // 1 + // used to core. + double d; + istringstream iss1(l2); + iss1 >> d; + // XXX doesn't work on 3.0 branch + // iss1 >> d; + // VERIFY (d > 1246 && d < 1247); + + // 2 + // quick test for failbit on maximum length extraction. + int i; + int max_digits = numeric_limits::digits10; + string digits; + for (int j = 0; j < max_digits; ++j) + digits += '1'; + istringstream iss2(digits); + iss2 >> i; + VERIFY( !iss2.fail() ); + + digits += '1'; + i = 0; + iss2.str(digits); + iss2.clear(); + iss2 >> i; + VERIFY( i == 0 ); + VERIFY( iss2.fail() ); + } + int main() { test01(); *************** int main() *** 526,531 **** --- 604,611 ---- test10(); test11(); + test12(); + test13(); return 0; } diff -Nrc3pad gcc-3.0.2/zlib/ChangeLog gcc-3.0.3/zlib/ChangeLog *** gcc-3.0.2/zlib/ChangeLog Tue Oct 23 10:21:18 2001 --- gcc-3.0.3/zlib/ChangeLog Thu Dec 20 11:23:17 2001 *************** *** 1,3 **** --- 1,7 ---- + 2001-12-20 Release Manager + + * GCC 3.0.3 Released. + 2001-10-23 Release Manager * GCC 3.0.2 Released. *************** Changes in 1.0.6 (19 Jan 1998) *** 231,237 **** - 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.1.8.4 2001/10/23 17:21:18 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 --- 235,241 ---- - 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.1.8.5 2001/12/20 19:23:17 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